Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e120ba1e5646832a96d479a7d6a629a1e7d639f2
      
https://github.com/WebKit/WebKit/commit/e120ba1e5646832a96d479a7d6a629a1e7d639f2
  Author: Abrar Rahman Protyasha <a_protya...@apple.com>
  Date:   2023-09-27 (Wed, 27 Sep 2023)

  Changed paths:
    M Source/WebCore/dom/PointerEvent.cpp
    M Source/WebCore/dom/PointerEvent.h
    M Source/WebCore/dom/ios/PointerEventIOS.cpp
    M Source/WebKit/UIProcess/Automation/WebAutomationSession.h
    M Source/WebKit/UIProcess/Automation/mac/WebAutomationSessionMac.mm

  Log Message:
  -----------
  Web Automation: Dispatched mouse events always have `buttons` property set to 
zero
https://bugs.webkit.org/show_bug.cgi?id=262109
rdar://116049187

Reviewed by Wenson Hsieh.

Pointer events dispatched by WebAutomationSession uncondtionally have
their `buttons` property set to zero. This is because the `buttons`
property is assigned by consulting the `+[NSEvent pressedMouseButtons]`
method, which does not account for NSEvent objects created through
eventSender in our test harness, and as such always reports that we have
not pressed any mouse buttons.

To fix this, we keep track of the mouse button currently being pressed
down in WebAutomationSession, and reflect that in a swizzled
`+[NSEvent pressedMouseButtons]` definition.

Note that with this patch we now pass the following assertion in the
pointerevents/pointerevent_attributes_hoverable_pointers.html?mouse WPT:

```
mouse pointerdown.buttons attribute is 1 when left mouse button is pressed.
```

* Source/WebCore/dom/PointerEvent.cpp:
(WebCore::PointerEvent::PointerEvent):
* Source/WebCore/dom/PointerEvent.h:
* Source/WebCore/dom/ios/PointerEventIOS.cpp:
(WebCore::buttonsForType): Deleted.
* Source/WebKit/UIProcess/Automation/WebAutomationSession.h:
* Source/WebKit/UIProcess/Automation/mac/WebAutomationSessionMac.mm:
(WebKit::WebAutomationSession::sendSynthesizedEventsToPage):
(WebKit::WebAutomationSession::platformSimulateMouseInteraction):

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to