Skip to content

Commit b6504d7

Browse files
authored
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
1 parent 95c9f39 commit b6504d7

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

src/node/BrowserRunner.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ export class BrowserRunner {
164164

165165
close(): Promise<void> {
166166
if (this._closed) return Promise.resolve();
167-
if (this._isTempUserDataDir && this._product !== 'firefox') {
167+
if (this._isTempUserDataDir) {
168168
this.kill();
169169
} else if (this.connection) {
170170
// Attempt to close the browser gracefully

test/launcher.spec.ts

+20-1
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ describe('Launcher specs', function () {
404404
await page.close();
405405
await browser.close();
406406
});
407-
it('should filter out ignored default arguments', async () => {
407+
itChromeOnly('should filter out ignored default arguments', async () => {
408408
const { defaultBrowserOptions, puppeteer } = getTestState();
409409
// Make sure we launch with `--enable-automation` by default.
410410
const defaultArgs = puppeteer.defaultArgs();
@@ -423,6 +423,25 @@ describe('Launcher specs', function () {
423423
expect(spawnargs.indexOf(defaultArgs[2])).toBe(-1);
424424
await browser.close();
425425
});
426+
itFirefoxOnly('should filter out ignored default arguments', async () => {
427+
const { defaultBrowserOptions, puppeteer } = getTestState();
428+
429+
const defaultArgs = puppeteer.defaultArgs();
430+
const browser = await puppeteer.launch(
431+
Object.assign({}, defaultBrowserOptions, {
432+
// Only the first argument is fixed, others are optional.
433+
ignoreDefaultArgs: [defaultArgs[0]],
434+
})
435+
);
436+
const spawnargs = browser.process().spawnargs;
437+
if (!spawnargs) {
438+
throw new Error('spawnargs not present');
439+
}
440+
expect(spawnargs.indexOf(defaultArgs[0])).toBe(-1);
441+
expect(spawnargs.indexOf(defaultArgs[1])).not.toBe(-1);
442+
await browser.close();
443+
});
444+
426445
it('should have default URL when launching browser', async function () {
427446
const { defaultBrowserOptions, puppeteer } = getTestState();
428447
const browser = await puppeteer.launch(defaultBrowserOptions);

0 commit comments

Comments
 (0)