Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
navigator.userActivation API to query user activation state
https://bugs.webkit.org/show_bug.cgi?id=245240 Reviewed by Youenn Fablet and Geoffrey Garen. Implementation of the UserActivation interface: https://html.spec.whatwg.org/#the-useractivation-interface Which was added to HTML via: whatwg/html#8254 The API provides web content a view into DOMWindow::hasTransientActivation() and DOMWindow::hasStickyActivation(). This change excludes anything related "MessageEvent", which has not yet been agreed to by the WHATWG. The tests have been modified to work on WebKit infrastructure without changing the intent of the original tests. In particular: * `domains[www1]` and so on, so those are changed to `hosts[alt][]` * Domains are differentiated by using different ports. * Some of the tests are missing `await`. * Some tests would run before the body was ready. A PR has been sent to WPT to address these issues: web-platform-tests/wpt#36881 The tests are update to 1b73dcd. Some test coming form WTP are non-standard. In particular, tests that rely on `window.open()` and `.requestFullscreen()` are not spec'ed to consume user activation. This is a known issue and will be addressed as a followup in the specs and potentially as changes in WebKit. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/activation-trigger-keyboard-enter.html: * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/activation-trigger-keyboard-escape.html: * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/activation-trigger-mouse-left.html: * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/activation-trigger-mouse-right.html: * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/activation-trigger-pointerevent.html: * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/chained-setTimeout-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/chained-setTimeout.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/user-activation/chained-setTimeout.tentative.html. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/chained-setTimeout.tentative-expected.txt: Removed. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/consumption-crossorigin.sub-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/consumption-crossorigin.sub.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/user-activation/consumption-crossorigin.sub.tentative.html. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/consumption-crossorigin.sub.tentative-expected.txt: Removed. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/consumption-sameorigin-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/consumption-sameorigin.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/user-activation/consumption-sameorigin.tentative.html. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/consumption-sameorigin.tentative-expected.txt: Removed. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/detached-iframe-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/detached-iframe.html: Added. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/message-event-activation-api-iframe-cross-origin.sub.tentative-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/message-event-activation-api-iframe-cross-origin.sub.tentative.html: * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/message-event-init.tentative-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/message-event-init.tentative.html: * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/navigation-state-reset-crossorigin.sub-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/navigation-state-reset-crossorigin.sub.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/user-activation/navigation-state-reset-crossorigin.sub.tentative.html. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/navigation-state-reset-crossorigin.sub.tentative-expected.txt: Removed. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/navigation-state-reset-sameorigin-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/navigation-state-reset-sameorigin.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/user-activation/navigation-state-reset-sameorigin.tentative.html. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/navigation-state-reset-sameorigin.tentative-expected.txt: Removed. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/no-activation-thru-escape-key-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/no-activation-thru-escape-key.html: * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/propagation-crossorigin.sub-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/propagation-crossorigin.sub.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/user-activation/propagation-crossorigin.sub.tentative.html. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/propagation-crossorigin.sub.tentative-expected.txt: Removed. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/propagation-sameorigin-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/propagation-sameorigin.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/user-activation/propagation-sameorigin.tentative.html. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/propagation-sameorigin.tentative-expected.txt: Removed. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/user-activation-interface-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/user-activation/user-activation-interface.html: Added. * LayoutTests/platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt: * LayoutTests/platform/ios-wk2/TestExpectations: * LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/user-activation/chained-setTimeout.tentative-expected.txt: Removed. * LayoutTests/platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt: * LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/user-activation/no-activation-thru-escape-key-expected.txt: * LayoutTests/platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt: * Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml: * Source/WebCore/CMakeLists.txt: * Source/WebCore/DerivedSources-input.xcfilelist: * Source/WebCore/DerivedSources-output.xcfilelist: * Source/WebCore/DerivedSources.make: * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/bindings/js/WebCoreBuiltinNames.h: * Source/WebCore/html/NavigatorUserActivation.cpp: Added. (WebCore::NavigatorUserActivation::NavigatorUserActivation): (WebCore::NavigatorUserActivation::userActivation): (WebCore::NavigatorUserActivation::from): (WebCore::NavigatorUserActivation::supplementName): * Source/WebCore/html/NavigatorUserActivation.h: Added. * Source/WebCore/html/URLSearchParams.h: * Source/WebCore/html/UserActivation.cpp: Added. (WebCore::UserActivation::create): (WebCore::UserActivation::UserActivation): (WebCore::UserActivation::navigator): (WebCore::UserActivation::window const): (WebCore::UserActivation::hasBeenActive const): (WebCore::UserActivation::isActive const): * Source/WebCore/html/UserActivation.h: Added. * Source/WebCore/html/UserActivation.idl: Added. * Source/WebCore/page/DOMWindow.cpp: (WebCore::DOMWindow::hasStickyActivation const): * Source/WebCore/page/DOMWindow.h: * Source/WebCore/page/Navigator+UserActivation.idl: Added. Canonical link: https://commits.webkit.org/256572@main
- Loading branch information