Index: third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp |
diff --git a/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp b/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp |
index 58a6e0af7fa78625423459c75e00e5de63f499e1..9179d01188ee60c535ecf09d7b3a985d47a7e021 100644 |
--- a/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp |
+++ b/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp |
@@ -381,15 +381,21 @@ PaintLayerPainter::PaintResult PaintLayerPainter::paintLayerContents(GraphicsCon |
scopedPaintChunkProperties.emplace(context.getPaintController(), m_paintLayer, properties); |
} |
- bool shouldPaintBackground = isPaintingCompositedBackground && shouldPaintContent && !selectionOnly; |
+ bool shouldPaintBackgroundOntoForeground = paintFlags & PaintLayerPaintingCompositingScrollingPhase |
+ && m_paintLayer.shouldPaintBackgroundOntoForeground(); |
+ bool shouldPaintBackground = shouldPaintContent && !selectionOnly |
+ && (shouldPaintBackgroundOntoForeground || isPaintingCompositedBackground); |
bool shouldPaintNegZOrderList = (isPaintingScrollingContent && isPaintingOverflowContents) || (!isPaintingScrollingContent && isPaintingCompositedBackground); |
bool shouldPaintOwnContents = isPaintingCompositedForeground && shouldPaintContent; |
bool shouldPaintNormalFlowAndPosZOrderLists = isPaintingCompositedForeground; |
bool shouldPaintOverlayScrollbars = isPaintingOverlayScrollbars; |
if (shouldPaintBackground) { |
+ PaintLayerFlags localPaintFlags(paintFlags); |
+ if (shouldPaintBackgroundOntoForeground) |
+ localPaintFlags |= PaintLayerPaintingRootBackgroundOntoForeground; |
paintBackgroundForFragments(layerFragments, context, paintingInfo.paintDirtyRect, |
- localPaintingInfo, paintFlags); |
+ localPaintingInfo, localPaintFlags); |
} |
if (shouldPaintNegZOrderList) { |