Bug 1357065 - Update WebRenderDisplayItemLayer to use PushClip instead of PushScrollLayer because it's pushing a non-scrolling clip. r?jrmuizel draft
authorKartikaya Gupta <kgupta@mozilla.com>
Tue, 18 Apr 2017 09:54:57 -0400
changeset 564392 10965ecbe9c7d4695d49c4d1e61f340c5f79f8d7
parent 564391 347f58227138629971944547c583906e21ff9151
child 564395 a208c1cc0f00086177ec98a9b0ba4147a01cc20e
push id54578
push userkgupta@mozilla.com
push dateTue, 18 Apr 2017 13:55:26 +0000
reviewersjrmuizel
bugs1357065
milestone55.0a1
Bug 1357065 - Update WebRenderDisplayItemLayer to use PushClip instead of PushScrollLayer because it's pushing a non-scrolling clip. r?jrmuizel MozReview-Commit-ID: 5GoQtyXQX4q
gfx/layers/wr/WebRenderDisplayItemLayer.cpp
--- a/gfx/layers/wr/WebRenderDisplayItemLayer.cpp
+++ b/gfx/layers/wr/WebRenderDisplayItemLayer.cpp
@@ -22,37 +22,35 @@ WebRenderDisplayItemLayer::RenderLayer(w
   if (mVisibleRegion.IsEmpty()) {
     return;
   }
 
   Maybe<WrImageMask> mask = BuildWrMaskLayer(false);
   WrImageMask* imageMask = mask.ptrOr(nullptr);
   if (imageMask) {
     gfx::Rect rect = TransformedVisibleBoundsRelativeToParent();
-    gfx::Rect overflow(0.0, 0.0, rect.width, rect.height);
-    aBuilder.PushScrollLayer(wr::ToWrRect(rect),
-                             wr::ToWrRect(overflow),
-                             imageMask);
+    gfx::Rect clip(0.0, 0.0, rect.width, rect.height);
+    aBuilder.PushClip(wr::ToWrRect(clip), imageMask);
   }
 
   if (mItem) {
     wr::DisplayListBuilder builder(WrBridge()->GetPipeline());
     // We might have recycled this layer. Throw away the old commands.
     mParentCommands.Clear();
     mItem->CreateWebRenderCommands(builder, mParentCommands, this);
     mBuiltDisplayList = builder.Finalize();
   }
   // else we have an empty transaction and just use the
   // old commands.
 
   aBuilder.PushBuiltDisplayList(Move(mBuiltDisplayList));
   WrBridge()->AddWebRenderParentCommands(mParentCommands);
 
   if (imageMask) {
-    aBuilder.PopScrollLayer();
+    aBuilder.PopClip();
   }
 }
 
 Maybe<wr::ImageKey>
 WebRenderDisplayItemLayer::SendImageContainer(ImageContainer* aContainer,
                                               nsTArray<layers::WebRenderParentCommand>& aParentCommands)
 {
   if (mImageContainer != aContainer) {