Skip to content

Commit b955b10

Browse files
committed
Editorial fixes
1 parent 075c677 commit b955b10

File tree

1 file changed

+99
-101
lines changed

1 file changed

+99
-101
lines changed

source

Lines changed: 99 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -8084,18 +8084,16 @@ interface <dfn>DOMStringList</dfn> {
80848084
<p>If ! <span>IsSharedArrayBuffer</span>(<var>value</var>) is true, then:
80858085

80868086
<ol>
8087-
<li><p>Let <var>agentCluster</var> be the <span>surrounding agent</span>'s
8088-
<span>agent cluster</span>.</p></li>
80898087
<li>
8090-
<p>If <var>agentCluster</var>'s <span
8088+
<p>If the <span>current settings object</span>'s <span
80918089
data-x="concept-settings-object-cross-origin-isolated-capability">cross-origin isolated
8092-
capability</span> is false, then throw a
8093-
<span>"<code>DataCloneError</code>"</span><code>DOMException</code>.</p>
8090+
capability</span> is false, then throw a <span>"<code>DataCloneError</code>"</span>
8091+
<code>DOMException</code>.</p>
80948092

80958093
<p class="note">This check is only needed when serializing (and not when deserializing) as
8096-
<var data-x="concept-settings-object-cross-origin-isolated-capability">cross-origin isolated
8097-
</var> cannot change over time and a <code>SharedArrayBuffer</code> cannot leave an
8098-
<span>agent cluster</span>.</p>
8094+
the <span data-x="concept-settings-object-cross-origin-isolated-capability">cross-origin
8095+
isolated capability</span> cannot change over time and a <code>SharedArrayBuffer</code>
8096+
cannot leave an <span>agent cluster</span>.</p>
80998097
</li>
81008098

81018099
<li><p>If <var>forStorage</var> is true, then throw a
@@ -77985,44 +77983,6 @@ console.assert(iframeWindow.frameElement === null);
7798577983
keys</span> to <span data-x="agent cluster">agent clusters</span>). User agents are responsible
7798677984
for collecting agent clusters when it is deemed that nothing can access them anymore.</p>
7798777985

77988-
<p>A <span>browsing context group</span> has a <dfn><var
77989-
data-x="bcg-cross-origin-isolation">cross-origin-isolation</var></dfn> variable of type
77990-
<span>cross-origin-isolation</span>. Initially set to"<code
77991-
data-x="cross-origin-isolation-none">isolation-none</code>"</p>
77992-
77993-
<p>A <dfn>cross-origin-isolation</dfn> type can take 3 possible values: </p>
77994-
<ul>
77995-
<li><dfn><code data-x="cross-origin-isolation-none">isolation-none</code></dfn></li>
77996-
<li><dfn><code data-x="cross-origin-isolation-logical">isolation-logical</code></dfn></li>
77997-
<li><dfn><code data-x="cross-origin-isolation-concrete">isolation-concrete</code></dfn></li>
77998-
</ul>
77999-
78000-
<div class="note">
78001-
<p>
78002-
<code data-x="cross-origin-isolation-logical">isolation-logical</code> and
78003-
<code data-x="cross-origin-isolation-concrete">isolation-concrete</code> are similar. They are both used
78004-
for <span>browsing context group</span>, where:
78005-
</p>
78006-
<ul>
78007-
<li><p>Every top-level <span>Document</span> has `<code data-x="">
78008-
<span data-x="http-cross-origin-opener-policy">Cross-Origin-Opener-Policy</span>:
78009-
<span data-x="coop-same-origin">same-origin</span></code>`</p></li>
78010-
78011-
<li><p>Every <span>Document</span> has
78012-
`<code data-x=""><span>Cross-Origin-Embedder-Policy</span>:
78013-
<span data-x="coep-require-corp">require-corp</span></code>`</p></li>
78014-
</ul>
78015-
<p>
78016-
On some platforms, it is difficult to provide the security properties required
78017-
by the <span data-x="concept-settings-object-cross-origin-isolated-capability">cross-origin
78018-
isolated capability</span>. As a result, only <code
78019-
data-x="cross-origin-isolation-concrete">isolation-concrete</code> can grant access to the <span
78020-
data-x="concept-settings-object-cross-origin-isolated-capability">cross-origin isolated
78021-
capability</span>. <code data-x="cross-origin-isolation-concrete">isolation-concrete</code> is
78022-
used on platform not supporting this capability.
78023-
</p>
78024-
</div>
78025-
7802677986
<p>A <span>browsing context group</span> has an associated <dfn>historical agent cluster key
7802777987
map</dfn>, which is a <span data-x="ordered map">map</span> of <span
7802877988
data-x="origin">origins</span> to <span data-x="agent cluster key">agent cluster keys</span>. This
@@ -78033,6 +77993,41 @@ console.assert(iframeWindow.frameElement === null);
7803377993
<p class="note">The <span>historical agent cluster key map</span> only ever gains entries over the
7803477994
lifetime of the browsing context group.</p>
7803577995

77996+
<p>A <span>browsing context group</span> has a <dfn
77997+
data-x="bcg-cross-origin-isolation">cross-origin isolation mode</dfn>, which is a
77998+
<span>cross-origin isolation mode</span>. It is initially "<code
77999+
data-x="cross-origin-isolation-none">none</code>".</p>
78000+
78001+
<p>A <dfn>cross-origin isolation mode</dfn> is one of three possible values: "<dfn><code
78002+
data-x="cross-origin-isolation-none">none</code></dfn>", "<dfn><code
78003+
data-x="cross-origin-isolation-logical">logical</code></dfn>", or "<dfn><code
78004+
data-x="cross-origin-isolation-concrete">concrete</code></dfn>".</p>
78005+
78006+
<div class="note">
78007+
<p>"<code data-x="cross-origin-isolation-logical">logical</code>" and "<code
78008+
data-x="cross-origin-isolation-concrete">concrete</code>" are similar. They are both used for
78009+
<span data-x="browsing context group">browsing context groups</span> where:</p>
78010+
78011+
<ul>
78012+
<li><p>every top-level <span>Document</span> has `<code data-x=""><span
78013+
data-x="http-cross-origin-opener-policy">Cross-Origin-Opener-Policy</span>: <span
78014+
data-x="coop-same-origin">same-origin</span></code>`, and</p></li>
78015+
78016+
<li><p>every <span>Document</span> has `<code
78017+
data-x=""><span>Cross-Origin-Embedder-Policy</span>: <span
78018+
data-x="coep-require-corp">require-corp</span></code>`.</p></li>
78019+
</ul>
78020+
78021+
<p>On some platforms, it is difficult to provide the security properties required to grant safe
78022+
access to the APIs gated by the <span
78023+
data-x="concept-settings-object-cross-origin-isolated-capability">cross-origin isolated
78024+
capability</span>. As a result, only "<code
78025+
data-x="cross-origin-isolation-concrete">concrete</code>" can grant access that capability.
78026+
"<code data-x="cross-origin-isolation-logical">logical</code>" is used on platform not supporting
78027+
this capability, where various restrictions imposed by cross-origin isolation will still apply,
78028+
but the capability is not granted.</p>
78029+
</div>
78030+
7803678031
<p>To <dfn data-x="creating a new browsing context group">create a new browsing context
7803778032
group</dfn>, run these steps:</p>
7803878033

@@ -79681,16 +79676,17 @@ interface <dfn>BarProp</dfn> {
7968179676

7968279677
<dt>The <span data-x="concept-settings-object-cross-origin-isolated-capability">cross-origin
7968379678
isolated capability</span></dt>
79684-
<dd><p>Return the logical conjunction of:</p>
79685-
<ol>
79686-
<li><p><var>realm</var>'s <span>agent cluster</span>'s <var
79687-
data-x="agent-cluster-cross-origin-isolation">cross-origin-isolation</var> is <code
79688-
data-x="cross-origin-isolation-concrete">isolation-concrete</code></p></li>
79679+
<dd>
79680+
<p>Return true if both of the following hold, and false otherwise:</p>
79681+
<ol>
79682+
<li><p><var>realm</var>'s <span>agent cluster</span>'s <span
79683+
data-x="agent-cluster-cross-origin-isolation">cross-origin-isolation mode</span> is "<code
79684+
data-x="cross-origin-isolation-concrete">concrete</code>", and</p></li>
7968979685

79690-
<li><p><span data-x="concept-document-window">associated <code>Document</code></span> is
79691-
<span>allowed to use</span> the "<code
79692-
data-x="cross-origin-isolated-feature">cross-origin-isolated</code>" feature.</p>
79693-
</ol>
79686+
<li><p><var>window</var>'s <span data-x="concept-document-window">associated
79687+
<code>Document</code></span> is <span>allowed to use</span> the "<code
79688+
data-x="cross-origin-isolated-feature">cross-origin-isolated</code>" feature.</p></li>
79689+
</ol>
7969479690
</dd>
7969579691
</dl>
7969679692
</li>
@@ -80466,9 +80462,9 @@ interface <dfn>BarProp</dfn> {
8046680462
a registrable domain suffix of and is not equal to</span> <var>effectiveDomain</var>, then throw
8046780463
a <span>"<code>SecurityError</code>"</span> <code>DOMException</code>.</p></li>
8046880464

80469-
<li><p>If the <span>surrounding agent</span>'s <span>agent cluster</span>'s
80470-
<var data-x="agent-cluster-cross-origin-isolation">cross-origin-isolation</var> is not <code
80471-
data-x="cross-origin-isolation-none">isolation-none</code> then return.</p></li>
80465+
<li><p>If the <span>surrounding agent</span>'s <span>agent cluster</span>'s <span
80466+
data-x="agent-cluster-cross-origin-isolation">cross-origin isolation mode</span> is not "<code
80467+
data-x="cross-origin-isolation-none">none</code>", then return.</p></li>
8047280468

8047380469
<li><p>If the <span>surrounding agent</span>'s <span>agent cluster</span>'s <span>is
8047480470
origin-keyed</span> is true, then return.</p></li>
@@ -80577,9 +80573,9 @@ interface <dfn>BarProp</dfn> {
8057780573
and the <code data-x="dom-originAgentCluster">originAgentCluster</code> getter will always return
8057880574
true.</p>
8057980575

80580-
<p class="note">Similarly, <code>Document</code>s with <span>agent cluster</span>'s
80581-
<var data-x="agent-cluster-cross-origin-isolation">cross-origin-isolated</var> not <code
80582-
data-x="cross-origin-isolation-none">isolation-none</code> are automatically origin-isolated. The
80576+
<p class="note">Similarly, <code>Document</code>s whose <span>agent cluster</span>'s
80577+
<span data-x="agent-cluster-cross-origin-isolation">cross-origin isolation mode</span> is not
80578+
"<code data-x="cross-origin-isolation-none">none</code>" are automatically origin-keyed. The
8058380579
`<code data-x="http-origin-agent-cluster">Origin-Agent-Cluster</code>` header might be useful as
8058480580
an additional hint to implementations about resource allocation, since the `<code
8058580581
data-x="http-cross-origin-opener-policy">Cross-Origin-Opener-Policy</code>` and
@@ -80945,9 +80941,9 @@ interface <dfn>BarProp</dfn> {
8094580941
<dd>
8094680942
<p>This behaves the same as "<code data-x="coop-same-origin">same-origin</code>", with the
8094780943
addition that it sets the (new) <span>top-level browsing context</span>'s <span data-x="tlbc
80948-
group">group</span>'s <span data-x="bcg-cross-origin-isolation">cross-origin-isolation</span> to
80949-
<code data-x="cross-origin-isolation-logical">isolation-logical</code> or <code
80950-
data-x="cross-origin-isolation-concrete">isolation-concrete</code></p>
80944+
group">group</span>'s <span data-x="bcg-cross-origin-isolation">cross-origin isolation
80945+
mode</span> to one of "<code data-x="cross-origin-isolation-logical">logical</code>" or "<code
80946+
data-x="cross-origin-isolation-concrete">concrete</code>".</p>
8095180947

8095280948
<p class="note">"<code data-x="coop-same-origin-plus-COEP">same-origin-plus-COEP</code>" cannot
8095380949
be directly set via the `<code
@@ -81354,20 +81350,21 @@ interface <dfn>BarProp</dfn> {
8135481350
<li><p>Let <var>newBrowsingContext</var> be the result of <span>creating a new top-level browsing
8135581351
context</span>.</p></li>
8135681352

81357-
<li><p>If <var>navigationCOOP</var>'s <span data-x="coop-struct-value">value</span> is "<code
81358-
data-x="coop-same-origin-plus-COEP">same-origin-plus-COEP</code>", then set
81359-
<var>newBrowsingContext</var>'s <span data-x="tlbc group">group</span>'s <span
81360-
data-x="bcg-cross-origin-isolation">cross-origin-isolation</span> to: <code
81361-
data-x="cross-origin-isolation-logical">isolation-logical</code> or <code
81362-
data-x="cross-origin-isolation-concrete">isolation-concrete</code>. The one used is
81363-
platform-specific. </p>
81353+
<li>
81354+
<p>If <var>navigationCOOP</var>'s <span data-x="coop-struct-value">value</span> is "<code
81355+
data-x="coop-same-origin-plus-COEP">same-origin-plus-COEP</code>", then set
81356+
<var>newBrowsingContext</var>'s <span data-x="tlbc group">group</span>'s <span
81357+
data-x="bcg-cross-origin-isolation">cross-origin isolation mode</span> to either "<code
81358+
data-x="cross-origin-isolation-logical">logical</code>" or "<code
81359+
data-x="cross-origin-isolation-concrete">concrete</code>". The choice of which is
81360+
<span>implementation-defined</span>.</p>
8136481361

81365-
<p class="note">It is difficult on some platforms to provide the security properties required by
81366-
the <span data-x="concept-settings-object-cross-origin-isolated-capability">cross-origin isolated
81367-
capability</span>. Only the <code
81368-
data-x="cross-origin-isolation-concrete">isolation-concrete</code> might grant access to it.
81369-
<code data-x="cross-origin-isolation-logical">Isolation-logical</code> won't and is used for the
81370-
platforms not supporting it.</p>
81362+
<p class="note">It is difficult on some platforms to provide the security properties required by
81363+
the <span data-x="concept-settings-object-cross-origin-isolated-capability">cross-origin
81364+
isolated capability</span>. Only "<code
81365+
data-x="cross-origin-isolation-concrete">concrete</code>" might grant access to it. "<code
81366+
data-x="cross-origin-isolation-logical">logical</code>" won't, and is used by implementations on
81367+
other platforms.</p>
8137181368
</li>
8137281369

8137381370
<li>
@@ -86799,9 +86796,9 @@ interface <dfn>BeforeUnloadEvent</dfn> : <span>Event</span> {
8679986796
directly or by using <code data-x="dom-document-domain">document.domain</code>.</p>
8680086797

8680186798
<p>If the encompassing <span>agent cluster</span>'s <span
86802-
data-x="agent-cluster-cross-origin-isolation">cross-origin-isolation</span> is not <code
86803-
data-x="cross-origin-isolation-none">isolation-none</code>, then all the <code>Window</code>
86804-
objects will be <span>same origin</span>, can reach each other directly, and <code
86799+
data-x="agent-cluster-cross-origin-isolation">cross-origin isolation mode</span> is not "<code
86800+
data-x="cross-origin-isolation-none">none</code>", then all the <code>Window</code> objects will
86801+
be <span>same origin</span>, can reach each other directly, and <code
8680586802
data-x="dom-document-domain">document.domain</code> will no-op.</p>
8680686803

8680786804
<p class="note">Two <code>Window</code> objects that are <span>same origin</span> can be in
@@ -86884,10 +86881,10 @@ interface <dfn>BeforeUnloadEvent</dfn> : <span>Event</span> {
8688486881

8688586882
<div w-nodev>
8688686883

86887-
<p>An <span>agent cluster</span> has an associated <dfn><var
86888-
data-x="agent-cluster-cross-origin-isolation">cross-origin-isolation</var></dfn> variable, of type
86889-
<span>cross-origin-isolation</span>. Initially set to <code
86890-
data-x="cross-origin-isolation-none">isolation-none</code>.
86884+
<p>An <span>agent cluster</span> has an associated <dfn
86885+
data-x="agent-cluster-cross-origin-isolation">cross-origin isolation mode</dfn>, which is a
86886+
<span>cross-origin isolation mode</span>. It is initially "<code
86887+
data-x="cross-origin-isolation-none">none</code>".</p>
8689186888

8689286889
<p>An <span>agent cluster</span> has an associated <dfn>is origin-keyed</dfn> (a boolean), which
8689386890
is initially false.</p>
@@ -86915,10 +86912,9 @@ interface <dfn>BeforeUnloadEvent</dfn> : <span>Event</span> {
8691586912

8691686913
<li><p>Let <var>key</var> be <var>site</var>.</p></li>
8691786914

86918-
<li><p>If <var>group</var>'s <span
86919-
data-x="bcg-cross-origin-isolation">cross-origin-isolation</span> is not <code
86920-
data-x="cross-origin-isolation-none">isolation-none</code>, then set <var>key</var> to
86921-
<var>origin</var>.</p></li>
86915+
<li><p>If <var>group</var>'s <span data-x="bcg-cross-origin-isolation">cross-origin isolation
86916+
mode</span> is not "<code data-x="cross-origin-isolation-none">none</code>", then set
86917+
<var>key</var> to <var>origin</var>.</p></li>
8692286918

8692386919
<li><p>Otherwise, if <var>group</var>'s <span>historical agent cluster key
8692486920
map</span>[<var>origin</var>] <span data-x="map exists">exists</span>, then set <var>key</var> to
@@ -86943,9 +86939,10 @@ interface <dfn>BeforeUnloadEvent</dfn> : <span>Event</span> {
8694386939
<ol>
8694486940
<li><p>Let <var>agentCluster</var> be a new <span>agent cluster</span>.</p></li>
8694586941

86946-
<li><p>Set <var>agentCluster</var>'s <var
86947-
data-x="agent-cluster-cross-origin-isolation">cross-origin-isolation</var> to <var>group</var>'s
86948-
<var data-x="bcg-cross-origin-isolation">cross-origin-isolation</var>.</p></li>
86942+
<li><p>Set <var>agentCluster</var>'s <span
86943+
data-x="agent-cluster-cross-origin-isolation">cross-origin isolation mode</span> to
86944+
<var>group</var>'s <span data-x="bcg-cross-origin-isolation">cross-origin isolation
86945+
mode</span>.</p></li>
8694986946

8695086947
<li><p>Set <var>agentCluster</var>'s <span>is origin-keyed</span> to true if <var>key</var>
8695186948
equals <var>origin</var>; otherwise false.</p></li>
@@ -87326,9 +87323,9 @@ interface <dfn>BeforeUnloadEvent</dfn> : <span>Event</span> {
8732687323
href="https://github.com/tc39/ecma262/issues/1357">tc39/ecma262#1357</a>.</span></p></li>
8732787324

8732887325
<li>
87329-
<p>If <var>agent</var>'s <span>agent cluster</span>'s <var
87330-
data-x="agent-cluster-cross-origin-isolation">cross-origin-isolation</var> is <code
87331-
data-x="cross-origin-isolation-none">isolation-none</code>, then:
87326+
<p>If <var>agent</var>'s <span>agent cluster</span>'s <span
87327+
data-x="agent-cluster-cross-origin-isolation">cross-origin isolation mode</span> is "<code
87328+
data-x="cross-origin-isolation-none">none</code>", then:</p>
8733287329

8733387330
<ol>
8733487331
<li><p>Let <var>global</var> be <var>realm</var>'s <span data-x="concept-realm-global">global
@@ -99248,11 +99245,11 @@ interface <dfn>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
9924899245
<p>If <var>worker global scope</var>'s <span
9924999246
data-x="concept-WorkerGlobalScope-embedder-policy">embedder policy</span> is "<code
9925099247
data-x="coep-require-corp">require-corp</code>" and <var>is shared</var> is true, then set
99251-
<var>agent</var>'s <span>agent cluster</span>'s <var
99252-
data-x="agent-cluster-cross-origin-isolation">cross-origin-isolated</var> to <code
99253-
data-x="cross-origin-isolation-logical">isolation-logical</code> or <code
99254-
data-x="cross-origin-isolation-concrete">isolation-concrete</code>. The one chosen is
99255-
platform-specific.</p>
99248+
<var>agent</var>'s <span>agent cluster</span>'s <span
99249+
data-x="agent-cluster-cross-origin-isolation">cross-origin isolation mode</span> to "<code
99250+
data-x="cross-origin-isolation-logical">logical</code>" or "<code
99251+
data-x="cross-origin-isolation-concrete">concrete</code>". The one chosen is
99252+
<span>implementation-defined</span>.</p>
9925699253

9925799254
<p class="XXX">This really ought to be set when the agent cluster is created, which requires a
9925899255
redesign of this section.</p>
@@ -99265,8 +99262,9 @@ interface <dfn>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
9926599262

9926699263
<li><p>Set <var>worker global scope</var>'s <span
9926799264
data-x="concept-WorkerGlobalScope-cross-origin-isolated-capability">cross-origin isolated
99268-
capability</span> to <var>agent</var>'s <span>agent cluster</span>'s <var
99269-
data-x="agent-cluster-cross-origin-isolation">cross-origin-isolation</var>.</p></li>
99265+
capability</span> to true if <var>agent</var>'s <span>agent cluster</span>'s <span
99266+
data-x="agent-cluster-cross-origin-isolation">cross-origin isolation mode</span> is "<code
99267+
data-x="cross-origin-isolation-concrete">concrete</code>".</p></li>
9927099268

9927199269
<li><p>If <var>is shared</var> is false and <var>owner</var>'s <span
9927299270
data-x="concept-settings-object-cross-origin-isolated-capability">cross-origin isolated

0 commit comments

Comments
 (0)