Intermittent remoteAsyncEvents TEST-UNEXPECTED-TIMEOUT | /dom/events/scrolling/scroll-cross-origin-iframes.html | Verify sibling cross-origin iframes can wheel-scroll. - Test timed out
Categories
(Core :: Panning and Zooming, defect, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox141 | --- | fixed |
People
(Reporter: whimboo, Assigned: hiro)
References
(Blocks 1 open bug)
Details
Attachments
(1 external file)
Even with bug 1848957 fixed and now dispatching widget events for wheel scroll through Marionette this particular test still times out. I did a quick test and noticed that when synthesizing a wheel scroll for whether frame 1 or frame 2 it works. But synthesizing to both of them in that loop makes the test to timeout because we do not get a scrollend event for the second frame. Instead the scrolling seems to be performed in the first frame again for a second time.
To see the issue run the following command:
mach wpt --setpref="remote.log.truncate=false" --setpref="remote.log.level=Trace" --setpref="remote.events.async.wheel.enabled=true" testing/web-platform/tests/dom/events/scrolling/scroll-cross-origin-iframes.html
Dan, could you maybe have a look?
| Reporter | ||
Comment 1•1 year ago
•
|
||
Actually adding a sleep of >500ms before synthesizing the seconds event to the other frame or waiting this amount of time before returning from .scroll() fixes the issue. As such I think this will as well depend on bug 1963550.
| Reporter | ||
Comment 2•1 year ago
|
||
It may be related to the mousewheel.transaction.timeout value which we set to 500ms for the wpt tests under /dom/events/scrolling/.
Hiro will take a look.
Comment 3•1 year ago
|
||
(In reply to Henrik Skupin [:whimboo][⌚️UTC+2] from comment #2)
It may be related to the
mousewheel.transaction.timeoutvalue which we set to 500ms for the wpt tests under/dom/events/scrolling/.Hiro will take a look.
Exactly what I was thinking. Wheel transactions work across iframes. To confirm you could run with dom.event.wheel-event-groups.enabled=false. I'll double check this tomorrow.
| Assignee | ||
Comment 4•1 year ago
|
||
Okay, so As Henrik pointed out Marionette tries to end the active wheel transition via calling ChromeUtils.endWheelTransaction, but it does just try to end the transaction on the main-thread.
We need to invoke WheelBlockState::EndTransaction.
This is indeed an issue in APZ.
| Assignee | ||
Updated•1 year ago
|
| Assignee | ||
Comment 5•1 year ago
|
||
A caveat here is that even though ChromeUtils.endWheelTransaction is a
test-only API, PWebRenderBridge.EndWheelTransaction IPC call can not be
sync because it ends up deferring the ending the transaction task to the
controller thread.
Updated•1 year ago
|
| Reporter | ||
Updated•1 year ago
|
Comment 7•1 year ago
|
||
| bugherder | ||
Updated•1 year ago
|
Description
•