From b6504d7186336a2fc0b41c3878c843b7409ba5fb Mon Sep 17 00:00:00 2001 From: Henrik Skupin Date: Tue, 19 Apr 2022 14:09:23 +0200 Subject: [PATCH] fix: also kill Firefox when temporary profile is used (#8233) * fix: also kill Firefox when temporary profile is used * fix: use separate tests for Puppeteer.launch should filter out ignored default arguments --- src/node/BrowserRunner.ts | 2 +- test/launcher.spec.ts | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/node/BrowserRunner.ts b/src/node/BrowserRunner.ts index 46d322e9ce11e..f2dc6075857e7 100644 --- a/src/node/BrowserRunner.ts +++ b/src/node/BrowserRunner.ts @@ -164,7 +164,7 @@ export class BrowserRunner { close(): Promise { if (this._closed) return Promise.resolve(); - if (this._isTempUserDataDir && this._product !== 'firefox') { + if (this._isTempUserDataDir) { this.kill(); } else if (this.connection) { // Attempt to close the browser gracefully diff --git a/test/launcher.spec.ts b/test/launcher.spec.ts index 46d56c554dfd1..1e45fea435693 100644 --- a/test/launcher.spec.ts +++ b/test/launcher.spec.ts @@ -404,7 +404,7 @@ describe('Launcher specs', function () { await page.close(); await browser.close(); }); - it('should filter out ignored default arguments', async () => { + itChromeOnly('should filter out ignored default arguments', async () => { const { defaultBrowserOptions, puppeteer } = getTestState(); // Make sure we launch with `--enable-automation` by default. const defaultArgs = puppeteer.defaultArgs(); @@ -423,6 +423,25 @@ describe('Launcher specs', function () { expect(spawnargs.indexOf(defaultArgs[2])).toBe(-1); await browser.close(); }); + itFirefoxOnly('should filter out ignored default arguments', async () => { + const { defaultBrowserOptions, puppeteer } = getTestState(); + + const defaultArgs = puppeteer.defaultArgs(); + const browser = await puppeteer.launch( + Object.assign({}, defaultBrowserOptions, { + // Only the first argument is fixed, others are optional. + ignoreDefaultArgs: [defaultArgs[0]], + }) + ); + const spawnargs = browser.process().spawnargs; + if (!spawnargs) { + throw new Error('spawnargs not present'); + } + expect(spawnargs.indexOf(defaultArgs[0])).toBe(-1); + expect(spawnargs.indexOf(defaultArgs[1])).not.toBe(-1); + await browser.close(); + }); + it('should have default URL when launching browser', async function () { const { defaultBrowserOptions, puppeteer } = getTestState(); const browser = await puppeteer.launch(defaultBrowserOptions);