From 205a006a7d556ed7e1faa94122e191de6266c010 Mon Sep 17 00:00:00 2001 From: Dmitry Gozman Date: Wed, 3 Jun 2026 17:39:17 +0100 Subject: [PATCH 1/2] fix(chromium): attribute worker to the right frame (#41116) --- packages/playwright-core/src/server/chromium/crPage.ts | 3 +-- tests/page/workers.spec.ts | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/playwright-core/src/server/chromium/crPage.ts b/packages/playwright-core/src/server/chromium/crPage.ts index 907f4a47907ca..19556b0536e8e 100644 --- a/packages/playwright-core/src/server/chromium/crPage.ts +++ b/packages/playwright-core/src/server/chromium/crPage.ts @@ -741,8 +741,7 @@ class FrameSession { worker.workerScriptLoaded(); // This might fail if the target is closed before we initialize. session._sendMayFail('Runtime.enable'); - // TODO: attribute workers to the right frame. - this._crPage._networkManager.addSession(session, this._page.frameManager.frame(this._targetId) ?? undefined).catch(() => {}); + this._crPage._networkManager.addSession(session, this._page.frameManager.frame(event.targetInfo.parentFrameId ?? this._targetId) ?? undefined).catch(() => {}); session._sendMayFail('Runtime.runIfWaitingForDebugger'); session._sendMayFail('Target.setAutoAttach', { autoAttach: true, waitForDebuggerOnStart: true, flatten: true }); session.on('Target.attachedToTarget', event => this._onAttachedToTarget(event)); diff --git a/tests/page/workers.spec.ts b/tests/page/workers.spec.ts index 617f3766732b8..59477ac93c6f6 100644 --- a/tests/page/workers.spec.ts +++ b/tests/page/workers.spec.ts @@ -188,7 +188,6 @@ it('should clear upon cross-process navigation', async function({ server, page } }); it('should attribute network activity for worker inside iframe to the iframe', async function({ page, server, browserName, browserMajorVersion }) { - it.fixme(browserName === 'chromium'); it.skip(browserName === 'firefox' && browserMajorVersion < 114, 'https://github.com/microsoft/playwright/issues/21760'); await page.goto(server.PREFIX + '/empty.html'); From db88251c3a6a2f6b00a00a4ff9171903c0ff8ff0 Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Wed, 3 Jun 2026 09:41:51 -0700 Subject: [PATCH 2/2] chore: serialize non-inprocess uploads (#41112) --- packages/playwright-core/src/cli/driver.ts | 2 +- tests/page/page-set-input-files.spec.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/playwright-core/src/cli/driver.ts b/packages/playwright-core/src/cli/driver.ts index 05c28bc836f52..0d807cc1adee6 100644 --- a/packages/playwright-core/src/cli/driver.ts +++ b/packages/playwright-core/src/cli/driver.ts @@ -37,7 +37,7 @@ export function printApiJson() { export function runDriver() { const dispatcherConnection = new DispatcherConnection(); new RootDispatcher(dispatcherConnection, async (rootScope, { sdkLanguage }) => { - const playwright = createPlaywright({ sdkLanguage }); + const playwright = createPlaywright({ sdkLanguage, isClientCollocatedWithServer: true }); return new PlaywrightDispatcher(rootScope, playwright); }); // eslint-disable-next-line no-restricted-properties diff --git a/tests/page/page-set-input-files.spec.ts b/tests/page/page-set-input-files.spec.ts index 6a0922a330211..c443700b81a20 100644 --- a/tests/page/page-set-input-files.spec.ts +++ b/tests/page/page-set-input-files.spec.ts @@ -145,7 +145,7 @@ test('should upload a file after popup', async ({ page, server, asset }) => { test('should upload large file', async ({ page, server, isAndroid, mode }, testInfo) => { test.skip(isAndroid); - test.skip(mode !== 'default'); + test.skip(mode.startsWith('service')); test.slow(); await page.goto(server.PREFIX + '/input/fileupload.html');