Changeset 276125 in webkit
- Timestamp:
- Apr 16, 2021, 1:47:23 AM (5 years ago)
- Location:
- trunk
- Files:
-
- 9 edited
-
Source/WebKit/ChangeLog (modified) (1 diff)
-
Source/WebKit/Scripts/postprocess-header-rule (modified) (2 diffs)
-
Source/WebKit/Shared/API/Cocoa/WKFoundation.h (modified) (1 diff)
-
Source/WebKit/UIProcess/API/Cocoa/WKUIDelegate.h (modified) (2 diffs)
-
Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h (modified) (1 diff)
-
Source/WebKit/UIProcess/Cocoa/UIDelegate.mm (modified) (3 diffs)
-
Tools/ChangeLog (modified) (1 diff)
-
Tools/TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm (modified) (2 diffs)
-
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r276120 r276125 1 2021-04-16 Youenn Fablet <youenn@apple.com> 2 3 Promote WKWebView device orientation permission delegate to API 4 https://bugs.webkit.org/show_bug.cgi?id=223919 5 6 Reviewed by Alex Christensen. 7 8 Move corresponding SPI to API. 9 Introduce WK_API_UNAVAILABLE to make that API not available in certain OSes. 10 11 Covered by existing tests. 12 13 * Scripts/postprocess-header-rule: 14 * Shared/API/Cocoa/WKFoundation.h: 15 * UIProcess/API/Cocoa/WKUIDelegate.h: 16 * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: 17 * UIProcess/Cocoa/UIDelegate.mm: 18 (WebKit::UIDelegate::setDelegate): 19 (WebKit::UIDelegate::UIClient::shouldAllowDeviceOrientationAndMotionAccess): 20 1 21 2021-04-15 Commit Queue <commit-queue@webkit.org> 2 22 -
trunk/Source/WebKit/Scripts/postprocess-header-rule
r268163 r276125 67 67 -e s/WK_IOS_TBA/${IOS_VERSION}/g 68 68 -e s/WK_API_AVAILABLE/API_AVAILABLE/ 69 -e s/WK_API_UNAVAILABLE/API_UNAVAILABLE/ 69 70 -e s/WK_API_DEPRECATED/API_DEPRECATED/ 70 71 -e "s/^WK_CLASS_AVAILABLE/WK_EXTERN API_AVAILABLE/" … … 74 75 SED_OPTIONS+=( 75 76 -e 's/WK_(API_|CLASS_)AVAILABLE\(.*\)\s*\)//g' 77 -e 's/WK_API_UNAVAILABLE\(.*\)//g' 76 78 -e 's/WK_(API_|CLASS_)DEPRECATED(_WITH_REPLACEMENT)?\(.*\)\s*\)//g' 77 79 ) -
trunk/Source/WebKit/Shared/API/Cocoa/WKFoundation.h
r260334 r276125 36 36 37 37 #define WK_API_AVAILABLE(...) 38 #define WK_API_UNAVAILABLE(...) 38 39 #define WK_CLASS_AVAILABLE(...) __attribute__((visibility("default"))) 39 40 #define WK_API_DEPRECATED(_message, ...) __attribute__((deprecated(_message))) -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKUIDelegate.h
r275162 r276125 147 147 - (void)webView:(WKWebView *)webView requestMediaCapturePermissionForOrigin:(WKSecurityOrigin *)origin initiatedByFrame:(WKFrameInfo *)frame type:(WKMediaCaptureType)type decisionHandler:(void (^)(WKPermissionDecision decision))decisionHandler WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA)); 148 148 149 /*! @abstract Allows your app to determine whether or not the given security origin should have access to the device's orientation and motion. 150 @param securityOrigin The security origin which requested access to the device's orientation and motion. 151 @param frame The frame that initiated the request. 152 @param decisionHandler The decision handler to call once the app has made its decision. 153 */ 154 - (void)webView:(WKWebView *)webView requestDeviceOrientationAndMotionPermissionForOrigin:(WKSecurityOrigin *)origin initiatedByFrame:(WKFrameInfo *)frame decisionHandler:(void (^)(WKPermissionDecision decision))decisionHandler WK_API_AVAILABLE(ios(WK_IOS_TBA)) WK_API_UNAVAILABLE(macos); 155 149 156 #if TARGET_OS_IPHONE 150 157 … … 181 188 */ 182 189 - (void)webView:(WKWebView *)webView commitPreviewingViewController:(UIViewController *)previewingViewController WK_API_DEPRECATED_WITH_REPLACEMENT("webView:contextMenuForElement:willCommitWithAnimator:", ios(10.0, 13.0)); 183 184 190 #endif // TARGET_OS_IPHONE 185 191 -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h
r276051 r276125 216 216 - (void)_webView:(WKWebView *)webView didDismissFocusedElementViewController:(UIViewController *)controller WK_API_AVAILABLE(ios(12.0)); 217 217 - (BOOL)_webView:(WKWebView *)webView gestureRecognizerCouldPinch:(UIGestureRecognizer *)gestureRecognizer WK_API_AVAILABLE(ios(13.0)); 218 219 /*! @abstract Allows your app to determine whether or not the given security origin should have access to the device's orientation and motion.220 @param securityOrigin The security origin which requested access to the device's orientation and motion.221 @param frame The frame that initiated the request.222 @param decisionHandler The decision handler to call once the app has made its decision.223 */224 - (void)_webView:(WKWebView *)webView requestDeviceOrientationAndMotionPermissionForOrigin:(WKSecurityOrigin*)origin initiatedByFrame:(WKFrameInfo *)frame decisionHandler:(void (^)(WKPermissionDecision decision))decisionHandler WK_API_AVAILABLE(ios(WK_IOS_TBA));225 218 226 219 - (BOOL)_webViewCanBecomeFocused:(WKWebView *)webView WK_API_AVAILABLE(ios(WK_IOS_TBA)); -
trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm
r275485 r276125 140 140 #endif 141 141 #if ENABLE(DEVICE_ORIENTATION) 142 m_delegateMethods.webViewRequestDeviceOrientationAndMotionPermissionForOriginDecisionHandler = [delegate respondsToSelector:@selector( _webView:requestDeviceOrientationAndMotionPermissionForOrigin:initiatedByFrame:decisionHandler:)];142 m_delegateMethods.webViewRequestDeviceOrientationAndMotionPermissionForOriginDecisionHandler = [delegate respondsToSelector:@selector(webView:requestDeviceOrientationAndMotionPermissionForOrigin:initiatedByFrame:decisionHandler:)]; 143 143 #endif 144 144 m_delegateMethods.webViewDecideDatabaseQuotaForSecurityOriginCurrentQuotaCurrentOriginUsageCurrentDatabaseUsageExpectedUsageDecisionHandler = [delegate respondsToSelector:@selector(_webView:decideDatabaseQuotaForSecurityOrigin:currentQuota:currentOriginUsage:currentDatabaseUsage:expectedUsage:decisionHandler:)]; … … 1055 1055 1056 1056 auto delegate = m_uiDelegate->m_delegate.get(); 1057 auto checker = CompletionHandlerCallChecker::create(delegate.get(), @selector( _webView:requestDeviceOrientationAndMotionPermissionForOrigin:initiatedByFrame:decisionHandler:));1057 auto checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(webView:requestDeviceOrientationAndMotionPermissionForOrigin:initiatedByFrame:decisionHandler:)); 1058 1058 auto decisionHandler = makeBlockPtr([completionHandler = WTFMove(completionHandler), securityOrigin = securityOrigin->data(), checker = WTFMove(checker), page = makeWeakPtr(page)](WKPermissionDecision decision) mutable { 1059 1059 if (checker->completionHandlerHasBeenCalled()) … … 1076 1076 } 1077 1077 }); 1078 [ (id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate->m_webView.get().get() requestDeviceOrientationAndMotionPermissionForOrigin:wrapper(API::SecurityOrigin::create(securityOrigin.get())) initiatedByFrame:wrapper(API::FrameInfo::create(WTFMove(frameInfo), &page)) decisionHandler:decisionHandler.get()];1078 [delegate webView:m_uiDelegate->m_webView.get().get() requestDeviceOrientationAndMotionPermissionForOrigin:wrapper(API::SecurityOrigin::create(securityOrigin.get())) initiatedByFrame:wrapper(API::FrameInfo::create(WTFMove(frameInfo), &page)) decisionHandler:decisionHandler.get()]; 1079 1079 } 1080 1080 #endif -
trunk/Tools/ChangeLog
r276100 r276125 1 2021-04-16 Youenn Fablet <youenn@apple.com> 2 3 Promote WKWebView device orientation permission delegate to API 4 https://bugs.webkit.org/show_bug.cgi?id=223919 5 6 Reviewed by Alex Christensen. 7 8 * TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm: 9 (-[DeviceOrientationPermissionUIDelegate webView:requestDeviceOrientationAndMotionPermissionForOrigin:initiatedByFrame:decisionHandler:]): 10 (-[DeviceOrientationPermissionValidationDelegate webView:requestDeviceOrientationAndMotionPermissionForOrigin:initiatedByFrame:decisionHandler:]): 11 * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm: 12 (-[WebsitePoliciesDeviceOrientationUIDelegate webView:requestDeviceOrientationAndMotionPermissionForOrigin:initiatedByFrame:decisionHandler:]): 13 1 14 2021-04-15 Aakash Jain <aakash_jain@apple.com> 2 15 -
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm
r275162 r276125 77 77 } 78 78 79 - (void) _webView:(WKWebView *)webView requestDeviceOrientationAndMotionPermissionForOrigin:(WKSecurityOrigin*)origin initiatedByFrame:(WKFrameInfo *)requestingFrame decisionHandler:(void (^)(WKPermissionDecision))decisionHandler79 - (void)webView:(WKWebView *)webView requestDeviceOrientationAndMotionPermissionForOrigin:(WKSecurityOrigin*)origin initiatedByFrame:(WKFrameInfo *)requestingFrame decisionHandler:(void (^)(WKPermissionDecision))decisionHandler 80 80 { 81 81 decisionHandler(_decisionHandler() ? WKPermissionDecisionGrant : WKPermissionDecisionDeny); … … 387 387 } 388 388 389 - (void) _webView:(WKWebView *)webView requestDeviceOrientationAndMotionPermissionForOrigin:(WKSecurityOrigin*)origin initiatedByFrame:(WKFrameInfo *)frame decisionHandler:(void (^)(WKPermissionDecision decision))decisionHandler {389 - (void)webView:(WKWebView *)webView requestDeviceOrientationAndMotionPermissionForOrigin:(WKSecurityOrigin*)origin initiatedByFrame:(WKFrameInfo *)frame decisionHandler:(void (^)(WKPermissionDecision decision))decisionHandler { 390 390 if (_validationHandler) 391 391 _validationHandler(origin, frame); -
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm
r275162 r276125 1482 1482 @implementation WebsitePoliciesDeviceOrientationUIDelegate 1483 1483 1484 - (void) _webView:(WKWebView *)webView requestDeviceOrientationAndMotionPermissionForOrigin:(WKSecurityOrigin*)origin initiatedByFrame:(WKFrameInfo *)requestingFrame decisionHandler:(void (^)(WKPermissionDecision))decisionHandler1484 - (void)webView:(WKWebView *)webView requestDeviceOrientationAndMotionPermissionForOrigin:(WKSecurityOrigin*)origin initiatedByFrame:(WKFrameInfo *)requestingFrame decisionHandler:(void (^)(WKPermissionDecision))decisionHandler 1485 1485 { 1486 1486 calledShouldAllowDeviceOrientationAndMotionAccessDelegate = true;
Note:
See TracChangeset
for help on using the changeset viewer.