Title: [179067] branches/safari-600.1.4.15-branch/Source/WebCore

Diff

Modified: branches/safari-600.1.4.15-branch/Source/WebCore/ChangeLog (179066 => 179067)


--- branches/safari-600.1.4.15-branch/Source/WebCore/ChangeLog	2015-01-24 18:30:20 UTC (rev 179066)
+++ branches/safari-600.1.4.15-branch/Source/WebCore/ChangeLog	2015-01-24 18:57:44 UTC (rev 179067)
@@ -1,5 +1,27 @@
 2015-01-24  David Kilzer  <[email protected]>
 
+        Merge r175585.
+
+    2014-11-04  Reza Abbasian  <[email protected]>
+
+        [iOS] Fix incorrect interface orientation that can be caused by fullscreen video dismissal.
+        https://bugs.webkit.org/show_bug.cgi?id=137930.
+
+        Reviewed by Jer Noble.
+
+        When a fullscreen video gets dismissed programmatically, for instance for removing
+        a webview from the view hierarchy, it can put the device in an incorrect orientation.
+        Make sure we retain the window of parentView when we attempt to go to fullscreen and use
+        the retained window for putting the device in correct orientation after dismissal.
+
+        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
+        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
+        (WebVideoFullscreenInterfaceAVKit::setupFullscreen):
+        (WebVideoFullscreenInterfaceAVKit::cleanupFullscreen):
+        (WebVideoFullscreenInterfaceAVKit::invalidate):
+
+2015-01-24  David Kilzer  <[email protected]>
+
         Merge r174860.
 
     2014-10-18  Chris Fleizach  <[email protected]>

Modified: branches/safari-600.1.4.15-branch/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h (179066 => 179067)


--- branches/safari-600.1.4.15-branch/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h	2015-01-24 18:30:20 UTC (rev 179066)
+++ branches/safari-600.1.4.15-branch/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h	2015-01-24 18:57:44 UTC (rev 179067)
@@ -79,6 +79,7 @@
     RetainPtr<UIWindow> m_window;
     RetainPtr<UIViewController> m_viewController;
     RetainPtr<UIView> m_parentView;
+    RetainPtr<UIWindow> m_parentWindow;
 
     WebAVPlayerController *playerController();
     

Modified: branches/safari-600.1.4.15-branch/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm (179066 => 179067)


--- branches/safari-600.1.4.15-branch/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm	2015-01-24 18:30:20 UTC (rev 179066)
+++ branches/safari-600.1.4.15-branch/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm	2015-01-24 18:57:44 UTC (rev 179067)
@@ -763,6 +763,7 @@
     [CATransaction begin];
     [CATransaction setDisableActions:YES];
     m_parentView = parentView;
+    m_parentWindow = parentView.window;
 
     if (!applicationIsAdSheet()) {
         m_window = adoptNS([[getUIWindowClass() alloc] initWithFrame:[[getUIScreenClass() mainScreen] bounds]]);
@@ -889,7 +890,8 @@
     if (m_window) {
         [m_window setHidden:YES];
         [m_window setRootViewController:nil];
-        [[getUIApplicationClass() sharedApplication] _setStatusBarOrientation:[[m_parentView window] interfaceOrientation]];
+        if (m_parentWindow)
+            [[getUIApplicationClass() sharedApplication] _setStatusBarOrientation:[m_parentWindow interfaceOrientation]];
     }
     [m_playerViewController setDelegate:nil];
     [[m_playerViewController view] removeFromSuperview];
@@ -906,6 +908,7 @@
     m_viewController = nil;
     m_window = nil;
     m_parentView = nil;
+    m_parentWindow = nil;
     
     RefPtr<WebVideoFullscreenInterfaceAVKit> strongThis(this);
     WebThreadRun([strongThis] {
@@ -935,6 +938,7 @@
     m_viewController = nil;
     m_window = nil;
     m_parentView = nil;
+    m_parentWindow = nil;
 }
 
 void WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen()
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to