Skip to content

Commit

Permalink
More substantial elaborations
Browse files Browse the repository at this point in the history
  • Loading branch information
domenic committed Aug 14, 2019
1 parent 86c1d70 commit 9aeb482
Showing 1 changed file with 24 additions and 4 deletions.
28 changes: 24 additions & 4 deletions source
Original file line number Diff line number Diff line change
Expand Up @@ -90366,10 +90366,11 @@ import "https://example.com/foo/../module2.mjs";</code></pre>
<h5>Integration with the JavaScript agent cluster formalism</h5>

<p>JavaScript also defines the concept of an <span>agent cluster</span>, which this standard maps
to the web platform using the <dfn>can share memory with</dfn> equivalence relation detailed
below. On the web platform, an <span>agent cluster</span> consists of all <span
data-x="agent">agents</span> in the same equivalence class with respect to the <span>can share
memory with</span> equivalence relation.</p>
to the web platform using the <span>can share memory with</span> equivalence relation detailed
below, as well as explicit allocation of <span data-x="similar-origin window agent">similar-origin
window agents</span> to agent clusters. On the web platform, an <span>agent cluster</span>
consists of all <span data-x="agent">agents</span> in the same equivalence class with respect to
the <span>can share memory with</span> equivalence relation.</p>

<p>The <span>agent cluster</span> concept is crucial for defining the JavaScript memory model, and
in particular among which <span data-x="agent">agents</span> the backing data of
Expand All @@ -90382,6 +90383,13 @@ import "https://example.com/foo/../module2.mjs";</code></pre>
implemented in user agents. By enforcing these idealized divisions at the specification level, we
ensure that web developers see interoperable behavior with regard to shared memory, even in the
face of varying and changing user agent process models.</p>

<hr>

<p>The following defines the allocation of the <span data-x="agent cluster">agent clusters</span>
of <span data-x="similar-origin window agent">similar-origin window agents</span>.</p>


<p>A <dfn data-export="">scheme-and-site</dfn> is a <span>tuple</span> of a <span
data-x="concept-url-scheme">scheme</span> and a <span data-x="concept-domain">domain</span>.</p>

Expand Down Expand Up @@ -90446,6 +90454,18 @@ import "https://example.com/foo/../module2.mjs";</code></pre>
<li><p>Return <var>group</var>'s <span>agent cluster map</span>[<var>key</var>].</p></li>
</ol>

<p class="note">This means that there is only one <span>similar-origin window agent</span> per
browsing context agent cluster. (However, other types of agents might be in the same cluster, if
they <span>can share memory with</span> the similar-origin window agent.)</p>

<hr>

<p>The allocation of other types of agents to agent clusters is done via the following <dfn>can
share memory with</dfn> equivalence relation. Until such a time that this standard has a better
handle on the lifetimes of those sorts of agents, user agents must allocate new agent clusters, or
reuse ones created via <span data-x="obtain-browsing-agent-cluster">obtain a browsing context
agent cluster</span>, in order to ensure that there is an agent cluster for each equivalence class
of <span>can share memory with</span>.</p>

<p>A <span>similar-origin window agent</span>, <span>dedicated worker agent</span>, <span>shared
worker agent</span>, or <span>service worker agent</span>, <var>agent</var>, <span>can share
Expand Down

0 comments on commit 9aeb482

Please sign in to comment.