| Index: third_party/WebKit/Source/core/style/ComputedStyle.cpp
|
| diff --git a/third_party/WebKit/Source/core/style/ComputedStyle.cpp b/third_party/WebKit/Source/core/style/ComputedStyle.cpp
|
| index 1a07e189c1ca942ee2389360984bf78d3f62f0f8..61288ef9b791d248934c354f8951c05146c7f9bf 100644
|
| --- a/third_party/WebKit/Source/core/style/ComputedStyle.cpp
|
| +++ b/third_party/WebKit/Source/core/style/ComputedStyle.cpp
|
| @@ -561,12 +561,12 @@ StyleDifference ComputedStyle::visualInvalidationDiff(
|
| else if (diffNeedsPaintInvalidationObject(other))
|
| diff.setNeedsPaintInvalidationObject();
|
|
|
| - updatePropertySpecificDifferences(other, diff);
|
| + if (diffNeedsVisualRectUpdate(other))
|
| + diff.setNeedsVisualRectUpdate();
|
|
|
| - // The following condition needs to be at last, because it may depend on
|
| - // conditions in diff computed above.
|
| - if (scrollAnchorDisablingPropertyChanged(other, diff))
|
| - diff.setScrollAnchorDisablingPropertyChanged();
|
| + // This needs to be at last, because it may depend on conditions in diff
|
| + // computed above.
|
| + updatePropertySpecificDifferences(other, diff);
|
|
|
| // Cursors are not checked, since they will be set appropriately in response
|
| // to mouse events, so they don't need to cause any paint invalidation or
|
| @@ -1004,6 +1004,21 @@ bool ComputedStyle::diffNeedsPaintInvalidationObjectForPaintImage(
|
| return false;
|
| }
|
|
|
| +// This doesn't include conditions needing layout or overflow recomputation
|
| +// which implies visual rect update.
|
| +bool ComputedStyle::diffNeedsVisualRectUpdate(
|
| + const ComputedStyle& other) const {
|
| + // Visual rect is empty if visibility is hidden.
|
| + if (visibility() != other.visibility())
|
| + return true;
|
| +
|
| + // Need to update visual rect of the resizer.
|
| + if (resize() != other.resize())
|
| + return true;
|
| +
|
| + return false;
|
| +}
|
| +
|
| void ComputedStyle::updatePropertySpecificDifferences(
|
| const ComputedStyle& other,
|
| StyleDifference& diff) const {
|
| @@ -1098,6 +1113,9 @@ void ComputedStyle::updatePropertySpecificDifferences(
|
| if (hasClip != otherHasClip ||
|
| (hasClip && m_visual->clip != other.m_visual->clip))
|
| diff.setCSSClipChanged();
|
| +
|
| + if (scrollAnchorDisablingPropertyChanged(other, diff))
|
| + diff.setScrollAnchorDisablingPropertyChanged();
|
| }
|
|
|
| void ComputedStyle::addPaintImage(StyleImage* image) {
|
|
|