Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 69700fdc39ef56aa2131e7ad0065d63626e6de8d https://github.com/WebKit/WebKit/commit/69700fdc39ef56aa2131e7ad0065d63626e6de8d Author: Abrar Rahman Protyasha <a_protya...@apple.com> Date: 2025-09-04 (Thu, 04 Sep 2025)
Changed paths: M LayoutTests/imported/w3c/web-platform-tests/pointerevents/pointerevent_click_during_capture_mouse-auxclick-expected.txt M LayoutTests/imported/w3c/web-platform-tests/pointerevents/pointerevent_click_during_capture_mouse-click-expected.txt M LayoutTests/imported/w3c/web-platform-tests/pointerevents/pointerevent_click_during_parent_capture_pointerType=mouse&preventDefault=-expected.txt M LayoutTests/imported/w3c/web-platform-tests/pointerevents/pointerevent_click_during_parent_capture_pointerType=mouse&preventDefault=pointerdown-expected.txt M Source/WebCore/page/EventHandler.cpp M Source/WebCore/page/EventHandler.h Log Message: ----------- Click and auxclick event targeting does not follow pointer capture target override https://bugs.webkit.org/show_bug.cgi?id=298130 rdar://159477637 Reviewed by Richard Robinson and Lily Spiniolas. When an element has pointer capture, [aux]click events should (also) be dispatched to the pointer capture target override rather than the hit tested node under the pointer, refer to https://www.w3.org/TR/pointerevents/#:~:text=even%20though%20the%20lostpointercapture%20event%20with%20the%20same%20pointerId%20has%20been%20dispatched%20already In this patch, we add a new m_clickCaptureElement member to EventHandler. This stores the element when pointer capture is established during a pointer event sequence. Note that we choose to not override m_clickNode because it is used for general event dispatch logic, too. The swallowAnyClickEvent() method now checks for this captured element first when determining the target for click events. The patch fixes (and updates expectations for) the failing tests: - pointerevent_click_during_capture_mouse-click.html - pointerevent_click_during_capture_mouse-auxclick.html * LayoutTests/imported/w3c/web-platform-tests/pointerevents/pointerevent_click_during_capture_mouse-auxclick-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/pointerevents/pointerevent_click_during_capture_mouse-click-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/pointerevents/pointerevent_click_during_parent_capture_pointerType=mouse&preventDefault=-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/pointerevents/pointerevent_click_during_parent_capture_pointerType=mouse&preventDefault=pointerdown-expected.txt: * Source/WebCore/page/EventHandler.cpp: (WebCore::EventHandler::clear): (WebCore::EventHandler::nodeWillBeRemoved): (WebCore::EventHandler::invalidateClick): (WebCore::targetNodeForClickEvent): (WebCore::EventHandler::swallowAnyClickEvent): (WebCore::EventHandler::pointerCaptureElementDidChange): (WebCore::EventHandler::updateMouseEventTargetNode): (WebCore::EventHandler::dispatchAnyClickEvent): * Source/WebCore/page/EventHandler.h: Canonical link: https://commits.webkit.org/299567@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes