From ac116248f963c683eea8b9c5a87ed8579f2ade58 Mon Sep 17 00:00:00 2001 From: Julian Descottes Date: Fri, 10 Jan 2025 19:14:11 +0100 Subject: [PATCH] chore(bidi): Avoid errors if url is unavailable in navigationStarted event --- packages/playwright-core/src/server/bidi/bidiPage.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/playwright-core/src/server/bidi/bidiPage.ts b/packages/playwright-core/src/server/bidi/bidiPage.ts index cf0662738b..e27bbfca7d 100644 --- a/packages/playwright-core/src/server/bidi/bidiPage.ts +++ b/packages/playwright-core/src/server/bidi/bidiPage.ts @@ -180,6 +180,12 @@ export class BidiPage implements PageDelegate { const frameId = params.context; this._page._frameManager.frameRequestedNavigation(frameId, params.navigation!); + // url is missing from navigationStarted events on Firefox when the + // navigation is interrupted by a beforeunload prompt. + // See https://bugzilla.mozilla.org/show_bug.cgi?id=1908952 + if (!params.url) + return; + const url = params.url.toLowerCase(); if (url.startsWith('file:') || url.startsWith('data:') || url === 'about:blank') { // Navigation to file urls doesn't emit network events, so we fire 'commit' event right when navigation is started.