Add worker script explanation to COOP-COEP article#8206
Add worker script explanation to COOP-COEP article#8206alexandrascript merged 4 commits intomainfrom
Conversation
|
Hello! This is an automated review by our custom reviewbot. It updates automatically when code or GitHub comments in this pull request are created or updated. Requested changesIf there are any common problems with the content files you created or modified, they will be listed here.
|
✅ Deploy Preview for web-dev-staging ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
ArthurSonzogni
left a comment
There was a problem hiding this comment.
Nice!
Here are some comments below:
src/site/content/en/secure/cross-origin-isolation-guide/index.md
Outdated
Show resolved
Hide resolved
src/site/content/en/secure/cross-origin-isolation-guide/index.md
Outdated
Show resolved
Hide resolved
|
@ArthurSonzogni Please approve if the current changes look good |
alexandrascript
left a comment
There was a problem hiding this comment.
LGTM % small updates
src/site/content/en/secure/cross-origin-isolation-guide/index.md
Outdated
Show resolved
Hide resolved
ArthurSonzogni
left a comment
There was a problem hiding this comment.
Thanks! LGTM % removing the sentence about CORP and workers.
| * For iframes, use CORP and COEP headers as follows: | ||
| `Cross-Origin-Resource-Policy: same-origin` (or `same-site`, `cross-origin` | ||
| depending on the context) and `Cross-Origin-Embedder-Policy: require-corp`. | ||
| * For iframes and worker scripts, set the `Cross-Origin-Resource-Policy: |
There was a problem hiding this comment.
Setting CORP is needed only for cross-origin iframe. Not really useful for workers. They are always same-origin.
So, I would remove the "and worker scripts".
COEP on the other site is needed or useful for every environments created by the document. You moved the section later. This is discussed separately, which works.
There was a problem hiding this comment.
You can only spawn a same-origin worker at the first level, but can load a cross-origin script via that worker if you use importScripts. In that case, you have to use CORP: cross-origin header. You can see it working at https://cross-origin-isolation.glitch.me/?coep=require-corp&
There was a problem hiding this comment.
Hmm, this contradicts 🤔
https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers#spawning_subworkers
Workers may spawn more workers if they wish. So-called sub-workers must be hosted within the same origin as the parent page.
There was a problem hiding this comment.
I understood "worker script" as the "worker's main response".
This is right worker can then use fetch/importScript to load any resources and those resources are subject to CORP checks. Yes, you can nested DedicatedWorker.
There was a problem hiding this comment.
In that case, how about phrasing the line like this:
For iframes and cross-origin worker scripts loaded via `importScripts`, set the `Cross-Origin-Resource-Policy:
There was a problem hiding this comment.
This feels weird, because it would mean this applies exclusively to those two resources, which is wrong; it applies to every resources.
Also, I feel weird putting on the same level the main resources (the iframe's response) and a subresource (an external script loaded from the worker).
Maybe you can discuss about all subresources, indepedently of the context (window or worker), and give some examples of subresources?
- From a
COEP:require-corpdocument or aCOEP:require-corpworker, cross-origin subresources loaded without CORS must setCross-Origin-Resource-Policy: cross-originheader to opt-in being embedded. For instance, this applies to:<script>,importScript,<link>,<video>,<iframe>, etc...
There was a problem hiding this comment.
That's a great idea. I'll create a pull request so we can continue the discussion there.
This pull request updates https://web.dev/cross-origin-isolation-guide/ and https://web.dev/coop-coep/ to better explain how to opt-in to cross-origin isolation when worker scripts are used.
cc: @ArthurSonzogni