From 05767542af2cda63b27c9b7952f72092a76c3cef Mon Sep 17 00:00:00 2001 From: alok-108 Date: Wed, 7 Oct 2026 05:48:24 +0530 Subject: [PATCH 1/2] fix(firefox): disable safe mode keyboard shortcut in environment (#43089) --- .../src/server/bidi/bidiFirefox.ts | 1 + .../src/server/firefox/firefox.ts | 4 ++++ tests/library/firefox/launcher.spec.ts | 18 ++++++++++++++++++ 3 files changed, 23 insertions(+) diff --git a/packages/playwright-core/src/server/bidi/bidiFirefox.ts b/packages/playwright-core/src/server/bidi/bidiFirefox.ts index 89bd962393752..a33d88dd34b35 100644 --- a/packages/playwright-core/src/server/bidi/bidiFirefox.ts +++ b/packages/playwright-core/src/server/bidi/bidiFirefox.ts @@ -57,6 +57,7 @@ export class BidiFirefox extends BrowserType { throw new Error(`Cannot launch Firefox with relative home directory. Did you set ${os.platform() === 'win32' ? 'USERPROFILE' : 'HOME'} to a relative path?`); env = { + 'MOZ_DISABLE_SAFE_MODE_KEY': '1', ...env, 'MOZ_CRASHREPORTER': '1', 'MOZ_CRASHREPORTER_NO_REPORT': '1', diff --git a/packages/playwright-core/src/server/firefox/firefox.ts b/packages/playwright-core/src/server/firefox/firefox.ts index 3e0b505951500..b93f1fc773687 100644 --- a/packages/playwright-core/src/server/firefox/firefox.ts +++ b/packages/playwright-core/src/server/firefox/firefox.ts @@ -69,6 +69,10 @@ export class Firefox extends BrowserType { override amendEnvironment(env: NodeJS.ProcessEnv): NodeJS.ProcessEnv { if (!path.isAbsolute(os.homedir())) throw new Error(`Cannot launch Firefox with relative home directory. Did you set ${os.platform() === 'win32' ? 'USERPROFILE' : 'HOME'} to a relative path?`); + env = { + 'MOZ_DISABLE_SAFE_MODE_KEY': '1', + ...env, + }; if (os.platform() === 'linux') { // Always remove SNAP_NAME and SNAP_INSTANCE_NAME env variables since they // confuse Firefox: in our case, builds never come from SNAP. diff --git a/tests/library/firefox/launcher.spec.ts b/tests/library/firefox/launcher.spec.ts index 740c9ccd97316..92e26ec008469 100644 --- a/tests/library/firefox/launcher.spec.ts +++ b/tests/library/firefox/launcher.spec.ts @@ -73,3 +73,21 @@ it('should support custom firefox policies', async ({ browserType, mode, asset, await browser.close(); await server.stop(); }); + +it('should disable safe mode key in firefox environment', () => { + const { server } = require('../../../packages/playwright-core/lib/coreBundle'); + const playwright = server.createPlaywright({ sdkLanguage: 'javascript', isInternalPlaywright: true }); + + const defaultEnv = playwright.firefox.amendEnvironment({}); + expect(defaultEnv.MOZ_DISABLE_SAFE_MODE_KEY).toBe('1'); + + const customEnv = playwright.firefox.amendEnvironment({ MOZ_DISABLE_SAFE_MODE_KEY: '0' }); + expect(customEnv.MOZ_DISABLE_SAFE_MODE_KEY).toBe('0'); + + const bidiFirefox = (playwright.firefox as any)._bidiFirefox; + const bidiDefaultEnv = bidiFirefox.amendEnvironment({}); + expect(bidiDefaultEnv.MOZ_DISABLE_SAFE_MODE_KEY).toBe('1'); + + const bidiCustomEnv = bidiFirefox.amendEnvironment({ MOZ_DISABLE_SAFE_MODE_KEY: '0' }); + expect(bidiCustomEnv.MOZ_DISABLE_SAFE_MODE_KEY).toBe('0'); +}); From 31620731b2563988c963d535597467ad8b2eef4e Mon Sep 17 00:00:00 2001 From: alok-108 Date: Wed, 7 Oct 2026 23:59:29 +0530 Subject: [PATCH 2/2] test(firefox): remove unit test per review --- tests/library/firefox/launcher.spec.ts | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/tests/library/firefox/launcher.spec.ts b/tests/library/firefox/launcher.spec.ts index 92e26ec008469..740c9ccd97316 100644 --- a/tests/library/firefox/launcher.spec.ts +++ b/tests/library/firefox/launcher.spec.ts @@ -73,21 +73,3 @@ it('should support custom firefox policies', async ({ browserType, mode, asset, await browser.close(); await server.stop(); }); - -it('should disable safe mode key in firefox environment', () => { - const { server } = require('../../../packages/playwright-core/lib/coreBundle'); - const playwright = server.createPlaywright({ sdkLanguage: 'javascript', isInternalPlaywright: true }); - - const defaultEnv = playwright.firefox.amendEnvironment({}); - expect(defaultEnv.MOZ_DISABLE_SAFE_MODE_KEY).toBe('1'); - - const customEnv = playwright.firefox.amendEnvironment({ MOZ_DISABLE_SAFE_MODE_KEY: '0' }); - expect(customEnv.MOZ_DISABLE_SAFE_MODE_KEY).toBe('0'); - - const bidiFirefox = (playwright.firefox as any)._bidiFirefox; - const bidiDefaultEnv = bidiFirefox.amendEnvironment({}); - expect(bidiDefaultEnv.MOZ_DISABLE_SAFE_MODE_KEY).toBe('1'); - - const bidiCustomEnv = bidiFirefox.amendEnvironment({ MOZ_DISABLE_SAFE_MODE_KEY: '0' }); - expect(bidiCustomEnv.MOZ_DISABLE_SAFE_MODE_KEY).toBe('0'); -});