Index: third_party/WebKit/Source/core/layout/LayoutObject.h |
diff --git a/third_party/WebKit/Source/core/layout/LayoutObject.h b/third_party/WebKit/Source/core/layout/LayoutObject.h |
index 484b99accf55737dadfab10d60bcd684daec4194..e1eb115fc939e3976e472b76429e6eb4f98d0a05 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutObject.h |
+++ b/third_party/WebKit/Source/core/layout/LayoutObject.h |
@@ -1365,7 +1365,11 @@ |
bool shouldCheckForPaintInvalidation(const PaintInvalidationState& paintInvalidationState) const |
{ |
- return paintInvalidationState.hasForcedSubtreeInvalidationFlags() |
+ // Should check for paint invalidation if some ancestor changed location, because this object |
+ // may also change paint offset or location in paint invalidation container, even if there is |
+ // no paint invalidation flag set. |
+ return paintInvalidationState.forcedSubtreeInvalidationWithinContainer() |
+ || paintInvalidationState.forcedSubtreeInvalidationRectUpdateWithinContainer() |
|| shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState(); |
} |
@@ -1517,7 +1521,7 @@ |
void setPreviousPaintInvalidationRect(const LayoutRect& rect) { m_previousPaintInvalidationRect = rect; } |
- virtual PaintInvalidationReason getPaintInvalidationReason(const PaintInvalidationState&, |
+ virtual PaintInvalidationReason getPaintInvalidationReason(const LayoutBoxModelObject& paintInvalidationContainer, |
const LayoutRect& oldPaintInvalidationRect, const LayoutPoint& oldPositionFromPaintInvalidationBacking, |
const LayoutRect& newPaintInvalidationRect, const LayoutPoint& newPositionFromPaintInvalidationBacking) const; |