From dca95ba609a445b71f84501f8ee487c1b114e219 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Fri, 3 Jan 2025 10:39:32 -0800 Subject: [PATCH] fix(bidi): set initial frame url from creation event (#34198) --- packages/playwright-core/src/server/bidi/bidiBrowser.ts | 4 ++++ tests/bidi/expectations/bidi-chromium-library.txt | 2 +- tests/bidi/expectations/bidi-firefox-nightly-library.txt | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/playwright-core/src/server/bidi/bidiBrowser.ts b/packages/playwright-core/src/server/bidi/bidiBrowser.ts index 955f6274a3c1f..96c48ea2a8bae 100644 --- a/packages/playwright-core/src/server/bidi/bidiBrowser.ts +++ b/packages/playwright-core/src/server/bidi/bidiBrowser.ts @@ -152,6 +152,9 @@ export class BidiBrowser extends Browser { continue; page._session.addFrameBrowsingContext(event.context); page._page._frameManager.frameAttached(event.context, parentFrameId); + const frame = page._page._frameManager.frame(event.context); + if (frame) + frame._url = event.url; return; } return; @@ -164,6 +167,7 @@ export class BidiBrowser extends Browser { const session = this._connection.createMainFrameBrowsingContextSession(event.context); const opener = event.originalOpener && this._bidiPages.get(event.originalOpener); const page = new BidiPage(context, session, opener || null); + page._page.mainFrame()._url = event.url; this._bidiPages.set(event.context, page); } diff --git a/tests/bidi/expectations/bidi-chromium-library.txt b/tests/bidi/expectations/bidi-chromium-library.txt index 13dbf66eb5568..ecdb4e425c159 100644 --- a/tests/bidi/expectations/bidi-chromium-library.txt +++ b/tests/bidi/expectations/bidi-chromium-library.txt @@ -310,7 +310,7 @@ library/browsercontext-network-event.spec.ts › BrowserContext.Events.RequestFi library/browsercontext-network-event.spec.ts › BrowserContext.Events.Response [pass] library/browsercontext-network-event.spec.ts › should fire events in proper order [pass] library/browsercontext-network-event.spec.ts › should not fire events for favicon or favicon redirects [unknown] -library/browsercontext-page-event.spec.ts › should fire page lifecycle events [fail] +library/browsercontext-page-event.spec.ts › should fire page lifecycle events [pass] library/browsercontext-page-event.spec.ts › should have about:blank for empty url with domcontentloaded [fail] library/browsercontext-page-event.spec.ts › should have about:blank url with domcontentloaded [fail] library/browsercontext-page-event.spec.ts › should have an opener [pass] diff --git a/tests/bidi/expectations/bidi-firefox-nightly-library.txt b/tests/bidi/expectations/bidi-firefox-nightly-library.txt index fd0ce6cea68f8..f0920dbee464c 100644 --- a/tests/bidi/expectations/bidi-firefox-nightly-library.txt +++ b/tests/bidi/expectations/bidi-firefox-nightly-library.txt @@ -312,7 +312,7 @@ library/browsercontext-network-event.spec.ts › BrowserContext.Events.Response library/browsercontext-network-event.spec.ts › should fire events in proper order [pass] library/browsercontext-network-event.spec.ts › should not fire events for favicon or favicon redirects [unknown] library/browsercontext-network-event.spec.ts › should reject response.finished if context closes [timeout] -library/browsercontext-page-event.spec.ts › should fire page lifecycle events [fail] +library/browsercontext-page-event.spec.ts › should fire page lifecycle events [pass] library/browsercontext-page-event.spec.ts › should have about:blank for empty url with domcontentloaded [timeout] library/browsercontext-page-event.spec.ts › should have about:blank url with domcontentloaded [pass] library/browsercontext-page-event.spec.ts › should have an opener [pass]