@@ -8282,13 +8282,26 @@ interface <dfn>DOMStringList</dfn> {
8282
8282
<p>If ! <span>IsSharedArrayBuffer</span>(<var>value</var>) is true, then:
8283
8283
8284
8284
<ol>
8285
+ <li><p>Let <var>agentCluster</var> be the <span>surrounding agent</span>'s
8286
+ <span>agent cluster</span>.</p></li>
8287
+
8288
+ <li>
8289
+ <p>If <var>agentCluster</var>'s <dfn>cross-origin isolated</dfn> is false, then throw a
8290
+ <!-- TODO: this is not the place to <dfn> this, but doing this for now so the build does not
8291
+ fail -->
8292
+ <span>"<code>DataCloneError</code>"</span> <code>DOMException</code>.</p>
8293
+
8294
+ <p class="note">This check is only needed when serializing (and not when deserializing) as
8295
+ <span>cross-origin isolated</span> cannot change over time and a
8296
+ <code>SharedArrayBuffer</code> cannot leave an <span>agent cluster</span>.</p>
8297
+ </li>
8298
+
8285
8299
<li><p>If <var>forStorage</var> is true, then throw a
8286
8300
<span>"<code>DataCloneError</code>"</span> <code>DOMException</code>.</p></li>
8287
8301
8288
8302
<li><p>Set <var>serialized</var> to { [[Type]]: "SharedArrayBuffer", [[ArrayBufferData]]:
8289
8303
<var>value</var>.[[ArrayBufferData]], [[ArrayBufferByteLength]]: <var>size</var>,
8290
- [[AgentCluster]]: the <span>current Realm Record</span>'s corresponding <span>agent
8291
- cluster</span> }.</p></li>
8304
+ [[AgentCluster]]: <var>agentCluster</var> }.</p></li>
8292
8305
</ol>
8293
8306
</li>
8294
8307
@@ -94371,6 +94384,7 @@ interface mixin <dfn>DocumentAndElementEventHandlers</dfn> {
94371
94384
94372
94385
interface mixin <dfn>WindowOrWorkerGlobalScope</dfn> {
94373
94386
[Replaceable] readonly attribute USVString <span data-x="dom-origin">origin</span>;
94387
+ readonly attribute boolean <span data-x="dom-crossOriginIsolated">crossOriginIsolated</span>;
94374
94388
94375
94389
// base64 utility methods
94376
94390
DOMString <span data-x="dom-btoa">btoa</span>(DOMString data);
@@ -94394,8 +94408,17 @@ interface mixin <dfn>WindowOrWorkerGlobalScope</dfn> {
94394
94408
94395
94409
<dl class="domintro">
94396
94410
<dt><var>origin</var> = self . <code subdfn data-x="dom-origin">origin</code></dt>
94397
-
94398
94411
<dd><p>Returns the global object's <span>origin</span>, serialized as string.</p></dd>
94412
+
94413
+ <dt><var>origin</var> = self . <code subdfn data-x="dom-crossOriginIsolated">crossOriginIsolated</code></dt>
94414
+ <dd>
94415
+ <p>Returns the <span>surrounding agent</span>'s <span>agent cluster</span>'s
94416
+ <span>cross-origin isolated</span>.</p>
94417
+
94418
+ <p>(This value depends on the <code data-x="">Cross-Origin-Opener-Policy</code> and <code
94419
+ data-x="">Cross-Origin-Embedder-Policy</code> HTTP response headers and determines whether
94420
+ <code>SharedArrayBuffer</code> can be used with <code data-x="">postMessage()</code> APIs.)</p>
94421
+ </dd>
94399
94422
</dl>
94400
94423
94401
94424
<div class="example">
@@ -94420,6 +94443,10 @@ document.body.appendChild(frame)</code></pre>
94420
94443
data-x="concept-settings-object-origin">origin</span>, <span data-x="serialization of an
94421
94444
origin">serialized</span>.</p>
94422
94445
94446
+ <p>The <dfn data-x="dom-crossOriginIsolated"><code>crossOriginIsolated</code></dfn> attribute's
94447
+ getter must return the <span>surrounding agent</span>'s <span>agent cluster</span>'s
94448
+ <span>cross-origin isolated</span>.</p>
94449
+
94423
94450
94424
94451
<h3 id="atob">Base64 utility methods</h3>
94425
94452
0 commit comments