Section 4.8.10.8, "Playing the media resource" says: "A media element is said to have ended playback when the element's readyState attribute is HAVE_METADATA or greater, and either the current playback position is the end of the media resource and the direction of playback is forwards and the media element does not have a loop attribute specified, or the current playback position is the earliest possible position and the direction of playback is backwards." but WebKit's HTMLMediaElement doesn't consider the direction of playback at all.
<rdar://problem/7573699>
Created attachment 47287 [details] Proposed patch
Comment on attachment 47287 [details] Proposed patch r=me but I wonder if the !loop() check should be done for backwards playback. Is reverse looping supposed to work?
Reverse looping isn't supported: 4.8.10.6 The loop attribute is a boolean attribute that, if specified, indicates that the media element is to seek back to the start of the media resource upon reaching the end. and 4.8.10.8 When the current playback position reaches the earliest possible position of the media resource when the direction of playback is backwards, then the user agent must follow these steps: 1. Stop playback. 2. The user agent must queue a task to fire a simple event named timeupdate at the element.
Thanks for the review!
This caused a new failure on Gtk: http://build.webkit.org/results/GTK%20Linux%2032-bit%20Debug/r53780%20(2634)/media/audio-delete-while-slider-thumb-clicked-diffs.txt
Looks like it broke Tiger in the same way: http://build.webkit.org/results/Tiger%20Intel%20Release/r53782%20(8111)/media/audio-delete-while-slider-thumb-clicked-diffs.txt (Just trying to clean up the bots after the commit-bot broke windows last night.)
http://trac.webkit.org/changeset/53786 should fix both, I made the test only log the first 'timeupdate' event.
Thanks! Should this bug stay open for further work, or should we close it?