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

Side by Side Diff: Source/core/layout/compositing/CompositingLayerAssigner.cpp

Issue 898783003: Move rendering/RenderLayer* to layout/ (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009, 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
3 * Copyright (C) 2014 Google Inc. All rights reserved. 3 * Copyright (C) 2014 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 19 matching lines...) Expand all
30 #include "core/inspector/InspectorTraceEvents.h" 30 #include "core/inspector/InspectorTraceEvents.h"
31 #include "core/layout/compositing/CompositedLayerMapping.h" 31 #include "core/layout/compositing/CompositedLayerMapping.h"
32 #include "platform/TraceEvent.h" 32 #include "platform/TraceEvent.h"
33 33
34 namespace blink { 34 namespace blink {
35 35
36 // We will only allow squashing if the bbox-area:squashed-area doesn't exceed 36 // We will only allow squashing if the bbox-area:squashed-area doesn't exceed
37 // the ratio |gSquashingSparsityTolerance|:1. 37 // the ratio |gSquashingSparsityTolerance|:1.
38 static uint64_t gSquashingSparsityTolerance = 6; 38 static uint64_t gSquashingSparsityTolerance = 6;
39 39
40 CompositingLayerAssigner::CompositingLayerAssigner(RenderLayerCompositor* compos itor) 40 CompositingLayerAssigner::CompositingLayerAssigner(LayerCompositor* compositor)
41 : m_compositor(compositor) 41 : m_compositor(compositor)
42 , m_layersChanged(false) 42 , m_layersChanged(false)
43 { 43 {
44 } 44 }
45 45
46 CompositingLayerAssigner::~CompositingLayerAssigner() 46 CompositingLayerAssigner::~CompositingLayerAssigner()
47 { 47 {
48 } 48 }
49 49
50 void CompositingLayerAssigner::assign(RenderLayer* updateRoot, Vector<RenderLaye r*>& layersNeedingPaintInvalidation) 50 void CompositingLayerAssigner::assign(Layer* updateRoot, Vector<Layer*>& layersN eedingPaintInvalidation)
51 { 51 {
52 TRACE_EVENT0("blink", "CompositingLayerAssigner::assign"); 52 TRACE_EVENT0("blink", "CompositingLayerAssigner::assign");
53 53
54 SquashingState squashingState; 54 SquashingState squashingState;
55 assignLayersToBackingsInternal(updateRoot, squashingState, layersNeedingPain tInvalidation); 55 assignLayersToBackingsInternal(updateRoot, squashingState, layersNeedingPain tInvalidation);
56 if (squashingState.hasMostRecentMapping) 56 if (squashingState.hasMostRecentMapping)
57 squashingState.mostRecentMapping->finishAccumulatingSquashingLayers(squa shingState.nextSquashedLayerIndex); 57 squashingState.mostRecentMapping->finishAccumulatingSquashingLayers(squa shingState.nextSquashedLayerIndex);
58 } 58 }
59 59
60 void CompositingLayerAssigner::SquashingState::updateSquashingStateForNewMapping (CompositedLayerMapping* newCompositedLayerMapping, bool hasNewCompositedLayerMa pping) 60 void CompositingLayerAssigner::SquashingState::updateSquashingStateForNewMapping (CompositedLayerMapping* newCompositedLayerMapping, bool hasNewCompositedLayerMa pping)
61 { 61 {
62 // The most recent backing is done accumulating any more squashing layers. 62 // The most recent backing is done accumulating any more squashing layers.
63 if (hasMostRecentMapping) 63 if (hasMostRecentMapping)
64 mostRecentMapping->finishAccumulatingSquashingLayers(nextSquashedLayerIn dex); 64 mostRecentMapping->finishAccumulatingSquashingLayers(nextSquashedLayerIn dex);
65 65
66 nextSquashedLayerIndex = 0; 66 nextSquashedLayerIndex = 0;
67 boundingRect = IntRect(); 67 boundingRect = IntRect();
68 mostRecentMapping = newCompositedLayerMapping; 68 mostRecentMapping = newCompositedLayerMapping;
69 hasMostRecentMapping = hasNewCompositedLayerMapping; 69 hasMostRecentMapping = hasNewCompositedLayerMapping;
70 haveAssignedBackingsToEntireSquashingLayerSubtree = false; 70 haveAssignedBackingsToEntireSquashingLayerSubtree = false;
71 } 71 }
72 72
73 bool CompositingLayerAssigner::squashingWouldExceedSparsityTolerance(const Rende rLayer* candidate, const CompositingLayerAssigner::SquashingState& squashingStat e) 73 bool CompositingLayerAssigner::squashingWouldExceedSparsityTolerance(const Layer * candidate, const CompositingLayerAssigner::SquashingState& squashingState)
74 { 74 {
75 IntRect bounds = candidate->clippedAbsoluteBoundingBox(); 75 IntRect bounds = candidate->clippedAbsoluteBoundingBox();
76 IntRect newBoundingRect = squashingState.boundingRect; 76 IntRect newBoundingRect = squashingState.boundingRect;
77 newBoundingRect.unite(bounds); 77 newBoundingRect.unite(bounds);
78 const uint64_t newBoundingRectArea = newBoundingRect.size().area(); 78 const uint64_t newBoundingRectArea = newBoundingRect.size().area();
79 const uint64_t newSquashedArea = squashingState.totalAreaOfSquashedRects + b ounds.size().area(); 79 const uint64_t newSquashedArea = squashingState.totalAreaOfSquashedRects + b ounds.size().area();
80 return newBoundingRectArea > gSquashingSparsityTolerance * newSquashedArea; 80 return newBoundingRectArea > gSquashingSparsityTolerance * newSquashedArea;
81 } 81 }
82 82
83 bool CompositingLayerAssigner::needsOwnBacking(const RenderLayer* layer) const 83 bool CompositingLayerAssigner::needsOwnBacking(const Layer* layer) const
84 { 84 {
85 if (!m_compositor->canBeComposited(layer)) 85 if (!m_compositor->canBeComposited(layer))
86 return false; 86 return false;
87 87
88 return requiresCompositing(layer->compositingReasons()) || (m_compositor->st aleInCompositingMode() && layer->isRootLayer()); 88 return requiresCompositing(layer->compositingReasons()) || (m_compositor->st aleInCompositingMode() && layer->isRootLayer());
89 } 89 }
90 90
91 CompositingStateTransitionType CompositingLayerAssigner::computeCompositedLayerU pdate(RenderLayer* layer) 91 CompositingStateTransitionType CompositingLayerAssigner::computeCompositedLayerU pdate(Layer* layer)
92 { 92 {
93 CompositingStateTransitionType update = NoCompositingStateChange; 93 CompositingStateTransitionType update = NoCompositingStateChange;
94 if (needsOwnBacking(layer)) { 94 if (needsOwnBacking(layer)) {
95 if (!layer->hasCompositedLayerMapping()) { 95 if (!layer->hasCompositedLayerMapping()) {
96 update = AllocateOwnCompositedLayerMapping; 96 update = AllocateOwnCompositedLayerMapping;
97 } 97 }
98 } else { 98 } else {
99 if (layer->hasCompositedLayerMapping()) 99 if (layer->hasCompositedLayerMapping())
100 update = RemoveOwnCompositedLayerMapping; 100 update = RemoveOwnCompositedLayerMapping;
101 101
102 if (!layer->subtreeIsInvisible() && requiresSquashing(layer->compositing Reasons())) { 102 if (!layer->subtreeIsInvisible() && requiresSquashing(layer->compositing Reasons())) {
103 // We can't compute at this time whether the squashing layer update is a no-op, 103 // We can't compute at this time whether the squashing layer update is a no-op,
104 // since that requires walking the render layer tree. 104 // since that requires walking the render layer tree.
105 update = PutInSquashingLayer; 105 update = PutInSquashingLayer;
106 } else if (layer->groupedMapping() || layer->lostGroupedMapping()) { 106 } else if (layer->groupedMapping() || layer->lostGroupedMapping()) {
107 update = RemoveFromSquashingLayer; 107 update = RemoveFromSquashingLayer;
108 } 108 }
109 } 109 }
110 return update; 110 return update;
111 } 111 }
112 112
113 CompositingReasons CompositingLayerAssigner::getReasonsPreventingSquashing(const RenderLayer* layer, const CompositingLayerAssigner::SquashingState& squashingSt ate) 113 CompositingReasons CompositingLayerAssigner::getReasonsPreventingSquashing(const Layer* layer, const CompositingLayerAssigner::SquashingState& squashingState)
114 { 114 {
115 if (!squashingState.haveAssignedBackingsToEntireSquashingLayerSubtree) 115 if (!squashingState.haveAssignedBackingsToEntireSquashingLayerSubtree)
116 return CompositingReasonSquashingWouldBreakPaintOrder; 116 return CompositingReasonSquashingWouldBreakPaintOrder;
117 117
118 ASSERT(squashingState.hasMostRecentMapping); 118 ASSERT(squashingState.hasMostRecentMapping);
119 const RenderLayer& squashingLayer = squashingState.mostRecentMapping->owning Layer(); 119 const Layer& squashingLayer = squashingState.mostRecentMapping->owningLayer( );
120 120
121 // FIXME: this special case for video exists only to deal with corner cases 121 // FIXME: this special case for video exists only to deal with corner cases
122 // where a RenderVideo does not report that it needs to be directly composit ed. 122 // where a RenderVideo does not report that it needs to be directly composit ed.
123 // Video does not currently support sharing a backing, but this could be 123 // Video does not currently support sharing a backing, but this could be
124 // generalized in the future. The following layout tests fail if we permit t he 124 // generalized in the future. The following layout tests fail if we permit t he
125 // video to share a backing with other layers. 125 // video to share a backing with other layers.
126 // 126 //
127 // compositing/video/video-controls-layer-creation.html 127 // compositing/video/video-controls-layer-creation.html
128 if (layer->renderer()->isVideo() || squashingLayer.renderer()->isVideo()) 128 if (layer->renderer()->isVideo() || squashingLayer.renderer()->isVideo())
129 return CompositingReasonSquashingVideoIsDisallowed; 129 return CompositingReasonSquashingVideoIsDisallowed;
(...skipping 17 matching lines...) Expand all
147 return CompositingReasonSquashingClippingContainerMismatch; 147 return CompositingReasonSquashingClippingContainerMismatch;
148 148
149 // Composited descendants need to be clipped by a child containment graphics layer, which would not be available if the layer is 149 // Composited descendants need to be clipped by a child containment graphics layer, which would not be available if the layer is
150 // squashed (and therefore has no CLM nor a child containment graphics layer ). 150 // squashed (and therefore has no CLM nor a child containment graphics layer ).
151 if (m_compositor->clipsCompositingDescendants(layer)) 151 if (m_compositor->clipsCompositingDescendants(layer))
152 return CompositingReasonSquashedLayerClipsCompositingDescendants; 152 return CompositingReasonSquashedLayerClipsCompositingDescendants;
153 153
154 if (layer->scrollsWithRespectTo(&squashingLayer)) 154 if (layer->scrollsWithRespectTo(&squashingLayer))
155 return CompositingReasonScrollsWithRespectToSquashingLayer; 155 return CompositingReasonScrollsWithRespectToSquashingLayer;
156 156
157 const RenderLayer::AncestorDependentCompositingInputs& compositingInputs = l ayer->ancestorDependentCompositingInputs(); 157 const Layer::AncestorDependentCompositingInputs& compositingInputs = layer-> ancestorDependentCompositingInputs();
158 const RenderLayer::AncestorDependentCompositingInputs& squashingLayerComposi tingInputs = squashingLayer.ancestorDependentCompositingInputs(); 158 const Layer::AncestorDependentCompositingInputs& squashingLayerCompositingIn puts = squashingLayer.ancestorDependentCompositingInputs();
159 159
160 if (compositingInputs.opacityAncestor != squashingLayerCompositingInputs.opa cityAncestor) 160 if (compositingInputs.opacityAncestor != squashingLayerCompositingInputs.opa cityAncestor)
161 return CompositingReasonSquashingOpacityAncestorMismatch; 161 return CompositingReasonSquashingOpacityAncestorMismatch;
162 162
163 if (compositingInputs.transformAncestor != squashingLayerCompositingInputs.t ransformAncestor) 163 if (compositingInputs.transformAncestor != squashingLayerCompositingInputs.t ransformAncestor)
164 return CompositingReasonSquashingTransformAncestorMismatch; 164 return CompositingReasonSquashingTransformAncestorMismatch;
165 165
166 if (layer->hasFilter() || compositingInputs.filterAncestor != squashingLayer CompositingInputs.filterAncestor) 166 if (layer->hasFilter() || compositingInputs.filterAncestor != squashingLayer CompositingInputs.filterAncestor)
167 return CompositingReasonSquashingFilterMismatch; 167 return CompositingReasonSquashingFilterMismatch;
168 168
169 return CompositingReasonNone; 169 return CompositingReasonNone;
170 } 170 }
171 171
172 void CompositingLayerAssigner::updateSquashingAssignment(RenderLayer* layer, Squ ashingState& squashingState, const CompositingStateTransitionType compositedLaye rUpdate, 172 void CompositingLayerAssigner::updateSquashingAssignment(Layer* layer, Squashing State& squashingState, const CompositingStateTransitionType compositedLayerUpdat e,
173 Vector<RenderLayer*>& layersNeedingPaintInvalidation) 173 Vector<Layer*>& layersNeedingPaintInvalidation)
174 { 174 {
175 // NOTE: In the future as we generalize this, the background of this layer m ay need to be assigned to a different backing than 175 // NOTE: In the future as we generalize this, the background of this layer m ay need to be assigned to a different backing than
176 // the squashed RenderLayer's own primary contents. This would happen when w e have a composited negative z-index element that needs 176 // the squashed Layer's own primary contents. This would happen when we have a composited negative z-index element that needs
177 // to paint on top of the background, but below the layer's main contents. F or now, because we always composite layers 177 // to paint on top of the background, but below the layer's main contents. F or now, because we always composite layers
178 // when they have a composited negative z-index child, such layers will neve r need squashing so it is not yet an issue. 178 // when they have a composited negative z-index child, such layers will neve r need squashing so it is not yet an issue.
179 if (compositedLayerUpdate == PutInSquashingLayer) { 179 if (compositedLayerUpdate == PutInSquashingLayer) {
180 // A layer that is squashed with other layers cannot have its own Compos itedLayerMapping. 180 // A layer that is squashed with other layers cannot have its own Compos itedLayerMapping.
181 ASSERT(!layer->hasCompositedLayerMapping()); 181 ASSERT(!layer->hasCompositedLayerMapping());
182 ASSERT(squashingState.hasMostRecentMapping); 182 ASSERT(squashingState.hasMostRecentMapping);
183 183
184 bool changedSquashingLayer = 184 bool changedSquashingLayer =
185 squashingState.mostRecentMapping->updateSquashingLayerAssignment(lay er, squashingState.mostRecentMapping->owningLayer(), squashingState.nextSquashed LayerIndex); 185 squashingState.mostRecentMapping->updateSquashingLayerAssignment(lay er, squashingState.mostRecentMapping->owningLayer(), squashingState.nextSquashed LayerIndex);
186 if (!changedSquashingLayer) 186 if (!changedSquashingLayer)
(...skipping 19 matching lines...) Expand all
206 206
207 // If we need to issue paint invalidations, do so now that we've removed it from a squashed layer. 207 // If we need to issue paint invalidations, do so now that we've removed it from a squashed layer.
208 TRACE_LAYER_INVALIDATION(layer, InspectorLayerInvalidationTrackingEvent: :RemovedFromSquashingLayer); 208 TRACE_LAYER_INVALIDATION(layer, InspectorLayerInvalidationTrackingEvent: :RemovedFromSquashingLayer);
209 layersNeedingPaintInvalidation.append(layer); 209 layersNeedingPaintInvalidation.append(layer);
210 m_layersChanged = true; 210 m_layersChanged = true;
211 211
212 layer->setLostGroupedMapping(false); 212 layer->setLostGroupedMapping(false);
213 } 213 }
214 } 214 }
215 215
216 void CompositingLayerAssigner::assignLayersToBackingsForReflectionLayer(RenderLa yer* reflectionLayer, Vector<RenderLayer*>& layersNeedingPaintInvalidation) 216 void CompositingLayerAssigner::assignLayersToBackingsForReflectionLayer(Layer* r eflectionLayer, Vector<Layer*>& layersNeedingPaintInvalidation)
217 { 217 {
218 CompositingStateTransitionType compositedLayerUpdate = computeCompositedLaye rUpdate(reflectionLayer); 218 CompositingStateTransitionType compositedLayerUpdate = computeCompositedLaye rUpdate(reflectionLayer);
219 if (compositedLayerUpdate != NoCompositingStateChange) { 219 if (compositedLayerUpdate != NoCompositingStateChange) {
220 TRACE_LAYER_INVALIDATION(reflectionLayer, InspectorLayerInvalidationTrac kingEvent::ReflectionLayerChanged); 220 TRACE_LAYER_INVALIDATION(reflectionLayer, InspectorLayerInvalidationTrac kingEvent::ReflectionLayerChanged);
221 layersNeedingPaintInvalidation.append(reflectionLayer); 221 layersNeedingPaintInvalidation.append(reflectionLayer);
222 m_layersChanged = true; 222 m_layersChanged = true;
223 m_compositor->allocateOrClearCompositedLayerMapping(reflectionLayer, com positedLayerUpdate); 223 m_compositor->allocateOrClearCompositedLayerMapping(reflectionLayer, com positedLayerUpdate);
224 } 224 }
225 m_compositor->updateDirectCompositingReasons(reflectionLayer); 225 m_compositor->updateDirectCompositingReasons(reflectionLayer);
226 226
227 // FIXME: Why do we updateGraphicsLayerConfiguration here instead of in the GraphicsLayerUpdater? 227 // FIXME: Why do we updateGraphicsLayerConfiguration here instead of in the GraphicsLayerUpdater?
228 if (reflectionLayer->hasCompositedLayerMapping()) 228 if (reflectionLayer->hasCompositedLayerMapping())
229 reflectionLayer->compositedLayerMapping()->updateGraphicsLayerConfigurat ion(); 229 reflectionLayer->compositedLayerMapping()->updateGraphicsLayerConfigurat ion();
230 } 230 }
231 231
232 void CompositingLayerAssigner::assignLayersToBackingsInternal(RenderLayer* layer , SquashingState& squashingState, Vector<RenderLayer*>& layersNeedingPaintInvali dation) 232 void CompositingLayerAssigner::assignLayersToBackingsInternal(Layer* layer, Squa shingState& squashingState, Vector<Layer*>& layersNeedingPaintInvalidation)
233 { 233 {
234 if (requiresSquashing(layer->compositingReasons())) { 234 if (requiresSquashing(layer->compositingReasons())) {
235 CompositingReasons reasonsPreventingSquashing = getReasonsPreventingSqua shing(layer, squashingState); 235 CompositingReasons reasonsPreventingSquashing = getReasonsPreventingSqua shing(layer, squashingState);
236 if (reasonsPreventingSquashing) 236 if (reasonsPreventingSquashing)
237 layer->setCompositingReasons(layer->compositingReasons() | reasonsPr eventingSquashing); 237 layer->setCompositingReasons(layer->compositingReasons() | reasonsPr eventingSquashing);
238 } 238 }
239 239
240 CompositingStateTransitionType compositedLayerUpdate = computeCompositedLaye rUpdate(layer); 240 CompositingStateTransitionType compositedLayerUpdate = computeCompositedLaye rUpdate(layer);
241 241
242 if (m_compositor->allocateOrClearCompositedLayerMapping(layer, compositedLay erUpdate)) { 242 if (m_compositor->allocateOrClearCompositedLayerMapping(layer, compositedLay erUpdate)) {
(...skipping 11 matching lines...) Expand all
254 254
255 const bool layerIsSquashed = compositedLayerUpdate == PutInSquashingLayer || (compositedLayerUpdate == NoCompositingStateChange && layer->groupedMapping()); 255 const bool layerIsSquashed = compositedLayerUpdate == PutInSquashingLayer || (compositedLayerUpdate == NoCompositingStateChange && layer->groupedMapping());
256 if (layerIsSquashed) { 256 if (layerIsSquashed) {
257 squashingState.nextSquashedLayerIndex++; 257 squashingState.nextSquashedLayerIndex++;
258 IntRect layerBounds = layer->clippedAbsoluteBoundingBox(); 258 IntRect layerBounds = layer->clippedAbsoluteBoundingBox();
259 squashingState.totalAreaOfSquashedRects += layerBounds.size().area(); 259 squashingState.totalAreaOfSquashedRects += layerBounds.size().area();
260 squashingState.boundingRect.unite(layerBounds); 260 squashingState.boundingRect.unite(layerBounds);
261 } 261 }
262 262
263 if (layer->stackingNode()->isStackingContext()) { 263 if (layer->stackingNode()->isStackingContext()) {
264 RenderLayerStackingNodeIterator iterator(*layer->stackingNode(), Negativ eZOrderChildren); 264 LayerStackingNodeIterator iterator(*layer->stackingNode(), NegativeZOrde rChildren);
265 while (RenderLayerStackingNode* curNode = iterator.next()) 265 while (LayerStackingNode* curNode = iterator.next())
266 assignLayersToBackingsInternal(curNode->layer(), squashingState, lay ersNeedingPaintInvalidation); 266 assignLayersToBackingsInternal(curNode->layer(), squashingState, lay ersNeedingPaintInvalidation);
267 } 267 }
268 268
269 // At this point, if the layer is to be separately composited, then its back ing becomes the most recent in paint-order. 269 // At this point, if the layer is to be separately composited, then its back ing becomes the most recent in paint-order.
270 if (layer->compositingState() == PaintsIntoOwnBacking) { 270 if (layer->compositingState() == PaintsIntoOwnBacking) {
271 ASSERT(!requiresSquashing(layer->compositingReasons())); 271 ASSERT(!requiresSquashing(layer->compositingReasons()));
272 squashingState.updateSquashingStateForNewMapping(layer->compositedLayerM apping(), layer->hasCompositedLayerMapping()); 272 squashingState.updateSquashingStateForNewMapping(layer->compositedLayerM apping(), layer->hasCompositedLayerMapping());
273 } 273 }
274 274
275 if (layer->scrollParent()) 275 if (layer->scrollParent())
276 layer->scrollParent()->scrollableArea()->setTopmostScrollChild(layer); 276 layer->scrollParent()->scrollableArea()->setTopmostScrollChild(layer);
277 277
278 if (layer->needsCompositedScrolling()) 278 if (layer->needsCompositedScrolling())
279 layer->scrollableArea()->setTopmostScrollChild(0); 279 layer->scrollableArea()->setTopmostScrollChild(0);
280 280
281 RenderLayerStackingNodeIterator iterator(*layer->stackingNode(), NormalFlowC hildren | PositiveZOrderChildren); 281 LayerStackingNodeIterator iterator(*layer->stackingNode(), NormalFlowChildre n | PositiveZOrderChildren);
282 while (RenderLayerStackingNode* curNode = iterator.next()) 282 while (LayerStackingNode* curNode = iterator.next())
283 assignLayersToBackingsInternal(curNode->layer(), squashingState, layersN eedingPaintInvalidation); 283 assignLayersToBackingsInternal(curNode->layer(), squashingState, layersN eedingPaintInvalidation);
284 284
285 if (squashingState.hasMostRecentMapping && &squashingState.mostRecentMapping ->owningLayer() == layer) 285 if (squashingState.hasMostRecentMapping && &squashingState.mostRecentMapping ->owningLayer() == layer)
286 squashingState.haveAssignedBackingsToEntireSquashingLayerSubtree = true; 286 squashingState.haveAssignedBackingsToEntireSquashingLayerSubtree = true;
287 } 287 }
288 288
289 } 289 }
OLDNEW
« no previous file with comments | « Source/core/layout/compositing/CompositingLayerAssigner.h ('k') | Source/core/layout/compositing/CompositingReasonFinder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698