Index: Source/platform/graphics/CompositingReasons.h |
diff --git a/Source/platform/graphics/CompositingReasons.h b/Source/platform/graphics/CompositingReasons.h |
index 9f0bfd3c425915227ec6060417f2a2b46f7ceae7..b4aa6f895c2036b88b3ecf6a18e15c3124a1a990 100644 |
--- a/Source/platform/graphics/CompositingReasons.h |
+++ b/Source/platform/graphics/CompositingReasons.h |
@@ -10,67 +10,73 @@ |
namespace WebCore { |
-const uint64_t CompositingReasonNone = 0; |
-const uint64_t CompositingReasonAll = ~static_cast<uint64_t>(0); |
+const uint64_t CompositingReasonNone = 0; |
+const uint64_t CompositingReasonAll = ~static_cast<uint64_t>(0); |
// Intrinsic reasons that can be known right away by the layer |
-const uint64_t CompositingReason3DTransform = UINT64_C(1) << 0; |
-const uint64_t CompositingReasonVideo = UINT64_C(1) << 1; |
-const uint64_t CompositingReasonCanvas = UINT64_C(1) << 2; |
-const uint64_t CompositingReasonPlugin = UINT64_C(1) << 3; |
-const uint64_t CompositingReasonIFrame = UINT64_C(1) << 4; |
-const uint64_t CompositingReasonBackfaceVisibilityHidden = UINT64_C(1) << 5; |
-const uint64_t CompositingReasonActiveAnimation = UINT64_C(1) << 6; |
-const uint64_t CompositingReasonTransitionProperty = UINT64_C(1) << 7; |
-const uint64_t CompositingReasonFilters = UINT64_C(1) << 8; |
-const uint64_t CompositingReasonPositionFixed = UINT64_C(1) << 9; |
-// Bit 10 is available. |
-const uint64_t CompositingReasonOverflowScrollingTouch = UINT64_C(1) << 11; |
-const uint64_t CompositingReasonOverflowScrollingParent = UINT64_C(1) << 12; |
-const uint64_t CompositingReasonOutOfFlowClipping = UINT64_C(1) << 13; |
-const uint64_t CompositingReasonVideoOverlay = UINT64_C(1) << 14; |
-const uint64_t CompositingReasonWillChangeCompositingHint = UINT64_C(1) << 15; |
-// Bit 16 is available. |
+const uint64_t CompositingReason3DTransform = UINT64_C(1) << 0; |
+const uint64_t CompositingReasonVideo = UINT64_C(1) << 1; |
+const uint64_t CompositingReasonCanvas = UINT64_C(1) << 2; |
+const uint64_t CompositingReasonPlugin = UINT64_C(1) << 3; |
+const uint64_t CompositingReasonIFrame = UINT64_C(1) << 4; |
+const uint64_t CompositingReasonBackfaceVisibilityHidden = UINT64_C(1) << 5; |
+const uint64_t CompositingReasonActiveAnimation = UINT64_C(1) << 6; |
+const uint64_t CompositingReasonTransitionProperty = UINT64_C(1) << 7; |
+const uint64_t CompositingReasonFilters = UINT64_C(1) << 8; |
+const uint64_t CompositingReasonPositionFixed = UINT64_C(1) << 9; |
+const uint64_t CompositingReasonOverflowScrollingTouch = UINT64_C(1) << 10; |
+const uint64_t CompositingReasonOverflowScrollingParent = UINT64_C(1) << 11; |
+const uint64_t CompositingReasonOutOfFlowClipping = UINT64_C(1) << 12; |
+const uint64_t CompositingReasonVideoOverlay = UINT64_C(1) << 13; |
+const uint64_t CompositingReasonWillChangeCompositingHint = UINT64_C(1) << 14; |
// Overlap reasons that require knowing what's behind you in paint-order before knowing the answer |
-const uint64_t CompositingReasonAssumedOverlap = UINT64_C(1) << 17; |
-const uint64_t CompositingReasonOverlap = UINT64_C(1) << 18; |
-const uint64_t CompositingReasonNegativeZIndexChildren = UINT64_C(1) << 19; |
-const uint64_t CompositingReasonNoSquashingTargetFound = UINT64_C(1) << 20; |
+const uint64_t CompositingReasonAssumedOverlap = UINT64_C(1) << 15; |
+const uint64_t CompositingReasonOverlap = UINT64_C(1) << 16; |
+const uint64_t CompositingReasonNegativeZIndexChildren = UINT64_C(1) << 17; |
+const uint64_t CompositingReasonScrollsWithRespectToSquashingLayer = UINT64_C(1) << 18; |
+const uint64_t CompositingReasonSquashingSparsityExceeded = UINT64_C(1) << 19; |
+const uint64_t CompositingReasonSquashingClippingContainerMismatch = UINT64_C(1) << 20; |
+const uint64_t CompositingReasonSquashingOpacityAncestorMismatch = UINT64_C(1) << 21; |
+const uint64_t CompositingReasonSquashingTransformAncestorMismatch = UINT64_C(1) << 22; |
+const uint64_t CompositingReasonSquashingFilterAncestorMismatch = UINT64_C(1) << 23; |
+const uint64_t CompositingReasonSquashingWouldBreakPaintOrder = UINT64_C(1) << 24; |
+const uint64_t CompositingReasonSquashingVideoIsDisallowed = UINT64_C(1) << 25; |
+const uint64_t CompositingReasonSquashedLayerClipsCompositingDescendants = UINT64_C(1) << 26; |
// Subtree reasons that require knowing what the status of your subtree is before knowing the answer |
-const uint64_t CompositingReasonTransformWithCompositedDescendants = UINT64_C(1) << 21; |
-const uint64_t CompositingReasonOpacityWithCompositedDescendants = UINT64_C(1) << 22; |
-const uint64_t CompositingReasonMaskWithCompositedDescendants = UINT64_C(1) << 23; |
-const uint64_t CompositingReasonReflectionWithCompositedDescendants = UINT64_C(1) << 24; |
-const uint64_t CompositingReasonFilterWithCompositedDescendants = UINT64_C(1) << 25; |
-const uint64_t CompositingReasonBlendingWithCompositedDescendants = UINT64_C(1) << 26; |
-const uint64_t CompositingReasonClipsCompositingDescendants = UINT64_C(1) << 27; |
-const uint64_t CompositingReasonPerspectiveWith3DDescendants = UINT64_C(1) << 28; |
-const uint64_t CompositingReasonPreserve3DWith3DDescendants = UINT64_C(1) << 29; |
-const uint64_t CompositingReasonReflectionOfCompositedParent = UINT64_C(1) << 30; |
-const uint64_t CompositingReasonIsolateCompositedDescendants = UINT64_C(1) << 31; |
+const uint64_t CompositingReasonTransformWithCompositedDescendants = UINT64_C(1) << 27; |
+const uint64_t CompositingReasonOpacityWithCompositedDescendants = UINT64_C(1) << 28; |
+const uint64_t CompositingReasonMaskWithCompositedDescendants = UINT64_C(1) << 29; |
+const uint64_t CompositingReasonReflectionWithCompositedDescendants = UINT64_C(1) << 30; |
+const uint64_t CompositingReasonFilterWithCompositedDescendants = UINT64_C(1) << 31; |
+const uint64_t CompositingReasonBlendingWithCompositedDescendants = UINT64_C(1) << 32; |
+const uint64_t CompositingReasonClipsCompositingDescendants = UINT64_C(1) << 33; |
+const uint64_t CompositingReasonPerspectiveWith3DDescendants = UINT64_C(1) << 34; |
+const uint64_t CompositingReasonPreserve3DWith3DDescendants = UINT64_C(1) << 35; |
+const uint64_t CompositingReasonReflectionOfCompositedParent = UINT64_C(1) << 36; |
+const uint64_t CompositingReasonIsolateCompositedDescendants = UINT64_C(1) << 37; |
// The root layer is a special case that may be forced to be a layer, but also it needs to be |
// a layer if anything else in the subtree is composited. |
-const uint64_t CompositingReasonRoot = UINT64_C(1) << 32; |
+const uint64_t CompositingReasonRoot = UINT64_C(1) << 38; |
// CompositedLayerMapping internal hierarchy reasons |
-const uint64_t CompositingReasonLayerForAncestorClip = UINT64_C(1) << 33; |
-const uint64_t CompositingReasonLayerForDescendantClip = UINT64_C(1) << 34; |
-const uint64_t CompositingReasonLayerForPerspective = UINT64_C(1) << 35; |
-const uint64_t CompositingReasonLayerForHorizontalScrollbar = UINT64_C(1) << 36; |
-const uint64_t CompositingReasonLayerForVerticalScrollbar = UINT64_C(1) << 37; |
-const uint64_t CompositingReasonLayerForScrollCorner = UINT64_C(1) << 38; |
-const uint64_t CompositingReasonLayerForScrollingContents = UINT64_C(1) << 39; |
-const uint64_t CompositingReasonLayerForScrollingContainer = UINT64_C(1) << 40; |
-const uint64_t CompositingReasonLayerForSquashingContents = UINT64_C(1) << 41; |
-const uint64_t CompositingReasonLayerForSquashingContainer = UINT64_C(1) << 42; |
-const uint64_t CompositingReasonLayerForForeground = UINT64_C(1) << 43; |
-const uint64_t CompositingReasonLayerForBackground = UINT64_C(1) << 44; |
-const uint64_t CompositingReasonLayerForMask = UINT64_C(1) << 45; |
-const uint64_t CompositingReasonLayerForClippingMask = UINT64_C(1) << 46; |
-const uint64_t CompositingReasonLayerForScrollingBlockSelection = UINT64_C(1) << 47; |
+const uint64_t CompositingReasonLayerForAncestorClip = UINT64_C(1) << 39; |
+const uint64_t CompositingReasonLayerForDescendantClip = UINT64_C(1) << 40; |
+const uint64_t CompositingReasonLayerForPerspective = UINT64_C(1) << 41; |
+const uint64_t CompositingReasonLayerForHorizontalScrollbar = UINT64_C(1) << 42; |
+const uint64_t CompositingReasonLayerForVerticalScrollbar = UINT64_C(1) << 43; |
+const uint64_t CompositingReasonLayerForScrollCorner = UINT64_C(1) << 44; |
+const uint64_t CompositingReasonLayerForScrollingContents = UINT64_C(1) << 45; |
+const uint64_t CompositingReasonLayerForScrollingContainer = UINT64_C(1) << 46; |
+const uint64_t CompositingReasonLayerForSquashingContents = UINT64_C(1) << 47; |
+const uint64_t CompositingReasonLayerForSquashingContainer = UINT64_C(1) << 48; |
+const uint64_t CompositingReasonLayerForForeground = UINT64_C(1) << 49; |
+const uint64_t CompositingReasonLayerForBackground = UINT64_C(1) << 50; |
+const uint64_t CompositingReasonLayerForMask = UINT64_C(1) << 51; |
+const uint64_t CompositingReasonLayerForClippingMask = UINT64_C(1) << 52; |
+const uint64_t CompositingReasonLayerForScrollingBlockSelection = UINT64_C(1) << 53; |
// Various combinations of compositing reasons are defined here also, for more intutive and faster bitwise logic. |
const uint64_t CompositingReasonComboAllDirectReasons = |
@@ -103,7 +109,15 @@ const uint64_t CompositingReasonComboReasonsThatRequireOwnBacking = |
| CompositingReasonOverlap |
| CompositingReasonAssumedOverlap |
| CompositingReasonNegativeZIndexChildren |
- | CompositingReasonNoSquashingTargetFound |
+ | CompositingReasonScrollsWithRespectToSquashingLayer |
+ | CompositingReasonSquashingSparsityExceeded |
+ | CompositingReasonSquashingClippingContainerMismatch |
+ | CompositingReasonSquashingOpacityAncestorMismatch |
+ | CompositingReasonSquashingTransformAncestorMismatch |
+ | CompositingReasonSquashingFilterAncestorMismatch |
+ | CompositingReasonSquashingWouldBreakPaintOrder |
+ | CompositingReasonSquashingVideoIsDisallowed |
+ | CompositingReasonSquashedLayerClipsCompositingDescendants |
| CompositingReasonTransformWithCompositedDescendants |
| CompositingReasonOpacityWithCompositedDescendants |
| CompositingReasonMaskWithCompositedDescendants |
@@ -199,9 +213,33 @@ static const CompositingReasonStringMap compositingReasonStringMap[] = { |
{ CompositingReasonNegativeZIndexChildren, |
"negativeZIndexChildren", |
"Parent with composited negative z-index content" }, |
- { CompositingReasonNoSquashingTargetFound, |
- "noSquashingTargetFound", |
- "Cannot be squashed due to no compatible squashing owner found" }, |
+ { CompositingReasonScrollsWithRespectToSquashingLayer, |
+ "scrollsWithRespectToSquashingLayer", |
+ "Cannot be squashed since this layer scrolls with respect to the squashing layer" }, |
+ { CompositingReasonSquashingSparsityExceeded, |
+ "squashingSparsityExceeded", |
+ "Cannot be squashed as the squashing layer would become too sparse" }, |
+ { CompositingReasonSquashingClippingContainerMismatch, |
+ "squashingClippingContainerMismatch", |
+ "Cannot be squashed because this layer has a different clipping container than the squashing layer" }, |
+ { CompositingReasonSquashingOpacityAncestorMismatch, |
+ "squashingOpacityAncestorMismatch", |
+ "Cannot be squashed because this layer has a different opacity ancestor than the squashing layer" }, |
+ { CompositingReasonSquashingTransformAncestorMismatch, |
+ "squashingTransformAncestorMismatch", |
+ "Cannot be squashed because this layer has a different transform ancestor than the squashing layer" }, |
+ { CompositingReasonSquashingFilterAncestorMismatch, |
+ "squashingFilterAncestorMismatch", |
+ "Cannot be squashed because this layer has a different filter ancestor than the squashing layer" }, |
+ { CompositingReasonSquashingWouldBreakPaintOrder, |
+ "squashingWouldBreakPaintOrder", |
+ "Cannot be squashed without breaking paint order" }, |
+ { CompositingReasonSquashingVideoIsDisallowed, |
+ "squashingVideoIsDisallowed", |
+ "Squashing video is not supported" }, |
+ { CompositingReasonSquashedLayerClipsCompositingDescendants, |
+ "squashedLayerClipsCompositingDescendants", |
+ "Squashing a layer that clips composited descendants is not supported." }, |
{ CompositingReasonTransformWithCompositedDescendants, |
"transformWithCompositedDescendants", |
"Has a transform that needs to be known by compositor because of composited descendants" }, |