Index: third_party/WebKit/Source/core/layout/LayoutBox.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutBox.cpp b/third_party/WebKit/Source/core/layout/LayoutBox.cpp |
index b92a53a9225c12c13f1826426a96cc250128cba6..0f46d4d73f789debc6bb726893096afbec2f623a 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutBox.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutBox.cpp |
@@ -1471,6 +1471,14 @@ PaintInvalidationReason LayoutBox::invalidatePaintIfNeeded(PaintInvalidationStat |
if (isFloating()) |
paintInvalidationState.enclosingSelfPaintingLayer(*this).setNeedsPaintPhaseFloat(); |
+ if (hasBoxDecorationBackground() |
+ // We also paint overflow controls in background phase. |
+ || (hasOverflowClip() && scrollableArea()->hasOverflowControls())) { |
+ PaintLayer& layer = paintInvalidationState.enclosingSelfPaintingLayer(*this); |
+ if (layer.layoutObject() != this) |
+ layer.setNeedsPaintPhaseDescendantBlockBackgrounds(); |
+ } |
+ |
PaintInvalidationReason fullInvalidationReason = fullPaintInvalidationReason(); |
// If the current paint invalidation reason is PaintInvalidationDelayedFull, then this paint invalidation can delayed if the |
// LayoutBox in question is not on-screen. The logic to decide whether this is appropriate exists at the site of the original |