Title: [230357] trunk/Source/WebCore
- Revision
- 230357
- Author
- [email protected]
- Date
- 2018-04-06 16:26:03 -0700 (Fri, 06 Apr 2018)
Log Message
[Extra zoom mode] Block playback until fullscreen begins
https://bugs.webkit.org/show_bug.cgi?id=184371
<rdar://problem/39250891>
Reviewed by Youenn Fablet.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updatePlayState): Return early when waiting to enter fullscreen.
(WebCore::HTMLMediaElement::enterFullscreen): Set m_waitingToEnterFullscreen.
(WebCore::HTMLMediaElement::exitFullscreen): Clear m_waitingToEnterFullscreen.
(WebCore::HTMLMediaElement::didBecomeFullscreenElement): Ditto.
* html/HTMLMediaElement.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (230356 => 230357)
--- trunk/Source/WebCore/ChangeLog 2018-04-06 22:54:37 UTC (rev 230356)
+++ trunk/Source/WebCore/ChangeLog 2018-04-06 23:26:03 UTC (rev 230357)
@@ -1,3 +1,18 @@
+2018-04-06 Eric Carlson <[email protected]>
+
+ [Extra zoom mode] Block playback until fullscreen begins
+ https://bugs.webkit.org/show_bug.cgi?id=184371
+ <rdar://problem/39250891>
+
+ Reviewed by Youenn Fablet.
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::updatePlayState): Return early when waiting to enter fullscreen.
+ (WebCore::HTMLMediaElement::enterFullscreen): Set m_waitingToEnterFullscreen.
+ (WebCore::HTMLMediaElement::exitFullscreen): Clear m_waitingToEnterFullscreen.
+ (WebCore::HTMLMediaElement::didBecomeFullscreenElement): Ditto.
+ * html/HTMLMediaElement.h:
+
2018-04-06 Brent Fulgham <[email protected]>
WebCore::screenSupportsExtendedColor improperly calls NSScreen functions in the WebContent process
Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (230356 => 230357)
--- trunk/Source/WebCore/html/HTMLMediaElement.cpp 2018-04-06 22:54:37 UTC (rev 230356)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp 2018-04-06 23:26:03 UTC (rev 230357)
@@ -5262,8 +5262,10 @@
INFO_LOG(LOGIDENTIFIER, "shouldBePlaying = ", shouldBePlaying, ", playerPaused = ", playerPaused);
- if (shouldBePlaying && playerPaused && m_mediaSession->requiresFullscreenForVideoPlayback(*this) && !isFullscreen()) {
- enterFullscreen();
+ if (shouldBePlaying && playerPaused && m_mediaSession->requiresFullscreenForVideoPlayback(*this) && (m_waitingToEnterFullscreen || !isFullscreen())) {
+ if (!m_waitingToEnterFullscreen)
+ enterFullscreen();
+
#if ENABLE(EXTRA_ZOOM_MODE)
// FIXME: Investigate doing this for all builds.
return;
@@ -5842,6 +5844,7 @@
return;
m_temporarilyAllowingInlinePlaybackAfterFullscreen = false;
+ m_waitingToEnterFullscreen = true;
#if ENABLE(FULLSCREEN_API)
if (document().settings().fullScreenEnabled()) {
@@ -5884,6 +5887,8 @@
{
INFO_LOG(LOGIDENTIFIER);
+ m_waitingToEnterFullscreen = false;
+
#if ENABLE(FULLSCREEN_API)
if (document().settings().fullScreenEnabled() && document().webkitCurrentFullScreenElement() == this) {
if (document().webkitIsFullScreen())
@@ -5977,6 +5982,7 @@
void HTMLMediaElement::didBecomeFullscreenElement()
{
+ m_waitingToEnterFullscreen = false;
if (hasMediaControls())
mediaControls()->enteredFullscreen();
updatePlayState(UpdateState::Asynchronously);
Modified: trunk/Source/WebCore/html/HTMLMediaElement.h (230356 => 230357)
--- trunk/Source/WebCore/html/HTMLMediaElement.h 2018-04-06 22:54:37 UTC (rev 230356)
+++ trunk/Source/WebCore/html/HTMLMediaElement.h 2018-04-06 23:26:03 UTC (rev 230357)
@@ -1074,6 +1074,7 @@
#endif
bool m_isScrubbingRemotely : 1;
+ bool m_waitingToEnterFullscreen : 1;
#if ENABLE(VIDEO_TRACK)
bool m_tracksAreReady : 1;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes