[webkit-changes] [WebKit/WebKit] bfd07b: [Pointer Events] Implement `getCoalescedEvents` AP...

Richard Robinson noreply at github.com
Thu Jul 25 22:25:24 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: bfd07b97a4631c62a55f8abfbc45f855d251ee3d
      https://github.com/WebKit/WebKit/commit/bfd07b97a4631c62a55f8abfbc45f855d251ee3d
  Author: Richard Robinson <richard_robinson2 at apple.com>
  Date:   2024-07-25 (Thu, 25 Jul 2024)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/pointerevents/coalesced_events_attributes.https_mouse-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/pointerevents/coalesced_events_attributes.https_pen-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/pointerevents/coalesced_events_attributes_under_load.https_mouse-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/pointerevents/coalesced_events_attributes_under_load.https_pen-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/pointerevents/extension/pointerevent_constructor-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/pointerevents/idlharness.https.window-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/pointerevents/pointerevent_constructor.https-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/pointerevents/pointerlock/pointerevent_getCoalescedEvents_when_pointerlocked.https-expected.txt
    A LayoutTests/platform/gtk/imported/w3c/web-platform-tests/pointerevents/extension/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/MouseRelatedEvent.h
    M Source/WebCore/dom/PointerEvent.cpp
    M Source/WebCore/dom/PointerEvent.h
    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/EventHandler.cpp
    M Source/WebCore/page/EventHandler.h
    M Source/WebCore/page/PointerCaptureController.h
    M Source/WebCore/platform/PlatformMouseEvent.h
    M Source/WebCore/platform/mac/PlatformEventFactoryMac.mm
    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/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxyInternals.h
    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

  Log Message:
  -----------
  [Pointer Events] Implement `getCoalescedEvents` API (macOS)
https://bugs.webkit.org/show_bug.cgi?id=276870
rdar://132027950

Reviewed by Abrar Rahman Protyasha.

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

To facilitate this, the mousemouse events that were coalesced in the UI process are now stored and
propagated to the web process so that `getCoalescedEvents` returns them.

A future commit will enhance this implementation for iOS specifically by using the `coalescedTouchesForTouch`
UIKit method to gather more coalesced events.

* LayoutTests/imported/w3c/web-platform-tests/pointerevents/coalesced_events_attributes.https_mouse-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/pointerevents/coalesced_events_attributes.https_pen-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/pointerevents/coalesced_events_attributes_under_load.https_mouse-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/pointerevents/coalesced_events_attributes_under_load.https_pen-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/pointerevents/extension/pointerevent_constructor-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/pointerevents/idlharness.https.window-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/pointerevents/pointerevent_constructor.https-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/pointerevents/pointerlock/pointerevent_getCoalescedEvents_when_pointerlocked.https-expected.txt:
* 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::coalescedEvents const):
* Source/WebCore/dom/MouseRelatedEvent.h:
* Source/WebCore/dom/PointerEvent.cpp:
(WebCore::createCoalescedPointerEvents):
(WebCore::m_coalescedEvents):
(WebCore::PointerEvent::getCoalescedEvents const):
(WebCore::PointerEvent::receivedTarget):
(WebCore::PointerEvent::getCoalescedEvents): Deleted.
* Source/WebCore/dom/PointerEvent.h:
* Source/WebCore/dom/SimulatedClick.cpp:
* Source/WebCore/dom/WheelEvent.cpp:
(WebCore::WheelEvent::WheelEvent):
* Source/WebCore/page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseUp):
(WebCore::EventHandler::handleMouseMoveEvent):
* Source/WebCore/page/EventHandler.h:
* Source/WebCore/page/PointerCaptureController.h:
* Source/WebCore/platform/PlatformMouseEvent.h:
(WebCore::PlatformMouseEvent::coalescedEvents const):
* Source/WebKit/Shared/NativeWebMouseEvent.h:
* Source/WebKit/Shared/WebEvent.serialization.in:
* Source/WebKit/Shared/WebEventConversion.cpp:
(WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent):
* Source/WebKit/Shared/WebMouseEvent.cpp:
(WebKit::WebMouseEvent::WebMouseEvent):
* Source/WebKit/Shared/WebMouseEvent.h:
(WebKit::WebMouseEvent::WebMouseEvent):
(WebKit::WebMouseEvent::setCoalescedEvents):
(WebKit::WebMouseEvent::coalescedEvents const):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::removeOldRedundantEvent):
(WebKit::WebPageProxy::sendMouseEvent):
(WebKit::WebPageProxy::handleMouseEvent):
(WebKit::WebPageProxy::processNextQueuedMouseEvent):
(WebKit::WebPageProxy::resetStateAfterProcessExited):
* Source/WebKit/UIProcess/WebPageProxyInternals.h:
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm:
(WebKit::PDFPluginBase::navigateToURL):
* Source/WebKit/WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::handleMouseEvent):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick):
* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::inspectorNodeSearchMovedToPosition):
* Source/WebKitLegacy/mac/WebView/WebPDFView.mm:
(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

Canonical link: https://commits.webkit.org/281387@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