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 7ff3eef3fabf9fcbf135b808dc4f78bcae459381..80d2958cefad0e210611448cdbd7e1c2b9e8adb6 100644 |
--- a/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp |
+++ b/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp |
@@ -680,7 +680,13 @@ void PaintLayerPainter::paintForegroundForFragments(const PaintLayerFragments& l |
if (!selectionOnly) { |
paintForegroundForFragmentsWithPhase(PaintPhaseFloat, layerFragments, context, localPaintingInfo, paintingRootForLayoutObject, paintFlags, clipState); |
paintForegroundForFragmentsWithPhase(PaintPhaseForeground, layerFragments, context, localPaintingInfo, paintingRootForLayoutObject, paintFlags, clipState); |
- paintForegroundForFragmentsWithPhase(PaintPhaseDescendantOutlinesOnly, layerFragments, context, localPaintingInfo, paintingRootForLayoutObject, paintFlags, clipState); |
+ |
+ if (m_paintLayer.needsPaintPhaseDescendantOutlines()) { |
+ size_t displayItemListSizeBefore = context.paintController().newDisplayItemList().size(); |
+ paintForegroundForFragmentsWithPhase(PaintPhaseDescendantOutlinesOnly, layerFragments, context, localPaintingInfo, paintingRootForLayoutObject, paintFlags, clipState); |
+ if (displayItemListSizeBefore == context.paintController().newDisplayItemList().size()) |
+ m_paintLayer.clearNeedsPaintPhaseDescendantOutlines(); |
+ } |
} |
} |