Index: Source/core/paint/ReplacedPainter.cpp |
diff --git a/Source/core/paint/ReplacedPainter.cpp b/Source/core/paint/ReplacedPainter.cpp |
index 241d087b231a45bc922079488a3f08ae69d20b83..3a02322323e5c50cf7da0184dce0ace4709dc1d2 100644 |
--- a/Source/core/paint/ReplacedPainter.cpp |
+++ b/Source/core/paint/ReplacedPainter.cpp |
@@ -88,14 +88,12 @@ void ReplacedPainter::paint(const PaintInfo& paintInfo, const LayoutPoint& paint |
// The selection tint never gets clipped by border-radius rounding, since we want it to run right up to the edges of |
// surrounding content. |
bool drawSelectionTint = paintInfo.phase == PaintPhaseForeground && m_layoutReplaced.selectionState() != LayoutObject::SelectionNone && !m_layoutReplaced.document().printing(); |
- if (drawSelectionTint) { |
+ if (drawSelectionTint && !LayoutObjectDrawingRecorder::useCachedDrawingIfPossible(*paintInfo.context, m_layoutReplaced, DisplayItem::SelectionTint)) { |
LayoutRect selectionPaintingRect = m_layoutReplaced.localSelectionRect(); |
selectionPaintingRect.moveBy(adjustedPaintOffset); |
IntRect selectionPaintingIntRect = pixelSnappedIntRect(selectionPaintingRect); |
LayoutObjectDrawingRecorder drawingRecorder(*paintInfo.context, m_layoutReplaced, DisplayItem::SelectionTint, selectionPaintingIntRect); |
- if (drawingRecorder.canUseCachedDrawing()) |
- return; |
paintInfo.context->fillRect(selectionPaintingIntRect, m_layoutReplaced.selectionBackgroundColor()); |
} |
} |