@@ -7992,13 +7992,24 @@ interface <dfn>DOMStringList</dfn> {
7992
7992
<p>If ! <span>IsSharedArrayBuffer</span>(<var>value</var>) is true, then:
7993
7993
7994
7994
<ol>
7995
+ <li><p>Let <var>agentCluster</var> be the <span>surrounding agent</span>'s
7996
+ <span>agent cluster</span>.</p></li>
7997
+
7998
+ <li>
7999
+ <p>If <var>agentCluster</var>'s <span>cross-origin isolated</span> is false, then throw a
8000
+ <span>"<code>DataCloneError</code>"</span> <code>DOMException</code>.</p>
8001
+
8002
+ <p class="note">This check is only needed when serializing (and not when deserializing) as
8003
+ <span>cross-origin isolated</span> cannot change over time and a
8004
+ <code>SharedArrayBuffer</code> cannot leave an <span>agent cluster</span>.</p>
8005
+ </li>
8006
+
7995
8007
<li><p>If <var>forStorage</var> is true, then throw a
7996
8008
<span>"<code>DataCloneError</code>"</span> <code>DOMException</code>.</p></li>
7997
8009
7998
8010
<li><p>Set <var>serialized</var> to { [[Type]]: "SharedArrayBuffer", [[ArrayBufferData]]:
7999
8011
<var>value</var>.[[ArrayBufferData]], [[ArrayBufferByteLength]]: <var>size</var>,
8000
- [[AgentCluster]]: the <span>current Realm Record</span>'s corresponding <span>agent
8001
- cluster</span> }.</p></li>
8012
+ [[AgentCluster]]: <var>agentCluster</var> }.</p></li>
8002
8013
</ol>
8003
8014
</li>
8004
8015
@@ -92076,6 +92087,7 @@ interface mixin <dfn>DocumentAndElementEventHandlers</dfn> {
92076
92087
interface mixin <dfn>WindowOrWorkerGlobalScope</dfn> {
92077
92088
[Replaceable] readonly attribute USVString <span data-x="dom-origin">origin</span>;
92078
92089
readonly attribute boolean <span data-x="dom-isSecureContext">isSecureContext</span>;
92090
+ readonly attribute boolean <span data-x="dom-crossOriginIsolated">crossOriginIsolated</span>;
92079
92091
92080
92092
// base64 utility methods
92081
92093
DOMString <span data-x="dom-btoa">btoa</span>(DOMString data);
@@ -92104,8 +92116,17 @@ interface mixin <dfn>WindowOrWorkerGlobalScope</dfn> {
92104
92116
spec=SECURE-CONTEXTS></p></dd>
92105
92117
92106
92118
<dt>self . <code subdfn data-x="dom-origin">origin</code></dt>
92107
-
92108
92119
<dd><p>Returns the global object's <span>origin</span>, serialized as string.</p></dd>
92120
+
92121
+ <dt>self . <code subdfn data-x="dom-crossOriginIsolated">crossOriginIsolated</code></dt>
92122
+ <dd>
92123
+ <p>Returns the <span>surrounding agent</span>'s <span>agent cluster</span>'s <span>cross-origin
92124
+ isolated</span>.</p>
92125
+
92126
+ <p>(This value depends on the <code data-x="">Cross-Origin-Opener-Policy</code> and <code
92127
+ data-x="">Cross-Origin-Embedder-Policy</code> HTTP response headers and determines whether
92128
+ <code>SharedArrayBuffer</code> can be used with <code data-x="">postMessage()</code> APIs.)</p>
92129
+ </dd>
92109
92130
</dl>
92110
92131
92111
92132
<div class="example">
@@ -92136,6 +92157,10 @@ document.body.appendChild(frame)</code></pre>
92136
92157
data-x="concept-settings-object-origin">origin</span>, <span data-x="serialization of an
92137
92158
origin">serialized</span>.</p>
92138
92159
92160
+ <p>The <dfn data-x="dom-crossOriginIsolated"><code>crossOriginIsolated</code></dfn> attribute's
92161
+ getter must return the <span>surrounding agent</span>'s <span>agent cluster</span>'s
92162
+ <span>cross-origin isolated</span>.</p>
92163
+
92139
92164
</div>
92140
92165
92141
92166
0 commit comments