Skip to content

Commit 5d7cd69

Browse files
authored
Convert more "queue a task" to "queue an element task"
This accounts for <embed>, <frame>, <img>, <object>, form controls, and a couple other spot-fixes. Part of #4980.
1 parent cd59059 commit 5d7cd69

File tree

1 file changed

+61
-58
lines changed

1 file changed

+61
-58
lines changed

source

Lines changed: 61 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -24288,10 +24288,10 @@ document.body.appendChild(wbr);</code></pre>
2428824288
it is in no state.</p></li>
2428924289

2429024290
<li><p>If <var>destination</var> is not <span
24291-
data-x="concept-script-like-destination">script-like</span>, then <span>queue a task</span> on
24292-
the <span>networking task source</span> to <span data-x="concept-event-fire">fire an event</span>
24293-
named <code data-x="event-error">error</code> at the <code>link</code> element, and
24294-
return.</p></li>
24291+
data-x="concept-script-like-destination">script-like</span>, then <span>queue an element
24292+
task</span> on the <span>networking task source</span> given the <code>link</code> element to
24293+
<span data-x="concept-event-fire">fire an event</span> named <code
24294+
data-x="event-error">error</code> at the <code>link</code> element, and return.</p></li>
2429524295

2429624296
<li><p><span data-x="parse a url">Parse</span> the <span>URL</span> given by the <code
2429724297
data-x="attr-link-href">href</code> attribute, relative to the element's <span>node
@@ -27180,10 +27180,6 @@ was an English &lt;a href="/wiki/Music_hall">music hall&lt;/a> singer, ...</code
2718027180

2718127181
<h5 id="images-processing-model">Processing model</h5>
2718227182

27183-
<p>The <span>task source</span> for the <span data-x="concept-task">tasks</span> <span
27184-
data-x="queue a task">queued</span> by algorithms in this section is the <span>DOM manipulation
27185-
task source</span>.</p>
27186-
2718727183
<hr>
2718827184

2718927185
<p>An <code>img</code> element has a <dfn>current request</dfn> and a <dfn>pending request</dfn>.
@@ -27677,9 +27673,9 @@ was an English &lt;a href="/wiki/Music_hall">music hall&lt;/a> singer, ...</code
2767727673
<li><p>If <var>urlString</var> is the same as the <span>current request</span>'s <span
2767827674
data-x="img-req-url">current URL</span> and <span>current request</span>'s <span
2767927675
data-x="img-req-state">state</span> is <span data-x="img-inc">partially available</span>, then
27680-
<span>abort the image request</span> for the <span>pending request</span>, <span>queue a
27681-
task</span> to <span>restart the animation</span> if <i>restart animation</i> is set, and
27682-
return.</p></li>
27676+
<span>abort the image request</span> for the <span>pending request</span>, <span>queue an element
27677+
task</span> on the <span>DOM manipulation task source</span> given the <code>img</code> element
27678+
to <span>restart the animation</span> if <i>restart animation</i> is set, and return.</p></li>
2768327679

2768427680
<li><p>If the <span>pending request</span> is not null, then <span>abort the image request</span>
2768527681
for the <span>pending request</span>.</p></li>
@@ -27724,7 +27720,8 @@ was an English &lt;a href="/wiki/Music_hall">music hall&lt;/a> singer, ...</code
2772427720
<li><p>Wait until the <span>will lazy load image steps</span> no longer return true, given the
2772527721
<code>img</code>.</p></li>
2772627722

27727-
<li><p><span>Queue a task</span> to continue running the rest of this algorithm.</p></li>
27723+
<li><p><span>Queue an element task</span> on the <span>DOM manipulation task source</span>
27724+
given the <code>img</code> element to continue running the rest of this algorithm.</p></li>
2772827725
</ol>
2772927726
</li>
2773027727

@@ -27807,8 +27804,9 @@ was an English &lt;a href="/wiki/Music_hall">music hall&lt;/a> singer, ...</code
2780727804
replace the previous image. Once one body part has been completely decoded, the user agent
2780827805
must set the <code>img</code> element's <span>current request</span>'s <span
2780927806
data-x="img-req-state">state</span> to <span data-x="img-all">completely available</span> and
27810-
<span>queue a task</span> to <span data-x="concept-event-fire">fire an event</span> named
27811-
<code data-x="event-load">load</code> at the <code>img</code> element.</p>
27807+
<span>queue an element task</span> on the <span>DOM manipulation task source</span> given the
27808+
<code>img</code> element to <span data-x="concept-event-fire">fire an event</span> named <code
27809+
data-x="event-load">load</code> at the <code>img</code> element.</p>
2781227810
<!--TODO what if the image is broken?
2781327811
TODO change state and fire in the same task? -->
2781427812
</dd>
@@ -27891,7 +27889,8 @@ was an English &lt;a href="/wiki/Music_hall">music hall&lt;/a> singer, ...</code
2789127889
data-x="img-error">broken</span>, <span>abort the image request</span> for the <span>current
2789227890
request</span> and the <span>pending request</span>, <span>upgrade the pending request to the
2789327891
current request</span> if <var>image request</var> is the <span>pending request</span>, and
27894-
then <span>queue a task</span> to <span data-x="concept-event-fire">fire an event</span> named
27892+
then <span>queue an element task</span> on the <span>DOM manipulation task source</span> given
27893+
the <code>img</code> element to <span data-x="concept-event-fire">fire an event</span> named
2789527894
<code data-x="event-error">error</code> at the <code>img</code> element.</p></dd>
2789627895
</dl>
2789727896
</li>
@@ -30319,8 +30318,8 @@ interface <dfn>HTMLEmbedElement</dfn> : <span>HTMLElement</span> {
3031930318
remaining <span data-x="concept-embed-active">potentially active</span> and has its <code
3032030319
data-x="attr-embed-type">src</code> attribute set, changed, or removed or its <code
3032130320
data-x="attr-embed-type">type</code> attribute set, changed, or removed, the user agent must
30322-
<span>queue a task</span> using the <dfn>embed task source</dfn> to run <span>the
30323-
<code>embed</code> element setup steps</span> for that element.</p>
30321+
<span>queue an element task</span> on the <dfn>embed task source</dfn> given the element
30322+
to run <span>the <code>embed</code> element setup steps</span> for that element.</p>
3032430323

3032530324
<p><dfn>The <code>embed</code> element setup steps</dfn> for a given <code>embed</code> element
3032630325
<var>element</var> are as follows:</p>
@@ -30404,7 +30403,8 @@ interface <dfn>HTMLEmbedElement</dfn> : <span>HTMLElement</span> {
3040430403
context</span>.</p></li>
3040530404

3040630405
<li><p>When the <code>Document</code> of <var>element</var>'s <span>nested browsing
30407-
context</span> is marked as <span>completely loaded</span>, <span>queue a task</span> to
30406+
context</span> is marked as <span>completely loaded</span>, <span>queue an element
30407+
task</span> on the <span>DOM manipulation task source</span> given <var>element</var> to
3040830408
<span data-x="concept-event-fire">fire an event</span> named <code
3040930409
data-x="event-load">load</code> at <var>element</var>.</p></li>
3041030410
</ol>
@@ -30496,8 +30496,9 @@ interface <dfn>HTMLEmbedElement</dfn> : <span>HTMLElement</span> {
3049630496

3049730497
<li><p><var>element</var> now <span>represents</span> this <span>plugin</span> instance.</p></li>
3049830498

30499-
<li><p>Once the plugin, and <var>response</var> if given, are completely loaded, <span>queue a
30500-
task</span> to <span data-x="concept-event-fire">fire an event</span> named <code
30499+
<li><p>Once the plugin, and <var>response</var> if given, are completely loaded, <span>queue an
30500+
element task</span> on the <span>DOM manipulation task source</span> give <var>element</var> to
30501+
<span data-x="concept-event-fire">fire an event</span> named <code
3050130502
data-x="event-load">load</code> at <var>element</var>.</p></li>
3050230503
</ol>
3050330504

@@ -30545,9 +30546,6 @@ interface <dfn>HTMLEmbedElement</dfn> : <span>HTMLElement</span> {
3054530546

3054630547
<p>The <code>embed</code> element <span>potentially delays the load event</span>.</p>
3054730548

30548-
<p>The <span>task source</span> for the <span data-x="concept-task">tasks</span> mentioned in this
30549-
section is the <span>DOM manipulation task source</span>.</p>
30550-
3055130549
</div>
3055230550

3055330551
<p>Any namespace-less attribute other than <code data-x="attr-embed-name">name</code>, <code
@@ -30731,13 +30729,14 @@ interface <dfn>HTMLObjectElement</dfn> : <span>HTMLElement</span> {
3073130729

3073230730
</ul> <!-- Changing the base URL doesn't trigger this. -->
3073330731

30734-
<p>...the user agent must <span>queue a task</span> to run the following steps to (re)determine
30732+
<p>...the user agent must <span>queue an element task</span> on the <span>DOM manipulation task
30733+
source</span> given the <code>object</code> element to run the following steps to (re)determine
3073530734
what the <code>object</code> element represents. This <span data-x="concept-task">task</span>
3073630735
being <span data-x="queue a task">queued</span> or actively running must <span>delay the load
30737-
event</span> of the element's <span>node document</span>. <!--As described in the algorithm, once the algorithm
30738-
starts fetching a resource, the fetch is what starts delaying the load event. But to tide us over
30739-
from when the parser finds the <object> element and the fetching begins, we have to block the load
30740-
event like this, lest the parse end before this task gets run.--></p>
30736+
event</span> of the element's <span>node document</span>. <!--As described in the algorithm, once
30737+
the algorithm starts fetching a resource, the fetch is what starts delaying the load event. But to
30738+
tide us over from when the parser finds the <object> element and the fetching begins, we have to
30739+
block the load event like this, lest the parse end before this task gets run.--></p>
3074130740

3074230741
<ol>
3074330742
<li>
@@ -31087,7 +31086,8 @@ interface <dfn>HTMLObjectElement</dfn> : <span>HTMLElement</span> {
3108731086
gets further navigated to other locations.)</p>
3108831087

3108931088
<p>If the <span>URL</span> of the given resource <em>is</em> <code>about:blank</code>, then,
31090-
instead, the user agent must <span>queue a task</span> to <span
31089+
instead, the user agent must <span>queue an element task</span> on the <span>DOM
31090+
manipulation task source</span> given the <code>object</code> element to <span
3109131091
data-x="concept-event-fire">fire an event</span> named <code data-x="event-load">load</code>
3109231092
at the <code>object</code> element. <span class="note">No <code
3109331093
data-x="event-load">load</code> event is fired at the <code>about:blank</code> document
@@ -31144,9 +31144,10 @@ interface <dfn>HTMLObjectElement</dfn> : <span>HTMLElement</span> {
3114431144
represents.</p>
3114531145

3114631146
<li>
31147-
<p>Return. Once the resource is completely loaded, <span>queue a task</span> to
31148-
<span data-x="concept-event-fire">fire an event</span> named <code
31149-
data-x="event-load">load</code> at the element.</p>
31147+
<p>Return. Once the resource is completely loaded, <span>queue an element task</span> on the
31148+
<span>DOM manipulation task source</span> given the <code>object</code> element to <span
31149+
data-x="concept-event-fire">fire an event</span> named <code data-x="event-load">load</code>
31150+
at the element.</p>
3115031151
</li>
3115131152
</ol>
3115231153
</li>
@@ -31159,7 +31160,8 @@ interface <dfn>HTMLObjectElement</dfn> : <span>HTMLElement</span> {
3115931160
<span data-x="concept-plugin-secure">secured</span>, then that <span>plugin</span> <a
3116031161
href="#object-plugin">should be used</a>. If these conditions cannot be met, or if the
3116131162
<span>plugin</span> reports an error, jump to the step below labeled <i>fallback</i>. Otherwise
31162-
return; once the plugin is completely loaded, <span>queue a task</span> to <span
31163+
return; once the plugin is completely loaded, <span>queue an element task</span> on the
31164+
<span>DOM manipulation task source</span> given the <code>object</code> element to <span
3116331165
data-x="concept-event-fire">fire an event</span> named <code data-x="event-load">load</code> at
3116431166
the element.</p></li>
3116531167

@@ -31194,9 +31196,6 @@ interface <dfn>HTMLObjectElement</dfn> : <span>HTMLElement</span> {
3119431196

3119531197
<p>The <code>object</code> element <span>potentially delays the load event</span>.</p>
3119631198

31197-
<p>The <span>task source</span> for the <span data-x="concept-task">tasks</span> mentioned in this
31198-
section is the <span>DOM manipulation task source</span>.</p>
31199-
3120031199
</div>
3120131200

3120231201
<p>The <code data-x="attr-hyperlink-usemap">usemap</code> attribute, if present while the
@@ -31637,7 +31636,8 @@ interface <dfn>HTMLVideoElement</dfn> : <span>HTMLMediaElement</span> {
3163731636
(including, for example, because the <span data-x="dom-VideoTrack-selected">selected video
3163831637
track</span> was changed), if the element's <code data-x="dom-media-readyState">readyState</code>
3163931638
attribute is not <code data-x="dom-media-HAVE_NOTHING">HAVE_NOTHING</code>, the user agent must
31640-
<span>queue a task</span> to <span data-x="concept-event-fire">fire an event</span> named <code
31639+
<span>queue an element task</span> on the <span>media element event task source</span> given the
31640+
<span>media element</span> to <span data-x="concept-event-fire">fire an event</span> named <code
3164131641
data-x="event-media-resize">resize</code> at the <span>media element</span>.</p>
3164231642

3164331643
</div>
@@ -49413,7 +49413,8 @@ interface <dfn>HTMLSelectElement</dfn> : <span>HTMLElement</span> {
4941349413
user agent must <span>send <code>select</code> update notifications</span>.</p>
4941449414

4941549415
<p>When the user agent is to <dfn>send <code>select</code> update notifications</dfn>, <span>queue
49416-
a task</span>, using the <span>user interaction task source</span>, to run these steps:</p>
49416+
an element task</span> on the <span>user interaction task source</span> given the <code>select</code>
49417+
element to run these steps:</p>
4941749418

4941849419
<ol>
4941949420
<li><p><span data-x="concept-event-fire">Fire an event</span> named <code
@@ -50309,12 +50310,13 @@ interface <dfn>HTMLTextAreaElement</dfn> : <span>HTMLElement</span> {
5030950310
data-x="attr-textarea-readonly">readonly</code> attribute specified.</p>
5031050311

5031150312
<p>When a <code>textarea</code> is <span data-x="concept-fe-mutable">mutable</span>, its <span
50312-
data-x="concept-textarea-raw-value">raw value</span> should be editable by the user: the user agent
50313-
should allow the user to edit, insert, and remove text, and to insert and remove line breaks in
50314-
the form of U+000A LINE FEED (LF) characters. Any time the user causes the element's <span
50315-
data-x="concept-textarea-raw-value">raw value</span> to change, the user agent must <span>queue a
50316-
task</span> to <span data-x="concept-event-fire">fire an event</span> named <code
50317-
data-x="event-input">input</code> at the <code>textarea</code> element, with the <code
50313+
data-x="concept-textarea-raw-value">raw value</span> should be editable by the user: the user
50314+
agent should allow the user to edit, insert, and remove text, and to insert and remove line breaks
50315+
in the form of U+000A LINE FEED (LF) characters. Any time the user causes the element's <span
50316+
data-x="concept-textarea-raw-value">raw value</span> to change, the user agent must <span>queue an
50317+
element task</span> on the <span>user interaction task source</span> given the
50318+
<code>textarea</code> element to <span data-x="concept-event-fire">fire an event</span> named
50319+
<code data-x="event-input">input</code> at the <code>textarea</code> element, with the <code
5031850320
data-x="dom-Event-bubbles">bubbles</code> attribute initialized to true. User agents may wait for
5031950321
a suitable break in the user's interaction before queuing the task; for example, a user agent
5032050322
could wait for the user to have not hit a key for 100ms, so as to only fire the event when the
@@ -54245,8 +54247,8 @@ MIT Room 32-G524
5424554247

5424654248
<li><p>If the previous steps caused the <span
5424754249
data-x="concept-textarea/input-selection">selection</span> of the text control to be modified (in
54248-
either extent or <span data-x="selection direction">direction</span>), then <span>queue a
54249-
task</span>, using the <span>user interaction task source</span>, to <span
54250+
either extent or <span data-x="selection direction">direction</span>), then <span>queue an
54251+
element task</span> on the <span>user interaction task source</span> given the element to <span
5425054252
data-x="concept-event-fire">fire an event</span> named <code data-x="event-select">select</code>
5425154253
at the element, with the <code data-x="dom-Event-bubbles">bubbles</code> attribute initialized to
5425254254
true.</p></li>
@@ -112497,10 +112499,11 @@ details[open] > summary {
112497112499
<span>'inline-block'</span> box depicting a text control that obscures data entry.</p>
112498112500

112499112501
<p>If these text controls provide a text selection, then, when the user changes the current
112500-
selection, the user agent is expected to <span>queue a task</span>, using the <span>user
112501-
interaction task source</span>, to <span data-x="concept-event-fire">fire an event</span> named
112502-
<code data-x="event-select">select</code> at the element, with the <code
112503-
data-x="dom-Event-bubbles">bubbles</code> attribute initialized to true.</p>
112502+
selection, the user agent is expected to <span>queue an element task</span> on the <span>user
112503+
interaction task source</span> given the <code>input</code> element to <span
112504+
data-x="concept-event-fire">fire an event</span> named <code data-x="event-select">select</code>
112505+
at the element, with the <code data-x="dom-Event-bubbles">bubbles</code> attribute initialized to
112506+
true.</p>
112504112507

112505112508
<p>If an <code>input</code> element whose <code data-x="attr-input-type">type</code> attribute is
112506112509
in one of the above states has a <code data-x="attr-input-size">size</code> attribute, and parsing
@@ -112931,11 +112934,11 @@ marquee {
112931112934

112932112935
<p>The <code>textarea</code> element is expected to render as an <span>'inline-block'</span> box
112933112936
depicting a multiline text control. If this multiline text control provides a selection, then,
112934-
when the user changes the current selection, the user agent is expected to <span>queue a
112935-
task</span>, using the <span>user interaction task source</span>, to <span
112936-
data-x="concept-event-fire">fire an event</span> named <code data-x="event-select">select</code>
112937-
at the element, with the <code data-x="dom-Event-bubbles">bubbles</code> attribute initialized to
112938-
true.</p>
112937+
when the user changes the current selection, the user agent is expected to <span>queue an element
112938+
task</span> on the <span>user interaction task source</span> given the <code>textarea</code>
112939+
element to <span data-x="concept-event-fire">fire an event</span> named <code
112940+
data-x="event-select">select</code> at the element, with the <code
112941+
data-x="dom-Event-bubbles">bubbles</code> attribute initialized to true.</p>
112939112942

112940112943
<p>If the element has a <code data-x="attr-textarea-cols">cols</code> attribute, and parsing that
112941112944
attribute's value using the <span>rules for parsing non-negative integers</span> doesn't generate
@@ -114236,9 +114239,9 @@ interface <dfn>HTMLFrameSetElement</dfn> : <span>HTMLElement</span> {
114236114239
<dt>If the element has no <code undefined data-x="attr-frame-src">src</code> attribute specified,
114237114240
and the user agent is processing the <code>frame</code>'s attributes for the first time</dt>
114238114241

114239-
<dd><p><span>Queue a task</span> to <span data-x="concept-event-fire">fire an event</span> named
114240-
<code data-x="event-load">load</code> at the <code>frame</code> element using the <span>DOM
114241-
manipulation task source</span>.</p></dd>
114242+
<dd><p><span>Queue an element task</span> on the <span>DOM manipulation task source</span> given
114243+
the <code>frame</code> element to <span data-x="concept-event-fire">fire an event</span> named
114244+
<code data-x="event-load">load</code> at the <code>frame</code> element.</p></dd>
114242114245

114243114246
<dt>Otherwise</dt>
114244114247

0 commit comments

Comments
 (0)