@@ -25,7 +25,6 @@ At Risk: The [[#is-element-nonceable]] algorithm.
25
25
spec:dom; type:interface; text:Document
26
26
spec:html
27
27
type: dfn
28
- text: plugin document
29
28
text: fallback base url
30
29
text: duplicate-attribute
31
30
type: element
@@ -123,7 +122,6 @@ spec: HTML; urlPrefix: https://html.spec.whatwg.org/
123
122
for: script
124
123
text: "parser-inserted"
125
124
text: origin; url: concept-origin
126
- text: browsing context; url: browsing-context
127
125
text: content security policy state; url: attr-meta-http-equiv-content-security-policy
128
126
text: create and initialize a new document object; url: initialise-the-document-object
129
127
text: initializing a new Document object; url: initialise-the-document-object
@@ -625,7 +623,7 @@ spec: WebRTC; urlPrefix: https://www.w3.org/TR/webrtc/
625
623
626
624
6. A <dfn for="directive" export>navigation response check</dfn> , which takes a
627
625
<a for="/">request</a> , a navigation type string ("`form-submission`" or "`other`"),
628
- a <a>response</a> , a <a>browsing context </a> , a check type string ("`source`"
626
+ a <a>response</a> , a <a>navigable </a> , a check type string ("`source`"
629
627
or "`response`"), and a <a for="/">policy</a> as arguments, and is executed during
630
628
[[#should-block-navigation-response]] . It returns "`Allowed`" unless otherwise specified.
631
629
@@ -1145,15 +1143,18 @@ spec: WebRTC; urlPrefix: https://www.w3.org/TR/webrtc/
1145
1143
base URL</a> algorithm to ensure that the <{base/href}> attribute's value
1146
1144
is valid.
1147
1145
1148
- 10. [[#should-block-navigation-request]] is called during the <a>process a
1149
- navigate fetch </a> algorithm, and [[#should-block-navigation-response]]
1150
- is called during the <a>process a navigate response </a> algorithm to
1151
- apply directive's navigation checks, as well as inline checks for
1146
+ 10. [[#should-block-navigation-request]] is called during the <a spec=html>create
1147
+ navigation params by fetching </a> algorithm, and [[#should-block-navigation-response]]
1148
+ is called during the <a spec=html>attempt to populate the history entry's document </a>
1149
+ algorithm to apply directive's navigation checks, as well as inline checks for
1152
1150
navigations to `javascript:` URLs.
1153
1151
1154
1152
11. [[#run-global-object-csp-initialization]] is called during the <a>run a worker</a>
1155
1153
algorithm.
1156
1154
1155
+ 12. The <a>sandbox</a> directive is used to populate the <a spec=html>CSP-derived
1156
+ sandboxing flags</a> .
1157
+
1157
1158
<h4 id="run-document-csp-initialization" algorithm dfn export>
1158
1159
Run `CSP` initialization for a `Document`
1159
1160
</h4>
@@ -1310,7 +1311,7 @@ spec: WebRTC; urlPrefix: https://www.w3.org/TR/webrtc/
1310
1311
1311
1312
Given a <a for="/">request</a> (|navigation request|), a <a>response</a> |navigation
1312
1313
response|, a [=/CSP list=] |response CSP list|, a string (|type|, either
1313
- "`form-submission`" or "`other`"), and a <a>browsing context </a> |target|, this algorithm
1314
+ "`form-submission`" or "`other`"), and a <a>navigable </a> |target|, this algorithm
1314
1315
returns "`Blocked`" if the active policy blocks the navigation, and "`Allowed`"
1315
1316
otherwise:
1316
1317
@@ -1947,8 +1948,8 @@ this algorithm returns normally if compilation is allowed, and throws a
1947
1948
1948
1949
<h4 id="directive-child-src">`child-src`</h4>
1949
1950
1950
- The <dfn export>`child-src`</dfn> directive governs the creation of <a>nested browsing
1951
- contexts </a> (e.g. <{iframe}> and <{frame}> navigations) and Worker execution
1951
+ The <dfn export>`child-src`</dfn> directive governs the creation of <a>child
1952
+ navigables </a> (e.g. <{iframe}> and <{frame}> navigations) and Worker execution
1952
1953
contexts. The syntax for the directive's name and value is described by the
1953
1954
following ABNF:
1954
1955
@@ -2339,7 +2340,7 @@ this algorithm returns normally if compilation is allowed, and throws a
2339
2340
<h4 id="directive-frame-src">`frame-src`</h4>
2340
2341
2341
2342
The <dfn export>frame-src</dfn> directive restricts the URLs which may be loaded into
2342
- <a>nested browsing contexts </a> . The syntax for the directive's name and value
2343
+ <a>child navigables </a> . The syntax for the directive's name and value
2343
2344
is described by the following ABNF:
2344
2345
2345
2346
<pre>
@@ -2646,16 +2647,16 @@ this algorithm returns normally if compilation is allowed, and throws a
2646
2647
2647
2648
Note: The `object-src` directive acts upon any request made on behalf of
2648
2649
an <{object}> or <{embed}> element. This includes requests
2649
- which would populate the <a>nested browsing context </a> generated by the
2650
+ which would populate the <a>child navigable </a> generated by the
2650
2651
former two (also including navigations). This is true even when the data is
2651
2652
semantically equivalent to content which would otherwise be restricted by
2652
2653
another directive, such as an <{object}> element with a `text/html` MIME
2653
2654
type.
2654
2655
2655
- Note: When a plugin resource is navigated to directly (that is, as a <a>plugin document </a> in the
2656
- <a>top-level browsing context</a> or a <a>nested browsing context </a> , and not as an embedded
2656
+ Note: When a plugin resource is navigated to directly (that is, as a <a spec=html >plugin</a>
2657
+ inside a <a>navigable </a> , and not as an embedded
2657
2658
subresource via <{embed}> or <{object}> ), any <a for="/">policy</a> delivered along
2658
- with that resource will be applied to the <a>plugin document</a> . This means, for instance, that
2659
+ with that resource will be applied to the resulting <a>document</a> . This means, for instance, that
2659
2660
developers can prevent the execution of arbitrary resources as plugin content by delivering the
2660
2661
policy `object-src 'none' ` along with a response. Given plugins' power (and the
2661
2662
sometimes-interesting security model presented by Flash and others), this could mitigate the risk
@@ -3467,35 +3468,32 @@ this algorithm returns normally if compilation is allowed, and throws a
3467
3468
</h5>
3468
3469
3469
3470
This directive's <a for="directive">initialization</a> algorithm is
3470
- responsible for adjusting a {{Document}} 's <a>forced sandboxing flag set</a>
3471
- and for checking whether a worker is allowed to run according to the <a>`sandbox`</a>
3472
- values present in its policies as follows:
3471
+ responsible for checking whether a worker is allowed to run according
3472
+ to the <a>`sandbox`</a> values present in its policies as follows:
3473
+
3474
+ Note: The <a>sandbox</a> directive is also responsible for adjusting a
3475
+ {{Document}} 's <a for=Document>active sandboxing flag set</a> via the
3476
+ <a spec=html>CSP-derived sandboxing flags</a> .
3473
3477
3474
3478
Given a {{Document}} or <a for="/">global object</a> (|context|) and a <a for="/">policy</a>
3475
3479
(|policy|):
3476
3480
3477
3481
1. If |policy|'s <a for="policy">disposition</a> is not "`enforce`", or
3478
- |context| is a {{WorkletGlobalScope }} , then abort this algorithm.
3482
+ |context| is not a {{WorkerGlobalScope }} , then abort this algorithm.
3479
3483
3480
3484
2. Let |sandboxing flag set| be a new [=/sandboxing flag set=] .
3481
3485
3482
3486
3. <a>Parse a sandboxing directive</a> using this directive's <a
3483
3487
for="directive"> value</a> as the input, and |sandboxing flag set| as the output.
3484
3488
3485
- 4. If |context| is a {{WorkerGlobalScope}} :
3486
-
3487
- 1. If |sandboxing flag set| contains either the <a>sandboxed scripts browsing
3488
- context flag</a> or the <a>sandboxed origin browsing context flag</a> flags,
3489
- return "`Blocked`".
3489
+ 4. If |sandboxing flag set| contains either the <a>sandboxed scripts browsing context
3490
+ flag</a> or the <a>sandboxed origin browsing context flag</a> flags,
3491
+ return "`Blocked`".
3490
3492
3491
- Note: This will need to change if we allow Workers to be sandboxed into unique
3492
- origins, which seems like a pretty reasonable thing to do.
3493
+ Note: This will need to change if we allow Workers to be sandboxed into unique
3494
+ origins, which seems like a pretty reasonable thing to do.
3493
3495
3494
- 5. If |context| is a {{Document}} :
3495
-
3496
- 1. Set |context|'s <a>forced sandboxing flag set</a> to |sandboxing flag set|.
3497
-
3498
- 6. Return "`Allowed`".
3496
+ 5. Return "`Allowed`".
3499
3497
3500
3498
<h3 id="directives-navigation">
3501
3499
Navigation Directives
@@ -3564,7 +3562,7 @@ this algorithm returns normally if compilation is allowed, and throws a
3564
3562
3565
3563
Given a <a for="/">request</a> (|request|), a string |navigation type|
3566
3564
("`form-submission`" or "`other`"), a
3567
- <a>response</a> (|navigation response|) a <a>browsing context </a> (|target|),
3565
+ <a>response</a> (|navigation response|) a <a>navigable </a> (|target|),
3568
3566
a string |check type| ("`source`" or "`response`"), and a
3569
3567
<a for="/">policy</a> (|policy|) this algorithm returns "`Blocked`" if one or
3570
3568
more of the ancestors of |target| violate the `frame-ancestors` directive
@@ -3581,16 +3579,16 @@ this algorithm returns normally if compilation is allowed, and throws a
3581
3579
3. If |check type| is "`source`", return "`Allowed`".
3582
3580
3583
3581
Note: The 'frame-ancestors' <a>directive</a> is relevant only to the
3584
- |target| <a>browsing context </a> and it has no impact on the |request|'s
3582
+ |target| <a>navigable </a> and it has no impact on the |request|'s
3585
3583
context.
3586
3584
3587
- 4. If |target| is not a <a>nested browsing context </a> , return "`Allowed`".
3585
+ 4. If |target| is not a <a>child navigable </a> , return "`Allowed`".
3588
3586
3589
3587
5. Let |current| be |target|.
3590
3588
3591
- 6. While |current| is a <a>nested browsing context </a> :
3589
+ 6. While |current| is a <a>child navigable </a> :
3592
3590
3593
- 1. Let |document| be |current|'s [=browsing context /container document=] .
3591
+ 1. Let |document| be |current|'s [=navigable /container document=] .
3594
3592
3595
3593
2. Let |origin| be the result of executing the <a>URL parser</a> on the
3596
3594
<a lt="ASCII serialization of an origin">ASCII serialization</a>
@@ -3600,7 +3598,7 @@ this algorithm returns normally if compilation is allowed, and throws a
3600
3598
executed upon |origin|, this directive's <a for="directive">value</a> ,
3601
3599
|policy|'s [=policy/self-origin=] , and `0`, return "`Blocked`".
3602
3600
3603
- 4. Set |current| to |document|'s <a>browsing context </a> .
3601
+ 4. Set |current| to |document|'s <a>node navigable </a> .
3604
3602
3605
3603
7. Return "`Allowed`".
3606
3604
</ol>
@@ -4712,7 +4710,7 @@ this algorithm returns normally if compilation is allowed, and throws a
4712
4710
</h3>
4713
4711
4714
4712
Documents loaded from <a>local schemes</a> will inherit a copy of the
4715
- policies in the <a> source browsing context</a> . The goal is to ensure that a page can't
4713
+ policies in the source document . The goal is to ensure that a page can't
4716
4714
bypass its policy by embedding a frame or opening a new window containing
4717
4715
content that is entirely under its control (`srcdoc` documents, `blob:` or `data:`
4718
4716
URLs, `about:blank` documents that can be manipulated via `document.write()`, etc).
@@ -4730,7 +4728,7 @@ this algorithm returns normally if compilation is allowed, and throws a
4730
4728
means that the new {{Document}} 's <a for="global object">CSP list</a> is a
4731
4729
snapshot of the relevant policies at its creation time. Modifications in the
4732
4730
<a for="global object">CSP list</a> of the new {{Document}} won't affect the
4733
- <a> source browsing context</a> 's <a for="global object">CSP list</a> or vice-versa.
4731
+ source {{Document}} 's <a for="global object">CSP list</a> or vice-versa.
4734
4732
4735
4733
<div class="example">
4736
4734
In the example below the image inside the iframe will not load because it is
0 commit comments