@@ -2750,6 +2750,9 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
2750
2750
<li><dfn data-x="concept-request-history-navigation-flag" data-x-href="https://fetch.spec.whatwg.org/#concept-request-history-navigation-flag">history-navigation flag</dfn></li>
2751
2751
</ul>
2752
2752
</li>
2753
+ <li><dfn data-x="concept-header-list-get"
2754
+ data-x-href="https://fetch.spec.whatwg.org/#concept-header-list-get">Getting a header</dfn>
2755
+ from a header list.</li>
2753
2756
</ul>
2754
2757
2755
2758
<p>The following terms are defined in <cite>Referrer Policy</cite>: <ref
@@ -4143,6 +4146,19 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
4143
4146
</ul>
4144
4147
</dd>
4145
4148
4149
+ <dt>Cross-Origin Embedder Policy</dt>
4150
+
4151
+ <dd>
4152
+ <p>The following feature is defined in <cite>Cross-Origin Embedder Policy</cite>: <ref
4153
+ spec=COEP></p>
4154
+
4155
+ <ul class="brief">
4156
+ <li><dfn data-x="cross-origin-embedder-policy"
4157
+ data-x-href="https://mikewest.github.io/corpp/#embedder-policy"><code>Cross-Origin Embedder
4158
+ Policy</code></dfn></li>
4159
+ </ul>
4160
+ </dd>
4161
+
4146
4162
</dl>
4147
4163
4148
4164
<hr>
@@ -79283,19 +79299,15 @@ dictionary <dfn>DragEventInit</dfn> : <span>MouseEventInit</span> {
79283
79299
<li><p><span>Set up a window environment settings object</span> with <var>realm execution
79284
79300
context</var>, and let <var>settingsObject</var> be the result.</p></li>
79285
79301
79286
- <li>
79287
- <p>Let <var>COOP</var> be a <span
79288
- data-x="cross-origin-opener-policy">cross-origin-opener-policy</span> with value "<code
79289
- data-x="">unsafe-none</code>". Then:</p>
79302
+ <li><p>Let <var>COOP</var> be a <span
79303
+ data-x="cross-origin-opener-policy">cross-origin-opener-policy</span> with value "<code
79304
+ data-x="">unsafe-none</code>".</p></li>
79290
79305
79291
- <ul>
79292
- <li><p>If <var>creator</var> is non-null and <var>creator</var> is <span>same origin</span>
79293
- with its <span>top-level browsing context</span>'s <code>Document</code>, then set
79294
- <var>COOP</var> to <var>creator</var>'s <span>top-level browsing context</span>'s
79295
- <code>Document</code>'s <span data-x="concept-document-coop">cross-origin opener
79296
- policy</span>.</p></li>
79297
- </ul>
79298
- </li>
79306
+ <li><p>If <var>creator</var> is non-null and <var>creator</var> is
79307
+ <span>same origin</span> with its <span>top-level browsing context</span>'s
79308
+ <code>Document</code>, then set <var>COOP</var> to <var>creator</var>'s
79309
+ <span>top-level browsing context</span>'s <code>Document</code>'s <span
79310
+ data-x="concept-document-coop">cross-origin opener policy</span>.</p></li>
79299
79311
79300
79312
<li><p>Let <var>document</var> be a new <code>Document</code>, marked as an <span data-x="HTML
79301
79313
documents">HTML document</span> in <span>quirks mode</span>, whose <span
@@ -79849,6 +79861,10 @@ console.assert(iframeWindow.frameElement === null);
79849
79861
keys</span> to <span data-x="agent cluster">agent clusters</span>). User agents are responsible
79850
79862
for collecting agent clusters when it is deemed that nothing can access them anymore.</p>
79851
79863
79864
+ <p>A <span>browsing context group</span> has a <dfn data-x="cross-origin-isolated">cross-origin
79865
+ isolated</dfn> boolean. It is initially false. When it is true, the <span>agent cluster map</span>
79866
+ will be keyed using <span data-x="origin">origins</span>.</p>
79867
+
79852
79868
<p>To <dfn data-x="creating a new browsing context group">create a new browsing context
79853
79869
group</dfn>, run these steps:</p>
79854
79870
@@ -80148,11 +80164,10 @@ console.assert(iframeWindow.frameElement === null);
80148
80164
<dd>
80149
80165
<ol>
80150
80166
<li>
80151
- <p>If <var>current</var>'s <span>top-level browsing context</span>'s
80152
- <span>active document</span>'s <span
80153
- data-x="cross-origin-opener-policy">cross-origin opener policy</span>
80154
- is "<code data-x="">same-origin</code>" or "<code
80155
- data-x="">same-origin-plus-COEP</code>", then:</p>
80167
+ <p>If <var>current</var>'s <span>top-level browsing context</span>'s <span>active
80168
+ document</span>'s <span data-x="cross-origin-opener-policy">cross-origin opener
80169
+ policy</span> is "<code data-x="">same-origin</code>" or "<code
80170
+ data-x="">same-origin-plus-COEP</code>", then:</p>
80156
80171
80157
80172
<ol>
80158
80173
<li><p>Let <var>currentDocument</var> be <var>current</var>'s
@@ -82687,9 +82702,9 @@ interface <dfn>BarProp</dfn> {
82687
82702
82688
82703
<h3>Cross-origin opener policy</h3>
82689
82704
82690
- <p>A <dfn data-x="cross-origin-opener-policy">cross-origin opener policy</dfn> restricts the set of
82691
- <span> browsing context</span>s which can live together in a single <span>browsing context
82692
- group</span>. It has one of the following values, defaulting to "<code
82705
+ <p>A <dfn data-x="cross-origin-opener-policy">cross-origin opener policy</dfn> restricts the set
82706
+ of <span data-x=" browsing context">browsing contexts </span> which can live together in a single
82707
+ <span>browsing context group</span>. It has one of the following values, defaulting to "<code
82693
82708
data-x="">unsafe-none</code>" unless otherwise specified:</p>
82694
82709
82695
82710
<ul>
@@ -82708,18 +82723,19 @@ interface <dfn>BarProp</dfn> {
82708
82723
</ul>
82709
82724
82710
82725
<p>To <dfn data-x="obtain-coop">obtain a cross-origin opener policy</dfn> from a <span
82711
- data-x="concept-response">response</span> <var>response</var>:</p>
82726
+ data-x="concept-response">response</span> <var>response</var> and an <span>environment</span>
82727
+ <var>environment</var>:</p>
82712
82728
82713
82729
<ol>
82714
- <li><p>Let <var>HTTPSState </var> be the <span data-x="concept-response-https-state">HTTPS
82715
- state </span> of <var>response </var>.</p></li>
82730
+ <li><p>Let <var>securityState </var> be the result of executing <span>Is environment
82731
+ settings object a secure context? </span> on <var>environment </var>.</p></li>
82716
82732
82717
- <li><p>If <var>HTTPSState </var> is "<code data-x="">none </code>", then return "<code
82733
+ <li><p>If <var>securityState </var> is "<code data-x="">Not Secure </code>", then return "<code
82718
82734
data-x="">unsafe-none</code>".</p> </li>
82719
82735
82720
- <li><p>Let <var>value</var> be the result of getting `<code
82721
- data-x="http-cross-origin-opener-policy">Cross-Origin-Opener-Policy</code>` from <var>response</var>'s <span
82722
- data-x="concept-response-header-list">header list</span>.</p></li>
82736
+ <li><p>Let <var>value</var> be the result of <span data-x="concept-header-list-get">getting
82737
+ </span> `<code data-x="http-cross-origin-opener-policy">Cross-Origin-Opener-Policy</code>` from
82738
+ <var>response</var>'s <span data-x="concept-response-header-list">header list</span>.</p></li>
82723
82739
82724
82740
<li><p>If <var>value</var> is null, then return "<code data-x="">unsafe-none</code>".</p></li>
82725
82741
@@ -82733,7 +82749,8 @@ interface <dfn>BarProp</dfn> {
82733
82749
<li><p>If <var>decodedValue</var> is "<code data-x="">same-origin</code>", then:</p>
82734
82750
82735
82751
<ol>
82736
- <li><p>Let <var>coep</var> be the result of obtaining a cross-origin embedder policy from
82752
+ <li><p>Let <var>coep</var> be the result of obtaining a <span
82753
+ data-x="cross-origin-embedder-policy">cross-origin embedder policy</span> from
82737
82754
<var>response</var>.</p></li>
82738
82755
82739
82756
<li><p>If <var>coep</var> is "<code data-x="">require-corp</code>", then return "<code
@@ -82770,7 +82787,7 @@ interface <dfn>BarProp</dfn> {
82770
82787
data-x="origin">origins</span> <var>incumbentNavigationOrigin</var>,
82771
82788
<var>activeDocumentNavigationOrigin</var>,and a <span
82772
82789
data-x="cross-origin-opener-policy">cross-origin opener policy</span>
82773
- <var>incumbentCOOP </var>:</p>
82790
+ <var>responseCOOP </var>:</p>
82774
82791
82775
82792
<ol>
82776
82793
<li><p>Let <var>activeDocumentCOOP</var> be the <span data-x="concept-document-coop">
@@ -82779,7 +82796,7 @@ interface <dfn>BarProp</dfn> {
82779
82796
82780
82797
<li><p>If the result of <span data-x="matching-coop">matching</span>
82781
82798
<var>activeDocumentCOOP</var>, <var>activeDocumentNavigationOrigin</var>,
82782
- <var>incumbentCOOP </var> and <var>incumbentNavigationOrigin</var> is true, return
82799
+ <var>responseCOOP </var> and <var>incumbentNavigationOrigin</var> is true, return
82783
82800
<var>browsingContext</var>.</p></li>
82784
82801
82785
82802
<li>
@@ -82794,27 +82811,28 @@ interface <dfn>BarProp</dfn> {
82794
82811
<li><p><var>activeDocumentCOOP</var> is "<code
82795
82812
data-x="">same-origin-allow-popups</code>".</p></li>
82796
82813
82797
- <li><p><var>incumbentCOOP </var> is "<code data-x="">unsafe-none</code>".</p></li>
82814
+ <li><p><var>responseCOOP </var> is "<code data-x="">unsafe-none</code>".</p></li>
82798
82815
</ul>
82799
82816
82800
82817
<p>then return <var>browsingContext</var>.</p>
82801
82818
</li>
82802
82819
82803
- <li><p>Let <var>incumbentBrowsingContextGroup </var> be the result of <span>creating a new
82820
+ <li><p>Let <var>newBrowsingContextGroup </var> be the result of <span>creating a new
82804
82821
browsing context group</span>.</p></li>
82805
82822
82806
- <li><p>If <var>incumbentCOOP</var> is "<code data-x="">same-origin-plus-COEP</code>", then set
82807
- <var>incumbentBrowsingContextGroup</var> cross-origin isolated to true.</p></li>
82823
+ <li><p>If <var>responseCOOP</var> is "<code data-x="">same-origin-plus-COEP</code>", then set
82824
+ <var>newBrowsingContextGroup</var> <span data-x="cross-origin-isolated">cross-origin
82825
+ isolated</span> to true.</p></li>
82808
82826
82809
- <li><p>Let <var>incumbentBrowsingContext </var> be a new top-level browsingContext in
82810
- < var>incumbentBrowsingContextGroup </var>.</p></li>
82827
+ <li><p>Let <var>newBrowsingContext </var> be the result of <span data-x="creating a new browsing
82828
+ context">creating a new browsingContext</span> in < var>newBrowsingContextGroup </var>.</p></li>
82811
82829
82812
82830
<li>
82813
82831
<p>If <var>sandboxFlags</var> is not empty, then:</p>
82814
82832
<ol>
82815
- <li><p>Assert <var>incumbentCOOP </var> is "<code data-x="">unsafe-none</code>".</p></li>
82833
+ <li><p>Assert <var>responseCOOP </var> is "<code data-x="">unsafe-none</code>".</p></li>
82816
82834
82817
- <li><p>Set <var>incumbentBrowsingContext </var>'s <span>sandboxing flag set</span> to
82835
+ <li><p>Set <var>newBrowsingContext </var>'s <span>sandboxing flag set</span> to
82818
82836
<var>sandboxFlags</var>.</p></li>
82819
82837
</ol>
82820
82838
</li>
@@ -82828,7 +82846,7 @@ interface <dfn>BarProp</dfn> {
82828
82846
collected</p>
82829
82847
</li>
82830
82848
82831
- <li><p>Return <var>incumbentBrowsingContext </var>.</p></li>
82849
+ <li><p>Return <var>newBrowsingContext </var>.</p></li>
82832
82850
</ol>
82833
82851
82834
82852
<h3 split-filename="history" id="history">Session history and navigation</h3>
@@ -85234,7 +85252,8 @@ interface <dfn>Location</dfn> { // but see also <a href="#the-location-interface
85234
85252
<ol>
85235
85253
<li><p>Set <var>incumbentCOOP</var> be the <span
85236
85254
data-x="cross-origin-opener-policy">cross-origin opener policy</span> <span
85237
- data-x="obtain-coop">obtained</span> given <var>response</var>.</p></li>
85255
+ data-x="obtain-coop">obtained</span> given <var>response</var> and
85256
+ <var>reservedEnvironment</var>.</p></li>
85238
85257
85239
85258
<li>
85240
85259
<p>If <var>sandboxFlags</var> is not empty and <var>incumbentCOOP</var> is not "<code
@@ -85250,20 +85269,26 @@ interface <dfn>Location</dfn> { // but see also <a href="#the-location-interface
85250
85269
that response.</p>
85251
85270
</li>
85252
85271
85253
- <li><p>Set <var>browsingContext </var> to the value of <span
85272
+ <li><p>Let <var>newBrowsingContext </var> be the value of <span
85254
85273
data-x="obtain-browsing-context-navigation">obtaining a browsing context for the navigation
85255
85274
response</span> given <var>response</var>, <var>browsingContext</var>, <var>sandboxFlags</var>,
85256
85275
<var>incumbentNavigationOrigin</var>, <var>activeDocumentNavigationOrigin</var>, and
85257
- <var>incumbentCOOP</var>.</p>
85258
- </li>
85276
+ <var>incumbentCOOP</var>.</p></li>
85277
+
85278
+ <li><p>Let <var>browsingContextSwitch</var> be false.</p></li>
85279
+
85280
+ <li><p>If <var>newBrowsingContext</var> is not equal to <var>browsingContext</var>, then set
85281
+ <var>browsingContextSwitch</var> to true.</p></li>
85282
+
85283
+ <li><p>Set <var>browsingContext</var> to the value of <var>newBrowsingContext</var>.</p></li>
85259
85284
</ol>
85260
85285
</li>
85261
85286
85262
85287
<li><p>If <var>browsingContext</var>'s only entry in its <span>session history</span> is the
85263
85288
<code>about:blank</code> <code>Document</code> that was added when <var>browsingContext</var> was
85264
85289
<span data-x="creating a new browsing context">created</span>, and navigation is occurring with
85265
85290
<span>replacement enabled</span>, and that <code>Document</code> has the <span>same origin</span>
85266
- as <var>origin</var>, then do nothing.</p></li>
85291
+ as <var>origin</var>, and <var>browsingContextSwitch</var> is false, then do nothing.</p></li>
85267
85292
85268
85293
<li>
85269
85294
<p>Otherwise:</p>
@@ -124862,6 +124887,10 @@ INSERT INTERFACES HERE
124862
124887
<dt id="refsCOMPUTABLE">[COMPUTABLE]</dt>
124863
124888
<dd>(Non-normative) <cite><a href="http://www.turingarchive.org/browse.php/B/12">On computable numbers, with an application to the Entscheidungsproblem</a></cite>, A. Turing. In <cite>Proceedings of the London Mathematical Society</cite>, series 2, volume 42, pages 230-265. London Mathematical Society, 1937.</dd>
124864
124889
124890
+ <dt id="refsCOEP">[COEP]</dt>
124891
+ <dd><cite><a href="https://mikewest.github.io/corpp/">Cross-Origin Embedder Policy</a></cite>, M.
124892
+ West.</dd>
124893
+
124865
124894
<dt id="refsCOOKIES">[COOKIES]</dt>
124866
124895
<dd><cite><a href="https://tools.ietf.org/html/rfc6265">HTTP State Management Mechanism</a></cite>, A. Barth. IETF.</dd>
124867
124896
0 commit comments