haikuwebkit/LayoutTests/fast/device-orientation
Youenn Fablet 9f7e32a0a9 Align device orientation delegate to getUserMedia/geolocation delegates
https://bugs.webkit.org/show_bug.cgi?id=223247

Reviewed by Eric Carlson.

Source/WebKit:

Refactor code to move device orientation prompt implementation with other prompts in MediaPermissionUtilities.
Update code to use top level origin for prompt.
Update delegate to provide both top level origin and initiating iframe as parameters.
Update the decision handler to take grant, deny or prompt parameter.

Covered by API tests.

* UIProcess/API/C/WKFrameInfoRef.cpp:
(WKFrameInfoCopySecurityOrigin):
* UIProcess/API/C/WKFrameInfoRef.h:
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
* UIProcess/API/C/WKPageUIClient.h:
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/Cocoa/MediaPermissionUtilities.mm:
(WebKit::alertMessageText):
(WebKit::allowButtonText):
(WebKit::doNotAllowButtonText):
(WebKit::alertForPermission):
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::shouldAllowDeviceOrientationAndMotionAccess):
* UIProcess/Cocoa/WKOrientationAccessAlert.h: Removed.
* UIProcess/Cocoa/WKOrientationAccessAlert.mm: Removed.
* UIProcess/MediaPermissionUtilities.h:
* UIProcess/WebsiteData/WebDeviceOrientationAndMotionAccessController.cpp:
(WebKit::WebDeviceOrientationAndMotionAccessController::shouldAllowAccess):
* WebKit.xcodeproj/project.pbxproj:

Tools:

Update code to print frame info origin and update according additional frame info parameter given to shouldAllowDeviceOrientationAndMotionAccess.
Clear permissions in case test controller changes the device motion permission value.

* TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm:
(-[DeviceOrientationPermissionUIDelegate _webView:requestDeviceOrientationAndMotionPermissionForOrigin:initiatedByFrame:decisionHandler:]):
(-[DeviceOrientationPermissionValidationDelegate setValidationHandler:]):
(-[DeviceOrientationPermissionValidationDelegate _webView:requestDeviceOrientationAndMotionPermissionForOrigin:initiatedByFrame:decisionHandler:]):
* TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
(-[WebsitePoliciesDeviceOrientationUIDelegate _webView:requestDeviceOrientationAndMotionPermissionForOrigin:initiatedByFrame:decisionHandler:]):
* WebKitTestRunner/TestController.cpp:
(WTR::shouldAllowDeviceOrientationAndMotionAccess):
(WTR::TestController::handleDeviceOrientationAndMotionAccessRequest):
(WTR::TestController::setShouldAllowDeviceOrientationAndMotionAccess):
* WebKitTestRunner/TestController.h:

LayoutTests:

* fast/device-orientation/device-motion-request-permission-denied-expected.txt:
* fast/device-orientation/device-motion-request-permission-granted-expected.txt:
* fast/device-orientation/device-orientation-request-permission-denied-expected.txt:
* fast/device-orientation/device-orientation-request-permission-granted-expected.txt:
* http/tests/device-orientation/device-motion-allowed-in-first-party-only-expected.txt:
* http/tests/device-orientation/device-motion-third-party-iframe-allowed-by-feature-policy-expected.txt:
* http/tests/device-orientation/device-orientation-allowed-in-first-party-only-expected.txt:
* http/tests/device-orientation/device-orientation-permission-granted-in-other-iframes-from-same-origin-expected.txt:
* http/tests/device-orientation/device-orientation-third-party-iframe-allowed-by-feature-policy-expected.txt:
* platform/ios/http/tests/events/device-orientation-motion-secure-context-expected.txt:


Canonical link: https://commits.webkit.org/235403@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274558 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-03-17 13:30:25 +00:00
..
device-motion-request-permission-denied-expected.txt Align device orientation delegate to getUserMedia/geolocation delegates 2021-03-17 13:30:25 +00:00
device-motion-request-permission-denied.html
device-motion-request-permission-granted-expected.txt Align device orientation delegate to getUserMedia/geolocation delegates 2021-03-17 13:30:25 +00:00
device-motion-request-permission-granted.html
device-motion-request-permission-user-gesture-expected.txt
device-motion-request-permission-user-gesture.html
device-orientation-request-permission-denied-expected.txt Align device orientation delegate to getUserMedia/geolocation delegates 2021-03-17 13:30:25 +00:00
device-orientation-request-permission-denied.html
device-orientation-request-permission-granted-expected.txt Align device orientation delegate to getUserMedia/geolocation delegates 2021-03-17 13:30:25 +00:00
device-orientation-request-permission-granted.html
device-orientation-request-permission-user-gesture-expected.txt
device-orientation-request-permission-user-gesture.html