Hit testing during composite is misaligned when overscroll is active
Categories
(Core :: Panning and Zooming, defect, P2)
Tracking
()
People
(Reporter: sawyerbergeron, Assigned: botond)
References
(Blocks 1 open bug)
Details
Attachments
(3 files)
User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:86.0) Gecko/20100101 Firefox/86.0
Steps to reproduce:
- Apply https://phabricator.services.mozilla.com/D100283
- Enable apz.overscroll.enabled
- Use a touchpad to cause an overscroll animation at the top of the page
- Use a mouse (while holding overscroll) to hover close to the top of the view within the overscroll gutter
Actual results:
Any events (hover, click) over the overscroll gutter are dispatched to their on-screen position - overscroll amount. In extreme cases, hovering in the gutter at the top of a page may allow events to be dispatched to the browser tab bar.
Expected results:
Any events within overscroll gutter should be gracefully handled and should not dispatch events to unexpected regions.
Reporter | ||
Updated•4 years ago
|
Reporter | ||
Updated•4 years ago
|
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 1•4 years ago
|
||
I'm going to take this as this is one of the blockers of the initial release of overscroll.
Assignee | ||
Comment 2•4 years ago
|
||
I've been thinking about how to test this. We cannot use a reftest because reftests are not suited for testing hit-testing issues. However, the "test async scroll offset" that's set by reftest-async-scroll
is also exposed to mochitests via nsIDOMWindowUtils.setAsyncScrollOffset()
, so we can reuse the work being done in bug 1697712 to allow getting into overscroll via the "test async scroll offset", to write a mochitest to exercise this.
Assignee | ||
Comment 3•4 years ago
|
||
I've started to exercise this scenario in a mochitest and work on fixing it, and unfortunately I've discovered that my earlier assessment that the APZ hit-test already gives the right results and it's just the Gecko dispatch that needs to be fixed, was only correct for the root scroll frame.
For subframes, we need to fix the APZ hit-test as well, including WebRender and non-WR pieces. (And the WR piece will require changes to Rust code, including sending the overscroll to WR as a separate quantity.)
I think I'm going to split off the subframe case into a separate bug, and work on fixing the root scroll frame case first, as that's easier.
Assignee | ||
Comment 4•4 years ago
|
||
Assignee | ||
Comment 5•4 years ago
|
||
Depends on D109187
Assignee | ||
Comment 6•4 years ago
|
||
Depends on D109188
Assignee | ||
Comment 7•4 years ago
|
||
(In reply to Botond Ballo [:botond] from comment #3)
I think I'm going to split off the subframe case into a separate bug, and work on fixing the root scroll frame case first, as that's easier.
Split off the subframe case into bug 1699868.
Comment 9•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/5d5c3513c608
https://hg.mozilla.org/mozilla-central/rev/f27634147d1b
https://hg.mozilla.org/mozilla-central/rev/42906f68ffd5
Comment 10•4 years ago
|
||
Verified fixed as Bug 1704070 is also fixed in beta 89.0b2 (20210420191345) and Nightly 90.0a1 (2021-04-20) (20210420213949) on MacOS 11.2.3 and Mac mini M1 11.0.1.
Description
•