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•6 years ago
|
||
| Assignee | ||
Comment 2•6 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•6 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•6 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::PostEventhere - 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
PostDelayedTaskhere 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_DispatchToMainThreadhere - 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•6 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•6 years ago
|
||
| Assignee | ||
Comment 7•6 years ago
|
||
Try pushes are looking good, patches incoming.
| Assignee | ||
Comment 8•6 years ago
|
||
| Assignee | ||
Comment 9•6 years ago
|
||
Depends on D64461
| Assignee | ||
Comment 10•6 years ago
|
||
Depends on D64462
| Assignee | ||
Comment 11•6 years ago
|
||
Depends on D64463
Comment 12•6 years ago
|
||
Comment 13•6 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•6 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•6 years ago
|
||
Comment 16•6 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
•