Skip to content
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

Cross-Origin Embedder Policies - "credentialless" #268

Closed
adixon-adobe opened this issue Oct 17, 2023 · 2 comments
Closed

Cross-Origin Embedder Policies - "credentialless" #268

adixon-adobe opened this issue Oct 17, 2023 · 2 comments
Labels

Comments

@adixon-adobe
Copy link

adixon-adobe commented Oct 17, 2023

WebKittens

@annevk

Title of the spec

Cross-Origin-Embedder-Policy: credentialless

URL to the spec

https://html.spec.whatwg.org/multipage/browsers.html#coep-credentialless

URL to the spec's repository

https://github.com/whatwg/html

Issue Tracker URL

No response

Explainer URL

No response

TAG Design Review URL

w3ctag/design-reviews#582

Mozilla standards-positions issue URL

mozilla/standards-positions#539

WebKit Bugzilla URL

https://bugs.webkit.org/show_bug.cgi?id=230550

Radar URL

No response

Description

This was previously filed by the Chromium team in June 2021 here: https://lists.webkit.org/pipermail/webkit-dev/2021-June/031898.html. This was subsequently merged into the HTML & Fetch specifications in November 2021. It also looks like Firefox will be adding support in their next release (119).

The Credentialless variant of Cross Origin Embedded Policy simplifies cross origin isolation, as existing third party scripts don't require changes unless they actually need headers that are omitted by the policy. With the require-corp variant, third party scripts must include the Cross-Origin-Resource-Policy: cross-origin header to work. In addition to requiring more coordination and third party changes, it also creates a new potential failure point with third party scripts if they accidentally remove the header.

@adixon-adobe
Copy link
Author

Several web sites at Adobe including Lightroom, Adobe Express, and Acrobat are interested in this to support features like SharedArrayBuffer. We've found the additional burden of reaching out to third parties for require-corp support to be prohibitive and limiting, as it can delay integration of new technology, and creates a new failure point with third parties in that if they make changes on their end that remove the header it can break functionality that would otherwise work with the credentialless. We've already seen evidence that this is likely to happen occasionally. The work to ensure scripts that require headers otherwise stripped by credentialless appears minimal in comparison.

The Acrobat team will additionally require COOP:restrict-properties for their site, but Lightroom and Express should be able to adopt SharedArrayBuffer and improve performance in Safari with this change.

@nt1m nt1m added from: Adobe Proposed, edited, or co-edited by Adobe venue: WHATWG HTML Workstream labels Oct 24, 2023
@annevk
Copy link
Contributor

annevk commented Nov 14, 2023

I discussed this with colleagues and Cross-Origin-Embedder-Policy: credentialless seems like a reasonable addition to the web platform to us. As such we suggest resolving this as "position: support" one week from now.

Given the security-sensitive nature of this feature I feel like I should point out that the specification notes that Local Network Access (#163) and Opaque Response Blocking (#64) are pre-requisites here and thus if anyone were thinking of undertaking a WebKit implementation they would have to take that into account. (It might be tenable to only have one of those, though not ideal.)

@annevk annevk added position: support from: Google Proposed, edited, or co-edited by Google. and removed from: Adobe Proposed, edited, or co-edited by Adobe labels Nov 23, 2023
@annevk annevk closed this as completed Nov 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants