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 ff9223db493e4a00a404bf82c6193d0f4663dc12..7adb9fd6ad39f25b118bbba693ceaad4cde0bf5b 100644 |
--- a/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp |
+++ b/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp |
@@ -671,7 +671,13 @@ void PaintLayerPainter::paintForegroundForFragments(const PaintLayerFragments& l |
layerFragments, context, localPaintingInfo, paintFlags, clipState); |
if (!selectionOnly) { |
- paintForegroundForFragmentsWithPhase(PaintPhaseFloat, layerFragments, context, localPaintingInfo, paintFlags, clipState); |
+ if (m_paintLayer.needsPaintPhaseFloat()) { |
+ size_t displayItemListSizeBefore = context.paintController().newDisplayItemList().size(); |
+ paintForegroundForFragmentsWithPhase(PaintPhaseFloat, layerFragments, context, localPaintingInfo, paintFlags, clipState); |
+ if (displayItemListSizeBefore == context.paintController().newDisplayItemList().size()) |
chrishtr
2016/01/21 22:09:08
This looks like a fragile way to try to clear the
Xianzhu
2016/01/21 23:58:35
I think at first we can leave the flag never clear
|
+ m_paintLayer.clearNeedsPaintPhaseFloat(); |
+ } |
+ |
paintForegroundForFragmentsWithPhase(PaintPhaseForeground, layerFragments, context, localPaintingInfo, paintFlags, clipState); |
if (m_paintLayer.needsPaintPhaseDescendantOutlines()) { |