| OLD | NEW |
| 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 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 | 203 |
| 204 // Issue a paint invalidation, since |layer| may have been added to an a
lready-existing squashing layer. | 204 // Issue a paint invalidation, since |layer| may have been added to an a
lready-existing squashing layer. |
| 205 TRACE_LAYER_INVALIDATION(layer, InspectorLayerInvalidationTrackingEvent:
:AddedToSquashingLayer); | 205 TRACE_LAYER_INVALIDATION(layer, InspectorLayerInvalidationTrackingEvent:
:AddedToSquashingLayer); |
| 206 layersNeedingPaintInvalidation.append(layer); | 206 layersNeedingPaintInvalidation.append(layer); |
| 207 m_layersChanged = true; | 207 m_layersChanged = true; |
| 208 } else if (compositedLayerUpdate == RemoveFromSquashingLayer) { | 208 } else if (compositedLayerUpdate == RemoveFromSquashingLayer) { |
| 209 if (layer->groupedMapping()) { | 209 if (layer->groupedMapping()) { |
| 210 // Before removing |layer| from an already-existing squashing layer
that may have other content, issue a paint invalidation. | 210 // Before removing |layer| from an already-existing squashing layer
that may have other content, issue a paint invalidation. |
| 211 m_compositor->paintInvalidationOnCompositingChange(layer); | 211 m_compositor->paintInvalidationOnCompositingChange(layer); |
| 212 layer->groupedMapping()->setNeedsGraphicsLayerUpdate(GraphicsLayerUp
dateSubtree); | 212 layer->groupedMapping()->setNeedsGraphicsLayerUpdate(GraphicsLayerUp
dateSubtree); |
| 213 layer->setGroupedMapping(0); | 213 layer->setGroupedMapping(nullptr); |
| 214 } | 214 } |
| 215 | 215 |
| 216 // If we need to issue paint invalidations, do so now that we've removed
it from a squashed layer. | 216 // If we need to issue paint invalidations, do so now that we've removed
it from a squashed layer. |
| 217 TRACE_LAYER_INVALIDATION(layer, InspectorLayerInvalidationTrackingEvent:
:RemovedFromSquashingLayer); | 217 TRACE_LAYER_INVALIDATION(layer, InspectorLayerInvalidationTrackingEvent:
:RemovedFromSquashingLayer); |
| 218 layersNeedingPaintInvalidation.append(layer); | 218 layersNeedingPaintInvalidation.append(layer); |
| 219 m_layersChanged = true; | 219 m_layersChanged = true; |
| 220 | 220 |
| 221 layer->setLostGroupedMapping(false); | 221 layer->setLostGroupedMapping(false); |
| 222 } | 222 } |
| 223 } | 223 } |
| (...skipping 10 matching lines...) Expand all Loading... |
| 234 m_compositor->updateDirectCompositingReasons(reflectionLayer); | 234 m_compositor->updateDirectCompositingReasons(reflectionLayer); |
| 235 | 235 |
| 236 // FIXME: Why do we updateGraphicsLayerConfiguration here instead of in the
GraphicsLayerUpdater? | 236 // FIXME: Why do we updateGraphicsLayerConfiguration here instead of in the
GraphicsLayerUpdater? |
| 237 if (reflectionLayer->hasCompositedDeprecatedPaintLayerMapping()) | 237 if (reflectionLayer->hasCompositedDeprecatedPaintLayerMapping()) |
| 238 reflectionLayer->compositedDeprecatedPaintLayerMapping()->updateGraphics
LayerConfiguration(); | 238 reflectionLayer->compositedDeprecatedPaintLayerMapping()->updateGraphics
LayerConfiguration(); |
| 239 } | 239 } |
| 240 | 240 |
| 241 static ScrollingCoordinator* scrollingCoordinatorFromLayer(DeprecatedPaintLayer&
layer) | 241 static ScrollingCoordinator* scrollingCoordinatorFromLayer(DeprecatedPaintLayer&
layer) |
| 242 { | 242 { |
| 243 Page* page = layer.layoutObject()->frame()->page(); | 243 Page* page = layer.layoutObject()->frame()->page(); |
| 244 if (!page) | 244 return (!page) ? nullptr : page->scrollingCoordinator(); |
| 245 return 0; | |
| 246 | |
| 247 return page->scrollingCoordinator(); | |
| 248 } | 245 } |
| 249 | 246 |
| 250 void CompositingLayerAssigner::assignLayersToBackingsInternal(DeprecatedPaintLay
er* layer, SquashingState& squashingState, Vector<DeprecatedPaintLayer*>& layers
NeedingPaintInvalidation) | 247 void CompositingLayerAssigner::assignLayersToBackingsInternal(DeprecatedPaintLay
er* layer, SquashingState& squashingState, Vector<DeprecatedPaintLayer*>& layers
NeedingPaintInvalidation) |
| 251 { | 248 { |
| 252 if (requiresSquashing(layer->compositingReasons())) { | 249 if (requiresSquashing(layer->compositingReasons())) { |
| 253 CompositingReasons reasonsPreventingSquashing = getReasonsPreventingSqua
shing(layer, squashingState); | 250 CompositingReasons reasonsPreventingSquashing = getReasonsPreventingSqua
shing(layer, squashingState); |
| 254 if (reasonsPreventingSquashing) | 251 if (reasonsPreventingSquashing) |
| 255 layer->setCompositingReasons(layer->compositingReasons() | reasonsPr
eventingSquashing); | 252 layer->setCompositingReasons(layer->compositingReasons() | reasonsPr
eventingSquashing); |
| 256 } | 253 } |
| 257 | 254 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 291 // At this point, if the layer is to be separately composited, then its back
ing becomes the most recent in paint-order. | 288 // At this point, if the layer is to be separately composited, then its back
ing becomes the most recent in paint-order. |
| 292 if (layer->compositingState() == PaintsIntoOwnBacking) { | 289 if (layer->compositingState() == PaintsIntoOwnBacking) { |
| 293 ASSERT(!requiresSquashing(layer->compositingReasons())); | 290 ASSERT(!requiresSquashing(layer->compositingReasons())); |
| 294 squashingState.updateSquashingStateForNewMapping(layer->compositedDeprec
atedPaintLayerMapping(), layer->hasCompositedDeprecatedPaintLayerMapping()); | 291 squashingState.updateSquashingStateForNewMapping(layer->compositedDeprec
atedPaintLayerMapping(), layer->hasCompositedDeprecatedPaintLayerMapping()); |
| 295 } | 292 } |
| 296 | 293 |
| 297 if (layer->scrollParent()) | 294 if (layer->scrollParent()) |
| 298 layer->scrollParent()->scrollableArea()->setTopmostScrollChild(layer); | 295 layer->scrollParent()->scrollableArea()->setTopmostScrollChild(layer); |
| 299 | 296 |
| 300 if (layer->needsCompositedScrolling()) | 297 if (layer->needsCompositedScrolling()) |
| 301 layer->scrollableArea()->setTopmostScrollChild(0); | 298 layer->scrollableArea()->setTopmostScrollChild(nullptr); |
| 302 | 299 |
| 303 DeprecatedPaintLayerStackingNodeIterator iterator(*layer->stackingNode(), No
rmalFlowChildren | PositiveZOrderChildren); | 300 DeprecatedPaintLayerStackingNodeIterator iterator(*layer->stackingNode(), No
rmalFlowChildren | PositiveZOrderChildren); |
| 304 while (DeprecatedPaintLayerStackingNode* curNode = iterator.next()) | 301 while (DeprecatedPaintLayerStackingNode* curNode = iterator.next()) |
| 305 assignLayersToBackingsInternal(curNode->layer(), squashingState, layersN
eedingPaintInvalidation); | 302 assignLayersToBackingsInternal(curNode->layer(), squashingState, layersN
eedingPaintInvalidation); |
| 306 | 303 |
| 307 if (squashingState.hasMostRecentMapping && &squashingState.mostRecentMapping
->owningLayer() == layer) | 304 if (squashingState.hasMostRecentMapping && &squashingState.mostRecentMapping
->owningLayer() == layer) |
| 308 squashingState.haveAssignedBackingsToEntireSquashingLayerSubtree = true; | 305 squashingState.haveAssignedBackingsToEntireSquashingLayerSubtree = true; |
| 309 } | 306 } |
| 310 | 307 |
| 311 } | 308 } |
| OLD | NEW |