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

Reply via email to