Title: [179067] branches/safari-600.1.4.15-branch/Source/WebCore
- Revision
- 179067
- Author
- [email protected]
- Date
- 2015-01-24 10:57:44 -0800 (Sat, 24 Jan 2015)
Log Message
Merged r175585. rdar://problem/19419818
Modified Paths
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