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
  • The stack data structure and the associated definitions for push and pop
  • -
  • The ordered set data structure
  • +
  • The ordered set data structure and the associated definition for + append
  • HTML namespace
  • MathML namespace
  • SVG namespace
  • @@ -79134,8 +79135,8 @@ callback FrameRequestCallback = void (DOMHighResTimeStamp

    Whenever a Document object is discarded, it is also removed from the list of the worker's - Documents of each worker whose list contains that Document.

    + Document">discarded, it is also removed from the list of the worker's owners + of each worker whose list contains that 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 Documents. Initially this list is empty; it is populated when the - worker is created.

    - -

    Whenever a Document d is added to the worker's Documents, the user agent must, for - each worker q in the list of the worker's workers whose list of - the worker's Documents does not contain d, add d to q's WorkerGlobalScope owner's list of the worker's - Documents.

    + worker global scope. This list includes the implicit 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 Documents 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 Documents are the the worker's Documents 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.

    + it must be removed from the list of the worker's owners of each worker whose list + contains that 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 - Documents 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.

    @@ -97168,8 +97159,9 @@ interface SharedWorkerGlobalScope : WorkerGlobalScope { can be used by user agents as a way to avoid the cost of restarting a shared worker used by a site when the user is navigating from page to page within that site.

    -

    A worker is said to be an active needed worker if any of the Document - objects in the worker's Documents 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 Documents the - Document objects in docs.

  • +
  • 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 Documents.

    + the worker's owners.

  • @@ -97797,9 +97786,6 @@ enum WorkerType { "classic", "module" };
  • Associate the outside port with worker.

  • -
  • Let docs be the list of relevant Document objects to - add given outside settings.

  • -
  • 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 Documents the - list of relevant Document objects to add given outside - settings.

  • +
  • 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 WorkerGlobalScope object, add worker global scope