@@ -8302,13 +8302,26 @@ interface <dfn>DOMStringList</dfn> {
8302
8302
<p>If ! <span>IsSharedArrayBuffer</span>(<var>value</var>) is true, then:
8303
8303
8304
8304
<ol>
8305
+ <li><p>Let <var>agentCluster</var> be <span>surrounding agent</span>'s
8306
+ <span>agent cluster</span>.</p></li>
8307
+
8308
+ <li>
8309
+ <p>If <var>agentCluster</var>'s <dfn>cross-origin isolated</dfn> is false, then throw a
8310
+ <!-- TODO: this is not the place to <dfn> this, but doing this for now so the build does not
8311
+ fail -->
8312
+ <span>"<code>DataCloneError</code>"</span> <code>DOMException</code>.</p>
8313
+
8314
+ <p class="note">This check is only needed when serializing (and not when deserializing) as
8315
+ <span>cross-origin isolated</span> cannot change over time and a
8316
+ <code>SharedArrayBuffer</code> cannot leave an <span>agent cluster</span>.</p>
8317
+ </li>
8318
+
8305
8319
<li><p>If <var>forStorage</var> is true, then throw a
8306
8320
<span>"<code>DataCloneError</code>"</span> <code>DOMException</code>.</p></li>
8307
8321
8308
8322
<li><p>Set <var>serialized</var> to { [[Type]]: "SharedArrayBuffer", [[ArrayBufferData]]:
8309
8323
<var>value</var>.[[ArrayBufferData]], [[ArrayBufferByteLength]]: <var>size</var>,
8310
- [[AgentCluster]]: the <span>current Realm Record</span>'s corresponding <span>agent
8311
- cluster</span> }.</p></li>
8324
+ [[AgentCluster]]: <var>agentCluster</var> }.</p></li>
8312
8325
</ol>
8313
8326
</li>
8314
8327
@@ -94167,6 +94180,7 @@ interface mixin <dfn>DocumentAndElementEventHandlers</dfn> {
94167
94180
94168
94181
interface mixin <dfn>WindowOrWorkerGlobalScope</dfn> {
94169
94182
[Replaceable] readonly attribute USVString <span data-x="dom-origin">origin</span>;
94183
+ readonly attribute boolean <span data-x="dom-crossOriginIsolated">crossOriginIsolated</span>;
94170
94184
94171
94185
// base64 utility methods
94172
94186
DOMString <span data-x="dom-btoa">btoa</span>(DOMString data);
@@ -94190,8 +94204,17 @@ interface mixin <dfn>WindowOrWorkerGlobalScope</dfn> {
94190
94204
94191
94205
<dl class="domintro">
94192
94206
<dt><var>origin</var> = self . <code subdfn data-x="dom-origin">origin</code></dt>
94193
-
94194
94207
<dd><p>Returns the global object's <span>origin</span>, serialized as string.</p></dd>
94208
+
94209
+ <dt><var>origin</var> = self . <code subdfn data-x="dom-crossOriginIsolated">crossOriginIsolated</code></dt>
94210
+ <dd>
94211
+ <p>Returns the <span>surrounding agent</span>'s <span>agent cluster</span>'s
94212
+ <span>cross-origin isolated</span>.</p>
94213
+
94214
+ <p>(This value depends on the <code data-x="">Cross-Origin-Opener-Policy</code> and <code
94215
+ data-x="">Cross-Origin-Embedder-Policy</code> HTTP response headers and determines whether
94216
+ <code>SharedArrayBuffer</code> can be used with <code data-x="">postMessage()</code> APIs.)</p>
94217
+ </dd>
94195
94218
</dl>
94196
94219
94197
94220
<div class="example">
@@ -94216,6 +94239,10 @@ document.body.appendChild(frame)</code></pre>
94216
94239
data-x="concept-settings-object-origin">origin</span>, <span data-x="serialization of an
94217
94240
origin">serialized</span>.</p>
94218
94241
94242
+ <p>The <dfn data-x="dom-crossOriginIsolated"><code>crossOriginIsolated</code></dfn> attribute's
94243
+ getter must return the <span>surrounding agent</span>'s <span>agent cluster</span>'s
94244
+ <span>cross-origin isolated</span>.</p>
94245
+
94219
94246
94220
94247
<h3 id="atob">Base64 utility methods</h3>
94221
94248
0 commit comments