Bug 1266380 - Don't try to untransform visible regions for inactive perspective layers. r=thinker a=ritu
authorMatt Woodrow <mwoodrow@mozilla.com>
Thu, 28 Apr 2016 17:05:46 +1200
changeset 333041 036020df2de87e4865b9c6ed4a5db6991b730def
parent 333040 3a217924ee0636422a9b14e96f774d9cf7404ac9
child 333042 1f9e4bbe2a4dee0b0ef8f55a00ab1ad4984c15ee
push id6048
push userkmoir@mozilla.com
push dateMon, 06 Jun 2016 19:02:08 +0000
treeherdermozilla-beta@46d72a56c57d [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersthinker, ritu
bugs1266380
milestone48.0a2
Bug 1266380 - Don't try to untransform visible regions for inactive perspective layers. r=thinker a=ritu
layout/base/FrameLayerBuilder.cpp
--- a/layout/base/FrameLayerBuilder.cpp
+++ b/layout/base/FrameLayerBuilder.cpp
@@ -4047,17 +4047,18 @@ ContainerState::ProcessDisplayItems(nsDi
         }
         newLayerEntry->mOpaqueRegion = ComputeOpaqueRect(item,
           animatedGeometryRoot, layerClip, aList,
           &newLayerEntry->mHideAllLayersBelow,
           &newLayerEntry->mOpaqueForAnimatedGeometryRootParent);
       } else {
         bool useChildrenVisible =
           itemType == nsDisplayItem::TYPE_TRANSFORM &&
-          item->Frame()->IsPreserve3DLeaf();
+          (item->Frame()->IsPreserve3DLeaf() ||
+           item->Frame()->HasPerspective());
         const nsIntRegion &visible = useChildrenVisible ?
           item->GetVisibleRectForChildren().ToOutsidePixels(mAppUnitsPerDevPixel):
           itemVisibleRect;
 
         SetOuterVisibleRegionForLayer(ownLayer, visible,
             layerContentsVisibleRect.width >= 0 ? &layerContentsVisibleRect : nullptr,
             useChildrenVisible);
       }