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