Send async "touch" events at the widget level instead of synthesized DOM events
Categories
(Remote Protocol :: Agent, task, P2)
Tracking
(Not tracked)
People
(Reporter: dlrobertson, Assigned: whimboo)
References
(Depends on 1 open bug, Blocks 8 open bugs)
Details
(Whiteboard: [webdriver:m20])
Attachments
(2 files)
Many of the scrollend and overscroll event tests use touchScrollInTarget to trigger a scroll in a scrollable element. Use native touch events instead of DOM events to make it possible to use touchScrollInTarget-like patterns in tests.
| Assignee | ||
Updated•3 years ago
|
| Assignee | ||
Updated•3 years ago
|
Updated•3 years ago
|
| Assignee | ||
Comment 1•3 years ago
|
||
Touch events are a special type of events so I assume this should be blocked on bug 1773393 instead.
| Assignee | ||
Updated•3 years ago
|
| Assignee | ||
Updated•2 years ago
|
| Assignee | ||
Updated•2 years ago
|
| Assignee | ||
Updated•2 years ago
|
| Assignee | ||
Updated•2 years ago
|
| Assignee | ||
Updated•2 years ago
|
| Assignee | ||
Comment 2•2 years ago
|
||
Please note that with bug 1852243 we have a temporary workaround available that will work fine for layout folks to work towards the interop 2023 goals. As such we do not have to work on this feature in M8 anymore.
| Assignee | ||
Comment 3•1 year ago
|
||
Note that for calculating the position relative to the top-level widget (browser), you can use the new LayoutUtils.rectToToplevelWidgetRect() helper method. This method allows you to get the target position based on local coordinates, even from within frames. Ensure that the device pixel ratio settings are applied before calling this method.
| Assignee | ||
Comment 4•1 year ago
|
||
Actually we will try to get this bug done for M12 but decided to mark it as optional.
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
| Assignee | ||
Updated•1 year ago
|
| Assignee | ||
Updated•1 year ago
|
| Assignee | ||
Updated•1 year ago
|
| Assignee | ||
Updated•11 months ago
|
Updated•11 months ago
|
Updated•11 months ago
|
Updated•8 months ago
|
Updated•8 months ago
|
| Assignee | ||
Updated•5 months ago
|
| Assignee | ||
Updated•3 months ago
|
| Assignee | ||
Comment 5•3 months ago
|
||
| Assignee | ||
Comment 6•3 months ago
|
||
| Assignee | ||
Comment 7•3 months ago
|
||
WiP patches are attached to the bug. Most of the webdriver tests work fine with dispatching the touch events as widget events via the parent process. But there is a situation which always causes tests to fail:
When a touchstart event is dispatched for a content browsing context a registered event handler on the page doesn't fire, unless the pointer was explicitly moved to the top-right corner of the content browsing context before. Could it be that there is a problem with initial location of the touch pointer input source? Here a minimized example:
touch_chain = self.marionette.actions.sequence("pointer", "pointer_01", { "pointerType": "touch"})
touch_chain.pointer_move(0, 0) # without this line no `touchstart` is emitted on the page
touch_chain.pointer_down(button=0)
touch_chain.perform()
It can as well be reproduced with the test test_move_to_fractional_position (whereby something else causes another issue so no pointermove event is emitted):
Edgar, do you have an idea what could be wrong?
Comment 8•3 months ago
|
||
(In reply to Henrik Skupin [:whimboo][⌚️UTC+1] from comment #7)
It can as well be reproduced with the test
test_move_to_fractional_position(whereby something else causes another issue so nopointermoveevent is emitted):Edgar, do you have an idea what could be wrong?
Per discussion in slack, the initial position of touch input source looks weird. Let me know if you encounter other issues.
Comment 9•3 months ago
|
||
Locally confirmed snap-fling-in-large-area.html (which is one of the introp-2026 tests) passed with D284832. Thanks!
Updated•2 months ago
|
Description
•