From 2d9df0725ac9d2cd2c381396bbef5d85f5ea4cae Mon Sep 17 00:00:00 2001 From: "microsoft-playwright-automation[bot]" <203992400+microsoft-playwright-automation[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 08:36:02 -0700 Subject: [PATCH 1/3] feat(webkit): roll to r2326 (#41670) --- packages/playwright-core/browsers.json | 2 +- .../playwright-core/src/server/webkit/protocol.d.ts | 2 +- .../browsercontext-cookies-third-party.spec.ts | 12 +++++++++--- tests/library/modernizr.spec.ts | 2 -- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/packages/playwright-core/browsers.json b/packages/playwright-core/browsers.json index a63a6f5baf709..610ccb4f7bcb8 100644 --- a/packages/playwright-core/browsers.json +++ b/packages/playwright-core/browsers.json @@ -45,7 +45,7 @@ }, { "name": "webkit", - "revision": "2325", + "revision": "2326", "installByDefault": true, "revisionOverrides": { "mac14": "2251", diff --git a/packages/playwright-core/src/server/webkit/protocol.d.ts b/packages/playwright-core/src/server/webkit/protocol.d.ts index 33a8e5dcc0841..744dfcb951d8e 100644 --- a/packages/playwright-core/src/server/webkit/protocol.d.ts +++ b/packages/playwright-core/src/server/webkit/protocol.d.ts @@ -6372,7 +6372,7 @@ the top of the viewport and Y increases as it proceeds towards the bottom of the /** * List of settings able to be overridden by WebInspector. */ - export type Setting = "PrivateClickMeasurementDebugModeEnabled"|"AuthorAndUserStylesEnabled"|"ICECandidateFilteringEnabled"|"ITPDebugModeEnabled"|"ImagesEnabled"|"MediaCaptureRequiresSecureConnection"|"MockCaptureDevicesEnabled"|"NeedsSiteSpecificQuirks"|"ScriptEnabled"|"ShowDebugBorders"|"ShowRepaintCounter"|"WebSecurityEnabled"|"DeviceOrientationEventEnabled"|"SpeechRecognitionEnabled"|"PointerLockEnabled"|"NotificationsEnabled"|"FullScreenEnabled"|"InputTypeMonthEnabled"|"InputTypeWeekEnabled"|"FixedBackgroundsPaintRelativeToDocument"; + export type Setting = "PrivateClickMeasurementDebugModeEnabled"|"AuthorAndUserStylesEnabled"|"ICECandidateFilteringEnabled"|"ITPDebugModeEnabled"|"ImagesEnabled"|"MediaCaptureRequiresSecureConnection"|"MockCaptureDevicesEnabled"|"NeedsSiteSpecificQuirks"|"ScriptEnabled"|"ShowDebugBorders"|"ShowRepaintCounter"|"WebSecurityEnabled"|"DeviceOrientationEventEnabled"|"SpeechRecognitionEnabled"|"PointerLockEnabled"|"NotificationsEnabled"|"FullScreenEnabled"|"InputTypeMonthEnabled"|"InputTypeWeekEnabled"|"FixedBackgroundsPaintRelativeToDocument"|"PushAPIEnabled"; /** * A user preference that can be overriden by Web Inspector, like an accessibility preference. */ diff --git a/tests/library/browsercontext-cookies-third-party.spec.ts b/tests/library/browsercontext-cookies-third-party.spec.ts index 7cc5f267b4c28..86288e7a7ba16 100644 --- a/tests/library/browsercontext-cookies-third-party.spec.ts +++ b/tests/library/browsercontext-cookies-third-party.spec.ts @@ -382,9 +382,13 @@ test(`add 'Partitioned;' cookie via API`, async ({ page, context, browserName, h { // Check top-level cookie first. await page.goto(urls.read_origin1); - const expectedTopLevel = (browserName === 'webkit' && !webkitPartitions) || (browserName === 'firefox' && !isBidi) ? - 'Received cookie: frame-non-partitioned=value; frame-partitioned=value; top-level-non-partitioned=value; top-level-partitioned=value' : - 'Received cookie: frame-non-partitioned=value; top-level-non-partitioned=value; top-level-partitioned=value'; + let expectedTopLevel: string; + if (browserName === 'webkit' && isMac && !webkitPartitions) + expectedTopLevel = 'Received cookie: frame-non-partitioned=value; top-level-non-partitioned=value'; + else if ((browserName === 'webkit' && !webkitPartitions) || (browserName === 'firefox' && !isBidi)) + expectedTopLevel = 'Received cookie: frame-non-partitioned=value; frame-partitioned=value; top-level-non-partitioned=value; top-level-partitioned=value'; + else + expectedTopLevel = 'Received cookie: frame-non-partitioned=value; top-level-non-partitioned=value; top-level-partitioned=value'; expect.soft(await page.locator('body').textContent()).toBe(expectedTopLevel); } { @@ -409,6 +413,8 @@ test(`add 'Partitioned;' cookie via API`, async ({ page, context, browserName, h let expectedThirdParty = 'Received cookie: '; if (webkitPartitions) expectedThirdParty += 'frame-non-partitioned=value; top-level-non-partitioned=value; top-level-partitioned=value'; + else if (browserName === 'webkit' && isMac) + expectedThirdParty += 'frame-non-partitioned=value; top-level-non-partitioned=value'; else if (browserName === 'webkit' || (browserName === 'firefox' && !isBidi)) expectedThirdParty += 'frame-non-partitioned=value; frame-partitioned=value; top-level-non-partitioned=value; top-level-partitioned=value'; else if (browserName === 'firefox' && isBidi) diff --git a/tests/library/modernizr.spec.ts b/tests/library/modernizr.spec.ts index 303833fb9c134..9a3bdc65d02b1 100644 --- a/tests/library/modernizr.spec.ts +++ b/tests/library/modernizr.spec.ts @@ -44,8 +44,6 @@ it('Safari Desktop', async ({ browser, browserName, platform, httpsServer, chann expected.pushmanager = false; expected.devicemotion2 = false; - expected.devicemotion = false; - expected.deviceorientation = false; expected.deviceorientation3 = false; delete expected.webglextensions; From e88063f327e573d49d4472557abdcc545e6c5c1a Mon Sep 17 00:00:00 2001 From: "microsoft-playwright-automation[bot]" <203992400+microsoft-playwright-automation[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 09:42:04 -0700 Subject: [PATCH 2/3] feat(webkit): roll to r2327 (#41684) --- packages/playwright-core/browsers.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/playwright-core/browsers.json b/packages/playwright-core/browsers.json index 610ccb4f7bcb8..c5e49309c3e4b 100644 --- a/packages/playwright-core/browsers.json +++ b/packages/playwright-core/browsers.json @@ -45,7 +45,7 @@ }, { "name": "webkit", - "revision": "2326", + "revision": "2327", "installByDefault": true, "revisionOverrides": { "mac14": "2251", From 39a418adf4f28feed1d2e72b4923e51e9a8e874c Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Wed, 8 Jul 2026 10:05:00 -0700 Subject: [PATCH 3/3] feat(mcp): always pass noDefaults for CDP connections (#41676) --- .../playwright-core/src/tools/mcp/browserFactory.ts | 1 + tests/mcp/cdp.spec.ts | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/packages/playwright-core/src/tools/mcp/browserFactory.ts b/packages/playwright-core/src/tools/mcp/browserFactory.ts index 70cf0878e55d7..376428c51b185 100644 --- a/packages/playwright-core/src/tools/mcp/browserFactory.ts +++ b/packages/playwright-core/src/tools/mcp/browserFactory.ts @@ -108,6 +108,7 @@ async function createCDPBrowser(config: FullConfig, clientInfo: ClientInfo): Pro const browser = await playwright.chromium.connectOverCDP(config.browser.cdpEndpoint!, { headers: config.browser.cdpHeaders, timeout: config.browser.cdpTimeout, + noDefaults: true, artifactsDir, }); return browser; diff --git a/tests/mcp/cdp.spec.ts b/tests/mcp/cdp.spec.ts index a316baff86286..db0b513af00e9 100644 --- a/tests/mcp/cdp.spec.ts +++ b/tests/mcp/cdp.spec.ts @@ -59,6 +59,19 @@ test('cdp server reuse tab', async ({ cdpServer, startClient, server }) => { }); }); +test('cdp connection uses noDefaults', async ({ cdpServer, startClient }) => { + test.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/41661' }); + const browserContext = await cdpServer.start(); + const [page] = browserContext.pages(); + await page.emulateMedia({ media: 'print' }); + expect(await page.evaluate(() => matchMedia('print').matches)).toBe(true); + + const { client } = await startClient({ args: [`--cdp-endpoint=${cdpServer.endpoint}`] }); + await client.callTool({ name: 'browser_snapshot' }); + + expect(await page.evaluate(() => matchMedia('print').matches)).toBe(true); +}); + test('should throw connection error and allow re-connecting', async ({ cdpServer, startClient, server }) => { const { client } = await startClient({ args: [`--cdp-endpoint=${cdpServer.endpoint}`] });