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