Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Unified Diff: Source/platform/graphics/CompositingReasons.h

Issue 331203003: Improve the compositing reasons when squashing fails (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: . Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/rendering/compositing/CompositingLayerAssigner.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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" },
« no previous file with comments | « Source/core/rendering/compositing/CompositingLayerAssigner.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698