Title: [214407] trunk/Source/WebCore
- Revision
- 214407
- Author
- cdu...@apple.com
- Date
- 2017-03-25 20:52:40 -0700 (Sat, 25 Mar 2017)
Log Message
REGRESSION(r214195): zillow.com header video doesn't resume when switching to another tab and back
https://bugs.webkit.org/show_bug.cgi?id=170080
<rdar://problem/31252522>
Reviewed by Eric Carlson.
The video header on zillow.com would pause when switching to another tab after r214195. On
switching back to the zillow.com tab, we would resume the video but fail to take the poster
away, making it look like the video is still paused.
We normally take the poster away when HTMLMediaElement::mediaPlayerFirstVideoFrameAvailable()
is called. However, mediaPlayerFirstVideoFrameAvailable() was only ever called once because of
the m_haveReportedFirstVideoFrame flag in MediaPlayerPrivateAVFoundation::updateStates().
We now reset m_haveReportedFirstVideoFrame to false in updateStates() if hasAvailableVideoFrame()
return false, so that we call mediaPlayerFirstVideoFrameAvailable() again when the return
value of asAvailableVideoFrame() becomes true again (e.g. after the media session interruption
has ended).
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::updateStates):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (214406 => 214407)
--- trunk/Source/WebCore/ChangeLog 2017-03-26 00:53:24 UTC (rev 214406)
+++ trunk/Source/WebCore/ChangeLog 2017-03-26 03:52:40 UTC (rev 214407)
@@ -1,3 +1,26 @@
+2017-03-25 Chris Dumez <cdu...@apple.com>
+
+ REGRESSION(r214195): zillow.com header video doesn't resume when switching to another tab and back
+ https://bugs.webkit.org/show_bug.cgi?id=170080
+ <rdar://problem/31252522>
+
+ Reviewed by Eric Carlson.
+
+ The video header on zillow.com would pause when switching to another tab after r214195. On
+ switching back to the zillow.com tab, we would resume the video but fail to take the poster
+ away, making it look like the video is still paused.
+
+ We normally take the poster away when HTMLMediaElement::mediaPlayerFirstVideoFrameAvailable()
+ is called. However, mediaPlayerFirstVideoFrameAvailable() was only ever called once because of
+ the m_haveReportedFirstVideoFrame flag in MediaPlayerPrivateAVFoundation::updateStates().
+ We now reset m_haveReportedFirstVideoFrame to false in updateStates() if hasAvailableVideoFrame()
+ return false, so that we call mediaPlayerFirstVideoFrameAvailable() again when the return
+ value of asAvailableVideoFrame() becomes true again (e.g. after the media session interruption
+ has ended).
+
+ * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
+ (WebCore::MediaPlayerPrivateAVFoundation::updateStates):
+
2017-03-24 Wenson Hsieh <wenson_hs...@apple.com>
[WK2] Add a UI delegate SPI hook to enable or disable navigation on drop
Modified: trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp (214406 => 214407)
--- trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp 2017-03-26 00:53:24 UTC (rev 214406)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp 2017-03-26 03:52:40 UTC (rev 214407)
@@ -561,7 +561,8 @@
newReadyState = MediaPlayer::HaveCurrentData;
m_haveReportedFirstVideoFrame = true;
m_player->firstVideoFrameAvailable();
- }
+ } else if (!hasAvailableVideoFrame())
+ m_haveReportedFirstVideoFrame = false;
#if !LOG_DISABLED
if (m_networkState != newNetworkState || m_readyState != newReadyState) {
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes