Index: third_party/WebKit/Source/core/paint/ReplacedPainter.cpp |
diff --git a/third_party/WebKit/Source/core/paint/ReplacedPainter.cpp b/third_party/WebKit/Source/core/paint/ReplacedPainter.cpp |
index 6f1c65510f542981c346be17e0dba4c2985e314d..54029e1514c5bc75c01434ced044b02b12cea5db 100644 |
--- a/third_party/WebKit/Source/core/paint/ReplacedPainter.cpp |
+++ b/third_party/WebKit/Source/core/paint/ReplacedPainter.cpp |
@@ -30,7 +30,7 @@ void ReplacedPainter::paint(const PaintInfo& paintInfo, const LayoutPoint& paint |
LayoutRect borderRect(adjustedPaintOffset, m_layoutReplaced.size()); |
- if (m_layoutReplaced.hasBoxDecorationBackground() && (paintInfo.phase == PaintPhaseForeground || paintInfo.phase == PaintPhaseSelection)) |
+ if (m_layoutReplaced.style()->visibility() == VISIBLE && m_layoutReplaced.hasBoxDecorationBackground() && (paintInfo.phase == PaintPhaseForeground || paintInfo.phase == PaintPhaseSelection)) |
m_layoutReplaced.paintBoxDecorationBackground(paintInfo, adjustedPaintOffset); |
if (paintInfo.phase == PaintPhaseMask) { |
@@ -102,7 +102,8 @@ bool ReplacedPainter::shouldPaint(const PaintInfo& paintInfo, const LayoutPoint& |
return false; |
// If we're invisible or haven't received a layout yet, just bail. |
- if (m_layoutReplaced.style()->visibility() != VISIBLE) |
+ // But if it's an SVG root, there can be children, so we'll check visibility later. |
+ if (!m_layoutReplaced.isSVGRoot() && m_layoutReplaced.style()->visibility() != VISIBLE) |
return false; |
LayoutRect paintRect(m_layoutReplaced.visualOverflowRect()); |