| Index: Source/core/rendering/RenderObject.cpp
|
| diff --git a/Source/core/rendering/RenderObject.cpp b/Source/core/rendering/RenderObject.cpp
|
| index 8d24bf53b997d052379023c8a528d44e20760db0..44409e3d50d039b16f1dadfad5a36e5db2792fab 100644
|
| --- a/Source/core/rendering/RenderObject.cpp
|
| +++ b/Source/core/rendering/RenderObject.cpp
|
| @@ -1603,10 +1603,10 @@ void RenderObject::invalidateTreeIfNeeded(const PaintInvalidationState& paintInv
|
| {
|
| // If we didn't need paint invalidation then our children don't need as well.
|
| // Skip walking down the tree as everything should be fine below us.
|
| - if (!shouldCheckForPaintInvalidation())
|
| + if (!shouldCheckForPaintInvalidation(paintInvalidationState))
|
| return;
|
|
|
| - clearPaintInvalidationState();
|
| + clearPaintInvalidationState(paintInvalidationState);
|
|
|
| for (RenderObject* child = slowFirstChild(); child; child = child->nextSibling()) {
|
| if (!child->isOutOfFlowPositioned())
|
| @@ -3398,11 +3398,11 @@ bool RenderObject::isRelayoutBoundaryForInspector() const
|
| return objectIsRelayoutBoundary(this);
|
| }
|
|
|
| -void RenderObject::clearPaintInvalidationState()
|
| +void RenderObject::clearPaintInvalidationState(const PaintInvalidationState& paintInvalidationState)
|
| {
|
| // paintInvalidationStateIsDirty should be kept in sync with the
|
| // booleans that are cleared below.
|
| - ASSERT(paintInvalidationStateIsDirty());
|
| + ASSERT(paintInvalidationState.forceCheckForPaintInvalidation() || paintInvalidationStateIsDirty());
|
| setShouldDoFullPaintInvalidation(false);
|
| setShouldDoFullPaintInvalidationIfSelfPaintingLayer(false);
|
| setOnlyNeededPositionedMovementLayout(false);
|
|
|