Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(559)

Unified Diff: Source/core/html/HTMLMediaElement.cpp

Issue 535703002: HTMLMediaElement shouldn't call currentTime() when we HAVE_NOTHING. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: fixes Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/html/HTMLMediaElement.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/html/HTMLMediaElement.cpp
diff --git a/Source/core/html/HTMLMediaElement.cpp b/Source/core/html/HTMLMediaElement.cpp
index 91ef6708e6f5e78594ef9b36ad751aec9955cc39..f388d2b6d1134bbfcf4aaa5c166cd1cc400172d6 100644
--- a/Source/core/html/HTMLMediaElement.cpp
+++ b/Source/core/html/HTMLMediaElement.cpp
@@ -331,8 +331,6 @@ HTMLMediaElement::HTMLMediaElement(const QualifiedName& tagName, Document& docum
, m_preload(MediaPlayer::Auto)
, m_displayMode(Unknown)
, m_cachedTime(MediaPlayer::invalidTime())
- , m_cachedTimeWallClockUpdateTime(0)
- , m_minimumWallClockTimeToCacheMediaTime(0)
, m_fragmentStartTime(MediaPlayer::invalidTime())
, m_fragmentEndTime(MediaPlayer::invalidTime())
, m_pendingActionFlags(0)
@@ -790,9 +788,7 @@ void HTMLMediaElement::prepareForLoad()
// FIXME: Add support for firing this event.
// 4.8 - Set the initial playback position to 0.
- // FIXME: Make this less subtle. The position only becomes 0 because of the createMediaPlayer() call
- // above.
- refreshCachedTime();
+ // FIXME: Make this less subtle. The position only becomes 0 because the ready state is HAVE_NOTHING.
invalidateCachedTime();
// 4.9 - Set the timeline offset to Not-a-Number (NaN).
@@ -2047,33 +2043,21 @@ bool HTMLMediaElement::seeking() const
void HTMLMediaElement::refreshCachedTime() const
{
- if (!webMediaPlayer())
+ if (!webMediaPlayer() || m_readyState < HAVE_METADATA)
philipj_slow 2014/09/03 09:11:00 This reminds me of http://crbug.com/382721 which w
scherkus (not reviewing) 2014/09/03 17:03:45 While m_readyState >= HAVE_METADATA certainly impl
return;
m_cachedTime = webMediaPlayer()->currentTime();
- m_cachedTimeWallClockUpdateTime = WTF::currentTime();
}
void HTMLMediaElement::invalidateCachedTime()
{
WTF_LOG(Media, "HTMLMediaElement::invalidateCachedTime");
-
- // Don't try to cache movie time when playback first starts as the time reported by the engine
- // sometimes fluctuates for a short amount of time, so the cached time will be off if we take it
- // too early.
- static const double minimumTimePlayingBeforeCacheSnapshot = 0.5;
-
- m_minimumWallClockTimeToCacheMediaTime = WTF::currentTime() + minimumTimePlayingBeforeCacheSnapshot;
m_cachedTime = MediaPlayer::invalidTime();
}
// playback state
double HTMLMediaElement::currentTime() const
{
-#if LOG_CACHED_TIME_WARNINGS
- static const double minCachedDeltaForWarning = 0.01;
-#endif
-
if (m_readyState == HAVE_NOTHING)
return 0;
@@ -2084,6 +2068,7 @@ double HTMLMediaElement::currentTime() const
if (m_cachedTime != MediaPlayer::invalidTime() && m_paused) {
#if LOG_CACHED_TIME_WARNINGS
+ static const double minCachedDeltaForWarning = 0.01;
double delta = m_cachedTime - webMediaPlayer()->currentTime();
if (delta > minCachedDeltaForWarning)
WTF_LOG(Media, "HTMLMediaElement::currentTime - WARNING, cached time is %f seconds off of media time when paused", delta);
@@ -3416,6 +3401,7 @@ void HTMLMediaElement::userCancelledLoad()
// Reset m_readyState since m_player is gone.
m_readyState = HAVE_NOTHING;
+ invalidateCachedTime();
updateMediaController();
updateActiveTextTrackCues(0);
}
« no previous file with comments | « Source/core/html/HTMLMediaElement.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698