Skip to content

Commit 333a016

Browse files
committed
Skip looping the media element when paused
The existing steps cause a seek to the end of the media resource while paused to seek to the start immediately after. This differs from implementations in Chrome, Firefox and Safari. Fixes #11774
1 parent b50031e commit 333a016

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

source

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39688,13 +39688,20 @@ interface <dfn interface>MediaError</dfn> {
3968839688
agent must follow these steps:</p>
3968939689

3969039690
<ol>
39691-
<li><p>If the <span>media element</span> has a <code data-x="attr-media-loop">loop</code>
39692-
attribute specified, then <span data-x="dom-media-seek">seek</span> to the <span>earliest
39693-
possible position</span> of the <span>media resource</span> and return.</p></li>
39694-
<!-- v2/v3: We should fire a 'looping' event here to explain why this immediately fires a
39695-
'playing' event, otherwise the 'playing' event that fires from the readyState going from
39696-
HAVE_CURRENT_DATA back to HAVE_FUTURE_DATA will seem inexplicable (since the normally matching
39697-
'ended' given below event doesn't fire in the loop case). -->
39691+
<li>
39692+
<p>If the <span>media element</span> has a <code data-x="attr-media-loop">loop</code>
39693+
attribute specified, then:</p>
39694+
39695+
<ol>
39696+
<li><p>If <span data-x="dom-media-paused">paused</span> is false, <span data-x="dom-media-seek">
39697+
seek</span> to the <span>earliest possible position</span> of the <span>media resource</span>
39698+
and return.</p></li>
39699+
<!-- v2/v3: We should fire a 'looping' event here to explain why this immediately fires a
39700+
'playing' event, otherwise the 'playing' event that fires from the readyState going from
39701+
HAVE_CURRENT_DATA back to HAVE_FUTURE_DATA will seem inexplicable (since the normally matching
39702+
'ended' given below event doesn't fire in the loop case). -->
39703+
</ol>
39704+
</li>
3969839705

3969939706
<li><p>As defined above, the <code data-x="dom-media-ended">ended</code> IDL attribute starts
3970039707
returning true once the <span>event loop</span> returns to <a href="#step1">step 1</a>.</p></li>
@@ -39943,7 +39950,10 @@ interface <dfn interface>MediaError</dfn> {
3994339950
data-x="dom-media-readyState">readyState</code> attribute has the value <code
3994439951
data-x="dom-media-HAVE_FUTURE_DATA">HAVE_FUTURE_DATA</code> or <code
3994539952
data-x="dom-media-HAVE_ENOUGH_DATA">HAVE_ENOUGH_DATA</code>: <span>notify about playing</span>
39946-
for the element.</p>
39953+
for the element, and if playback was paused and loop was specified the last time playback <a
39954+
href="#reaches-the-end">reached the end</a> (i.e. when the <span>official playback
39955+
position</span> is still the <span>duration</span> at this step), seek to the <span>earliest
39956+
possible position</span>.</p>
3994739957
</li>
3994839958
</ol>
3994939959
</li>

0 commit comments

Comments
 (0)