| 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 762eb058847fb854534bb050653e272e9898ba35..cacade76ccdec0aa563cb49b7fbbf187cd4f69bc 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp
|
| @@ -166,7 +166,7 @@
|
| FloatStateForStyleChange::setWasFloating(this, isFloating());
|
|
|
| if (const ComputedStyle* oldStyle = style()) {
|
| - if (parent() && diff.needsPaintInvalidationSubtree()) {
|
| + if (parent() && diff.needsPaintInvalidationLayer()) {
|
| if (oldStyle->hasAutoClip() != newStyle.hasAutoClip()
|
| || oldStyle->clip() != newStyle.clip())
|
| layer()->clipper().clearClipRectsIncludingDescendants();
|
| @@ -398,14 +398,17 @@
|
| PaintInvalidationReason reason = invalidatePaintIfNeeded(newPaintInvalidationState);
|
| clearPaintInvalidationFlags(newPaintInvalidationState);
|
|
|
| + if (reason == PaintInvalidationDelayedFull)
|
| + paintInvalidationState.pushDelayedPaintInvalidationTarget(*this);
|
| +
|
| if (previousPosition != previousPositionFromPaintInvalidationBacking())
|
| - newPaintInvalidationState.setForceSubtreeInvalidationCheckingWithinContainer();
|
| + newPaintInvalidationState.setForceSubtreeInvalidationWithinContainer();
|
|
|
| // 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.setForceSubtreeInvalidationCheckingWithinContainer();
|
| + newPaintInvalidationState.setForceSubtreeInvalidationWithinContainer();
|
|
|
| // 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.
|
| @@ -415,7 +418,7 @@
|
| && hasOverflowClip())
|
| newPaintInvalidationState.setForceSubtreeInvalidationRectUpdateWithinContainer();
|
|
|
| - newPaintInvalidationState.updateForChildren(reason);
|
| + newPaintInvalidationState.updateForChildren();
|
| invalidatePaintOfSubtreesIfNeeded(newPaintInvalidationState);
|
| }
|
|
|
|
|