| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/layout/compositing/CompositingInputsUpdater.h" | 5 #include "core/layout/compositing/CompositingInputsUpdater.h" |
| 6 | 6 |
| 7 #include "core/frame/FrameView.h" | 7 #include "core/frame/FrameView.h" |
| 8 #include "core/layout/LayoutBlock.h" | 8 #include "core/layout/LayoutBlock.h" |
| 9 #include "core/layout/LayoutView.h" | 9 #include "core/layout/LayoutView.h" |
| 10 #include "core/layout/compositing/CompositedLayerMapping.h" | 10 #include "core/layout/compositing/CompositedLayerMapping.h" |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 rareProperties.opacityAncestor = parent->isTransparent() ? parent :
parent->opacityAncestor(); | 145 rareProperties.opacityAncestor = parent->isTransparent() ? parent :
parent->opacityAncestor(); |
| 146 rareProperties.transformAncestor = parent->transform() ? parent : pa
rent->transformAncestor(); | 146 rareProperties.transformAncestor = parent->transform() ? parent : pa
rent->transformAncestor(); |
| 147 rareProperties.filterAncestor = parent->hasFilterInducingProperty()
? parent : parent->filterAncestor(); | 147 rareProperties.filterAncestor = parent->hasFilterInducingProperty()
? parent : parent->filterAncestor(); |
| 148 bool layerIsFixedPosition = layer->layoutObject()->style()->position
() == FixedPosition; | 148 bool layerIsFixedPosition = layer->layoutObject()->style()->position
() == FixedPosition; |
| 149 rareProperties.nearestFixedPositionLayer = layerIsFixedPosition ? la
yer : parent->nearestFixedPositionLayer(); | 149 rareProperties.nearestFixedPositionLayer = layerIsFixedPosition ? la
yer : parent->nearestFixedPositionLayer(); |
| 150 | 150 |
| 151 if (info.hasAncestorWithClipRelatedProperty) { | 151 if (info.hasAncestorWithClipRelatedProperty) { |
| 152 const PaintLayer* parentLayerOnClippingContainerChain = findPare
ntLayerOnClippingContainerChain(layer); | 152 const PaintLayer* parentLayerOnClippingContainerChain = findPare
ntLayerOnClippingContainerChain(layer); |
| 153 const bool parentHasClipRelatedProperty = parentLayerOnClippingC
ontainerChain->layoutObject()->hasClipRelatedProperty(); | 153 const bool parentHasClipRelatedProperty = parentLayerOnClippingC
ontainerChain->layoutObject()->hasClipRelatedProperty(); |
| 154 properties.clippingContainer = parentHasClipRelatedProperty ? pa
rentLayerOnClippingContainerChain->layoutObject() : parentLayerOnClippingContain
erChain->clippingContainer(); | 154 properties.clippingContainer = parentHasClipRelatedProperty ? pa
rentLayerOnClippingContainerChain->layoutObject() : parentLayerOnClippingContain
erChain->clippingContainer(); |
| 155 |
| 156 if (layer->layoutObject()->isOutOfFlowPositioned() && !layer->su
btreeIsInvisible()) { |
| 157 const PaintLayer* clippingLayer = properties.clippingContain
er ? properties.clippingContainer->enclosingLayer() : layer->compositor()->rootL
ayer(); |
| 158 if (hasClippedStackingAncestor(layer, clippingLayer)) |
| 159 rareProperties.clipParent = clippingLayer; |
| 160 } |
| 155 } | 161 } |
| 156 | 162 |
| 157 if (info.lastScrollingAncestor) { | 163 if (info.lastScrollingAncestor) { |
| 158 const LayoutObject* containingBlock = layer->layoutObject()->con
tainingBlock(); | 164 const LayoutObject* containingBlock = layer->layoutObject()->con
tainingBlock(); |
| 159 const PaintLayer* parentLayerOnContainingBlockChain = findParent
LayerOnContainingBlockChain(containingBlock); | 165 const PaintLayer* parentLayerOnContainingBlockChain = findParent
LayerOnContainingBlockChain(containingBlock); |
| 160 | 166 |
| 161 rareProperties.ancestorScrollingLayer = parentLayerOnContainingB
lockChain->ancestorScrollingLayer(); | 167 rareProperties.ancestorScrollingLayer = parentLayerOnContainingB
lockChain->ancestorScrollingLayer(); |
| 162 if (parentLayerOnContainingBlockChain->scrollsOverflow()) | 168 if (parentLayerOnContainingBlockChain->scrollsOverflow()) |
| 163 rareProperties.ancestorScrollingLayer = parentLayerOnContain
ingBlockChain; | 169 rareProperties.ancestorScrollingLayer = parentLayerOnContain
ingBlockChain; |
| 164 | 170 |
| 165 if (layer->layoutObject()->isOutOfFlowPositioned() && !layer->su
btreeIsInvisible()) { | |
| 166 const PaintLayer* clippingLayer = properties.clippingContain
er ? properties.clippingContainer->enclosingLayer() : layer->compositor()->rootL
ayer(); | |
| 167 if (hasClippedStackingAncestor(layer, clippingLayer)) | |
| 168 rareProperties.clipParent = clippingLayer; | |
| 169 } | |
| 170 | |
| 171 if (layer->stackingNode()->isStacked() | 171 if (layer->stackingNode()->isStacked() |
| 172 && rareProperties.ancestorScrollingLayer | 172 && rareProperties.ancestorScrollingLayer |
| 173 && !info.ancestorStackingContext->layoutObject()->isDescenda
ntOf(rareProperties.ancestorScrollingLayer->layoutObject())) | 173 && !info.ancestorStackingContext->layoutObject()->isDescenda
ntOf(rareProperties.ancestorScrollingLayer->layoutObject())) |
| 174 rareProperties.scrollParent = rareProperties.ancestorScrolli
ngLayer; | 174 rareProperties.scrollParent = rareProperties.ancestorScrolli
ngLayer; |
| 175 } | 175 } |
| 176 } | 176 } |
| 177 | 177 |
| 178 layer->updateAncestorDependentCompositingInputs(properties, rareProperti
es, info.hasAncestorWithClipPath); | 178 layer->updateAncestorDependentCompositingInputs(properties, rareProperti
es, info.hasAncestorWithClipPath); |
| 179 } | 179 } |
| 180 | 180 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 215 ASSERT(!layer->childNeedsCompositingInputsUpdate()); | 215 ASSERT(!layer->childNeedsCompositingInputsUpdate()); |
| 216 ASSERT(!layer->needsCompositingInputsUpdate()); | 216 ASSERT(!layer->needsCompositingInputsUpdate()); |
| 217 | 217 |
| 218 for (PaintLayer* child = layer->firstChild(); child; child = child->nextSibl
ing()) | 218 for (PaintLayer* child = layer->firstChild(); child; child = child->nextSibl
ing()) |
| 219 assertNeedsCompositingInputsUpdateBitsCleared(child); | 219 assertNeedsCompositingInputsUpdateBitsCleared(child); |
| 220 } | 220 } |
| 221 | 221 |
| 222 #endif | 222 #endif |
| 223 | 223 |
| 224 } // namespace blink | 224 } // namespace blink |
| OLD | NEW |