Bug 1266380 - Don't try to untransform visible regions for inactive perspective layers. r=thinker a=ritu
--- 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);
}