diff --git a/packages/playwright-core/src/server/chromium/crBrowser.ts b/packages/playwright-core/src/server/chromium/crBrowser.ts index 37c4d7110d..8eb1e35928 100644 --- a/packages/playwright-core/src/server/chromium/crBrowser.ts +++ b/packages/playwright-core/src/server/chromium/crBrowser.ts @@ -243,7 +243,12 @@ export class CRBrowser extends Browser { _onDownloadWillBegin(payload: Protocol.Browser.downloadWillBeginPayload) { const page = this._findOwningPage(payload.frameId); - assert(page, 'Download started in unknown page: ' + JSON.stringify(payload)); + if (!page) { + // There might be no page when download originates from something unusual, like + // a DevTools window or maybe an extension page. + // See https://github.com/microsoft/playwright/issues/22551. + return; + } page.willBeginDownload(); let originPage = page._initializedPage; diff --git a/packages/playwright-core/src/server/firefox/ffBrowser.ts b/packages/playwright-core/src/server/firefox/ffBrowser.ts index 52bc17c1cc..7cd57188ef 100644 --- a/packages/playwright-core/src/server/firefox/ffBrowser.ts +++ b/packages/playwright-core/src/server/firefox/ffBrowser.ts @@ -118,8 +118,7 @@ export class FFBrowser extends Browser { } _onDownloadCreated(payload: Protocol.Browser.downloadCreatedPayload) { - const ffPage = this._ffPages.get(payload.pageTargetId)!; - assert(ffPage); + const ffPage = this._ffPages.get(payload.pageTargetId); if (!ffPage) return;