part 3: Make ePointerClick event dispatchers and handlers use `WidgetPointerEvent
This patch makes the all ePointerClick event dispatcher in C++ code use
WidgetPointerEvent instead of WidgetMouseEvent.
Then, this patch also makes the all click event dispatcher in chrome code use
PointerEvent instead of MouseEvent. For detecting wrong trusted event
dispatching of click event, this patch adds assertion into MouseEvent.
Therefore, all chrome test dispatchers also changed to use PointerEvent.
Finally, this patch includes a change of a WPT. That checks the pointerId
caused by executing an access key. In this case, the value should be -1
rather than the default value 0 because Pointer Event spec defines so for
synthetic pointer events caused by non-pointing devices [1]. Chrome also
sets it to -1 and fails [2]. Therefore, the new assertion will pass on both
Firefox and Chrome.
- https://w3c.github.io/pointerevents/#dom-pointerevent-pointerid
- https://wpt.fyi/results/uievents/interface/keyboard-accesskey-click-event.html?run_id=5087897523060736&run_id=5136270464647168&run_id=5163620816388096&run_id=5201281304231936
Differential Revision: https://phabricator.services.mozilla.com/D213001
bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1675847
gecko-commit: 9a2834bb1a8e2b3e56a57a52d4a1ac2c2a1f9c63
gecko-reviewers: smaug, search-reviewers, devtools-reviewers, nchevobbe, jteow