diff --git a/source b/source index 68173029e59..0156a170e01 100644 --- a/source +++ b/source @@ -2409,7 +2409,8 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
Whenever a Document
object is discarded, it is also removed from the list of the worker's
- Document
s of each worker whose list contains that Document
.
Document
.
When a browsing context is discarded, the strong reference
from the user agent itself to the browsing context must be severed, and all the
@@ -97113,53 +97114,43 @@ interface SharedWorkerGlobalScope : WorkerGlobalScope {
contexts through message channels and their
MessagePort
objects.
Each WorkerGlobalScope
worker global scope has a list of
+
Each WorkerGlobalScope
object worker global scope has a list of
the worker's ports, which consists of all the MessagePort
objects that are entangled with another port and that have one (but only one) port owned by
- worker global scope. This list includes the implicit MessagePort
in the case of dedicated workers.
Each WorkerGlobalScope
also has a list of the worker's
- workers. Initially this list is empty; it is populated when the worker creates or obtains
- further workers.
Finally, each WorkerGlobalScope
also has a list of the
- worker's Document
s. Initially this list is empty; it is populated when the
- worker is created.
Whenever a Document
d is added to the worker's Document
s, the user agent must, for
- each worker q in the list of the worker's workers whose list of
- the worker's Document
s does not contain d, add d to q's WorkerGlobalScope
owner's list of the worker's
- Document
s.
MessagePort
in the
+ case of dedicated workers.
+
+ Each WorkerGlobalScope
object also has a set of the
+ worker's workers. Initially this set is empty; it is populated when the worker creates or
+ obtains further workers.
Finally, each WorkerGlobalScope
object also has a
+ set of the worker's
+ owners. Initially this set is empty; it is populated when the worker is created or
+ obtained.
It is a list to accomodate SharedWorkerGlobalScope
objects.
Whenever a Document
object is discarded,
- it must be removed from the list of the worker's Document
s of each
- worker whose list contains that Document
.
Given an environment settings object o when creating or obtaining a
- worker, the list of relevant Document
objects to add depends on the type
- of global object specified by o.
- If o specifies a global object
- that is a WorkerGlobalScope
object (i.e. if we are creating a nested worker), then
- the relevant Document
s are the the worker's Document
s of
- the global object specified by o.
- Otherwise, o specifies a global
- object that is a Window
object, and the relevant Document
is just
- the responsible document specified by o.
Document
.
+
+ Given an environment settings object
+ o when creating or obtaining a worker, the relevant owner to add depends on
+ the type of global object specified by
+ o. If o specifies a global
+ object that is a WorkerGlobalScope
object (i.e., if we are creating a nested
+ worker), then the relevant owner is that global object. Otherwise, o specifies a global object that is a Window
object,
+ and the relevant owner is the responsible document specified by o.
A worker is said to be a permissible worker if its list of the worker's
- Document
s is not empty, or if its list has been empty for no more than a short
+
A worker is said to be a permissible worker if its set of the worker's
+ owners is not empty, or if its list has been empty for no more than a short
user-agent-defined timeout value, its WorkerGlobalScope
is actually a
- SharedWorkerGlobalScope
object (i.e. the worker is a shared worker), and the user
+ SharedWorkerGlobalScope
object (i.e., the worker is a shared worker), and the user
agent has a browsing context whose Document
is not completely
loaded.
A worker is said to be an active needed worker if any of the Document
- objects in the worker's Document
s are fully active.
A worker is said to be an active needed worker if any of the worker's
+ owners are either Document
objects that are fully active or
+ active needed workers.
A worker is said to be a protected worker if it is an active needed worker and either it has outstanding timers, database transactions, or network connections, @@ -97205,15 +97197,13 @@ interface SharedWorkerGlobalScope : WorkerGlobalScope {
Let is shared be true if worker is a SharedWorker
object, and false otherwise.
Let docs be the list of relevant Document
objects to
- add given outside settings.
Let owner be the relevant owner to add given outside + settings.
Let parent worker global scope be null.
-If outside settings's global
- object is a WorkerGlobalScope
object (i.e. we are creating a nested worker),
- set parent worker global scope to outside settings's global object.
If owner is a WorkerGlobalScope
object (i.e., we are creating a
+ nested worker), then set parent worker global scope to owner.
Call the JavaScript SharedWorkerGlobalScope : WorkerGlobalScope {
Entangle outside port and inside port. Add to worker global
- scope's list of the worker's Append owner to worker global
+ scope's set of the worker's owners. If parent worker global scope is not null, add worker global scope
to the list of the worker's workers of parent worker global
@@ -97423,7 +97412,7 @@ interface SharedWorkerGlobalScope : WorkerGlobalScope {
Empty the worker's list of
- the worker's Associate the outside port with worker. Let docs be the list of relevant Return worker, and run the following step in parallel. Run a worker given worker, worker URL, outside
@@ -97948,10 +97934,9 @@ interface SharedWorker : EventTarget {
data-x="dom-MessageEvent-source">source attribute initialized to inside
port. Add to worker global
- scope's list of the worker's Append the relevant owner to add given
+ outside settings to worker global scope's set of the worker's
+ owners. If outside settings's global
object is a Document
s the
- Document
objects in docs.Document
s.Document
objects to
- add given outside settings.Document
s the
- list of relevant Document
objects to add given outside
- settings.WorkerGlobalScope
object, add worker global scope