It can sometimes take a media engine a non-insignificant amount of time to begin playing after receiving a play command, so do not cache current time until the media engine returns a non-zero value.
Created attachment 224518 [details] Proposed patch.
Comment on attachment 224518 [details] Proposed patch. View in context: https://bugs.webkit.org/attachment.cgi?id=224518&action=review r=me, with nits. > Source/WebCore/ChangeLog:4 > + Do not cache media time until media engine returns a non-zero value > + https://bugs.webkit.org/show_bug.cgi?id=128976 This doesn't say _why_ we shouldn't cache the media time in this case. > Source/WebCore/html/HTMLMediaElement.cpp:2446 > + if (m_cachedTime) { > + LOG(Media, "HTMLMediaElement::refreshCachedTime - caching time %f", m_cachedTime); > + m_clockTimeAtLastCachedTimeUpdate = monotonicallyIncreasingTime(); > + } else > + invalidateCachedTime(); I would structure this a little differently, to be a bit more clear about what's going on: if (!m_cachedTime) { // Short comment about why not caching a 0-currentTime is the right thing to do. invalidateCachedTime(); return; } LOG(Media, "HTMLMediaElement::refreshCachedTime - caching time %f", m_cachedTime); m_clockTimeAtLastCachedTimeUpdate = monotonicallyIncreasingTime();
Committed r164296: https://trac.webkit.org/r164296
Re-opened since this is blocked by bug 128989
Resubmitted as https://trac.webkit.org/r164318.