Chromium Code Reviews| Index: third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp |
| diff --git a/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp b/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp |
| index ba4acad492869c8797857c75bf02ce3f29c3ef6a..ea3906530a85200ea31bc7d5a15c53681ec72b1d 100644 |
| --- a/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp |
| +++ b/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp |
| @@ -166,7 +166,7 @@ void LayoutBoxModelObject::styleWillChange(StyleDifference diff, const ComputedS |
| FloatStateForStyleChange::setWasFloating(this, isFloating()); |
| if (const ComputedStyle* oldStyle = style()) { |
| - if (parent() && diff.needsPaintInvalidationLayer()) { |
| + if (parent() && diff.needsPaintInvalidationSubtree()) { |
| if (oldStyle->hasAutoClip() != newStyle.hasAutoClip() |
| || oldStyle->clip() != newStyle.clip()) |
| layer()->clipper().clearClipRectsIncludingDescendants(); |
| @@ -398,17 +398,14 @@ void LayoutBoxModelObject::invalidateTreeIfNeeded(const PaintInvalidationState& |
| PaintInvalidationReason reason = invalidatePaintIfNeeded(newPaintInvalidationState); |
| clearPaintInvalidationFlags(newPaintInvalidationState); |
| - if (reason == PaintInvalidationDelayedFull) |
| - paintInvalidationState.pushDelayedPaintInvalidationTarget(*this); |
|
Xianzhu
2016/05/05 23:56:33
This is moved into PaintInvalidationState::updateF
|
| - |
| if (previousPosition != previousPositionFromPaintInvalidationBacking()) |
| - newPaintInvalidationState.setForceSubtreeInvalidationWithinContainer(); |
| + newPaintInvalidationState.setForceSubtreeInvalidationCheckingWithinContainer(); |
| // TODO(wangxianzhu): Combine this function into LayoutObject::invalidateTreeIfNeeded() when removing the following workarounds. |
| // TODO(wangxianzhu): This is a workaround for crbug.com/533277. Will remove when we enable paint offset caching. |
| if (reason != PaintInvalidationNone && hasPercentageTransform(styleRef())) |
| - newPaintInvalidationState.setForceSubtreeInvalidationWithinContainer(); |
| + newPaintInvalidationState.setForceSubtreeInvalidationCheckingWithinContainer(); |
| // TODO(wangxianzhu): This is a workaround for crbug.com/490725. We don't have enough saved information to do accurate check |
| // of clipping change. Will remove when we remove rect-based paint invalidation. |
| @@ -418,7 +415,7 @@ void LayoutBoxModelObject::invalidateTreeIfNeeded(const PaintInvalidationState& |
| && hasOverflowClip()) |
| newPaintInvalidationState.setForceSubtreeInvalidationRectUpdateWithinContainer(); |
| - newPaintInvalidationState.updateForChildren(); |
| + newPaintInvalidationState.updateForChildren(reason); |
| invalidatePaintOfSubtreesIfNeeded(newPaintInvalidationState); |
| } |