[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