Skip to content

feat(cookie): export/import chips cookies #36168

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
Jun 6, 2025
Merged

Conversation

yury-s
Copy link
Member

@yury-s yury-s commented Jun 3, 2025

Export/import topLevelSite cookie property. It is used to partition cookies, see https://github.com/privacycg/CHIPS.

Additionally add private _chromiumHasCrossSiteAncestor which is non-standard and used only in Chromium, see https://chromestatus.com/feature/5144832583663616. It allows to support export/import storage state scenarios while does not allow to set it via public API.

The field is private because of this note in the feature description above:

Specification
https://github.com/explainers-by-googlers/CHIPS-spec

Spec status: Proposal in a personal repository, no adoption from community

Reference: #35598

This comment has been minimized.

This comment has been minimized.

yury-s added 6 commits June 5, 2025 09:38
Export/import partitionKey in Chromium. It is used to partition cookies. Not exposed in the public API yet.

Reference: microsoft#35598
@yury-s yury-s added the CQ1 label Jun 5, 2025
Copy link
Contributor

github-actions bot commented Jun 6, 2025

Test results for "tests 2"

1 fatal errors, not part of any test
7 failed
❌ [chromium-library] › library/proxy.spec.ts:228:3 › should use socks proxy @chrome-beta-macos-latest
❌ [chromium-library] › library/proxy.spec.ts:291:3 › should use SOCKS proxy for websocket requests @chrome-beta-macos-latest
❌ [chromium-library] › library/browsertype-connect.spec.ts:670:5 › run-server › should fulfill with global fetch result @chrome-macos-latest
❌ [chromium-library] › library/proxy.spec.ts:93:11 › should proxy local network requests › with other bypasses › localhost @msedge-beta-macos-latest
❌ [chromium-library] › library/proxy.spec.ts:93:11 › should proxy local network requests › with other bypasses › link-local @msedge-dev-macos-latest
❌ [chromium-library] › library/proxy.spec.ts:93:11 › should proxy local network requests › by default › loopback address @msedge-macos-latest
❌ [chromium-library] › library/proxy.spec.ts:93:11 › should proxy local network requests › by default › link-local @msedge-macos-latest

97 flaky ⚠️ [chromium-library] › library/browser.spec.ts:54:5 › should dispatch page.on(close) upon browser.close and reject evaluate @channel-chromium-macos-latest
⚠️ [chromium-library] › library/browsertype-connect.spec.ts:910:7 › run-server › socks proxy › should proxy local.playwright requests @channel-chromium-macos-latest
⚠️ [chromium-library] › library/inspector/cli-codegen-2.spec.ts:93:7 › cli codegen › should not lead to an error if html gets clicked @channel-chromium-macos-latest
⚠️ [chromium-library] › library/logger.spec.ts:34:3 › should log context-level @channel-chromium-macos-latest
⚠️ [chromium-page] › page/workers.spec.ts:25:3 › Page.workers @smoke @channel-chromium-macos-latest
⚠️ [chromium-page] › page/workers.spec.ts:150:3 › should report network activity @channel-chromium-macos-latest
⚠️ [chromium-page] › page/workers.spec.ts:242:3 › should report and intercept network from nested worker @channel-chromium-macos-latest
⚠️ [chromium-page] › page/workers.spec.ts:271:3 › should support extra http headers @channel-chromium-macos-latest
⚠️ [chromium-library] › library/client-certificates.spec.ts:400:3 › browser › should not hang on tls errors during TLS 1.2 handshake @channel-chromium-ubuntu-latest
⚠️ [chromium-library] › library/browser.spec.ts:54:5 › should dispatch page.on(close) upon browser.close and reject evaluate @chrome-beta-macos-latest
⚠️ [chromium-library] › library/browsercontext-base-url.spec.ts:37:3 › should construct a new URL when a baseURL in browserType.launchPersistentContext is passed to page.goto @chrome-beta-macos-latest
⚠️ [chromium-library] › library/browsercontext-basic.spec.ts:376:3 › should create two pages in parallel in various contexts @chrome-beta-macos-latest
⚠️ [chromium-library] › library/browsercontext-fetch.spec.ts:1262:3 › should work with connectOverCDP @chrome-beta-macos-latest
⚠️ [chromium-library] › library/fetch-proxy.spec.ts:21:3 › context request should pick up proxy credentials @chrome-beta-macos-latest
⚠️ [chromium-library] › library/headful.spec.ts:114:3 › should close browser after context menu was triggered @chrome-beta-macos-latest
⚠️ [chromium-library] › library/inspector/pause.spec.ts:35:3 › should not reset timeouts @chrome-beta-macos-latest
⚠️ [chromium-library] › library/logger.spec.ts:19:3 › should log @smoke @chrome-beta-macos-latest
⚠️ [chromium-library] › library/proxy.spec.ts:63:3 › should work with IP:PORT notion @chrome-beta-macos-latest
⚠️ [chromium-library] › library/proxy.spec.ts:238:3 › should use socks proxy in second page @chrome-beta-macos-latest
⚠️ [chromium-library] › library/proxy.spec.ts:254:3 › does launch without a port @chrome-beta-macos-latest
⚠️ [chromium-library] › library/signals.spec.ts:25:5 › should close the browser when the node process closes @chrome-beta-macos-latest
⚠️ [chromium-page] › page/workers.spec.ts:25:3 › Page.workers @smoke @chrome-beta-macos-latest
⚠️ [chromium-page] › page/workers.spec.ts:271:3 › should support extra http headers @chrome-beta-macos-latest
⚠️ [chromium-library] › library/inspector/cli-codegen-pick-locator.spec.ts:35:7 › should update locator highlight @chrome-beta-windows-latest
⚠️ [chromium-library] › library/browsercontext-base-url.spec.ts:37:3 › should construct a new URL when a baseURL in browserType.launchPersistentContext is passed to page.goto @chrome-macos-latest
⚠️ [chromium-library] › library/browsercontext-cookies-third-party.spec.ts:526:1 › should(not) block third party cookies - persistent context @chrome-macos-latest
⚠️ [chromium-library] › library/browsercontext-fetch.spec.ts:1262:3 › should work with connectOverCDP @chrome-macos-latest
⚠️ [chromium-library] › library/browsercontext-proxy.spec.ts:27:3 › should work when passing the proxy only on the context level @chrome-macos-latest
⚠️ [chromium-library] › library/browsertype-connect.spec.ts:439:5 › run-server › should respect selectors @chrome-macos-latest
⚠️ [chromium-library] › library/browsertype-connect.spec.ts:686:5 › run-server › should upload large file @chrome-macos-latest
⚠️ [chromium-library] › library/chromium/chromium.spec.ts:167:15 › should pass args with spaces @chrome-macos-latest
⚠️ [chromium-library] › library/fetch-proxy.spec.ts:21:3 › context request should pick up proxy credentials @chrome-macos-latest
⚠️ [chromium-library] › library/inspector/cli-codegen-3.spec.ts:667:7 › cli codegen › should consume contextmenu events, despite a custom context menu @chromium-headed-windows-latest
⚠️ [chromium-library] › library/inspector/cli-codegen-pick-locator.spec.ts:35:7 › should update locator highlight @chromium-headed-windows-latest
⚠️ [chromium-page] › page/workers.spec.ts:25:3 › Page.workers @smoke @chromium-macos-13-xlarge
⚠️ [chromium-library] › library/video.spec.ts:207:5 › screencast › should continue recording main page after popup closes @chromium-tip-of-tree-macos-13--headed
⚠️ [chromium-library] › library/selector-generator.spec.ts:75:5 › selector generator › should generate text for @chromium-tip-of-tree-windows-latest
⚠️ [chromium-page] › page/page-drag.spec.ts:103:5 › Drag and drop › should cancel on escape @chromium-tip-of-tree-windows-latest--headed
⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:986:7 › cli codegen › should not throw csp directive violation errors @firefox-beta-macos-latest
⚠️ [firefox-library] › library/video.spec.ts:163:5 › screencast › should work with old options @firefox-beta-macos-latest
⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:986:7 › cli codegen › should not throw csp directive violation errors @firefox-beta-windows-latest
⚠️ [firefox-page] › page/page-wait-for-function.spec.ts:104:3 › should work with strict CSP policy @firefox-beta-windows-latest
⚠️ [firefox-library] › library/browsercontext-basic.spec.ts:251:3 › should be able to navigate after disabling javascript @firefox-headed-windows-latest
⚠️ [firefox-library] › library/browsercontext-basic.spec.ts:376:3 › should create two pages in parallel in various contexts @firefox-headed-windows-latest
⚠️ [firefox-library] › library/browsercontext-locale.spec.ts:118:3 › should be isolated between contexts @firefox-headed-windows-latest
⚠️ [firefox-library] › library/browsercontext-timezone-id.spec.ts:73:3 › should not change default timezone in another context @firefox-headed-windows-latest
⚠️ [firefox-library] › library/capabilities.spec.ts:67:3 › should play video @smoke @firefox-headed-windows-latest
⚠️ [firefox-library] › library/capabilities.spec.ts:149:3 › should not crash on storage.getDirectory() @firefox-headed-windows-latest
⚠️ [firefox-library] › library/client-certificates.spec.ts:628:3 › browser › should pass with matching certificates on context APIRequestContext instance @firefox-headed-windows-latest
⚠️ [firefox-library] › library/har.spec.ts:427:3 › should return receive time @firefox-headed-windows-latest
⚠️ [firefox-library] › library/har.spec.ts:444:3 › should have -1 _transferSize when its a failed request @firefox-headed-windows-latest
⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:986:7 › cli codegen › should not throw csp directive violation errors @firefox-headed-windows-latest
⚠️ [firefox-library] › library/inspector/cli-codegen-3.spec.ts:366:7 › cli codegen › should generate frame locators with name attribute @firefox-headed-windows-latest
⚠️ [firefox-library] › library/selector-generator.spec.ts:230:5 › selector generator › should use internal:has-text with regexp @firefox-headed-windows-latest
⚠️ [firefox-page] › page/page-click-timeout-4.spec.ts:20:3 › should timeout waiting for stable position @firefox-headed-windows-latest
⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:986:7 › cli codegen › should not throw csp directive violation errors @firefox-macos-13-large
⚠️ [firefox-library] › library/inspector/cli-codegen-3.spec.ts:222:7 › cli codegen › should generate frame locators (4) @firefox-macos-13-large
⚠️ [firefox-library] › library/inspector/cli-codegen-pick-locator.spec.ts:35:7 › should update locator highlight @firefox-macos-13-large
⚠️ [firefox-library] › library/tracing.spec.ts:430:14 › should produce screencast frames crop @firefox-macos-13-large
⚠️ [firefox-library] › library/video.spec.ts:379:5 › screencast › should capture navigation @firefox-macos-13-large
⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:986:7 › cli codegen › should not throw csp directive violation errors @firefox-macos-14-large
⚠️ [firefox-library] › library/video.spec.ts:163:5 › screencast › should work with old options @firefox-macos-14-large
⚠️ [firefox-page] › page/page-wait-for-function.spec.ts:104:3 › should work with strict CSP policy @firefox-macos-14-large
⚠️ [firefox-library] › library/debug-controller.spec.ts:71:1 › should pick element @firefox-windows-latest
⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:986:7 › cli codegen › should not throw csp directive violation errors @firefox-windows-latest
⚠️ [firefox-page] › page/page-wait-for-function.spec.ts:104:3 › should work with strict CSP policy @firefox-windows-latest
⚠️ [chromium-library] › library/browser.spec.ts:54:5 › should dispatch page.on(close) upon browser.close and reject evaluate @msedge-beta-macos-latest
⚠️ [chromium-library] › library/browsercontext-reuse.spec.ts:30:1 › should re-add binding after reset @msedge-beta-macos-latest
⚠️ [chromium-library] › library/browsertype-launch-server.spec.ts:29:5 › launch server › should work with host @msedge-beta-macos-latest
⚠️ [chromium-library] › library/chromium/oopif.spec.ts:284:3 › should click @msedge-beta-macos-latest
⚠️ [chromium-library] › library/proxy.spec.ts:93:11 › should proxy local network requests › by default › link-local @msedge-beta-macos-latest
⚠️ [chromium-library] › library/beforeunload.spec.ts:20:3 › should close browser with beforeunload page @msedge-dev-macos-latest
⚠️ [chromium-library] › library/browser.spec.ts:54:5 › should dispatch page.on(close) upon browser.close and reject evaluate @msedge-dev-macos-latest
⚠️ [chromium-library] › library/browsercontext-base-url.spec.ts:37:3 › should construct a new URL when a baseURL in browserType.launchPersistentContext is passed to page.goto @msedge-dev-macos-latest
⚠️ [chromium-library] › library/browsercontext-fetch.spec.ts:1262:3 › should work with connectOverCDP @msedge-dev-macos-latest
⚠️ [chromium-library] › library/browsercontext-proxy.spec.ts:27:3 › should work when passing the proxy only on the context level @msedge-dev-macos-latest
⚠️ [chromium-library] › library/browsertype-connect.spec.ts:80:5 › launchServer › should connect over wss @msedge-dev-macos-latest
⚠️ [chromium-library] › library/browsertype-launch-server.spec.ts:23:5 › launch server › should work @msedge-dev-macos-latest
⚠️ [chromium-library] › library/chromium/chromium.spec.ts:151:15 › should close service worker together with the context @msedge-dev-macos-latest
⚠️ [chromium-library] › library/downloads-path.spec.ts:77:5 › downloads path › should report downloads in downloadsPath folder with a relative path @msedge-dev-macos-latest
⚠️ [chromium-library] › library/headful.spec.ts:233:3 › should click in OOPIF @msedge-dev-macos-latest
⚠️ [chromium-library] › library/video.spec.ts:580:5 › screencast › should capture static page in persistent context @smoke @msedge-dev-macos-latest
⚠️ [chromium-library] › library/browsercontext-reuse.spec.ts:30:1 › should re-add binding after reset @msedge-dev-windows-latest
⚠️ [chromium-library] › library/video.spec.ts:580:5 › screencast › should capture static page in persistent context @smoke @msedge-dev-windows-latest
⚠️ [chromium-library] › library/browsercontext-reuse.spec.ts:30:1 › should re-add binding after reset @msedge-macos-latest
⚠️ [chromium-library] › library/inspector/pause.spec.ts:23:3 › should resume when closing inspector @msedge-macos-latest
⚠️ [chromium-library] › library/inspector/pause.spec.ts:35:3 › should not reset timeouts @msedge-macos-latest
⚠️ [chromium-library] › library/logger.spec.ts:19:3 › should log @smoke @msedge-macos-latest
⚠️ [chromium-library] › library/video.spec.ts:207:5 › screencast › should continue recording main page after popup closes @msedge-macos-latest
⚠️ [webkit-library] › library/inspector/cli-codegen-3.spec.ts:520:7 › cli codegen › should generate getByPlaceholder @webkit-headed-windows-latest
⚠️ [webkit-library] › library/video.spec.ts:379:5 › screencast › should capture navigation @webkit-headed-windows-latest
⚠️ [webkit-page] › page/page-click.spec.ts:261:3 › should click on checkbox input and toggle @webkit-headed-windows-latest
⚠️ [webkit-library] › library/trace-viewer.spec.ts:1309:1 › should pick locator in iframe @webkit-macos-13-large
⚠️ [webkit-library] › library/tracing.spec.ts:430:14 › should produce screencast frames crop @webkit-macos-15-xlarge
⚠️ [webkit-page] › page/page-request-continue.spec.ts:274:5 › post data › should amend longer post data @webkit-macos-15-xlarge
⚠️ [webkit-library] › library/inspector/cli-codegen-pick-locator.spec.ts:35:7 › should update locator highlight @webkit-windows-latest
⚠️ [webkit-library] › library/inspector/cli-codegen-python.spec.ts:78:5 › should save the codegen output to a file if specified @webkit-windows-latest

117583 passed, 3552 skipped
✔️✔️✔️

Merge workflow run.

Copy link
Contributor

github-actions bot commented Jun 6, 2025

Test results for "tests 1"

6 flaky ⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:986:7 › cli codegen › should not throw csp directive violation errors @firefox-ubuntu-22.04-node18
⚠️ [firefox-library] › library/inspector/cli-codegen-pick-locator.spec.ts:35:7 › should update locator highlight @firefox-ubuntu-22.04-node18
⚠️ [firefox-page] › page/page-wait-for-function.spec.ts:104:3 › should work with strict CSP policy @firefox-ubuntu-22.04-node18
⚠️ [playwright-test] › ui-mode-trace.spec.ts:587:5 › should indicate current test status @macos-latest-node18-1
⚠️ [webkit-page] › page/page-screenshot.spec.ts:345:5 › page screenshot › should work while navigating @webkit-ubuntu-22.04-node18
⚠️ [playwright-test] › ui-mode-test-watch.spec.ts:145:5 › should watch all @windows-latest-node18-1

39340 passed, 820 skipped
✔️✔️✔️

Merge workflow run.

@yury-s yury-s merged commit c930e67 into microsoft:main Jun 6, 2025
107 of 298 checks passed
@yury-s yury-s deleted the chips-cookie branch June 6, 2025 15:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants