Closed Bug 1479757 Opened 6 years ago Closed 6 years ago

Turn on containerless scrolling for WR in GeckoView

Categories

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

Other Branch
enhancement

Tracking

()

RESOLVED FIXED
mozilla64
Tracking Status
firefox64 --- fixed

People

(Reporter: kats, Assigned: kats)

References

Details

(Whiteboard: [gfx-noted])

Attachments

(1 file)

Android currently uses containerful scrolling, and that means that the call at [1] can return a Nothing() for the root scrollframe, because mIsScrollableLayerInRootContainer will be true at [2]. This causes an assertion failure/crash in ClipManager when enabling WR on android. We either need to handle this scenario more gracefully, or get bug 1459312 done so that Android switches to containerless scrolling. Note that we might need the graceful-handling scenario anyway to fix bug 1471671 so it's probably worth just doing that as a short-term solution anyway. [1] https://searchfox.org/mozilla-central/rev/033d45ca70ff32acf04286244644d19308c359d5/gfx/layers/wr/ClipManager.cpp#265 [2] https://searchfox.org/mozilla-central/rev/033d45ca70ff32acf04286244644d19308c359d5/layout/generic/nsGfxScrollFrame.cpp#3910
Assignee: nobody → bugmail
Priority: -- → P3
I think bug 1471671 is probably unrelated, and so I'll deal with that separately. For this bug, I think we should force containerless scrolling on in the GeckoView+WR configuration. For one thing, when WR is enabled, there are no container layers (or layers of any kind) so the containerful vs containerless distinction makes a lot less difference. We'll need to hook up zooming specifically for the WR codepath anyway, so we might as well do it in a "containerless" way.
Summary: Make WR work with containerful scrolling → Turn on containerless scrolling for WR in GeckoView
This changes the containerful scrolling pref to be an override pref such that it is: - always false on desktop (i.e. always use containerless there) - always true in Fennec (i.e. never use containerless there) - true in GeckoView if WebRender is disabled (i.e. only use containerless with WebRender). The first two cases are the same as before; the last case is new. Because we don't create layers with WR, the containerless vs containerful distinction doesn't make much sense there, and we need to implement a bunch of zooming glue in either case. So it makes sense to go with the "way of the future" and keep it containerless.
Pushed by kgupta@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/835e3524a6ca Switch to containerless scrolling for GeckoView+WR. r=botond
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
No longer depends on: 1459312
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: