Index: third_party/WebKit/Source/core/layout/compositing/CompositingLayerAssigner.cpp |
diff --git a/third_party/WebKit/Source/core/layout/compositing/CompositingLayerAssigner.cpp b/third_party/WebKit/Source/core/layout/compositing/CompositingLayerAssigner.cpp |
index 873ec4b5fd101c78e09ce1c5865c6cd95fda0a37..3bee691fcd4bf669867c258676cfd9cb16f1f4c1 100644 |
--- a/third_party/WebKit/Source/core/layout/compositing/CompositingLayerAssigner.cpp |
+++ b/third_party/WebKit/Source/core/layout/compositing/CompositingLayerAssigner.cpp |
@@ -112,10 +112,10 @@ CompositingStateTransitionType CompositingLayerAssigner::computeCompositedLayerU |
return update; |
} |
-CompositingReasons CompositingLayerAssigner::getReasonsPreventingSquashing(const PaintLayer* layer, const CompositingLayerAssigner::SquashingState& squashingState) |
+SquashingDisallowedReasons CompositingLayerAssigner::getReasonsPreventingSquashing(const PaintLayer* layer, const CompositingLayerAssigner::SquashingState& squashingState) |
{ |
if (!squashingState.haveAssignedBackingsToEntireSquashingLayerSubtree) |
- return CompositingReasonSquashingWouldBreakPaintOrder; |
+ return SquashingDisallowedReasonWouldBreakPaintOrder; |
ASSERT(squashingState.hasMostRecentMapping); |
const PaintLayer& squashingLayer = squashingState.mostRecentMapping->owningLayer(); |
@@ -128,55 +128,55 @@ CompositingReasons CompositingLayerAssigner::getReasonsPreventingSquashing(const |
// |
// compositing/video/video-controls-layer-creation.html |
if (layer->layoutObject()->isVideo() || squashingLayer.layoutObject()->isVideo()) |
- return CompositingReasonSquashingVideoIsDisallowed; |
+ return SquashingDisallowedReasonSquashingVideoIsDisallowed; |
// Don't squash iframes, frames or plugins. |
// FIXME: this is only necessary because there is frame code that assumes that composited frames are not squashed. |
if (layer->layoutObject()->isLayoutPart() || squashingLayer.layoutObject()->isLayoutPart()) |
- return CompositingReasonSquashingLayoutPartIsDisallowed; |
+ return SquashingDisallowedReasonSquashingLayoutPartIsDisallowed; |
if (layer->reflectionInfo()) |
- return CompositingReasonSquashingReflectionIsDisallowed; |
+ return SquashingDisallowedReasonSquashingReflectionIsDisallowed; |
if (squashingWouldExceedSparsityTolerance(layer, squashingState)) |
- return CompositingReasonSquashingSparsityExceeded; |
+ return SquashingDisallowedReasonSquashingSparsityExceeded; |
if (layer->layoutObject()->style()->hasBlendMode() || squashingLayer.layoutObject()->style()->hasBlendMode()) |
- return CompositingReasonSquashingBlendingIsDisallowed; |
+ return SquashingDisallowedReasonSquashingBlendingIsDisallowed; |
// FIXME: this is not efficient, since it walks up the tree. We should store these values on the CompositingInputsCache. |
if (layer->clippingContainer() != squashingLayer.clippingContainer() && !squashingLayer.compositedLayerMapping()->containingSquashedLayer(layer->clippingContainer(), squashingState.nextSquashedLayerIndex)) |
- return CompositingReasonSquashingClippingContainerMismatch; |
+ return SquashingDisallowedReasonClippingContainerMismatch; |
// Composited descendants need to be clipped by a child containment graphics layer, which would not be available if the layer is |
// squashed (and therefore has no CLM nor a child containment graphics layer). |
if (m_compositor->clipsCompositingDescendants(layer)) |
- return CompositingReasonSquashedLayerClipsCompositingDescendants; |
+ return SquashingDisallowedReasonSquashedLayerClipsCompositingDescendants; |
if (layer->scrollsWithRespectTo(&squashingLayer)) |
- return CompositingReasonScrollsWithRespectToSquashingLayer; |
+ return SquashingDisallowedReasonScrollsWithRespectToSquashingLayer; |
if (layer->scrollParent() && layer->hasCompositingDescendant()) |
- return CompositingReasonScrollChildWithCompositedDescendants; |
+ return SquashingDisallowedReasonScrollChildWithCompositedDescendants; |
if (layer->opacityAncestor() != squashingLayer.opacityAncestor()) |
- return CompositingReasonSquashingOpacityAncestorMismatch; |
+ return SquashingDisallowedReasonOpacityAncestorMismatch; |
if (layer->transformAncestor() != squashingLayer.transformAncestor()) |
- return CompositingReasonSquashingTransformAncestorMismatch; |
+ return SquashingDisallowedReasonTransformAncestorMismatch; |
if (layer->hasFilter() || layer->filterAncestor() != squashingLayer.filterAncestor()) |
- return CompositingReasonSquashingFilterMismatch; |
+ return SquashingDisallowedReasonFilterMismatch; |
if (layer->nearestFixedPositionLayer() != squashingLayer.nearestFixedPositionLayer()) |
- return CompositingReasonSquashingNearestFixedPositionMismatch; |
+ return SquashingDisallowedReasonNearestFixedPositionMismatch; |
ASSERT(layer->layoutObject()->style()->position() != FixedPosition); |
if ((squashingLayer.layoutObject()->style()->subtreeWillChangeContents() && squashingLayer.layoutObject()->style()->isRunningAnimationOnCompositor()) |
|| squashingLayer.layoutObject()->style()->shouldCompositeForCurrentAnimations()) |
- return CompositingReasonSquashingLayerIsAnimating; |
+ return SquashingDisallowedReasonSquashingLayerIsAnimating; |
- return CompositingReasonNone; |
+ return SquashingDisallowedReasonsNone; |
} |
void CompositingLayerAssigner::updateSquashingAssignment(PaintLayer* layer, SquashingState& squashingState, const CompositingStateTransitionType compositedLayerUpdate, |
@@ -248,9 +248,11 @@ static ScrollingCoordinator* scrollingCoordinatorFromLayer(PaintLayer& layer) |
void CompositingLayerAssigner::assignLayersToBackingsInternal(PaintLayer* layer, SquashingState& squashingState, Vector<PaintLayer*>& layersNeedingPaintInvalidation) |
{ |
if (requiresSquashing(layer->compositingReasons())) { |
- CompositingReasons reasonsPreventingSquashing = getReasonsPreventingSquashing(layer, squashingState); |
- if (reasonsPreventingSquashing) |
- layer->setCompositingReasons(layer->compositingReasons() | reasonsPreventingSquashing); |
+ SquashingDisallowedReasons reasonsPreventingSquashing = getReasonsPreventingSquashing(layer, squashingState); |
+ if (reasonsPreventingSquashing) { |
+ layer->setCompositingReasons(layer->compositingReasons() | CompositingReasonSquashingDisallowed); |
+ layer->setSquashingDisallowedReasons(reasonsPreventingSquashing); |
+ } |
} |
CompositingStateTransitionType compositedLayerUpdate = computeCompositedLayerUpdate(layer); |