From 4db86547f1184e7ceb4f1009cb3bef28101eda4f Mon Sep 17 00:00:00 2001
From: Anne van Kesteren The following feature is defined in the Worklets specification:
@@ -3905,6 +3909,17 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
+ Date
classSharedArrayBuffer
classTypeError
classRangeError
classtypeof
operatorServiceWorker
interfaceServiceWorkerContainer
interfaceServiceWorkerGlobalScope
interface
+
+ WorkletGlobalScope
@@ -88465,6 +88480,133 @@ import "https://example.com/foo/../module2.js";
data-x="concept-module-script-module-record">module record.
JavaScript defines the concept of an agent. Until such a time that this standard + has a better handle on lifetimes, we define five types of agents that + user agents must allocate at the appropriate time.
+ +In the future, when this specification has a better handle on lifetimes, we hope + to define exactly when agents and agent + clusters are created.
+ +JavaScript is expected to define agents in more detail; in particular that they hold a set of realms: tc39/ecma262 issue #882.
+ +An agent whose [[CanBlock]] is false and whose set of realms consists of all realms of Window
objects whose
+ relevant settings object's responsible browsing context is in the same
+ unit of related similar-origin browsing contexts.
Two Window
objects that are same origin can be in
+ different similar-origin window agents, for
+ instance if they are each in their own unit of related similar-origin browsing
+ contexts.
An agent whose [[CanBlock]] is true and whose set of realms consists of a single DedicatedWorkerGlobalScope
object's Realm.
An agent whose [[CanBlock]] is true and whose set of realms consists a single SharedWorkerGlobalScope
object's Realm.
An agent whose [[CanBlock]] is false and whose set of realms consists of a single ServiceWorkerGlobalScope
object's Realm.
An agent whose [[CanBlock]] is false and whose set of realms consists of a single WorkletGlobalScope
+ object's Realm.
While conceptually it might be cleaner for worklets that end up with multiple + realms to put all those in the same agent, it is not observable in practice.
+Can share memory with defines an equivalence relation. An agent cluster + consists of all agents in the same equivalence class with respect to + the can share memory with equivalence relation.
+ +A similar-origin window agent, dedicated worker agent, shared + worker agent, or service worker agent, agent, can share + memory with any dedicated worker agent whose single realm's global object's owner + set contains an item whose relevant Realm + belongs to agent.
+ +We use item above as an owner set can contain Document
+ objects.
A worklet agent … currently worklets have + no clearly defined owner, see: w3c/css-houdini-drafts issue + #224.
+ +In addition, any agent A can share memory with:
+ +The agent cluster concept is crucial for defining the JavaScript memory model, and
+ in particular among which agents the backing data of
+ SharedArrayBuffer
objects can be shared.
The following pairs of global objects are each within the same agent cluster, and
+ thus can use SharedArrayBuffer
instances to share memory with each other:
Window
object and a dedicated worker that it created.Window
object A and the Window
object of an
+ iframe
element that A created that could be same
+ origin-domain with A.Window
object and a same origin-domain Window
+ object that opened it.The following pairs of global objects are not within the same agent + cluster, and thus cannot share memory:
+ +Window
object and a shared worker it created.Window
object and a service worker it created.Window
object and the Window
object of an
+ iframe
element that A created that cannot be same
+ origin-domain with A.