Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
Add content scripts section in specification #542
base: main
Are you sure you want to change the base?
Add content scripts section in specification #542
Changes from 6 commits
ce2aca0
f5e9623
b7963a9
fe65789
d059857
1963f22
5d5c86d
9cb7e89
31bfe98
d3c5d45
5093e8f
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should add a non-normative label to this block.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking at https://speced.github.io/bikeshed/#conformance, I'm actually getting the sense notes are non-normative by definition. Would you agree?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The algorithm from this point onwards is inaccurate. A top-level about:blank opened by a web page (e.g. https://example.com/ ) will also have the
https://example.com
origin.And if the opener was https://example.com that had
Content-Security-Policy: sandbox
, then the new window would also have an opaque origin, and still be same-origin to the opener. The precursor of the origin will still be example.com, and ifmatch_origin_as_fallback
is specified,https://example.com/*
will still match.I think that it makes more sense to base the decision tree on the document's origin.
Here is a detailed write-up of how the matching works for non obvious cases: #575 (comment) . Does that offer enough context as a starting point to spec the behavior?
I tried looking for "precursor origin" concept in the spec, but could not find any. There is an explainer for the
allow-unique-origin
CSP sandbox keyword (https://github.com/shhnjk/allow-unique-origin) that mentions it too, so if it does not exist, it may make sense to specify the concept more formally elsewhere, and just refer to the "precursor origin" concept in our spec.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, thanks for calling that extra case out. Trying to handle top-level frames here definitely makes things a bit trickier to explain simply. I've tried a few changes that use the precursor origin terminology - how does that look? Agreed we should describe that somewhere at some point but I think we should tackle that separately to avoid blocking this PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The phrase "URL based on the origin of the parent frame" feels a little … awkward? Definitely not required, but maybe we should have a definition or abstract algorithm that describes this and link out to it from here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No change needed.
On my first pass through this I assumed that we could simplify the language here by combining steps 2 and 3 (similar to how step 4 is written), but @oliverdunk pointed out that
include_globs
behaves as I expected. He also pointed out that the user scripts behavior ofincludeGlobs
intentional diverges from content scripts – the the proposal notes that globs are: