Closed Bug 1584033 Opened 6 years ago Closed 5 years ago

Get fixed-position hit testing to work on Android with WebRender

Categories

(Core :: Graphics: WebRender, enhancement, P3)

enhancement

Tracking

()

RESOLVED DUPLICATE of bug 1609002

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.

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?

Flags: needinfo?(jmuizelaar)
Priority: -- → P3

(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.

Flags: needinfo?(jmuizelaar)

(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 and position-sticky-async-zoom-1.html) are marked fails-if in this configuration.

Filed bug 1585056 for this and other APZ reftests that fail with WebRender on Android.

@botond: Is this still valid?

Flags: needinfo?(botond)

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.

Status: NEW → RESOLVED
Closed: 5 years ago
Flags: needinfo?(botond)
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.