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 d0c904e9c63fda921f0c2b284ff6d27d49e23845..f4abadca4ff06aa89872c24a1c3fb1b0f348ad8c 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutBox.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutBox.cpp |
@@ -1471,6 +1471,12 @@ PaintInvalidationReason LayoutBox::invalidatePaintIfNeeded(PaintInvalidationStat |
if (isFloating()) |
paintInvalidationState.enclosingSelfPaintingLayer(*this).setNeedsPaintPhaseFloat(); |
+ if (hasBoxDecorationBackground() || (hasOverflowClip() && scrollableArea()->hasOverflowControls())) { |
chrishtr
2016/02/01 17:43:49
Why the is this logic the right logic? In particul
Xianzhu
2016/02/01 17:58:39
Added comment:
// We also paint overflow controls
|
+ 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 |