From 3c724c2498ca9cdf0137a5137f8230e4abd29c9c Mon Sep 17 00:00:00 2001 From: Dmitry Gozman Date: Tue, 2 May 2023 18:49:04 -0700 Subject: [PATCH] fix: do not crash upon download in unknown page (#22774) Fixes #22551. --- packages/playwright-core/src/server/chromium/crBrowser.ts | 7 ++++++- packages/playwright-core/src/server/firefox/ffBrowser.ts | 3 +-- 2 files changed, 7 insertions(+), 3 deletions(-) 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;