Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 943ff888b0fde28477028c8d533a69b0f1f2dd80 https://github.com/WebKit/WebKit/commit/943ff888b0fde28477028c8d533a69b0f1f2dd80 Author: Wenson Hsieh <wenson_hs...@apple.com> Date: 2023-09-19 (Tue, 19 Sep 2023)
Changed paths: M Source/WebCore/PAL/pal/spi/ios/UIKitSPI.h M Source/WebCore/SourcesCocoa.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj A Source/WebCore/platform/ios/UIViewControllerUtilities.h A Source/WebCore/platform/ios/UIViewControllerUtilities.mm M Source/WebCore/platform/ios/ValidationBubbleIOS.mm M Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm M Source/WebKit/Platform/spi/ios/UIKitSPI.h M Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm M Source/WebKit/UIProcess/ApplicationStateTracker.mm M Source/WebKit/UIProcess/Cocoa/MediaPermissionUtilities.mm M Source/WebKit/UIProcess/Cocoa/WKContactPicker.mm M Source/WebKit/UIProcess/Cocoa/WKShareSheet.mm M Source/WebKit/UIProcess/Cocoa/WKStorageAccessAlert.mm M Source/WebKit/UIProcess/ios/UIKitUtilities.h M Source/WebKit/UIProcess/ios/UIKitUtilities.mm M Source/WebKit/UIProcess/ios/WKActionSheet.mm M Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm M Source/WebKit/UIProcess/ios/WKWebGeolocationPolicyDeciderIOS.mm M Source/WebKit/UIProcess/ios/forms/WKAirPlayRoutePicker.mm M Source/WebKit/UIProcess/ios/forms/WKDatePickerPopoverController.mm M Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm M Source/WebKit/UIProcess/ios/forms/WKFormColorControl.mm M Source/WebKit/UIProcess/ios/forms/WKFormSelectPicker.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm M Tools/TestWebKitAPI/Tests/ios/ActionSheetTests.mm M Tools/TestWebKitAPI/ios/UIKitSPI.h Log Message: ----------- [iOS] Refactor some `UIViewController`-related code to make testing easier https://bugs.webkit.org/show_bug.cgi?id=261781 rdar://115762143 Reviewed by Aditya Keerthi. Refactor some logic to: 1. Walk the presenting view controller chain in search for a `UIViewController` suitable for presenting popovers and other modal view controllers, and 2. Find the corresponding `UIViewController` for a given `UIView`. ...by pulling these out into helper functions in `UIKitUtilities` and `UIViewControllerUtilities`, respectively. Adopt them everywhere they're needed in WebCore and WebKit, in lieu of the existing UIKit APIs. * Source/WebCore/PAL/pal/spi/ios/UIKitSPI.h: * Source/WebCore/SourcesCocoa.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/platform/ios/UIViewControllerUtilities.h: Copied from Source/WebKit/UIProcess/ios/UIKitUtilities.h. * Source/WebCore/platform/ios/UIViewControllerUtilities.mm: Copied from Source/WebKit/UIProcess/ios/UIKitUtilities.h. (WebCore::viewController): Maintain compatibility with both Safari and system apps by preserving the existing call to `+viewControllerForView:`. * Source/WebCore/platform/ios/ValidationBubbleIOS.mm: (WebCore::fallbackViewController): * Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm: (fallbackViewController): * Source/WebKit/Platform/spi/ios/UIKitSPI.h: * Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _contentInsetsFromSystemMinimumLayoutMargins]): (-[WKWebView _presentLockdownMode]): * Source/WebKit/UIProcess/ApplicationStateTracker.mm: (WebKit::ApplicationStateTracker::ApplicationStateTracker): * Source/WebKit/UIProcess/Cocoa/MediaPermissionUtilities.mm: (WebKit::alertForPermission): * Source/WebKit/UIProcess/Cocoa/WKContactPicker.mm: (-[WKContactPicker presentWithRequestData:completionHandler:]): * Source/WebKit/UIProcess/Cocoa/WKShareSheet.mm: (-[WKShareSheet presentWithShareDataArray:inRect:]): * Source/WebKit/UIProcess/Cocoa/WKStorageAccessAlert.mm: (WebKit::displayStorageAccessAlert): * Source/WebKit/UIProcess/ios/UIKitUtilities.h: * Source/WebKit/UIProcess/ios/UIKitUtilities.mm: (-[UIView _wk_viewControllerForFullScreenPresentation]): * Source/WebKit/UIProcess/ios/WKActionSheet.mm: (-[WKActionSheet presentSheetFromRect:]): (-[WKActionSheet willRotate]): * Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm: (-[WKActionSheetAssistant superviewForSheet]): * Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView endEditingAndUpdateFocusAppearanceWithReason:]): (-[WKContentView presentViewControllerForCurrentFocusedElement]): (-[WKContentView presentVisualSearchPreviewControllerForImage:imageURL:title:imageBounds:appearanceActions:]): (-[WKContentView updateImageAnalysisForContextMenuPresentation:]): * Source/WebKit/UIProcess/ios/WKWebGeolocationPolicyDeciderIOS.mm: (-[WKWebGeolocationPolicyDecider _executeNextChallenge]): * Source/WebKit/UIProcess/ios/forms/WKAirPlayRoutePicker.mm: (-[WKAirPlayRoutePicker showFromView:routeSharingPolicy:routingContextUID:hasVideo:]): * Source/WebKit/UIProcess/ios/forms/WKDatePickerPopoverController.mm: (-[WKDatePickerPopoverController presentInView:sourceRect:interactionBounds:completion:]): * Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel dismiss]): * Source/WebKit/UIProcess/ios/forms/WKFormColorControl.mm: (-[WKColorPicker controlBeginEditing]): * Source/WebKit/UIProcess/ios/forms/WKFormSelectPicker.mm: (-[WKSelectMultiplePicker controlBeginEditing]): * Tools/TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: * Tools/TestWebKitAPI/Tests/ios/ActionSheetTests.mm: (TestWebKitAPI::TEST): * Tools/TestWebKitAPI/ios/UIKitSPI.h: Canonical link: https://commits.webkit.org/268184@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes