Changeset 185733 in webkit
- Timestamp:
- Jun 18, 2015, 8:46:06 PM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
-
ChangeLog (modified) (1 diff)
-
platform/RuntimeApplicationChecksIOS.h (modified) (1 diff)
-
platform/RuntimeApplicationChecksIOS.mm (modified) (1 diff)
-
platform/ios/WebVideoFullscreenInterfaceAVKit.mm (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r185731 r185733 1 2015-06-18 Jeremy Jones <jeremyj@apple.com> 2 3 Disable UIWindow for fullscreen video for selected clients. 4 https://bugs.webkit.org/show_bug.cgi?id=145852 5 6 Reviewed by Simon Fraser. 7 8 Disable UIWindow for fullscreen video doesn't work everywhere (rdar://problem/21315993), so just disable it when creating a UIWindow won't work. 9 Fix some interface hiding and layout problems that showed up in the non UIWindow code path. 10 11 * platform/RuntimeApplicationChecksIOS.h: 12 * platform/RuntimeApplicationChecksIOS.mm: Remove iAD bundle identifier. 13 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: 14 (WebVideoFullscreenInterfaceAVKit::setupFullscreen): Opt out of UIWindow when hosted in another process. And fix view parenting for non-window case. 15 (WebVideoFullscreenInterfaceAVKit::exitFullscreen): Fix for AVKit exit fullscreen complaining about -needsLayout. 16 17 (WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen): 18 (WebVideoFullscreenInterfaceAVKit::preparedToReturnToInline): 19 (WebVideoFullscreenInterfaceAVKit::willStartOptimizedFullscreen): 20 (WebVideoFullscreenInterfaceAVKit::didStartOptimizedFullscreen): 21 (WebVideoFullscreenInterfaceAVKit::willStopOptimizedFullscreen): 22 (WebVideoFullscreenInterfaceAVKit::didStopOptimizedFullscreen): 23 These hide and show the view controller where we hide and show the window. 24 1 25 2015-06-18 Dean Jackson <dino@apple.com> 2 26 -
trunk/Source/WebCore/platform/RuntimeApplicationChecksIOS.h
r172849 r185733 30 30 namespace WebCore { 31 31 32 bool applicationIsAdSheet();33 32 WEBCORE_EXPORT bool applicationIsMobileMail(); 34 33 WEBCORE_EXPORT bool applicationIsMobileSafari(); -
trunk/Source/WebCore/platform/RuntimeApplicationChecksIOS.mm
r184555 r185733 31 31 32 32 namespace WebCore { 33 34 bool applicationIsAdSheet()35 {36 static const bool isAdSheet = [[[NSBundle mainBundle] bundleIdentifier] isEqualToString:@"com.apple.AdSheetPhone"];37 return isAdSheet;38 }39 33 40 34 bool applicationIsMobileMail() -
trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm
r185727 r185733 877 877 } 878 878 879 @interface UIWindow () 880 -(BOOL)_isHostedInAnotherProcess; 881 @end 882 879 883 void WebVideoFullscreenInterfaceAVKit::setupFullscreen(PlatformLayer& videoLayer, const WebCore::IntRect& initialRect, UIView* parentView, HTMLMediaElementEnums::VideoFullscreenMode mode, bool allowsPictureInPicturePlayback) 880 884 { … … 891 895 m_parentWindow = parentView.window; 892 896 893 if (! applicationIsAdSheet()) {897 if (![[parentView window] _isHostedInAnotherProcess]) { 894 898 m_window = adoptNS([allocUIWindowInstance() initWithFrame:[[getUIScreenClass() mainScreen] bounds]]); 895 899 [m_window setBackgroundColor:[getUIColorClass() clearColor]]; … … 927 931 [m_viewController addChildViewController:m_playerViewController.get()]; 928 932 [[m_viewController view] addSubview:[m_playerViewController view]]; 929 [m_playerViewController view].frame = [parentView convertRect:initialRect toView:nil]; 930 } else { 931 [parentView addSubview:[m_playerViewController view]]; 932 [m_playerViewController view].frame = initialRect; 933 } 933 } else 934 [parentView.window addSubview:[m_playerViewController view]]; 935 936 [m_playerViewController view].frame = [parentView convertRect:initialRect toView:nil]; 934 937 935 938 [[m_playerViewController view] setBackgroundColor:[getUIColorClass() clearColor]]; … … 1003 1006 [m_videoLayerContainer setVideoLayerGravity:AVVideoLayerGravityResizeAspect]; 1004 1007 [[m_playerViewController view] layoutIfNeeded]; 1005 1006 1008 1007 1009 if (isMode(HTMLMediaElementEnums::VideoFullscreenModePictureInPicture)) { … … 1106 1108 1107 1109 [m_window setHidden:YES]; 1110 [[m_playerViewController view] setHidden:YES]; 1108 1111 1109 1112 if (m_videoFullscreenModel && !m_exitRequested) { … … 1118 1121 if (m_prepareToInlineCallback) { 1119 1122 1120 if (m_viewController) 1121 [m_playerViewController view].frame = [m_parentView convertRect:inlineRect toView:nil]; 1122 else 1123 [m_playerViewController view].frame = inlineRect; 1123 [m_playerViewController view].frame = [m_parentView convertRect:inlineRect toView:nil]; 1124 1124 1125 1125 std::function<void(bool)> callback = WTF::move(m_prepareToInlineCallback); … … 1154 1154 if (!visible) { 1155 1155 [m_window setHidden:YES]; 1156 [[m_playerViewController view] setHidden:YES]; 1156 1157 return; 1157 1158 } … … 1164 1165 clearMode(HTMLMediaElementEnums::VideoFullscreenModeStandard); 1165 1166 [m_window setHidden:YES]; 1167 [[m_playerViewController view] setHidden:YES]; 1166 1168 }]; 1167 1169 }); … … 1173 1175 [m_playerViewController setShowsPlaybackControls:YES]; 1174 1176 [m_window setHidden:YES]; 1177 [[m_playerViewController view] setHidden:YES]; 1175 1178 1176 1179 if (m_fullscreenChangeObserver) … … 1199 1202 LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::willStopPictureInPicture(%p)", this); 1200 1203 [m_window setHidden:NO]; 1204 [[m_playerViewController view] setHidden:NO]; 1201 1205 1202 1206 if (m_videoFullscreenModel) … … 1217 1221 clearMode(HTMLMediaElementEnums::VideoFullscreenModePictureInPicture); 1218 1222 [m_window setHidden:YES]; 1223 [[m_playerViewController view] setHidden:YES]; 1219 1224 1220 1225 if (m_fullscreenChangeObserver)
Note:
See TracChangeset
for help on using the changeset viewer.