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

Reply via email to