Index: Source/core/rendering/RenderBlock.cpp |
diff --git a/Source/core/rendering/RenderBlock.cpp b/Source/core/rendering/RenderBlock.cpp |
index 7ec05d1caf9aaf1cc25f68ef7dc337b0a9aff9e0..6d25ee96bda87b3bea02f954db96701db5d0c392 100644 |
--- a/Source/core/rendering/RenderBlock.cpp |
+++ b/Source/core/rendering/RenderBlock.cpp |
@@ -375,20 +375,13 @@ void RenderBlock::styleDidChange(StyleDifference diff, const RenderStyle* oldSty |
ResourceLoadPriorityOptimizer::resourceLoadPriorityOptimizer()->addRenderObject(this); |
} |
-void RenderBlock::invalidateTreeIfNeeded(const PaintInvalidationState& paintInvalidationState) |
+void RenderBlock::invalidatePaintOfSubtreesIfNeeded(const PaintInvalidationState& childPaintInvalidationState) |
{ |
- // Note, we don't want to early out here using shouldCheckForInvalidationAfterLayout as |
- // we have to make sure we go through any positioned objects as they won't be seen in |
- // the normal tree walk. |
- |
- RenderBox::invalidateTreeIfNeeded(paintInvalidationState); |
+ RenderBox::invalidatePaintOfSubtreesIfNeeded(childPaintInvalidationState); |
// Take care of positioned objects. This is required as PaintInvalidationState keeps a single clip rect. |
if (TrackedRendererListHashSet* positionedObjects = this->positionedObjects()) { |
TrackedRendererListHashSet::iterator end = positionedObjects->end(); |
- bool establishesNewPaintInvalidationContainer = isPaintInvalidationContainer(); |
- const RenderLayerModelObject& newPaintInvalidationContainer = *adjustCompositedContainerForSpecialAncestors(establishesNewPaintInvalidationContainer ? this : &paintInvalidationState.paintInvalidationContainer()); |
- PaintInvalidationState childPaintInvalidationState(paintInvalidationState, *this, newPaintInvalidationContainer); |
for (TrackedRendererListHashSet::iterator it = positionedObjects->begin(); it != end; ++it) { |
RenderBox* box = *it; |
@@ -399,7 +392,7 @@ void RenderBlock::invalidateTreeIfNeeded(const PaintInvalidationState& paintInva |
// If it's a new paint invalidation container, we won't have properly accumulated the offset into the |
// PaintInvalidationState. |
// FIXME: Teach PaintInvalidationState to handle this case. crbug.com/371485 |
- if (&paintInvalidationContainerForChild != newPaintInvalidationContainer) { |
+ if (paintInvalidationContainerForChild != childPaintInvalidationState.paintInvalidationContainer()) { |
ForceHorriblySlowRectMapping slowRectMapping(&childPaintInvalidationState); |
PaintInvalidationState disabledPaintInvalidationState(childPaintInvalidationState, *this, paintInvalidationContainerForChild); |
box->invalidateTreeIfNeeded(disabledPaintInvalidationState); |