Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit b95c755

Browse files
committedMar 31, 2020
More explicitly associate agents and event loops
This adds a specific definition for "an agent's event loop", as opposed to "event loop" generally, and uses it where appropriate. In a few cases, this involves moving from "object's event loop" to "object's relevant agent's event loop". Note that for worker agents, event loop creation and association with the agent is explicit. For window agents there is no corresponding text. This can be settled as part of #5411.
1 parent c568d1d commit b95c755

File tree

1 file changed

+36
-28
lines changed

1 file changed

+36
-28
lines changed
 

‎source

+36-28
Original file line numberDiff line numberDiff line change
@@ -78561,8 +78561,8 @@ interface <dfn>BarProp</dfn> {
7856178561
</dd>
7856278562

7856378563
<dt>The <span>responsible event loop</span></dt>
78564-
<dd><p>Return the <span>event loop</span> associated with <var>window</var>'s <span>relevant
78565-
agent</span>.</p></dd>
78564+
<dd><p>Return <var>window</var>'s <span>relevant agent</span>'s <span
78565+
data-x="concept-agent-event-loop">event loop</span>.</p></dd>
7856678566

7856778567
<dt>The <span>responsible document</span></dt>
7856878568
<dd>
@@ -87972,8 +87972,8 @@ document.querySelector("button").addEventListener("click", bound);
8797287972
</li>
8797387973

8797487974
<li>
87975-
<p><span>Queue a microtask</span> on the <span>surrounding agent</span>'s <span>event
87976-
loop</span> to perform the following steps:</p>
87975+
<p><span>Queue a microtask</span> on the <span>surrounding agent</span>'s <span
87976+
data-x="concept-agent-event-loop">event loop</span> to perform the following steps:</p>
8797787977

8797887978
<ol>
8797987979
<li><p>If <var>job settings</var> is not null, then <span>check if we can run script</span>
@@ -88895,14 +88895,16 @@ dictionary <dfn>PromiseRejectionEventInit</dfn> : <span>EventInit</span> {
8889588895

8889688896
<p>To coordinate events, user interaction, scripts, rendering, networking, and so forth, user
8889788897
agents must use <dfn data-x="event loop" data-lt="event loop" data-export="">event loops</dfn> as
88898-
described in this section. Each <span>agent</span> has an associated <span>event loop</span>,
88899-
which is unique to that agent.</p>
88898+
described in this section. Each <span>agent</span> has an associated <dfn data-export=""
88899+
data-dfn-for="agent" data-x="concept-agent-event-loop">event loop</dfn>, which is unique to that
88900+
agent.</p>
8890088901

88901-
<p>The <span>event loop</span> of a <span>similar-origin window agent</span> is known as a
88902-
<dfn>window event loop</dfn>. The <span>event loop</span> of a <span>dedicated worker
88903-
agent</span>, <span>shared worker agent</span>, or <span>service worker agent</span> is known as a
88904-
<dfn>worker event loop</dfn>. And the <span>event loop</span> of a <span>worklet agent</span> is
88905-
known as a <dfn>worklet event loop</dfn>.</p>
88902+
<p>The <span data-x="concept-agent-event-loop">event loop</span> of a <span>similar-origin window
88903+
agent</span> is known as a <dfn>window event loop</dfn>. The <span
88904+
data-x="concept-agent-event-loop">event loop</span> of a <span>dedicated worker agent</span>,
88905+
<span>shared worker agent</span>, or <span>service worker agent</span> is known as a <dfn>worker
88906+
event loop</dfn>. And the <span data-x="concept-agent-event-loop">event loop</span> of a
88907+
<span>worklet agent</span> is known as a <dfn>worklet event loop</dfn>.</p>
8890688908

8890788909
<div class="note">
8890888910
<p><span data-x="event loop">Event loops</span> do not necessarily correspond to implementation
@@ -89061,7 +89063,7 @@ dictionary <dfn>PromiseRejectionEventInit</dfn> : <span>EventInit</span> {
8906189063

8906289064
<li><p>Let <var>event loop</var> be <var>document</var>'s <span
8906389065
data-x="concept-relevant-realm">relevant realm</span>'s corresponding <span>agent</span>'s
89064-
<span>event loop</span>.</p></li>
89066+
<span data-x="concept-agent-event-loop">event loop</span>.</p></li>
8906589067

8906689068
<li><p><span>Queue a task</span> given <var>source</var>, <var>event loop</var>,
8906789069
<var>document</var>, and <var>steps</var>.</p></li>
@@ -89209,8 +89211,8 @@ dictionary <dfn>PromiseRejectionEventInit</dfn> : <span>EventInit</span> {
8920989211
<ol>
8921089212
<li>
8921189213
<p>Let <var>docs</var> be all <code>Document</code> objects whose <span>relevant
89212-
agent</span>'s <span>event loop</span> is this event loop, sorted arbitrarily except that the
89213-
following conditions must be met:</p>
89214+
agent</span>'s <span data-x="concept-agent-event-loop">event loop</span> is this event loop,
89215+
sorted arbitrarily except that the following conditions must be met:</p>
8921489216

8921589217
<ul>
8921689218
<li><p>Any <code>Document</code> <var>B</var> whose <span
@@ -89367,8 +89369,9 @@ dictionary <dfn>PromiseRejectionEventInit</dfn> : <span>EventInit</span> {
8936789369
</ul>
8936889370

8936989371
<p>then for each <code>Window</code> object whose whose <span>relevant agent</span>'s
89370-
<span>event loop</span> is this event loop, run the <span>start an idle period
89371-
algorithm</span>, passing the <code>Window</code>. <ref spec="REQUESTIDLECALLBACK"></p>
89372+
<span data-x="concept-agent-event-loop">event loop</span> is this event loop, run the
89373+
<span>start an idle period algorithm</span>, passing the <code>Window</code>. <ref
89374+
spec="REQUESTIDLECALLBACK"></p>
8937289375
</li>
8937389376

8937489377
<li>
@@ -96161,8 +96164,8 @@ function receiver(e) {
9616196164

9616296165
<li>
9616396166
<p><span>Queue a task</span> on the <dfn>posted message task source</dfn> of
96164-
<var>targetWindow</var>'s <span>relevant agent</span>'s <span>event loop</span> to run the
96165-
following steps:</p>
96167+
<var>targetWindow</var>'s <span>relevant agent</span>'s <span
96168+
data-x="concept-agent-event-loop">event loop</span> to run the following steps:</p>
9616696169

9616796170
<ol>
9616896171
<li><p>If the <var>targetOrigin</var> argument is not a single literal U+002A ASTERISK character
@@ -96981,11 +96984,11 @@ interface <dfn>BroadcastChannel</dfn> : <span>EventTarget</span> {
9698196984
<li>
9698296985
<p>For each <code>BroadcastChannel</code> object <var>destination</var> in
9698396986
<var>destinations</var>, <span>queue a task</span> on the <span>DOM manipulation task
96984-
source</span> of <var>destination</var>'s <span>relevant agent</span>'s <span>event loop</span>
96985-
that runs the following steps. If that event loop is a <span>window event loop</span>, then the
96986-
<span data-x="concept-task">task</span>'s <span data-x="concept-task-document">document</span>
96987-
must be set to <var>destination</var>'s <span><code>BroadcastChannel</code> settings
96988-
object</span>'s <span>responsible document</span>.</p>
96987+
source</span> of <var>destination</var>'s <span>relevant agent</span>'s <span
96988+
data-x="concept-agent-event-loop">event loop</span> that runs the following steps. If that event
96989+
loop is a <span>window event loop</span>, then the <span data-x="concept-task">task</span>'s
96990+
<span data-x="concept-task-document">document</span> must be set to <var>destination</var>'s
96991+
<span><code>BroadcastChannel</code> settings object</span>'s <span>responsible document</span>.</p>
9698996992

9699096993
<ol>
9699196994
<li><p>If <var>destination</var>'s <span data-x="concept-BroadcastChannel-closed">closed
@@ -97694,7 +97697,8 @@ interface <dfn>DedicatedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span>
9769497697

9769597698
<ol>
9769697699
<li><p>Discard any <span data-x="concept-task">tasks</span> that have been added to
97697-
<var>workerGlobal</var>'s <span>event loop</span>'s <span data-x="task queue">task
97700+
<var>workerGlobal</var>'s <span>relevant agent</span>'s <span
97701+
data-x="concept-agent-event-loop">event loop</span>'s <span data-x="task queue">task
9769897702
queues</span>.</p>
9769997703

9770097704
<li><p>Set <var>workerGlobal</var>'s <span data-x="dom-WorkerGlobalScope-closing">closing</span>
@@ -98132,7 +98136,8 @@ interface <dfn>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
9813298136
data-x="dom-WorkerGlobalScope-closing">closing</span> flag to true.</p></li>
9813398137

9813498138
<li><p>If there are any <span data-x="concept-task">tasks</span> queued in the
98135-
<code>WorkerGlobalScope</code> object's <span>event loop</span>'s <span data-x="task queue">task
98139+
<code>WorkerGlobalScope</code> object's <span>relevant agent</span>'s <span
98140+
data-x="concept-agent-event-loop">event loop</span>'s <span data-x="task queue">task
9813698141
queues</span>, discard them without processing them.</p></li>
9813798142

9813898143
<li><p><span data-x="abort a running script">Abort the script</span> currently running in the
@@ -98245,15 +98250,18 @@ interface <dfn>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
9824598250
<li><p>Let <var>inherited origin</var> be <var>outside settings</var>'s <span
9824698251
data-x="concept-settings-object-origin">origin</span>.</p></li>
9824798252

98248-
<li><p>Let <var>worker event loop</var> be a newly created <span>worker event
98249-
loop</span>.</p></li>
98250-
9825198253
<li><p>Let <var>realm</var> be the value of <var>execution context</var>'s Realm
9825298254
component.</p></li>
9825398255

9825498256
<li><p>Let <var>worker global scope</var> be <var>realm</var>'s <span
9825598257
data-x="concept-realm-global">global object</span>.</p></li>
9825698258

98259+
<li><p>Let <var>worker event loop</var> be a newly created <span>worker event
98260+
loop</span>.</p></li>
98261+
98262+
<li><p>Set <var>worker global scope</var>'s <span>relevant agent</span>'s <span
98263+
data-x="concept-agent-event-loop">event loop</span> to <var>worker event loop</var>.</p></li>
98264+
9825798265
<li>
9825898266
<p>Let <var>settings object</var> be a new <span>environment settings object</span> whose algorithms
9825998267
are defined as follows:</p>

0 commit comments

Comments
 (0)
Please sign in to comment.