• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "config.h"
6 #include "platform/graphics/CompositingReasons.h"
7 
8 #include "wtf/StdLibExtras.h"
9 
10 namespace blink {
11 
12 const CompositingReasonStringMap kCompositingReasonStringMap[] = {
13     { CompositingReasonNone,
14         "Unknown",
15         "No reason given" },
16     { CompositingReason3DTransform,
17         "transform3D",
18         "Has a 3d transform" },
19     { CompositingReasonVideo,
20         "video",
21         "Is an accelerated video" },
22     { CompositingReasonCanvas,
23         "canvas",
24         "Is an accelerated canvas" },
25     { CompositingReasonPlugin,
26         "plugin",
27         "Is an accelerated plugin" },
28     { CompositingReasonIFrame,
29         "iFrame",
30         "Is an accelerated iFrame" },
31     { CompositingReasonBackfaceVisibilityHidden,
32         "backfaceVisibilityHidden",
33         "Has backface-visibility: hidden" },
34     { CompositingReasonActiveAnimation,
35         "activeAnimation",
36         "Has an active accelerated animation or transition" },
37     { CompositingReasonTransitionProperty,
38         "transitionProperty",
39         "Has an acceleratable transition property (active or inactive)" },
40     { CompositingReasonPositionFixed,
41         "positionFixed",
42         "Is fixed position" },
43     { CompositingReasonOverflowScrollingTouch,
44         "overflowScrollingTouch",
45         "Is a scrollable overflow element" },
46     { CompositingReasonOverflowScrollingParent,
47         "overflowScrollingParent",
48         "Scroll parent is not an ancestor" },
49     { CompositingReasonOutOfFlowClipping,
50         "outOfFlowClipping",
51         "Has clipping ancestor" },
52     { CompositingReasonVideoOverlay,
53         "videoOverlay",
54         "Is overlay controls for video" },
55     { CompositingReasonWillChangeCompositingHint,
56         "willChange",
57         "Has a will-change compositing hint" },
58     { CompositingReasonAssumedOverlap,
59         "assumedOverlap",
60         "Might overlap other composited content" },
61     { CompositingReasonOverlap,
62         "overlap",
63         "Overlaps other composited content" },
64     { CompositingReasonNegativeZIndexChildren,
65         "negativeZIndexChildren",
66         "Parent with composited negative z-index content" },
67     { CompositingReasonScrollsWithRespectToSquashingLayer,
68         "scrollsWithRespectToSquashingLayer",
69         "Cannot be squashed since this layer scrolls with respect to the squashing layer" },
70     { CompositingReasonSquashingSparsityExceeded,
71         "squashingSparsityExceeded",
72         "Cannot be squashed as the squashing layer would become too sparse" },
73     { CompositingReasonSquashingClippingContainerMismatch,
74         "squashingClippingContainerMismatch",
75         "Cannot be squashed because this layer has a different clipping container than the squashing layer" },
76     { CompositingReasonSquashingOpacityAncestorMismatch,
77         "squashingOpacityAncestorMismatch",
78         "Cannot be squashed because this layer has a different opacity ancestor than the squashing layer" },
79     { CompositingReasonSquashingTransformAncestorMismatch,
80         "squashingTransformAncestorMismatch",
81         "Cannot be squashed because this layer has a different transform ancestor than the squashing layer" },
82     { CompositingReasonSquashingFilterMismatch,
83         "squashingFilterAncestorMismatch",
84         "Cannot be squashed because this layer has a different filter ancestor than the squashing layer, or this layer has a filter" },
85     { CompositingReasonSquashingWouldBreakPaintOrder,
86         "squashingWouldBreakPaintOrder",
87         "Cannot be squashed without breaking paint order" },
88     { CompositingReasonSquashingVideoIsDisallowed,
89         "squashingVideoIsDisallowed",
90         "Squashing video is not supported" },
91     { CompositingReasonSquashedLayerClipsCompositingDescendants,
92         "squashedLayerClipsCompositingDescendants",
93         "Squashing a layer that clips composited descendants is not supported." },
94     { CompositingReasonSquashingRenderPartIsDisallowed,
95         "squashingRenderPartIsDisallowed",
96         "Squashing a frame, iframe or plugin is not supported." },
97     { CompositingReasonSquashingReflectionIsDisallowed,
98         "squashingReflectionDisallowed",
99         "Squashing a element with a reflection is not supported." },
100     { CompositingReasonSquashingBlendingIsDisallowed,
101         "squashingBlendingDisallowed",
102         "Squashing a layer with blending is not supported." },
103     { CompositingReasonTransformWithCompositedDescendants,
104         "transformWithCompositedDescendants",
105         "Has a transform that needs to be known by compositor because of composited descendants" },
106     { CompositingReasonOpacityWithCompositedDescendants,
107         "opacityWithCompositedDescendants",
108         "Has opacity that needs to be applied by compositor because of composited descendants" },
109     { CompositingReasonMaskWithCompositedDescendants,
110         "maskWithCompositedDescendants",
111         "Has a mask that needs to be known by compositor because of composited descendants" },
112     { CompositingReasonReflectionWithCompositedDescendants,
113         "reflectionWithCompositedDescendants",
114         "Has a reflection that needs to be known by compositor because of composited descendants" },
115     { CompositingReasonFilterWithCompositedDescendants,
116         "filterWithCompositedDescendants",
117         "Has a filter effect that needs to be known by compositor because of composited descendants" },
118     { CompositingReasonBlendingWithCompositedDescendants,
119         "blendingWithCompositedDescendants",
120         "Has a blenidng effect that needs to be known by compositor because of composited descendants" },
121     { CompositingReasonClipsCompositingDescendants,
122         "clipsCompositingDescendants",
123         "Has a clip that needs to be known by compositor because of composited descendants" },
124     { CompositingReasonPerspectiveWith3DDescendants,
125         "perspectiveWith3DDescendants",
126         "Has a perspective transform that needs to be known by compositor because of 3d descendants" },
127     { CompositingReasonPreserve3DWith3DDescendants,
128         "preserve3DWith3DDescendants",
129         "Has a preserves-3d property that needs to be known by compositor because of 3d descendants" },
130     { CompositingReasonReflectionOfCompositedParent,
131         "reflectionOfCompositedParent",
132         "Is a reflection of a composited layer" },
133     { CompositingReasonIsolateCompositedDescendants,
134         "isolateCompositedDescendants",
135         "Should isolate descendants to apply a blend effect" },
136     { CompositingReasonRoot,
137         "root",
138         "Is the root layer" },
139     { CompositingReasonLayerForAncestorClip,
140         "layerForAncestorClip",
141         "Secondary layer, applies a clip due to a sibling in the compositing tree" },
142     { CompositingReasonLayerForDescendantClip,
143         "layerForDescendantClip",
144         "Secondary layer, to clip descendants of the owning layer" },
145     { CompositingReasonLayerForPerspective,
146         "layerForPerspective",
147         "Secondary layer, to house the perspective transform for all descendants" },
148     { CompositingReasonLayerForHorizontalScrollbar,
149         "layerForHorizontalScrollbar",
150         "Secondary layer, the horizontal scrollbar layer" },
151     { CompositingReasonLayerForVerticalScrollbar,
152         "layerForVerticalScrollbar",
153         "Secondary layer, the vertical scrollbar layer" },
154     { CompositingReasonLayerForOverflowControlsHost,
155         "layerForOverflowControlsHost",
156         "Secondary layer, the overflow controls host layer" },
157     { CompositingReasonLayerForScrollCorner,
158         "layerForScrollCorner",
159         "Secondary layer, the scroll corner layer" },
160     { CompositingReasonLayerForScrollingContents,
161         "layerForScrollingContents",
162         "Secondary layer, to house contents that can be scrolled" },
163     { CompositingReasonLayerForScrollingContainer,
164         "layerForScrollingContainer",
165         "Secondary layer, used to position the scolling contents while scrolling" },
166     { CompositingReasonLayerForSquashingContents,
167         "layerForSquashingContents",
168         "Secondary layer, home for a group of squashable content" },
169     { CompositingReasonLayerForSquashingContainer,
170         "layerForSquashingContainer",
171         "Secondary layer, no-op layer to place the squashing layer correctly in the composited layer tree" },
172     { CompositingReasonLayerForForeground,
173         "layerForForeground",
174         "Secondary layer, to contain any normal flow and positive z-index contents on top of a negative z-index layer" },
175     { CompositingReasonLayerForBackground,
176         "layerForBackground",
177         "Secondary layer, to contain acceleratable background content" },
178     { CompositingReasonLayerForMask,
179         "layerForMask",
180         "Secondary layer, to contain the mask contents" },
181     { CompositingReasonLayerForClippingMask,
182         "layerForClippingMask",
183         "Secondary layer, for clipping mask" },
184     { CompositingReasonLayerForScrollingBlockSelection,
185         "layerForScrollingBlockSelection",
186         "Secondary layer, to house block selection gaps for composited scrolling with no scrolling contents" },
187     { CompositingReasonInlineTransform,
188         "inlineTransform",
189         "Has an inline transform, which causes subsequent layers to assume overlap" },
190 };
191 
192 size_t kNumberOfCompositingReasons = WTF_ARRAY_LENGTH(kCompositingReasonStringMap);
193 
194 } // namespace blink
195