Backed out changeset 5450b06e79e5 (bug 1369910) for assertions in FrameLayerBuilder.cpp CLOSED TREE
authorWes Kocher <wkocher@mozilla.com>
Mon, 05 Jun 2017 10:28:32 -0700
changeset 410491 4eac7b44eb988bda2087568c656d890e7b88bd87
parent 410490 2f1c4c2910386dee53b0bfb632b958a93d1c4d6f
child 410492 88b1189b4fddcf87a39c090eff18222e27eaa250
push id7391
push usermtabara@mozilla.com
push dateMon, 12 Jun 2017 13:08:53 +0000
treeherdermozilla-beta@2191d7f87e2e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1369910
milestone55.0a1
backs out5450b06e79e588e2589df76aba35235aa35dbfa8
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Backed out changeset 5450b06e79e5 (bug 1369910) for assertions in FrameLayerBuilder.cpp CLOSED TREE MozReview-Commit-ID: 9m63lG6kj7B
layout/painting/FrameLayerBuilder.cpp
--- a/layout/painting/FrameLayerBuilder.cpp
+++ b/layout/painting/FrameLayerBuilder.cpp
@@ -4206,24 +4206,26 @@ ContainerState::ProcessDisplayItems(nsDi
         // the whole clip chain is always just one fused clip.
         // Bug 1336516 aims to change that and to remove this workaround.
         AnimatedGeometryRoot* clipAGR = item->AnimatedGeometryRootForScrollMetadata();
         nsIntRect scrolledClipRect =
           ScaleToNearestPixels(itemClip.GetClipRect()) + mParameters.mOffset;
         mPaintedLayerDataTree.AddingOwnLayer(clipAGR,
                                              &scrolledClipRect,
                                              uniformColorPtr);
-      } else if (IsScrollThumbLayer(item) && mManager->IsWidgetLayerManager()) {
-        // For scrollbar thumbs, the clip we care about is the clip added by the
-        // slider frame.
+      } else if ((*animatedGeometryRoot == item->Frame() &&
+                  *animatedGeometryRoot != mBuilder->RootReferenceFrame()) ||
+                 (IsScrollThumbLayer(item) && mManager->IsWidgetLayerManager())) {
+        // This is the case for scrollbar thumbs, for example. In that case the
+        // clip we care about is the overflow:hidden clip on the scrollbar.
         mPaintedLayerDataTree.AddingOwnLayer(animatedGeometryRoot->mParentAGR,
                                              clipPtr,
                                              uniformColorPtr);
-      } else if (prerenderedTransform && mManager->IsWidgetLayerManager()) {
-        mPaintedLayerDataTree.AddingOwnLayer(animatedGeometryRoot->mParentAGR,
+      } else if (prerenderedTransform) {
+        mPaintedLayerDataTree.AddingOwnLayer(animatedGeometryRoot,
                                              clipPtr,
                                              uniformColorPtr);
       } else {
         // Using itemVisibleRect here isn't perfect. itemVisibleRect can be
         // larger or smaller than the potential bounds of item's contents in
         // animatedGeometryRoot: It's too large if there's a clipped display
         // port somewhere among item's contents (see bug 1147673), and it can
         // be too small if the contents can move, because it only looks at the