| 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 12a1ffac605679b1800ce9203b106515813337db..a53868d5208a2a2d950d3bc3f2f1dc5cc91b81b5 100644
|
| --- a/third_party/WebKit/Source/core/style/ComputedStyle.cpp
|
| +++ b/third_party/WebKit/Source/core/style/ComputedStyle.cpp
|
| @@ -556,6 +556,9 @@ StyleDifference ComputedStyle::visualInvalidationDiff(
|
| else if (diffNeedsPaintInvalidationObject(other))
|
| diff.setNeedsPaintInvalidationObject();
|
|
|
| + if (diffNeedsVisualRectUpdate(other))
|
| + diff.setNeedsVisualRectUpdate();
|
| +
|
| updatePropertySpecificDifferences(other, diff);
|
|
|
| // The following condition needs to be at last, because it may depend on
|
| @@ -997,6 +1000,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 {
|
|
|