Title: [182069] trunk/Source/WebCore
Revision
182069
Author
[email protected]
Date
2015-03-27 10:30:38 -0700 (Fri, 27 Mar 2015)

Log Message

HTMLMediaElement will fire 'seeked' before seek completes, leading to currentTime discontinuities.
https://bugs.webkit.org/show_bug.cgi?id=143132

Reviewed by Eric Carlson.

When seeking, if the ready state rises to >= HAVE_CURRENT_DATA, we will fire the 'seeked'
event and continue playback. However, if a media engine updates the ready state before its
seek operation actually completes, the currentTime it returns may still be the time before
the seek.

Wait until both the ready state rises to HAVE_CURRENT_DATA and m_player->seeking() returns
false before firing the 'seeked' event.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (182068 => 182069)


--- trunk/Source/WebCore/ChangeLog	2015-03-27 17:27:47 UTC (rev 182068)
+++ trunk/Source/WebCore/ChangeLog	2015-03-27 17:30:38 UTC (rev 182069)
@@ -1,3 +1,21 @@
+2015-03-27  Jer Noble  <[email protected]>
+
+        HTMLMediaElement will fire 'seeked' before seek completes, leading to currentTime discontinuities.
+        https://bugs.webkit.org/show_bug.cgi?id=143132
+
+        Reviewed by Eric Carlson.
+
+        When seeking, if the ready state rises to >= HAVE_CURRENT_DATA, we will fire the 'seeked'
+        event and continue playback. However, if a media engine updates the ready state before its
+        seek operation actually completes, the currentTime it returns may still be the time before
+        the seek.
+
+        Wait until both the ready state rises to HAVE_CURRENT_DATA and m_player->seeking() returns
+        false before firing the 'seeked' event.
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::parseAttribute):
+
 2015-03-26  Geoffrey Garen  <[email protected]>
 
         Make some more objects use FastMalloc

Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (182068 => 182069)


--- trunk/Source/WebCore/html/HTMLMediaElement.cpp	2015-03-27 17:27:47 UTC (rev 182068)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp	2015-03-27 17:30:38 UTC (rev 182069)
@@ -1972,7 +1972,7 @@
             scheduleEvent(eventNames().waitingEvent);
 
         // 4.8.10.10 step 14 & 15.
-        if (m_readyState >= HAVE_CURRENT_DATA)
+        if (!m_player->seeking() && m_readyState >= HAVE_CURRENT_DATA)
             finishSeek();
     } else {
         if (wasPotentiallyPlaying && m_readyState < HAVE_FUTURE_DATA) {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to