@@ -7922,13 +7922,24 @@ interface <dfn>DOMStringList</dfn> {
7922
7922
<p>If ! <span>IsSharedArrayBuffer</span>(<var>value</var>) is true, then:
7923
7923
7924
7924
<ol>
7925
+ <li><p>Let <var>agentCluster</var> be the <span>surrounding agent</span>'s
7926
+ <span>agent cluster</span>.</p></li>
7927
+
7928
+ <li>
7929
+ <p>If <var>agentCluster</var>'s <span>cross-origin isolated</span> is false, then throw a
7930
+ <span>"<code>DataCloneError</code>"</span> <code>DOMException</code>.</p>
7931
+
7932
+ <p class="note">This check is only needed when serializing (and not when deserializing) as
7933
+ <span>cross-origin isolated</span> cannot change over time and a
7934
+ <code>SharedArrayBuffer</code> cannot leave an <span>agent cluster</span>.</p>
7935
+ </li>
7936
+
7925
7937
<li><p>If <var>forStorage</var> is true, then throw a
7926
7938
<span>"<code>DataCloneError</code>"</span> <code>DOMException</code>.</p></li>
7927
7939
7928
7940
<li><p>Set <var>serialized</var> to { [[Type]]: "SharedArrayBuffer", [[ArrayBufferData]]:
7929
7941
<var>value</var>.[[ArrayBufferData]], [[ArrayBufferByteLength]]: <var>size</var>,
7930
- [[AgentCluster]]: the <span>current Realm Record</span>'s corresponding <span>agent
7931
- cluster</span> }.</p></li>
7942
+ [[AgentCluster]]: <var>agentCluster</var> }.</p></li>
7932
7943
</ol>
7933
7944
</li>
7934
7945
@@ -91068,6 +91079,7 @@ interface mixin <dfn>DocumentAndElementEventHandlers</dfn> {
91068
91079
91069
91080
interface mixin <dfn>WindowOrWorkerGlobalScope</dfn> {
91070
91081
[Replaceable] readonly attribute USVString <span data-x="dom-origin">origin</span>;
91082
+ readonly attribute boolean <span data-x="dom-crossOriginIsolated">crossOriginIsolated</span>;
91071
91083
91072
91084
// base64 utility methods
91073
91085
DOMString <span data-x="dom-btoa">btoa</span>(DOMString data);
@@ -91091,8 +91103,17 @@ interface mixin <dfn>WindowOrWorkerGlobalScope</dfn> {
91091
91103
91092
91104
<dl class="domintro">
91093
91105
<dt><var>origin</var> = self . <code subdfn data-x="dom-origin">origin</code></dt>
91094
-
91095
91106
<dd><p>Returns the global object's <span>origin</span>, serialized as string.</p></dd>
91107
+
91108
+ <dt><var>origin</var> = self . <code subdfn data-x="dom-crossOriginIsolated">crossOriginIsolated</code></dt>
91109
+ <dd>
91110
+ <p>Returns the <span>surrounding agent</span>'s <span>agent cluster</span>'s
91111
+ <span>cross-origin isolated</span>.</p>
91112
+
91113
+ <p>(This value depends on the <code data-x="">Cross-Origin-Opener-Policy</code> and <code
91114
+ data-x="">Cross-Origin-Embedder-Policy</code> HTTP response headers and determines whether
91115
+ <code>SharedArrayBuffer</code> can be used with <code data-x="">postMessage()</code> APIs.)</p>
91116
+ </dd>
91096
91117
</dl>
91097
91118
91098
91119
<div class="example">
@@ -91117,6 +91138,10 @@ document.body.appendChild(frame)</code></pre>
91117
91138
data-x="concept-settings-object-origin">origin</span>, <span data-x="serialization of an
91118
91139
origin">serialized</span>.</p>
91119
91140
91141
+ <p>The <dfn data-x="dom-crossOriginIsolated"><code>crossOriginIsolated</code></dfn> attribute's
91142
+ getter must return the <span>surrounding agent</span>'s <span>agent cluster</span>'s
91143
+ <span>cross-origin isolated</span>.</p>
91144
+
91120
91145
91121
91146
<h3 id="atob">Base64 utility methods</h3>
91122
91147
0 commit comments