REGRESSION (r233974): Cannot close pip'd video; pops back into PiP.
authorjer.noble@apple.com <jer.noble@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 21 Jul 2018 00:42:20 +0000 (00:42 +0000)
committerjer.noble@apple.com <jer.noble@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 21 Jul 2018 00:42:20 +0000 (00:42 +0000)
https://bugs.webkit.org/show_bug.cgi?id=187873

Reviewed by Jon Lee.

When the PIP machinery on Mac wants to close the PIP window (due to the close button being clicked), it does
not consult our -shouldClosePiP handler; it just tells us that we're going to close. So we never setup the
necessary state on the WebProcess side and still think that our "targetIsFullscreen". When we get the "stop"
action, just request exit fullscreen, but set up the _pipState to think we're already exiting (because we are).

* platform/mac/VideoFullscreenInterfaceMac.mm:
(-[WebVideoFullscreenInterfaceMacObjC pipActionStop:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234078 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/mac/VideoFullscreenInterfaceMac.mm

index 71524d8..802e5dd 100644 (file)
@@ -1,3 +1,18 @@
+2018-07-20  Jer Noble  <jer.noble@apple.com>
+
+        REGRESSION (r233974): Cannot close pip'd video; pops back into PiP.
+        https://bugs.webkit.org/show_bug.cgi?id=187873
+
+        Reviewed by Jon Lee.
+
+        When the PIP machinery on Mac wants to close the PIP window (due to the close button being clicked), it does
+        not consult our -shouldClosePiP handler; it just tells us that we're going to close. So we never setup the 
+        necessary state on the WebProcess side and still think that our "targetIsFullscreen". When we get the "stop"
+        action, just request exit fullscreen, but set up the _pipState to think we're already exiting (because we are).
+
+        * platform/mac/VideoFullscreenInterfaceMac.mm:
+        (-[WebVideoFullscreenInterfaceMacObjC pipActionStop:]):
+
 2018-07-20  Justin Fan  <justin_fan@apple.com>
 
         Safari WebGL does not consistently provide correct GPU context on eGPU systems
index bf676f7..8d24133 100644 (file)
@@ -335,8 +335,8 @@ enum class PIPState {
     if (PlaybackSessionModel* playbackSessionModel = _videoFullscreenInterfaceMac->playbackSessionModel())
         playbackSessionModel->pause();
 
-    // FIXME 25096170: Should animate only if the page with the video is unobscured. For now, always close without animation.
-    [self exitPIP];
+    _videoFullscreenInterfaceMac->requestHideAndExitFullscreen();
+    _pipState = PIPState::ExitingPIP;
 }
 
 @end