@@ -4193,6 +4193,10 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
4193
4193
<li>"<dfn data-x="autoplay-feature"><code data-x="">autoplay</code></dfn>", which has a <span
4194
4194
data-x="concept-default-allowlist">default allowlist</span> of <code
4195
4195
data-x="">'self'</code>.</li>
4196
+ <li>"<dfn data-x="cross-origin-isolated-feature"><code
4197
+ data-x="">cross-origin-isolated</code></dfn>", which has a <span
4198
+ data-x="concept-default-allowlist">default allowlist</span> of <code
4199
+ data-x="">'self'</code>.</li>
4196
4200
<li>"<dfn data-x="document-domain-feature"><code data-x="">document-domain</code></dfn>", which
4197
4201
has a <span data-x="concept-default-allowlist">default allowlist</span> of <code
4198
4202
data-x="">*</code>.</li>
@@ -79160,7 +79164,15 @@ interface <dfn>BarProp</dfn> {
79160
79164
<dt>The <span data-x="concept-settings-object-embedder-policy">embedder policy</span></dt>
79161
79165
<dd><p>Return <var>window</var>'s <span data-x="concept-document-window">associated
79162
79166
<code>Document</code></span>'s <span data-x="concept-document-embedder-policy">embedder
79163
- policy</span>.</p>
79167
+ policy</span>.</p></dd>
79168
+
79169
+ <dt>The <span data-x="concept-settings-object-cross-origin-isolated-capability">cross-origin
79170
+ isolated capability</span></dt>
79171
+ <dd><p>Return the logical conjunction of <var>realm</var>'s <span>agent cluster</span>'s
79172
+ <span>cross-origin isolated</span> and whether <var>window</var>'s <span
79173
+ data-x="concept-document-window">associated <code>Document</code></span> is <span>allowed to
79174
+ use</span> the "<code data-x="cross-origin-isolated-feature">cross-origin-isolated</code>"
79175
+ feature.</p></dd>
79164
79176
</dl>
79165
79177
</li>
79166
79178
@@ -87604,6 +87616,12 @@ interface <dfn>ApplicationCache</dfn> : <span>EventTarget</span> {
87604
87616
check">cross-origin resource policy checks</span> for <span data-x="concept-fetch">fetches</span>
87605
87617
performed using this <span>environment settings object</span> as a <span
87606
87618
data-x="concept-request-client">request client</span>.</p></dd>
87619
+
87620
+ <dt>A <dfn data-x="concept-settings-object-cross-origin-isolated-capability" data-export=""
87621
+ data-dfn-for="environment settings object">cross-origin isolated capability</dfn></dt>
87622
+
87623
+ <dd><p>A boolean representing whether scripts that use this <span>environment settings
87624
+ object</span> are allowed to use APIs that require cross-origin isolation.</p></dd>
87607
87625
</dl>
87608
87626
87609
87627
<p>An <span>environment settings object</span> also has an <dfn>outstanding rejected promises
@@ -92559,12 +92577,11 @@ interface mixin <dfn>WindowOrWorkerGlobalScope</dfn> {
92559
92577
<dd><p>Returns the global object's <span>origin</span>, serialized as string.</p></dd>
92560
92578
92561
92579
<dt>self . <code subdfn data-x="dom-crossOriginIsolated">crossOriginIsolated</code></dt>
92562
- <dd><p>Returns whether the <span>surrounding agent</span>'s <span>agent cluster</span> is
92563
- <span>cross-origin isolated</span>. This depends on the `<code
92564
- data-x="">Cross-Origin-Opener-Policy</code>` and `<code
92565
- data-x="">Cross-Origin-Embedder-Policy</code>` HTTP response headers and determines whether
92566
- <code>SharedArrayBuffer</code> can be used with <code data-x="">postMessage()</code>
92567
- APIs.</p></dd>
92580
+ <dd><p>Returns whether scripts running in this global are allowed to use APIs that require
92581
+ cross-origin isolation. This depends on the `<code data-x="">Cross-Origin-Opener-Policy</code>`
92582
+ and `<code data-x="">Cross-Origin-Embedder-Policy</code>` HTTP response headers and the
92583
+ "<code data-x="cross-origin-isolated-feature">cross-origin-isolated</code>"
92584
+ feature.</p></dd>
92568
92585
</dl>
92569
92586
92570
92587
<div class="example">
@@ -92596,8 +92613,9 @@ document.body.appendChild(frame)</code></pre>
92596
92613
origin">serialized</span>.</p>
92597
92614
92598
92615
<p>The <dfn data-x="dom-crossOriginIsolated"><code>crossOriginIsolated</code></dfn> getter steps
92599
- are to return the <span>surrounding agent</span>'s <span>agent cluster</span>'s <span>cross-origin
92600
- isolated</span>.</p>
92616
+ are to return <span>this</span>'s <span>relevant settings object</span>'s <span
92617
+ data-x="concept-settings-object-cross-origin-isolated-capability">cross-origin isolated
92618
+ capability</span>.</p>
92601
92619
92602
92620
</div>
92603
92621
@@ -99028,6 +99046,11 @@ interface <dfn>WorkerGlobalScope</dfn> : <span>EventTarget</span> {
99028
99046
data-dfn-for="WorkerGlobalScope" data-x="concept-WorkerGlobalScope-module-map">module map</dfn>.
99029
99047
It is a <span>module map</span>, initially empty.</p>
99030
99048
99049
+ <p>A <code>WorkerGlobalScope</code> object has an associated <dfn data-export=""
99050
+ data-dfn-for="WorkerGlobalScope"
99051
+ data-x="concept-WorkerGlobalScope-cross-origin-isolated-capability">cross-origin isolated
99052
+ capability</dfn> boolean. It is initially false.</p>
99053
+
99031
99054
</div>
99032
99055
99033
99056
<dl class="domintro">
@@ -99486,6 +99509,33 @@ interface <dfn>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
99486
99509
and <var>response</var> is false, then set <var>response</var> to a <span>network
99487
99510
error</span>.</p></li>
99488
99511
99512
+ <li><p>Set <var>worker global scope</var>'s <span
99513
+ data-x="concept-WorkerGlobalScope-cross-origin-isolated-capability">cross-origin isolated
99514
+ capability</span> to <var>agent</var>'s <span>agent cluster</span>'s <span>cross-origin
99515
+ isolated</span>.</p></li>
99516
+
99517
+ <li><p>If <var>is shared</var> is false and <var>owner</var>'s <span
99518
+ data-x="concept-settings-object-cross-origin-isolated-capability">cross-origin isolated
99519
+ capability</span> is false, then set <var>worker global scope</var>'s <span
99520
+ data-x="concept-WorkerGlobalScope-cross-origin-isolated-capability">cross-origin isolated
99521
+ capability</span> to false.</p></li>
99522
+
99523
+ <li>
99524
+ <p>If <var>is shared</var> is false and <var>response</var>'s
99525
+ <span data-x="concept-response-url">url</span>'s <span
99526
+ data-x="concept-url-scheme">scheme</span> is "<code data-x="">data</code>", then set
99527
+ <var>worker global scope</var>'s <span
99528
+ data-x="concept-WorkerGlobalScope-cross-origin-isolated-capability">cross-origin isolated
99529
+ capability</span> to false.</p>
99530
+
99531
+ <p class="note">This is a conservative default for now, while we figure out how workers in
99532
+ general, and <code data-x="data protocol">data:</code> URL workers in particular (which are
99533
+ cross-origin from their owner), will be treated in the context of permissions policies. See
99534
+ <a
99535
+ href="https://github.com/w3c/webappsec-permissions-policy/issues/207">w3c/webappsec-permissions-policy
99536
+ issue #207</a> for more details.</p>
99537
+ </li>
99538
+
99489
99539
<li><p>Execute the <span>Initialize a <code data-x="">global object</code>'s CSP list</span>
99490
99540
algorithm on <var>worker global scope</var> and <var>response</var>. <ref spec="CSP"></p></li>
99491
99541
@@ -99778,6 +99828,12 @@ interface <dfn>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
99778
99828
<p>Return <var>worker global scope</var>'s <span
99779
99829
data-x="concept-WorkerGlobalScope-embedder-policy">embedder policy</span>.</p>
99780
99830
</dd>
99831
+
99832
+ <dt>The <span data-x="concept-settings-object-cross-origin-isolated-capability">cross-origin
99833
+ isolated capability</span></dt>
99834
+ <dd><p>Return <var>worker global scope</var>'s <span
99835
+ data-x="concept-WorkerGlobalScope-cross-origin-isolated-capability">cross-origin isolated
99836
+ capability</span>.</p></dd>
99781
99837
</dl>
99782
99838
</li>
99783
99839
0 commit comments