[webkit-changes] [WebKit/WebKit] c61ac7: [Pointer Events] Implement getPredictedEvents API

Richard Robinson noreply at github.com
Fri Aug 2 08:58:11 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c61ac73a566f8da79f55c6e83b00952202edf3bf
      https://github.com/WebKit/WebKit/commit/c61ac73a566f8da79f55c6e83b00952202edf3bf
  Author: Richard Robinson <richard_robinson2 at apple.com>
  Date:   2024-08-02 (Fri, 02 Aug 2024)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/pointerevents/idlharness.https.window-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/pointerevents/pointerevent_constructor-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/pointerevents/pointerevent_constructor.https-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/pointerevents/predicted_events_attributes_mouse-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/pointerevents/predicted_events_attributes_pen-expected.txt
    A LayoutTests/platform/gtk/imported/w3c/web-platform-tests/pointerevents/pointerevent_constructor-expected.txt
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebCore/dom/DragEvent.cpp
    M Source/WebCore/dom/Element.cpp
    M Source/WebCore/dom/MouseEvent.cpp
    M Source/WebCore/dom/MouseEvent.h
    M Source/WebCore/dom/PointerEvent.cpp
    M Source/WebCore/dom/PointerEvent.h
    M Source/WebCore/dom/PointerEvent.idl
    M Source/WebCore/dom/SimulatedClick.cpp
    M Source/WebCore/dom/WheelEvent.cpp
    M Source/WebCore/dom/ios/MouseEventIOS.cpp
    M Source/WebCore/dom/ios/PointerEventIOS.cpp
    M Source/WebCore/dom/wpe/PointerEventWPE.cpp
    M Source/WebCore/page/PointerCaptureController.cpp
    M Source/WebCore/platform/PlatformMouseEvent.h
    M Source/WebCore/platform/PlatformTouchEvent.h
    M Source/WebKit/Shared/NativeWebTouchEvent.h
    M Source/WebKit/Shared/WebEvent.serialization.in
    M Source/WebKit/Shared/WebEventConversion.cpp
    M Source/WebKit/Shared/WebMouseEvent.cpp
    M Source/WebKit/Shared/WebMouseEvent.h
    M Source/WebKit/Shared/WebTouchEvent.cpp
    M Source/WebKit/Shared/WebTouchEvent.h
    M Source/WebKit/Shared/gtk/WebEventFactory.cpp
    M Source/WebKit/Shared/ios/NativeWebTouchEventIOS.mm
    M Source/WebKit/Shared/libwpe/WebEventFactory.cpp
    M Source/WebKit/Shared/wpe/WebEventFactoryWPE.cpp
    M Source/WebKit/UIProcess/ios/WKTouchEventsGestureRecognizer.h
    M Source/WebKit/UIProcess/ios/WKTouchEventsGestureRecognizer.mm
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKitLegacy/ios/WebView/WebPDFViewPlaceholder.mm
    M Source/WebKitLegacy/mac/WebView/WebPDFView.mm
    M Tools/TestWebKitAPI/Tests/ios/TouchEventTests.mm

  Log Message:
  -----------
  [Pointer Events] Implement getPredictedEvents API
https://bugs.webkit.org/show_bug.cgi?id=264002
rdar://117767174

Reviewed by Abrar Rahman Protyasha.

Implement the `getPredictedEvents` function of the `PointerEvent` interface, as per the corresponding
UI events specification (https://w3c.github.io/pointerevents/#dom-pointerevent-getpredictedevents).

On non-iOS platforms, this will return an empty array. On iOS, the predicted events are generated via
UIKit's `predictedTouchesForTouch` method.

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/dom/DragEvent.cpp:
(WebCore::DragEvent::DragEvent):
* Source/WebCore/dom/Element.cpp:
(WebCore::Element::dispatchMouseEvent):
(WebCore::Element::dispatchMouseForceWillBegin):
* Source/WebCore/dom/MouseEvent.cpp:
(WebCore::MouseEvent::create):
(WebCore::MouseEvent::MouseEvent):
* Source/WebCore/dom/MouseEvent.h:
(WebCore::MouseEvent::predictedEvents const):
* Source/WebCore/dom/PointerEvent.cpp:
(WebCore::PointerEvent::PointerEvent):
(WebCore::createPredictedPointerEvents):
(WebCore::m_predictedEvents):
(WebCore::PointerEvent::getCoalescedEvents const):
(WebCore::PointerEvent::getPredictedEvents const):
(WebCore::PointerEvent::receivedTarget):
(WebCore::m_coalescedEvents): Deleted.
* Source/WebCore/dom/PointerEvent.h:
* Source/WebCore/dom/PointerEvent.idl:
* Source/WebCore/dom/SimulatedClick.cpp:
* Source/WebCore/dom/WheelEvent.cpp:
(WebCore::WheelEvent::WheelEvent):
* Source/WebCore/dom/ios/MouseEventIOS.cpp:
(WebCore::MouseEvent::create):
* Source/WebCore/dom/ios/PointerEventIOS.cpp:
(WebCore::PointerEvent::create):
(WebCore::PointerEvent::PointerEvent):
(WebCore::m_predictedEvents):
(WebCore::m_coalescedEvents): Deleted.
* Source/WebCore/page/PointerCaptureController.cpp:
(WebCore::PointerCaptureController::dispatchEventForTouchAtIndex):
* Source/WebCore/platform/PlatformMouseEvent.h:
(WebCore::PlatformMouseEvent::predictedEvents const):
* Source/WebCore/platform/PlatformTouchEvent.h:
(WebCore::PlatformTouchEvent::predictedEvents const):
* Source/WebKit/Shared/NativeWebTouchEvent.h:
* Source/WebKit/Shared/WebEvent.serialization.in:
* Source/WebKit/Shared/WebEventConversion.cpp:
(WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent):
(WebKit::WebKit2PlatformTouchEvent::WebKit2PlatformTouchEvent):
* Source/WebKit/Shared/WebMouseEvent.cpp:
(WebKit::WebMouseEvent::WebMouseEvent):
* Source/WebKit/Shared/WebMouseEvent.h:
(WebKit::WebMouseEvent::WebMouseEvent):
(WebKit::WebMouseEvent::setPredictedEvents):
(WebKit::WebMouseEvent::predictedEvents const):
* Source/WebKit/Shared/WebTouchEvent.h:
(WebKit::WebTouchEvent::WebTouchEvent):
(WebKit::WebTouchEvent::predictedEvents const):
(WebKit::WebTouchEvent::setPredictedEvents):
* Source/WebKit/Shared/ios/NativeWebTouchEventIOS.mm:
(WebKit::NativeWebTouchEvent::extractPredictedWebTouchEvents):
* Source/WebKit/UIProcess/ios/WKTouchEventsGestureRecognizer.h:
* Source/WebKit/UIProcess/ios/WKTouchEventsGestureRecognizer.mm:
(-[WKTouchEventsGestureRecognizer reset]):
(-[WKTouchEventsGestureRecognizer _recordTouches:type:coalescedTouches:predictedTouches:]):
(-[WKTouchEventsGestureRecognizer _processTouches:withEvent:type:]):
(-[WKTouchEventsGestureRecognizer _recordTouches:type:coalescedTouches:]): Deleted.
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm:
(WebKit::PDFPluginBase::navigateToURL):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick):
* Source/WebKitLegacy/ios/WebView/WebPDFViewPlaceholder.mm:
(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):
* Source/WebKitLegacy/mac/WebView/WebPDFView.mm:
(-[WebPDFView PDFViewWillClickOnLink:withURL:]):
* Tools/TestWebKitAPI/Tests/ios/TouchEventTests.mm:

Canonical link: https://commits.webkit.org/281756@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list