@@ -77962,8 +77962,9 @@ console.assert(iframeWindow.frameElement === null);
77962
77962
<p>A <span>browsing context group</span> has an associated <dfn>historical agent cluster key
77963
77963
map</dfn>, which is a <span data-x="ordered map">map</span> of <span
77964
77964
data-x="origin">origins</span> to <span data-x="agent cluster key">agent cluster keys</span>. This
77965
- map is used to ensure the consistency of the <a href="#origin-isolation">origin isolation</a>
77966
- feature by recording what agent cluster keys were previously used for a given origin.</p>
77965
+ map is used to ensure the consistency of the <a href="#origin-keyed-agent-clusters">origin-keyed
77966
+ agent clusters</a> feature by recording what agent cluster keys were previously used for a given
77967
+ origin.</p>
77967
77968
77968
77969
<p class="note">The <span>historical agent cluster key map</span> only ever gains entries over the
77969
77970
lifetime of the browsing context group.</p>
@@ -78671,7 +78672,7 @@ interface <dfn interface>Window</dfn> : <span>EventTarget</span> {
78671
78672
78672
78673
// the user agent
78673
78674
readonly attribute <span>Navigator</span> <span data-x="dom-navigator">navigator</span>; <!-- IE also has window.clientInformation === window.navigator -->
78674
- readonly attribute boolean <span data-x="dom-originIsolated">originIsolated </span>;
78675
+ readonly attribute boolean <span data-x="dom-originAgentCluster">originAgentCluster </span>;
78675
78676
78676
78677
// user prompts
78677
78678
undefined <span data-x="dom-alert">alert</span>();
@@ -80336,7 +80337,8 @@ interface <dfn>BarProp</dfn> {
80336
80337
data-x="document-domain-feature">document-domain</code>" feature is disabled, the setter will
80337
80338
throw a <span>"<code>SecurityError</code>"</span> exception. In cases where <code
80338
80339
data-x="dom-crossOriginIsolated">crossOriginIsolated</code> or <code
80339
- data-x="dom-originIsolated">originIsolated</code> return true, the setter will do nothing.</p>
80340
+ data-x="dom-originAgentCluster">originAgentCluster</code> return true, the setter will do
80341
+ nothing.</p>
80340
80342
</dd>
80341
80343
</dl>
80342
80344
@@ -80397,8 +80399,8 @@ interface <dfn>BarProp</dfn> {
80397
80399
<li><p>If the <span>surrounding agent</span>'s <span>agent cluster</span>'s <span>cross-origin
80398
80400
isolated</span> is true, then return.</p></li>
80399
80401
80400
- <li><p>If the <span>surrounding agent</span>'s <span>agent cluster</span>'s
80401
- <span> origin-isolated </span> is true, then return.</p></li>
80402
+ <li><p>If the <span>surrounding agent</span>'s <span>agent cluster</span>'s <span>is
80403
+ origin-keyed </span> is true, then return.</p></li>
80402
80404
80403
80405
<li><p>Set <var>this</var>'s <span>origin</span>'s <span
80404
80406
data-x="concept-origin-domain">domain</span> to the result of <span data-x="host
@@ -80448,22 +80450,24 @@ interface <dfn>BarProp</dfn> {
80448
80450
80449
80451
80450
80452
80451
- <h4>Origin isolation</h4>
80453
+ <h4><span id="origin- isolation"></span>Origin-keyed agent clusters </h4>
80452
80454
80453
80455
<dl class="domintro">
80454
- <dt>window . <code subdfn data-x="dom-originIsolated">originIsolated </code></dt>
80456
+ <dt>window . <code subdfn data-x="dom-originAgentCluster">originAgentCluster </code></dt>
80455
80457
80456
80458
<dd>
80457
- <p>Returns true if this <code>Window</code> is origin-isolated in the manner described in this
80458
- section.</p>
80459
+ <p>Returns true if this <code>Window</code> belongs to an <span>agent cluster</span> which is
80460
+ <span>origin</span>-<span data-x="agent cluster key">keyed</span>, in the manner described in
80461
+ this section.</p>
80459
80462
</dd>
80460
80463
</dl>
80461
80464
80462
- <p>A <code>Document</code> delivered over a <span>secure context</span> can opt in to origin
80463
- isolation, by using the `<code data-x="http-origin-isolation">Origin-Isolation</code>` HTTP
80464
- response header. This header is a <span data-x="http-structured-header">structured header</span>
80465
- whose value must be a <span data-x="http-structured-header-boolean">boolean</span>. <ref
80466
- spec=STRUCTURED-FIELDS></p>
80465
+ <p>A <code>Document</code> delivered over a <span>secure context</span> can request that it be
80466
+ placed in an <span>origin</span>-<span data-x="agent cluster key">keyed</span> <span>agent
80467
+ cluster</span>, by using the `<code
80468
+ data-x="http-origin-agent-cluster">Origin-Agent-Cluster</code>` HTTP response header. This header
80469
+ is a <span data-x="http-structured-header">structured header</span> whose value must be a <span
80470
+ data-x="http-structured-header-boolean">boolean</span>. <ref spec=STRUCTURED-FIELDS></p>
80467
80471
80468
80472
<p><span w-nodev>Per the processing model in the <span data-x="create-the-document-object">create
80469
80473
and initialize a new <code>Document</code> object</span>, values</span><span
@@ -80482,28 +80486,30 @@ interface <dfn>BarProp</dfn> {
80482
80486
efficiently.</p>
80483
80487
80484
80488
<p>Note that within a <span>browsing context group</span>, the `<code
80485
- data-x="http-origin-isolation ">Origin-Isolation </code>` header can never cause same-origin
80489
+ data-x="http-origin-agent-cluster ">Origin-Agent-Cluster </code>` header can never cause same-origin
80486
80490
<code>Document</code> objects to end up in different <span data-x="agent cluster">agent
80487
80491
clusters</span>, even if one sends the header and the other doesn't.<span w-nodev> This is
80488
80492
prevented by means of the <span>historical agent cluster key map</span>.</span></p>
80489
80493
80490
- <p class="note">This means that the <code data-x="dom-originIsolated">originIsolated</code> getter
80491
- can return false, even if the header is set, if the header was omitted on a previously-loaded
80492
- same-origin page in the same <span>browsing context group</span>. Similarly, it can return true
80493
- even when the header is not set.</p>
80494
+ <p class="note">This means that the <code
80495
+ data-x="dom-originAgentCluster">originAgentCluster</code> getter can return false, even if the
80496
+ header is set, if the header was omitted on a previously-loaded same-origin page in the same
80497
+ <span>browsing context group</span>. Similarly, it can return true even when the header is not
80498
+ set.</p>
80494
80499
80495
- <p w-nodev>The <dfn><code data-x="dom-originIsolated">originIsolated </code></dfn> getter steps are
80496
- to return the <span>surrounding agent</span>'s <span>agent cluster</span>'s
80497
- <span> origin-isolated </span>.</p>
80500
+ <p w-nodev>The <dfn><code data-x="dom-originAgentCluster">originAgentCluster </code></dfn> getter
80501
+ steps are to return the <span>surrounding agent</span>'s <span>agent cluster</span>'s <span>is
80502
+ origin-keyed </span>.</p>
80498
80503
80499
80504
<p class="note"><code>Document</code>s with an <span data-x="concept-origin-opaque">opaque
80500
- origin</span> can be considered unconditionally origin-isolated; for them the header has no
80501
- effect.</p>
80505
+ origin</span> can be considered unconditionally origin-keyed; for them the header has no effect,
80506
+ and the <code data-x="dom-originAgentCluster">originAgentCluster</code> getter will always return
80507
+ true.</p>
80502
80508
80503
80509
<p class="note">Similarly, <code>Document</code>s in a <span>cross-origin isolated</span>
80504
- <span>agent cluster</span> are automatically origin-isolated . The `<code
80505
- data-x="http-origin-isolation ">Origin-Isolation </code>` header might be useful as an additional
80506
- hint to implementations about resource allocation, since the `<code
80510
+ <span>agent cluster</span> are automatically origin-keyed . The `<code
80511
+ data-x="http-origin-agent-cluster ">Origin-Agent-Cluster </code>` header might be useful as an
80512
+ additional hint to implementations about resource allocation, since the `<code
80507
80513
data-x="http-cross-origin-opener-policy">Cross-Origin-Opener-Policy</code>` and
80508
80514
`<code>Cross-Origin-Embedder-Policy</code>` headers used to achieve cross-origin isolation are
80509
80515
more about ensuring that everything in the same address space opts in to being there. But adding
@@ -84957,23 +84963,23 @@ interface <dfn>Location</dfn> { // but see also <a href="#the-location-interface
84957
84963
<p>Otherwise:</p>
84958
84964
84959
84965
<ol>
84960
- <li><p>Let <var>oiHeader </var> be the result of <span>getting a structured field value</span>
84961
- given `<code data-x="http-origin-isolation ">Origin-Isolation </code>` and "<code
84966
+ <li><p>Let <var>oacHeader </var> be the result of <span>getting a structured field value</span>
84967
+ given `<code data-x="http-origin-agent-cluster ">Origin-Agent-Cluster </code>` and "<code
84962
84968
data-x="">item</code>" from <var>response</var>'s <span
84963
84969
data-x="concept-response-header-list">header list</span>.</p></li>
84964
84970
84965
- <li><p>Let <var>requestsOI </var> be true if <var>oiHeader </var> is not
84966
- null and <var>oiHeader </var>[0] is the <span
84971
+ <li><p>Let <var>requestsOAC </var> be true if <var>oacHeader </var> is not
84972
+ null and <var>oacHeader </var>[0] is the <span
84967
84973
data-x="http-structured-header-boolean">boolean</span> true; otherwise false.</p></li>
84968
84974
84969
84975
<li><p>If <var>reservedEnvironment</var> is a <span>non-secure context</span>, then set
84970
- <var>requestsOI </var> to false.</p></li>
84976
+ <var>requestsOAC </var> to false.</p></li>
84971
84977
84972
84978
<li><p>Let <var>agent</var> be the result of <span
84973
84979
data-x="obtain-similar-origin-window-agent">obtaining a similar-origin window agent</span>
84974
84980
given <var>navigationParams</var>'s <span data-x="navigation-params-origin">origin</span>,
84975
84981
<var>browsingContext</var>'s <span data-x="tlbc group">group</span>, and
84976
- <var>requestsOI </var>.</p></li>
84982
+ <var>requestsOAC </var>.</p></li>
84977
84983
84978
84984
<li>
84979
84985
<p>Let <var>realm execution context</var> be the result of <span>creating a new JavaScript
@@ -86795,7 +86801,7 @@ interface <dfn>BeforeUnloadEvent</dfn> : <span>Event</span> {
86795
86801
<p>An <span>agent cluster</span> has an associated <dfn>cross-origin isolated</dfn> (a boolean),
86796
86802
which is initially false.</p>
86797
86803
86798
- <p>An <span>agent cluster</span> has an associated <dfn>origin-isolated </dfn> (a boolean), which
86804
+ <p>An <span>agent cluster</span> has an associated <dfn>is origin-keyed </dfn> (a boolean), which
86799
86805
is initially false.</p>
86800
86806
86801
86807
<hr>
@@ -86805,14 +86811,15 @@ interface <dfn>BeforeUnloadEvent</dfn> : <span>Event</span> {
86805
86811
86806
86812
<p>An <dfn>agent cluster key</dfn> is a <span>site</span> or <span
86807
86813
data-x="concept-origin-tuple">tuple origin</span>. Without web developer action to achieve <a
86808
- href="#origin-isolation">origin isolation</a>, it will be a <span>site</span>.</p>
86814
+ href="#origin-keyed-agent-clusters">origin-keyed agent clusters</a>, it will be a
86815
+ <span>site</span>.</p>
86809
86816
86810
86817
<p class="note">An equivalent formulation is that an <span>agent cluster key</span> can be a
86811
86818
<span>scheme-and-host</span> or an <span>origin</span>.</p>
86812
86819
86813
86820
<p>To <dfn data-x="obtain-similar-origin-window-agent">obtain a similar-origin window agent</dfn>,
86814
86821
given an <span>origin</span> <var>origin</var>, a <span>browsing context group</span>
86815
- <var>group</var>, and a boolean <var>requestsOI </var>, run these steps:</p>
86822
+ <var>group</var>, and a boolean <var>requestsOAC </var>, run these steps:</p>
86816
86823
86817
86824
<ol>
86818
86825
<li><p>Let <var>site</var> be the result of <span data-x="obtain a site">obtaining a site</span>
@@ -86831,7 +86838,8 @@ interface <dfn>BeforeUnloadEvent</dfn> : <span>Event</span> {
86831
86838
<p>Otherwise:</p>
86832
86839
86833
86840
<ol>
86834
- <li><p>If <var>requestsOI</var> is true, then set <var>key</var> to <var>origin</var>.</p></li>
86841
+ <li><p>If <var>requestsOAC</var> is true, then set <var>key</var> to
86842
+ <var>origin</var>.</p></li>
86835
86843
86836
86844
<li><p>Set <var>group</var>'s <span>historical agent cluster key map</span>[<var>origin</var>]
86837
86845
to <var>key</var>.</p></li>
@@ -86848,7 +86856,7 @@ interface <dfn>BeforeUnloadEvent</dfn> : <span>Event</span> {
86848
86856
<li><p>Set <var>agentCluster</var>'s <span>cross-origin isolated</span> to <var>group</var>'s
86849
86857
<span data-x="bcg cross-origin isolated">cross-origin isolated</span>.</p></li>
86850
86858
86851
- <li><p>Set <var>agentCluster</var>'s <span>origin-isolated </span> to true if <var>key</var>
86859
+ <li><p>Set <var>agentCluster</var>'s <span>is origin-keyed </span> to true if <var>key</var>
86852
86860
equals <var>origin</var>; otherwise false.</p></li>
86853
86861
86854
86862
<li><p>Add the result of <span data-x="create an agent">creating an agent</span>, given false,
@@ -86887,11 +86895,11 @@ interface <dfn>BeforeUnloadEvent</dfn> : <span>Event</span> {
86887
86895
<li><p>Set <var>agentCluster</var> to a new <span>agent cluster</span>.</p></li>
86888
86896
86889
86897
<li>
86890
- <p>Set <var>agentCluster</var>'s <span>origin-isolated </span> to true.</p>
86898
+ <p>Set <var>agentCluster</var>'s <span>is origin-keyed </span> to true.</p>
86891
86899
86892
- <p class="note">These workers can be considered to be origin-isolated . However, this is not
86900
+ <p class="note">These workers can be considered to be origin-keyed . However, this is not
86893
86901
exposed through any APIs (in the way that <code
86894
- data-x="dom-originIsolated">originIsolated </code> exposes the origin-isolation state for
86902
+ data-x="dom-originAgentCluster">originAgentCluster </code> exposes the origin-keyedness for
86895
86903
windows).</p>
86896
86904
</li>
86897
86905
</ol>
@@ -117653,14 +117661,14 @@ interface <dfn>External</dfn> {
117653
117661
</dl>
117654
117662
117655
117663
117656
- <h3>`<dfn><code data-x="http-origin-isolation ">Origin-Isolation </code></dfn>`</h3>
117664
+ <h3>`<dfn><code data-x="http-origin-agent-cluster ">Origin-Agent-Cluster </code></dfn>`</h3>
117657
117665
117658
117666
<p>This section describes a header for registration in the Permanent Message Header Field
117659
117667
Registry. <ref spec=RFC3864></p>
117660
117668
117661
117669
<dl>
117662
117670
<dt>Header field name:</dt>
117663
- <dd>Origin-Isolation </dd>
117671
+ <dd>Origin-Agent-Cluster </dd>
117664
117672
<dt>Applicable protocol:</dt>
117665
117673
<dd>http</dd>
117666
117674
<dt>Status:</dt>
0 commit comments