Re-enable test_group_pointerevents.html for GeckoView
Categories
(Core :: Panning and Zooming, task, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox75 | --- | fixed |
People
(Reporter: botond, Assigned: kats)
References
Details
Attachments
(4 files)
test_group_pointerevents.html
was disabled for GeckoView in bug 1525959.
Now that we no longer run tests on Fennec, we should re-enable it so we don't lose test coverage.
Assignee | ||
Comment 1•5 years ago
|
||
Assignee | ||
Comment 2•5 years ago
|
||
Retriggers on that try push are showing a couple of tests with intermittent failures, looks like pointer events aren't getting detected. I can run the mochitest locally (on emulator) and don't see the failure but I will dig into it a bit.
Assignee | ||
Comment 3•5 years ago
|
||
Logcat for helper_bug1285070.html shows that the missing events (pointerup, pointerout, pointerleave, touchend) are getting dispatched after the click. This seems like a bug in the product, not a bug in the test. The code here is supposed to prevent that from happening by delaying the click event until after the touchend (and related pointer events) are dispatched, but I guess for some reason that's not happening.
Assignee | ||
Comment 4•5 years ago
|
||
So the flow for the touchend events is:
- Java UI thread (aka APZ controller thread) creates the events and sends through APZ
- Java UI thread redispatches to gecko thread via
nsAppShell::PostEvent
here - Gecko thread sends it to content process and triggers listeners etc.
for the mouse/click events:
- generated by processing of the touchend event on the Java UI thread (step 1 in the touchend flow above)
- Java UI thread redispatches to Java UI thread via
PostDelayedTask
here so as to ensure that it goes to content after the touchend - (this is where the Java UI thread then sends the touchend to gecko thread, step 2 in the touchend flow above)
- The Java UI thread dispatches to gecko main thread via
NS_DispatchToMainThread
here - Gecko thread sends it to content process and triggers listeners etc.
I think the problem is that the two mechanisms to go from the Java UI thread to the gecko thread are not the same (nsAppShell::PostEvent vs NS_DispatchToMainThread). And so sometimes the click events jump ahead of the touchend and most of the time they don't. Yay! In my local testing I always got the right result but I'll do a try push with logging to see if I can catch the misbehaviour in action to confirm.
Assignee | ||
Comment 5•5 years ago
|
||
Confirmed via try push logging: https://treeherder.mozilla.org/#/jobs?repo=try&group_state=expanded&revision=49bf4a01240894a720b0e3bf6757caeb4793557a
The logcat shows that the touch events are handled as expected on the Java UI thread, but the click event which is dispatched via NS_DispatchToMainThread
actually runs before either the touchup or touchdown events posted to the main thread via nsAppShell::PostEvent
.
Assignee | ||
Comment 6•5 years ago
|
||
Assignee | ||
Comment 7•5 years ago
|
||
Try pushes are looking good, patches incoming.
Assignee | ||
Comment 8•5 years ago
|
||
Assignee | ||
Comment 9•5 years ago
|
||
Depends on D64461
Assignee | ||
Comment 10•5 years ago
|
||
Depends on D64462
Assignee | ||
Comment 11•5 years ago
|
||
Depends on D64463
Comment 12•5 years ago
|
||
Comment 13•5 years ago
|
||
Backed out 4 changesets (bug 1583956) for Build bustage in gfx/layers/apz/util/ChromeProcessController.cpp. CLOSED TREE
Log:
https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=290748219&repo=autoland&lineNumber=48674
Push with failures:
https://treeherder.mozilla.org/#/jobs?repo=autoland&group_state=expanded&revision=f787e3e4a31ca44b4ec281fe818a097a1b35a0d1
Backout:
https://hg.mozilla.org/integration/autoland/rev/859a66f9984802e66aedfc91bdd66179289a8d08
Assignee | ||
Comment 14•5 years ago
|
||
Thanks, should be an easy fix. Here's a try push to make sure: https://treeherder.mozilla.org/#/jobs?repo=try&group_state=expanded&revision=9adda25432cfe2a703f53366e7a6abe1a6a57814
Comment 15•5 years ago
|
||
Comment 16•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/2dc80b6f0734
https://hg.mozilla.org/mozilla-central/rev/71b5445254cc
https://hg.mozilla.org/mozilla-central/rev/b1a77364c6bd
https://hg.mozilla.org/mozilla-central/rev/f143ac27a96f
Description
•