Skip to content

Commit f5628b9

Browse files
authored
Rename Origin-Isolation to Origin-Agent-Cluster
Also renames the feature from "origin isolation" to "origin-keyed agent clusters" and renames the getter from window.originIsolated to window.originAgentCluster. Closes #6192.
1 parent fee73fa commit f5628b9

File tree

1 file changed

+52
-44
lines changed

1 file changed

+52
-44
lines changed

source

Lines changed: 52 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -77962,8 +77962,9 @@ console.assert(iframeWindow.frameElement === null);
7796277962
<p>A <span>browsing context group</span> has an associated <dfn>historical agent cluster key
7796377963
map</dfn>, which is a <span data-x="ordered map">map</span> of <span
7796477964
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>
7796777968

7796877969
<p class="note">The <span>historical agent cluster key map</span> only ever gains entries over the
7796977970
lifetime of the browsing context group.</p>
@@ -78671,7 +78672,7 @@ interface <dfn interface>Window</dfn> : <span>EventTarget</span> {
7867178672

7867278673
// the user agent
7867378674
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>;
7867578676

7867678677
// user prompts
7867778678
undefined <span data-x="dom-alert">alert</span>();
@@ -80336,7 +80337,8 @@ interface <dfn>BarProp</dfn> {
8033680337
data-x="document-domain-feature">document-domain</code>" feature is disabled, the setter will
8033780338
throw a <span>"<code>SecurityError</code>"</span> exception. In cases where <code
8033880339
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>
8034080342
</dd>
8034180343
</dl>
8034280344

@@ -80397,8 +80399,8 @@ interface <dfn>BarProp</dfn> {
8039780399
<li><p>If the <span>surrounding agent</span>'s <span>agent cluster</span>'s <span>cross-origin
8039880400
isolated</span> is true, then return.</p></li>
8039980401

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>
8040280404

8040380405
<li><p>Set <var>this</var>'s <span>origin</span>'s <span
8040480406
data-x="concept-origin-domain">domain</span> to the result of <span data-x="host
@@ -80448,22 +80450,24 @@ interface <dfn>BarProp</dfn> {
8044880450

8044980451

8045080452

80451-
<h4>Origin isolation</h4>
80453+
<h4><span id="origin-isolation"></span>Origin-keyed agent clusters</h4>
8045280454

8045380455
<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>
8045580457

8045680458
<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>
8045980462
</dd>
8046080463
</dl>
8046180464

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>
8046780471

8046880472
<p><span w-nodev>Per the processing model in the <span data-x="create-the-document-object">create
8046980473
and initialize a new <code>Document</code> object</span>, values</span><span
@@ -80482,28 +80486,30 @@ interface <dfn>BarProp</dfn> {
8048280486
efficiently.</p>
8048380487

8048480488
<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
8048680490
<code>Document</code> objects to end up in different <span data-x="agent cluster">agent
8048780491
clusters</span>, even if one sends the header and the other doesn't.<span w-nodev> This is
8048880492
prevented by means of the <span>historical agent cluster key map</span>.</span></p>
8048980493

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>
8049480499

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>
8049880503

8049980504
<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>
8050280508

8050380509
<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
8050780513
data-x="http-cross-origin-opener-policy">Cross-Origin-Opener-Policy</code>` and
8050880514
`<code>Cross-Origin-Embedder-Policy</code>` headers used to achieve cross-origin isolation are
8050980515
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
8495784963
<p>Otherwise:</p>
8495884964

8495984965
<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
8496284968
data-x="">item</code>" from <var>response</var>'s <span
8496384969
data-x="concept-response-header-list">header list</span>.</p></li>
8496484970

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
8496784973
data-x="http-structured-header-boolean">boolean</span> true; otherwise false.</p></li>
8496884974

8496984975
<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>
8497184977

8497284978
<li><p>Let <var>agent</var> be the result of <span
8497384979
data-x="obtain-similar-origin-window-agent">obtaining a similar-origin window agent</span>
8497484980
given <var>navigationParams</var>'s <span data-x="navigation-params-origin">origin</span>,
8497584981
<var>browsingContext</var>'s <span data-x="tlbc group">group</span>, and
84976-
<var>requestsOI</var>.</p></li>
84982+
<var>requestsOAC</var>.</p></li>
8497784983

8497884984
<li>
8497984985
<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> {
8679586801
<p>An <span>agent cluster</span> has an associated <dfn>cross-origin isolated</dfn> (a boolean),
8679686802
which is initially false.</p>
8679786803

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
8679986805
is initially false.</p>
8680086806

8680186807
<hr>
@@ -86805,14 +86811,15 @@ interface <dfn>BeforeUnloadEvent</dfn> : <span>Event</span> {
8680586811

8680686812
<p>An <dfn>agent cluster key</dfn> is a <span>site</span> or <span
8680786813
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>
8680986816

8681086817
<p class="note">An equivalent formulation is that an <span>agent cluster key</span> can be a
8681186818
<span>scheme-and-host</span> or an <span>origin</span>.</p>
8681286819

8681386820
<p>To <dfn data-x="obtain-similar-origin-window-agent">obtain a similar-origin window agent</dfn>,
8681486821
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>
8681686823

8681786824
<ol>
8681886825
<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> {
8683186838
<p>Otherwise:</p>
8683286839

8683386840
<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>
8683586843

8683686844
<li><p>Set <var>group</var>'s <span>historical agent cluster key map</span>[<var>origin</var>]
8683786845
to <var>key</var>.</p></li>
@@ -86848,7 +86856,7 @@ interface <dfn>BeforeUnloadEvent</dfn> : <span>Event</span> {
8684886856
<li><p>Set <var>agentCluster</var>'s <span>cross-origin isolated</span> to <var>group</var>'s
8684986857
<span data-x="bcg cross-origin isolated">cross-origin isolated</span>.</p></li>
8685086858

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>
8685286860
equals <var>origin</var>; otherwise false.</p></li>
8685386861

8685486862
<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> {
8688786895
<li><p>Set <var>agentCluster</var> to a new <span>agent cluster</span>.</p></li>
8688886896

8688986897
<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>
8689186899

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
8689386901
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
8689586903
windows).</p>
8689686904
</li>
8689786905
</ol>
@@ -117653,14 +117661,14 @@ interface <dfn>External</dfn> {
117653117661
</dl>
117654117662

117655117663

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>
117657117665

117658117666
<p>This section describes a header for registration in the Permanent Message Header Field
117659117667
Registry. <ref spec=RFC3864></p>
117660117668

117661117669
<dl>
117662117670
<dt>Header field name:</dt>
117663-
<dd>Origin-Isolation</dd>
117671+
<dd>Origin-Agent-Cluster</dd>
117664117672
<dt>Applicable protocol:</dt>
117665117673
<dd>http</dd>
117666117674
<dt>Status:</dt>

0 commit comments

Comments
 (0)