Chromium Code Reviews| Index: Source/core/rendering/RenderBlock.cpp |
| diff --git a/Source/core/rendering/RenderBlock.cpp b/Source/core/rendering/RenderBlock.cpp |
| index a5c14bc68a7a298d72b03c404ea0cf6eec51ab31..942bac8670d2c90e727d2ecdd0c14bfccf2f5594 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 |
|
dsinclair
2014/10/16 13:32:37
Since we no longer override invalidateTreeIfNeeded
Xianzhu
2014/10/16 17:37:14
The previous logic walks 1 extra level into the po
|
| - // 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); |