Index: third_party/WebKit/Source/core/paint/TableRowPainter.cpp |
diff --git a/third_party/WebKit/Source/core/paint/TableRowPainter.cpp b/third_party/WebKit/Source/core/paint/TableRowPainter.cpp |
index b249ca929cc002e16f6c4c1830ecbda7f794e9f5..b7c333e0b4a8f13c7777cdf8bc27d333803d3d09 100644 |
--- a/third_party/WebKit/Source/core/paint/TableRowPainter.cpp |
+++ b/third_party/WebKit/Source/core/paint/TableRowPainter.cpp |
@@ -17,25 +17,18 @@ void TableRowPainter::paint(const PaintInfo& paintInfo, const LayoutPoint& paint |
{ |
ASSERT(m_layoutTableRow.hasSelfPaintingLayer()); |
- // Table rows don't paint self background. The cells paint table section's background |
- // behind them when needed during PaintPhaseBlockBackground or PaintPhaseDescendantBlockBackgroundOnly. |
- if (paintInfo.phase == PaintPhaseSelfBlockBackgroundOnly) |
- return; |
- |
// TODO(wangxianzhu): This painting order is inconsistent with other outlines. crbug.com/577282. |
paintOutlineForRowIfNeeded(paintInfo, paintOffset); |
if (paintInfo.phase == PaintPhaseSelfOutlineOnly) |
return; |
PaintInfo paintInfoForCells = paintInfo.forDescendants(); |
+ bool shouldPaintRowBackground = shouldPaintSelfBlockBackground(paintInfo.phase) && m_layoutTableRow.hasBackground(); |
+ bool shouldPaintCells = paintInfo.phase != PaintPhaseSelfBlockBackgroundOnly; |
for (LayoutTableCell* cell = m_layoutTableRow.firstCell(); cell; cell = cell->nextCell()) { |
- // Paint the row background behind the cell. |
- if (shouldPaintSelfBlockBackground(paintInfoForCells.phase)) { |
- if (m_layoutTableRow.hasBackground()) |
- TableCellPainter(*cell).paintBackgroundsBehindCell(paintInfoForCells, paintOffset, &m_layoutTableRow, DisplayItem::TableCellBackgroundFromRow); |
- } |
- |
- if (!cell->hasSelfPaintingLayer()) |
+ if (shouldPaintRowBackground) |
+ TableCellPainter(*cell).paintBackgroundsBehindCell(paintInfoForCells, paintOffset, &m_layoutTableRow, DisplayItem::TableCellBackgroundFromRow); |
+ if (shouldPaintCells && !cell->hasSelfPaintingLayer()) |
cell->paint(paintInfoForCells, paintOffset); |
} |
} |