| Index: third_party/WebKit/Source/core/paint/TableCellPainter.cpp
|
| diff --git a/third_party/WebKit/Source/core/paint/TableCellPainter.cpp b/third_party/WebKit/Source/core/paint/TableCellPainter.cpp
|
| index c6372e500b97001ce68ee42e1abf060f151e5c78..e74b7276729c5d992ce566e91142fc3641ceede3 100644
|
| --- a/third_party/WebKit/Source/core/paint/TableCellPainter.cpp
|
| +++ b/third_party/WebKit/Source/core/paint/TableCellPainter.cpp
|
| @@ -13,41 +13,32 @@
|
|
|
| namespace blink {
|
|
|
| -inline const CollapsedBorderValue& TableCellPainter::cachedCollapsedLeftBorder(const ComputedStyle& styleForCellFlow) const
|
| +static const CollapsedBorderValue& collapsedLeftBorder(const ComputedStyle& styleForCellFlow, const LayoutTableCell::CollapsedBorderValues& values)
|
| {
|
| - if (styleForCellFlow.isHorizontalWritingMode()) {
|
| - return styleForCellFlow.isLeftToRightDirection() ? m_layoutTableCell.section()->cachedCollapsedBorder(&m_layoutTableCell, CBSStart)
|
| - : m_layoutTableCell.section()->cachedCollapsedBorder(&m_layoutTableCell, CBSEnd);
|
| - }
|
| - return styleForCellFlow.isFlippedBlocksWritingMode() ? m_layoutTableCell.section()->cachedCollapsedBorder(&m_layoutTableCell, CBSAfter)
|
| - : m_layoutTableCell.section()->cachedCollapsedBorder(&m_layoutTableCell, CBSBefore);
|
| + if (styleForCellFlow.isHorizontalWritingMode())
|
| + return styleForCellFlow.isLeftToRightDirection() ? values.startBorder : values.endBorder;
|
| + return styleForCellFlow.isFlippedBlocksWritingMode() ? values.afterBorder : values.beforeBorder;
|
| }
|
|
|
| -inline const CollapsedBorderValue& TableCellPainter::cachedCollapsedRightBorder(const ComputedStyle& styleForCellFlow) const
|
| +static const CollapsedBorderValue& collapsedRightBorder(const ComputedStyle& styleForCellFlow, const LayoutTableCell::CollapsedBorderValues& values)
|
| {
|
| - if (styleForCellFlow.isHorizontalWritingMode()) {
|
| - return styleForCellFlow.isLeftToRightDirection() ? m_layoutTableCell.section()->cachedCollapsedBorder(&m_layoutTableCell, CBSEnd)
|
| - : m_layoutTableCell.section()->cachedCollapsedBorder(&m_layoutTableCell, CBSStart);
|
| - }
|
| - return styleForCellFlow.isFlippedBlocksWritingMode() ? m_layoutTableCell.section()->cachedCollapsedBorder(&m_layoutTableCell, CBSBefore)
|
| - : m_layoutTableCell.section()->cachedCollapsedBorder(&m_layoutTableCell, CBSAfter);
|
| + if (styleForCellFlow.isHorizontalWritingMode())
|
| + return styleForCellFlow.isLeftToRightDirection() ? values.endBorder : values.startBorder;
|
| + return styleForCellFlow.isFlippedBlocksWritingMode() ? values.beforeBorder : values.afterBorder;
|
| }
|
|
|
| -inline const CollapsedBorderValue& TableCellPainter::cachedCollapsedTopBorder(const ComputedStyle& styleForCellFlow) const
|
| +static const CollapsedBorderValue& collapsedTopBorder(const ComputedStyle& styleForCellFlow, const LayoutTableCell::CollapsedBorderValues& values)
|
| {
|
| if (styleForCellFlow.isHorizontalWritingMode())
|
| - return styleForCellFlow.isFlippedBlocksWritingMode() ? m_layoutTableCell.section()->cachedCollapsedBorder(&m_layoutTableCell, CBSAfter) : m_layoutTableCell.section()->cachedCollapsedBorder(&m_layoutTableCell, CBSBefore);
|
| - return styleForCellFlow.isLeftToRightDirection() ? m_layoutTableCell.section()->cachedCollapsedBorder(&m_layoutTableCell, CBSStart) : m_layoutTableCell.section()->cachedCollapsedBorder(&m_layoutTableCell, CBSEnd);
|
| + return styleForCellFlow.isFlippedBlocksWritingMode() ? values.afterBorder : values.beforeBorder;
|
| + return styleForCellFlow.isLeftToRightDirection() ? values.startBorder : values.endBorder;
|
| }
|
|
|
| -inline const CollapsedBorderValue& TableCellPainter::cachedCollapsedBottomBorder(const ComputedStyle& styleForCellFlow) const
|
| +static const CollapsedBorderValue& collapsedBottomBorder(const ComputedStyle& styleForCellFlow, const LayoutTableCell::CollapsedBorderValues& values)
|
| {
|
| - if (styleForCellFlow.isHorizontalWritingMode()) {
|
| - return styleForCellFlow.isFlippedBlocksWritingMode() ? m_layoutTableCell.section()->cachedCollapsedBorder(&m_layoutTableCell, CBSBefore)
|
| - : m_layoutTableCell.section()->cachedCollapsedBorder(&m_layoutTableCell, CBSAfter);
|
| - }
|
| - return styleForCellFlow.isLeftToRightDirection() ? m_layoutTableCell.section()->cachedCollapsedBorder(&m_layoutTableCell, CBSEnd)
|
| - : m_layoutTableCell.section()->cachedCollapsedBorder(&m_layoutTableCell, CBSStart);
|
| + if (styleForCellFlow.isHorizontalWritingMode())
|
| + return styleForCellFlow.isFlippedBlocksWritingMode() ? values.beforeBorder : values.afterBorder;
|
| + return styleForCellFlow.isLeftToRightDirection() ? values.endBorder : values.startBorder;
|
| }
|
|
|
| void TableCellPainter::paint(const PaintInfo& paintInfo, const LayoutPoint& paintOffset)
|
| @@ -69,11 +60,15 @@ void TableCellPainter::paintCollapsedBorders(const PaintInfo& paintInfo, const L
|
| if (!paintInfo.shouldPaintWithinRoot(&m_layoutTableCell) || m_layoutTableCell.style()->visibility() != VISIBLE)
|
| return;
|
|
|
| + const LayoutTableCell::CollapsedBorderValues* values = m_layoutTableCell.collapsedBorderValues();
|
| + if (!values)
|
| + return;
|
| +
|
| const ComputedStyle& styleForCellFlow = m_layoutTableCell.styleForCellFlow();
|
| - const CollapsedBorderValue& leftBorderValue = cachedCollapsedLeftBorder(styleForCellFlow);
|
| - const CollapsedBorderValue& rightBorderValue = cachedCollapsedRightBorder(styleForCellFlow);
|
| - const CollapsedBorderValue& topBorderValue = cachedCollapsedTopBorder(styleForCellFlow);
|
| - const CollapsedBorderValue& bottomBorderValue = cachedCollapsedBottomBorder(styleForCellFlow);
|
| + const CollapsedBorderValue& leftBorderValue = collapsedLeftBorder(styleForCellFlow, *values);
|
| + const CollapsedBorderValue& rightBorderValue = collapsedRightBorder(styleForCellFlow, *values);
|
| + const CollapsedBorderValue& topBorderValue = collapsedTopBorder(styleForCellFlow, *values);
|
| + const CollapsedBorderValue& bottomBorderValue = collapsedBottomBorder(styleForCellFlow, *values);
|
|
|
| int displayItemType = DisplayItem::TableCollapsedBorderBase;
|
| if (topBorderValue.shouldPaint(currentBorderValue))
|
|
|