Closed Bug 1637259 Opened 1 year ago Closed 22 days ago

Consider generating touch event for WM_POINTER* messages

Categories

(Core :: DOM: UI Events & Focus Handling, task, P3)

Unspecified
Windows 10
task

Tracking

()

RESOLVED FIXED
90 Branch
Tracking Status
firefox90 --- fixed

People

(Reporter: edgar, Assigned: saschanaz, NeedInfo)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

Currently, if we enable dom.w3c_pointer_events.dispatch_by_pointer_messages, we handle WM_POINTER* message for pen input, and we dispatch mouse event for it, https://searchfox.org/mozilla-central/rev/446160560bf32ebf4cb7c4e25d7386ee22667255/widget/windows/nsWindow.cpp#8629.

What Chrome does is

Another point is that if we don't handle WM_POINTER* messages, OS actually generates WM_TOUCH messages for pen input. So generate touch event for WM_POINTER* messages WM_POINTER* seems to make sense, this also aligns with what we behave now, but with more accurate information. And we still need to find a way to deal with drag and drop (bug 1345398).

What do you think?

Flags: needinfo?(bugs)
Blocks: 1631377
Assignee: nobody → krosylight
Attachment #9214836 - Attachment description: WIP: Bug 1637259 - Dispatch touch event for WM_POINTER → Bug 1637259 - Dispatch touch event for WM_POINTER r=edgar
Attachment #9214836 - Attachment description: Bug 1637259 - Dispatch touch event for WM_POINTER r=edgar → Bug 1637259 - Dispatch touch event for WM_POINTER r=aklotz,edgar
See Also: → 1706420
Pushed by krosylight@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/267e8925453b
Dispatch touch event for WM_POINTER r=edgar,aklotz

Backed out for failures on pointerevent_attributes_nohover_pointers-manual.html

backout: https://hg.mozilla.org/integration/autoland/rev/5945ee1e79d9bce9f98858510d02a11f934ce921

push: https://treeherder.mozilla.org/jobs?repo=autoland&group_state=expanded&revision=267e8925453b55cb1976318a44ae2ec2b80035f9&selectedTaskRun=UlHr1kzNQKmBgSR0vGMsUQ.0

failure log: https://treeherder.mozilla.org/logviewer?job_id=337196804&repo=autoland&lineNumber=3548

[task 2021-04-20T20:32:28.547Z] 20:32:28 INFO - TEST-START | dom/events/test/pointerevents/test_wpt_pointerevent_attributes_nohover_pointers-manual.html
[task 2021-04-20T20:32:30.077Z] 20:32:30 INFO - GECKO(1529) | TEST-PASS | /tests/dom/events/test/pointerevents/wpt/pointerevent_attributes_nohover_pointers-manual.html | Pointer Events properties tests: Elided 100 passes or known failures.
[task 2021-04-20T20:32:30.078Z] 20:32:30 INFO - GECKO(1529) | TEST-PASS | /tests/dom/events/test/pointerevents/wpt/pointerevent_attributes_nohover_pointers-manual.html | touch pointerdown.pointerType IDL type string (JS type was string)
[task 2021-04-20T20:32:30.159Z] 20:32:30 INFO - GECKO(1529) | TEST-PASS | /tests/dom/events/test/pointerevents/wpt/pointerevent_attributes_nohover_pointers-manual.html | Pointer Events properties tests: Elided 44 passes or known failures.
[task 2021-04-20T20:32:30.160Z] 20:32:30 ERROR - GECKO(1529) | TEST-UNEXPECTED-FAIL | /tests/dom/events/test/pointerevents/wpt/pointerevent_attributes_nohover_pointers-manual.html | touch pointerup.pressure value is valid: assert_equals: pressure is 0 during pointerup expected 0 but got 1
[task 2021-04-20T20:32:30.356Z] 20:32:30 INFO - GECKO(1529) | TEST-PASS | /tests/dom/events/test/pointerevents/wpt/pointerevent_attributes_nohover_pointers-manual.html | Pointer Events properties tests: Elided 100 passes or known failures.
[task 2021-04-20T20:32:30.357Z] 20:32:30 INFO - GECKO(1529) | TEST-PASS | /tests/dom/events/test/pointerevents/wpt/pointerevent_attributes_nohover_pointers-manual.html | Inner frame touch pointerover.tiltY IDL type long (JS type was number)
[task 2021-04-20T20:32:30.497Z] 20:32:30 INFO - GECKO(1529) | TEST-PASS | /tests/dom/events/test/pointerevents/wpt/pointerevent_attributes_nohover_pointers-manual.html | Pointer Events properties tests: Elided 100 passes or known failures.
[task 2021-04-20T20:32:30.497Z] 20:32:30 INFO - GECKO(1529) | TEST-PASS | /tests/dom/events/test/pointerevents/wpt/pointerevent_attributes_nohover_pointers-manual.html | Inner frame touch pointerup.height is readonly
[task 2021-04-20T20:32:30.533Z] 20:32:30 INFO - GECKO(1529) | TEST-PASS | /tests/dom/events/test/pointerevents/wpt/pointerevent_attributes_nohover_pointers-manual.html | Pointer Events properties tests: Elided 20 passes or known failures.
[task 2021-04-20T20:32:30.533Z] 20:32:30 ERROR - GECKO(1529) | TEST-UNEXPECTED-FAIL | /tests/dom/events/test/pointerevents/wpt/pointerevent_attributes_nohover_pointers-manual.html | Inner frame touch pointerup.pressure value is valid: assert_equals: pressure is 0 during pointerup expected 0 but got 1
[task 2021-04-20T20:32:30.689Z] 20:32:30 INFO - GECKO(1529) | TEST-PASS | /tests/dom/events/test/pointerevents/wpt/pointerevent_attributes_nohover_pointers-manual.html | Pointer Events properties tests: Elided 78 passes or known failures.
[task 2021-04-20T20:32:31.027Z] 20:32:31 INFO - GECKO(1529) | [Child 1603, Main Thread] WARNING: Scrolled rect smaller than scrollport?: file /builds/worker/checkouts/gecko/layout/generic/nsGfxScrollFrame.cpp:7064
[task 2021-04-20T20:32:31.055Z] 20:32:31 INFO - TEST-PASS | dom/events/test/pointerevents/test_wpt_pointerevent_attributes_nohover_pointers-manual.html | touch pointerover's type should be pointerover (Get: 0, Expect: 0)

Flags: needinfo?(krosylight)
Pushed by krosylight@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/3df0f92987d1
Dispatch touch event for WM_POINTER r=edgar,aklotz
Flags: needinfo?(krosylight)
Status: NEW → RESOLVED
Closed: 22 days ago
Resolution: --- → FIXED
Target Milestone: --- → 90 Branch
Duplicate of this bug: 1670446
You need to log in before you can comment on or make changes to this bug.