diff --git a/source b/source index e7c5d190517..6a5bd9c0f2f 100644 --- a/source +++ b/source @@ -2643,6 +2643,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
To create a new browsing context, given
- null or a Document
object creator:
Document
object creator, and browsing context group
+ group:
Let browsingContext be a new browsing context.
about:blank
,
sandboxFlags, browsingContext's creator origin, and null.
+ Let agent be the result ofobtaining a similar-origin window agent given + origin, and group.
Let realm execution context be the result of creating a new JavaScript - realm with the following customizations:
+ realm provided agent with the following customizations:For the global object, create a new Window
object.
Let browsingContext be the result of creating a new browsing - context with opener's active document.
Let group be opener's top-level browsing context's + group
Assert: group is non-null, as navigating invokes + this directly.
Assert: opener's top-level browsing context's group is non-null, as navigating invokes this - directly.
Let browsingContext be the result of creating a new browsing + context with opener's active document, and group.
Append browsingContext to opener's - top-level browsing context's group.
Append browsingContext to + group.
Set browsingContext's opener browsing context to opener.
Let browsingContext be the result of creating a new browsing - context with element's node document.
Set element's nested browsing context to browsingContext.
Append group to the user agent's browsing context group set.
Append the result of creating a new browsing - context with null to group.
Let browsingContext be the result of creating a new browsing + context with null, and group.
Append browsingContext to + group.
Return group.
Let realm execution context be the result of creating a new JavaScript - realm with the following customizations:
+ realm provided agent with the following customizations:For the global object, create a new Window
object.
To determine whether a Window
object A and a Window
object
- B are considered same-agent Window
objects, run
- these steps:
If A's relevant settings object's responsible browsing - context's top-level browsing context's group is not B's relevant settings object's - responsible browsing context's top-level browsing context's group, then return false.
- -Unfortunately this model falls apart the moment a browsing context - is discarded. Issue #4361 sketches a setup that could - improve this situation.
-Let originA be A's relevant settings object's origin and originB be B's - relevant settings object's origin.
If originA is same origin with originB, then return - true.
If originA or originB is not a tuple origin, then return false.
If originA's scheme is not - originB's scheme, then return - false.
If originA's host is same - site with originB's host, then return - true.
Return false.
Window
object A and a Window
object B are
+ considered same-agent Window
objects if A's relevant
+ settings object's realm execution context's agent is the same object as
+ B's relevant settings object's realm execution context's
+ agent.
All same-agent Window
objects together represent a group
of Window
objects that can synchronously access each other, though sometimes only
@@ -90328,10 +90310,6 @@ import "https://example.com/foo/../module2.mjs";
Until such a time that this standard has a better handle on lifetimes, it defines five types of agents that user agents must allocate at the appropriate time.
-In the future, this standard hopes to define exactly when agents and agent clusters are - created.
-SharedArrayBuffer
objects can be shared.
+ A browsing context group has associated shared agent + clusters (a map of agent cluster key to + agent cluster).
+ +A scheme-and-site is a tuple of a scheme and a domain.
+ +An agent cluster key is an origin or a + scheme-and-site.
+ +An agent cluster has an associated window agent.
+ +To obtain an agent cluster key, given an origin origin, run these + steps:
+ +If origin is an opaque origin, then + return origin.
If origin's host's registrable + domain is null, then return origin.
Return (origin's scheme, + origin's registrable + domain).
To obtain a similar-origin + window agent, given an origin origin, and browsing context + group group, run these steps:
+ +Let clusterKey be the result of obtaining an agent cluster key + given origin.
Let agentCluster be the result of obtaining a browsing context agent + cluster with group and clusterKey.
If agentCluster does not contain a window agent, then add a + new similar-origin window agent to it.
Return agentCluster's window agent.
To obtain a browsing context agent cluster, given a browsing + context group group and agent cluster key key, run these + steps:
+ +If group's shared agent clusters[key] does not exist, + then set group's shared agent clusters[key] to a new agent + cluster.
Return group's shared agent clusters[key].
Conceptually, the agent cluster concept is an architecture-independent, idealized "process boundary" that groups together multiple "threads" (agents). The agent clusters