Closed Bug 1449634 Opened 7 years ago Closed 7 years ago

Handle foreignobject better with blob invalidation

Categories

(Core :: Graphics: WebRender, defect, P2)

defect

Tracking

()

RESOLVED FIXED
mozilla64
Tracking Status
firefox64 --- fixed

People

(Reporter: jrmuizel, Assigned: Gankra)

References

Details

Attachments

(1 file)

No description provided.
This is intended to fix APZ scrolling inside scrollable elements which are inside a <foreignObject> inside an <svg>. We need to: - Introduce a display item type called nsDisplayForeignObject - Make it wrap the contents of the foreign object frame - Detect it by its display item type in WebRenderCommandBuilder.cpp and cause it to set mDoGrouping to false for its contents, see the TODO comment at https://searchfox.org/mozilla-central/rev/08df4e6e11284186d477d7e5b0ae48483ecc979c/gfx/layers/wr/WebRenderCommandBuilder.cpp#1307-1311
Assignee: nobody → jmuizelaar
Comment on attachment 8972995 [details] Bug 1449634. Handle foreignobject better with blob invalidation. https://reviewboard.mozilla.org/r/241538/#review247600 ::: layout/painting/nsDisplayList.cpp:10143 (Diff revision 1) > +nsDisplayForeignObject::BuildLayer(nsDisplayListBuilder* aBuilder, > + LayerManager* aManager, > + const ContainerLayerParameters& aContainerParameters) > +{ > + ContainerLayerParameters newContainerParameters = aContainerParameters; > + newContainerParameters.mDisableSubpixelAntialiasingInDescendants = true; Why? ::: layout/painting/nsDisplayList.cpp:10163 (Diff revision 1) > + aResources, > + aSc, > + aManager, > + aDisplayListBuilder); indent ::: layout/painting/nsDisplayList.cpp:10167 (Diff revision 1) > + return nsDisplayWrapList::CreateWebRenderCommands(aBuilder, > + aResources, > + aSc, > + aManager, > + aDisplayListBuilder); > + } else { let's make the return false an early return
Attachment #8972995 - Flags: review?(mstange) → review+
Blocks: 1455192
Assignee: jmuizelaar → a.beingessner
It looks like the only failures are just Bug 1452337 rearing its head, in which case it should be fine for us to proceed with this patch. Sent reftest expectation adjustments to jrmuizel.
As mentioned in the duplicate, this affects our tscrollx talos test.
Pushed by jmuizelaar@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/4e2a6bb9192d Handle foreignobject better with blob invalidation. r=mstange
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
a perf improvement: == Change summary for alert #15704 (as of Fri, 07 Sep 2018 00:45:49 GMT) == Improvements: 24% tscrollx linux64-qr opt e10s stylo 0.41 -> 0.31 For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=15704
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: