Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2df18f66ddd3a59cb6f0f32bac746137e95a8d0b
      
https://github.com/WebKit/WebKit/commit/2df18f66ddd3a59cb6f0f32bac746137e95a8d0b
  Author: Marcos Caceres <mar...@marcosc.com>
  Date:   2022-11-11 (Fri, 11 Nov 2022)

  Changed paths:
    M 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/activation-trigger-keyboard-enter.html
    M 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/activation-trigger-keyboard-escape.html
    M 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/activation-trigger-mouse-left.html
    M 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/activation-trigger-mouse-right.html
    M 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/activation-trigger-pointerevent.html
    A 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/chained-setTimeout-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/chained-setTimeout.html
    R 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/chained-setTimeout.tentative-expected.txt
    R 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/chained-setTimeout.tentative.html
    A 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/consumption-crossorigin.sub-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/consumption-crossorigin.sub.html
    R 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/consumption-crossorigin.sub.tentative-expected.txt
    R 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/consumption-crossorigin.sub.tentative.html
    A 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/consumption-sameorigin-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/consumption-sameorigin.html
    R 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/consumption-sameorigin.tentative-expected.txt
    R 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/consumption-sameorigin.tentative.html
    A 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/detached-iframe-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/detached-iframe.html
    M 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/message-event-activation-api-iframe-cross-origin.sub.tentative-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/message-event-activation-api-iframe-cross-origin.sub.tentative.html
    M 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/message-event-init.tentative-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/message-event-init.tentative.html
    A 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/navigation-state-reset-crossorigin.sub-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/navigation-state-reset-crossorigin.sub.html
    R 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/navigation-state-reset-crossorigin.sub.tentative-expected.txt
    R 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/navigation-state-reset-crossorigin.sub.tentative.html
    A 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/navigation-state-reset-sameorigin-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/navigation-state-reset-sameorigin.html
    R 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/navigation-state-reset-sameorigin.tentative-expected.txt
    R 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/navigation-state-reset-sameorigin.tentative.html
    M 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/no-activation-thru-escape-key-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/no-activation-thru-escape-key.html
    A 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/propagation-crossorigin.sub-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/propagation-crossorigin.sub.html
    R 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/propagation-crossorigin.sub.tentative-expected.txt
    R 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/propagation-crossorigin.sub.tentative.html
    A 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/propagation-sameorigin-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/propagation-sameorigin.html
    R 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/propagation-sameorigin.tentative-expected.txt
    R 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/propagation-sameorigin.tentative.html
    A 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/user-activation-interface-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/user-activation-interface.html
    M LayoutTests/platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt
    M LayoutTests/platform/ios-wk2/TestExpectations
    R 
LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/user-activation/chained-setTimeout.tentative-expected.txt
    M 
LayoutTests/platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt
    M 
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/user-activation/no-activation-thru-escape-key-expected.txt
    M 
LayoutTests/platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt
    M Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml
    M Source/WebCore/CMakeLists.txt
    M Source/WebCore/DerivedSources-input.xcfilelist
    M Source/WebCore/DerivedSources-output.xcfilelist
    M Source/WebCore/DerivedSources.make
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/bindings/js/WebCoreBuiltinNames.h
    A Source/WebCore/html/NavigatorUserActivation.cpp
    A Source/WebCore/html/NavigatorUserActivation.h
    M Source/WebCore/html/URLSearchParams.h
    A Source/WebCore/html/UserActivation.cpp
    A Source/WebCore/html/UserActivation.h
    A Source/WebCore/html/UserActivation.idl
    M Source/WebCore/page/DOMWindow.cpp
    M Source/WebCore/page/DOMWindow.h
    A Source/WebCore/page/Navigator+UserActivation.idl

  Log Message:
  -----------
  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:
https://github.com/whatwg/html/pull/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:
https://github.com/web-platform-tests/wpt/pull/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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to