diff --git a/src/common/Browser.ts b/src/common/Browser.ts index 783dee7340006..c59534c1faf98 100644 --- a/src/common/Browser.ts +++ b/src/common/Browser.ts @@ -649,10 +649,10 @@ export class Browser extends EventEmitter { this.on(BrowserEmittedEvents.TargetCreated, check); this.on(BrowserEmittedEvents.TargetChanged, check); try { + this.targets().forEach(check); if (!timeout) { return await targetPromise; } - this.targets().forEach(check); return await waitWithTimeout(targetPromise, 'target', timeout); } finally { this.off(BrowserEmittedEvents.TargetCreated, check); diff --git a/test/src/launcher.spec.ts b/test/src/launcher.spec.ts index b63cdb7392c9b..791e9a814fe4d 100644 --- a/test/src/launcher.spec.ts +++ b/test/src/launcher.spec.ts @@ -543,6 +543,14 @@ describe('Launcher specs', function () { }); expect(error).toBeInstanceOf(puppeteer.errors.TimeoutError); }); + it('should work with timeout = 0', async () => { + const {puppeteer, defaultBrowserOptions} = getTestState(); + const options = Object.assign({}, defaultBrowserOptions, { + timeout: 0, + }); + const browser = await puppeteer.launch(options); + await browser.close(); + }); it('should set the default viewport', async () => { const {puppeteer, defaultBrowserOptions} = getTestState(); const options = Object.assign({}, defaultBrowserOptions, {