Bug 1854113 Comment 1 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

Thanks for the report! I can reproduce this.

A minimal testcase that demonstrates the issue is https://theres-waldo.github.io/mozilla-testcases/primary-sub.html. It happens fairly reliably with the following STR:

 1. Ensure the yellow scrollable element is scrolled to the top
 2. Put down two fingers one after the other
 3. Pinch-zoom in slightly
 4. Release one finger
 5. Move the remaining finger downwards

When the first finger goes down, we sent an InputResult of UNHANDLED, due to bug 1815713 (a one-finger downward movement in that situation _should_ trigger pull-to-refresh).

At step 5, the application then seems to act on that UNHANDLED, without regard to the fact that a second finger has gone down and back up in the intervening time.

I believe this needs to be fixed at the application layer (at the time of sending the UNHANDLED, APZ does not know that this will be a two-finger gesture, and it does not have any other levers for controlling the activation of pull-to-refresh).

It would make sense to me to make a touch gesture ineligible to perform pull-to-refresh as soon as the gesture involves a second finger, for the remainder of the gesture's lifetime (i.e. until all fingers are lifted).
Thanks for the report! I can reproduce this.

A minimal testcase that demonstrates the issue is https://theres-waldo.github.io/mozilla-testcases/primary-sub.html. It happens fairly reliably with the following STR:

 1. Ensure the yellow scrollable element is scrolled to the top
 2. Put down two fingers one after the other
 3. Pinch-zoom in slightly
 4. Release one finger
 5. Move the remaining finger downwards

When the first finger goes down, we send an InputResult of UNHANDLED, due to bug 1815713 (a one-finger downward movement in that situation _should_ trigger pull-to-refresh).

At step 5, the application then seems to act on that UNHANDLED, without regard to the fact that a second finger has gone down and back up in the intervening time.

I believe this needs to be fixed at the application layer (at the time of sending the UNHANDLED, APZ does not know that this will be a two-finger gesture, and it does not have any other levers for controlling the activation of pull-to-refresh).

It would make sense to me to make a touch gesture ineligible to perform pull-to-refresh as soon as the gesture involves a second finger, for the remainder of the gesture's lifetime (i.e. until all fingers are lifted).

Back to Bug 1854113 Comment 1