Title: [179575] trunk/Source/WebCore
Revision
179575
Author
[email protected]
Date
2015-02-03 15:45:31 -0800 (Tue, 03 Feb 2015)

Log Message

Restore interface before exiting optimized fullscreen mode.
https://bugs.webkit.org/show_bug.cgi?id=141167

Patch by Jeremy Jones <[email protected]> on 2015-02-03
Reviewed by Simon Fraser.

This change allows the user interface to be restored before exiting optimized fullscreen mode.

* platform/ios/WebVideoFullscreenInterfaceAVKit.h: Add declaration.
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(-[WebAVPlayerController playerViewController:restoreUserInterfaceForOptimizedFullscreenStopWithCompletionHandler:]): Added.
(WebVideoFullscreenInterfaceAVKit::fullscreenMayReturnToInline): Added.
* platform/spi/ios/AVKitSPI.h: Add new SPI.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (179574 => 179575)


--- trunk/Source/WebCore/ChangeLog	2015-02-03 23:41:47 UTC (rev 179574)
+++ trunk/Source/WebCore/ChangeLog	2015-02-03 23:45:31 UTC (rev 179575)
@@ -1,5 +1,20 @@
 2015-02-03  Jeremy Jones  <[email protected]>
 
+        Restore interface before exiting optimized fullscreen mode.
+        https://bugs.webkit.org/show_bug.cgi?id=141167
+
+        Reviewed by Simon Fraser.
+
+        This change allows the user interface to be restored before exiting optimized fullscreen mode.
+
+        * platform/ios/WebVideoFullscreenInterfaceAVKit.h: Add declaration.
+        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: 
+        (-[WebAVPlayerController playerViewController:restoreUserInterfaceForOptimizedFullscreenStopWithCompletionHandler:]): Added.
+        (WebVideoFullscreenInterfaceAVKit::fullscreenMayReturnToInline): Added.
+        * platform/spi/ios/AVKitSPI.h: Add new SPI.
+
+2015-02-03  Jeremy Jones  <[email protected]>
+
         Prevent flicker when exiting fullscreen by synchronizing transactions.
         https://bugs.webkit.org/show_bug.cgi?id=140897
 

Modified: trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h (179574 => 179575)


--- trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h	2015-02-03 23:41:47 UTC (rev 179574)
+++ trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h	2015-02-03 23:45:31 UTC (rev 179575)
@@ -94,6 +94,7 @@
     HTMLMediaElement::VideoFullscreenMode mode() const { return m_mode; }
     void setIsOptimized(bool);
     bool mayAutomaticallyShowVideoOptimized();
+    bool fullscreenMayReturnToInline();
 
 protected:
     void beginSession();

Modified: trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm (179574 => 179575)


--- trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm	2015-02-03 23:41:47 UTC (rev 179574)
+++ trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm	2015-02-03 23:45:31 UTC (rev 179575)
@@ -211,6 +211,12 @@
     return NO;
 }
 
+- (void)playerViewController:(AVPlayerViewController *)playerViewController restoreUserInterfaceForOptimizedFullscreenStopWithCompletionHandler:(void (^)(BOOL restored))completionHandler
+{
+    UNUSED_PARAM(playerViewController);
+    completionHandler(self.fullscreenInterface->fullscreenMayReturnToInline());
+}
+
 - (void)play:(id)sender
 {
     UNUSED_PARAM(sender);
@@ -1172,5 +1178,10 @@
     return [m_playerController isPlaying] && m_mode == HTMLMediaElement::VideoFullscreenModeStandard && wkIsOptimizedFullscreenSupported();
 }
 
+bool WebVideoFullscreenInterfaceAVKit::fullscreenMayReturnToInline()
+{
+    m_fullscreenChangeObserver->fullscreenMayReturnToInline();
+    return true;
+}
 
 #endif

Modified: trunk/Source/WebCore/platform/spi/ios/AVKitSPI.h (179574 => 179575)


--- trunk/Source/WebCore/platform/spi/ios/AVKitSPI.h	2015-02-03 23:41:47 UTC (rev 179574)
+++ trunk/Source/WebCore/platform/spi/ios/AVKitSPI.h	2015-02-03 23:45:31 UTC (rev 179575)
@@ -73,6 +73,7 @@
     AVPlayerViewControllerExitFullScreenReasonRemoteControlStopEventReceived = 3,
 };
 - (BOOL)playerViewController:(AVPlayerViewController *)playerViewController shouldExitFullScreenWithReason:(AVPlayerViewControllerExitFullScreenReason)reason;
+- (void)playerViewController:(AVPlayerViewController *)playerViewController restoreUserInterfaceForOptimizedFullscreeStopWithCompletionHandler:(void (^)(BOOL restored))completionHandler;
 @end
 
 typedef NSInteger AVPlayerViewControllerOptimizedFullscreenStopReason;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to