WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
325516
Implement Document-Isolation-Policy
https://bugs.webkit.org/show_bug.cgi?id=325516
Summary
Implement Document-Isolation-Policy
Adam Silverstein
Reported
2026-09-28 10:15:15 PDT
Filing this to track implementation now that WebKit's standards position is down to a single venue concern. Claude helped me pull this together:
> Document-Isolation-Policy (DIP) is an HTTP response header that lets a single document opt into cross-origin isolation on its own, without needing its embedder or its embedded content to cooperate. It relies on process isolation for the isolation guarantee instead of the COOP + COEP header pair.
>
> Spec:
https://wicg.github.io/document-isolation-policy/
> Explainer:
https://github.com/WICG/document-isolation-policy
> Tests:
https://github.com/web-platform-tests/wpt/tree/master/html/document-isolation-policy
(currently .tentative) > Results:
https://wpt.fyi/results/html/document-isolation-policy
>
> Status:
>
> - WebKit position:
https://github.com/WebKit/standards-positions/issues/399
- the latest comment says the portability concerns have been addressed and the remaining concern is venue:
https://github.com/WebKit/standards-positions/issues/399#issuecomment-5844114111
> - Upstreaming to HTML and Fetch is tracked in
https://github.com/WICG/document-isolation-policy/issues/8
> - Mozilla position is positive:
https://github.com/mozilla/standards-positions/issues/1074
(Gecko bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=2063367
) > - Chrome shipped DIP on desktop in 137 and on Android in 146:
https://chromestatus.com/feature/5141940204208128
>
> Steps to reproduce:
>
> 1. Serve a document with the response header `Document-Isolation-Policy: isolate-and-credentialless` (or `isolate-and-require-corp`). > 2. Embed that document in a cross-origin iframe on a page that sends no isolation headers of its own. > 3. In the embedded document, check `self.crossOriginIsolated` and try to construct a `SharedArrayBuffer`.
>
> Actual: Safari ignores the header. `self.crossOriginIsolated` is `false` and `SharedArrayBuffer` is unavailable.
>
> Expected: the document becomes cross-origin isolated on its own, and the embedding page is unaffected - it keeps its cross-origin popups and unrestricted third-party embeds.
>
> Why this matters in practice:
>
> - WordPress 7.1 uses wasm-vips (and so `SharedArrayBuffer`) to process image uploads in the browser, and sends DIP on block editor screens. The editor renders in an iframe, and the feature started on COOP/COEP, hit the frame-chain problem, and moved to DIP:
https://github.com/WordPress/gutenberg/pull/75991
. WordPress only enables this for Chromium 137+, so Safari users fall back to server-side processing. > - WordPress Playground rewrites COOP/COEP headers into DIP to make isolation work:
https://github.com/WordPress/wordpress-playground/pull/3028
> - Zoom describes the same problem for embedded SDKs:
https://github.com/WebKit/standards-positions/issues/399#issuecomment-4173351100
Happy to help with testing or anything else that's useful here.
Attachments
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2026-10-05 10:16:14 PDT
<
rdar://problem/189200581
>
Anne van Kesteren
Comment 2
2026-10-05 23:58:36 PDT
<
rdar://180967049
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug