Get fixed-position hit testing to work on Android with WebRender
Categories
(Core :: Graphics: WebRender, enhancement, P3)
Tracking
()
People
(Reporter: botond, Unassigned)
References
Details
In bug 656036, we changed the way position:fixed
elements behave when zoomed in.
As part of this change, when zoomed in, fixed layers can now have persistent async transforms, not just transient ones. That in turn means we have to take their async transforms into account for hit testing, not just for rendering.
Bug 1522714 implemented this (for containerless scrolling; I've no idea how it ever worked for container scrolling, quite possibly it never did), but only for non-WebRender (it made changes to APZCTreeManager::ComputeTransformForNode()
, which is used by the non-WR hit test but not the WR hit test).
We need a corresponding change to the WR hit test.
The change likely needs to be made to SampleForWebRender()
. I think that, as a general principle, any node type which has an async transform in ComputeTransformForNode()
needs to provide some kind of transform in SampleForWebRender()
as well.
Reporter | ||
Comment 1•6 years ago
|
||
Actually, I've no idea how even the rendering side of this works with WR. Maybe it doesn't?
Do we have test coverage (e.g. reftests) for Android+WR?
Updated•6 years ago
|
Reporter | ||
Comment 2•6 years ago
•
|
||
(In reply to Botond Ballo [:botond] from comment #1)
Actually, I've no idea how even the rendering side of this works with WR. Maybe it doesn't?
Do we have test coverage (e.g. reftests) for Android+WR?
It looks like the answer is that the rendering side does not work, either.
We do have reftest coverage for Android+WR, but the reftests that cover this (layout/reftests/async-scrolling/position-fixed-async-zoom-1.html
and position-sticky-async-zoom-1.html
) are marked fails-if
in this configuration.
Reporter | ||
Comment 3•6 years ago
|
||
(In reply to Botond Ballo [:botond] from comment #2)
We do have reftest coverage for Android+WR, but the reftests that cover this (
layout/reftests/async-scrolling/position-fixed-async-zoom-1.html
andposition-sticky-async-zoom-1.html
) are markedfails-if
in this configuration.
Filed bug 1585056 for this and other APZ reftests that fail with WebRender on Android.
Reporter | ||
Comment 5•5 years ago
|
||
It looks like, unlike the non-WR codepath, the WR codepath gets the transforms for rendering and hit testing from a single place, and thus this was fixed by bug 1609002.
Description
•