| Index: third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp b/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
|
| index 27ee63ae1dc876724f3a3e3aecaf0610efccff70..a3a257bb85405bca5170b99b91bda688dab6bb21 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
|
| @@ -418,10 +418,10 @@ void LayoutTableCell::ComputeOverflow(LayoutUnit old_client_after_edge,
|
| // Our border rect already includes the inner halves of the collapsed borders,
|
| // so here we get the outer halves.
|
| bool rtl = !StyleForCellFlow().IsLeftToRightDirection();
|
| - LayoutUnit left = CollapsedBorderHalfLeft(true);
|
| - LayoutUnit right = CollapsedBorderHalfRight(true);
|
| - LayoutUnit top = CollapsedBorderHalfTop(true);
|
| - LayoutUnit bottom = CollapsedBorderHalfBottom(true);
|
| + unsigned left = CollapsedBorderHalfLeft(true);
|
| + unsigned right = CollapsedBorderHalfRight(true);
|
| + unsigned top = CollapsedBorderHalfTop(true);
|
| + unsigned bottom = CollapsedBorderHalfBottom(true);
|
|
|
| // This cell's borders may be lengthened to match the widths of orthogonal
|
| // borders of adjacent cells. Expand visual overflow to cover the lengthened
|
| @@ -452,7 +452,8 @@ void LayoutTableCell::ComputeOverflow(LayoutUnit old_client_after_edge,
|
| }
|
|
|
| LayoutRect rect = BorderBoxRect();
|
| - rect.ExpandEdges(top, right, bottom, left);
|
| + rect.ExpandEdges(LayoutUnit(top), LayoutUnit(right), LayoutUnit(bottom),
|
| + LayoutUnit(left));
|
| collapsed_border_values_->SetLocalVisualRect(rect);
|
| }
|
|
|
| @@ -1090,49 +1091,57 @@ CollapsedBorderValue LayoutTableCell::ComputeCollapsedAfterBorder() const {
|
| }
|
|
|
| LayoutUnit LayoutTableCell::BorderLeft() const {
|
| - return Table()->ShouldCollapseBorders() ? CollapsedBorderHalfLeft(false)
|
| - : LayoutBlockFlow::BorderLeft();
|
| + return Table()->ShouldCollapseBorders()
|
| + ? LayoutUnit(CollapsedBorderHalfLeft(false))
|
| + : LayoutBlockFlow::BorderLeft();
|
| }
|
|
|
| LayoutUnit LayoutTableCell::BorderRight() const {
|
| - return Table()->ShouldCollapseBorders() ? CollapsedBorderHalfRight(false)
|
| - : LayoutBlockFlow::BorderRight();
|
| + return Table()->ShouldCollapseBorders()
|
| + ? LayoutUnit(CollapsedBorderHalfRight(false))
|
| + : LayoutBlockFlow::BorderRight();
|
| }
|
|
|
| LayoutUnit LayoutTableCell::BorderTop() const {
|
| - return Table()->ShouldCollapseBorders() ? CollapsedBorderHalfTop(false)
|
| - : LayoutBlockFlow::BorderTop();
|
| + return Table()->ShouldCollapseBorders()
|
| + ? LayoutUnit(CollapsedBorderHalfTop(false))
|
| + : LayoutBlockFlow::BorderTop();
|
| }
|
|
|
| LayoutUnit LayoutTableCell::BorderBottom() const {
|
| - return Table()->ShouldCollapseBorders() ? CollapsedBorderHalfBottom(false)
|
| - : LayoutBlockFlow::BorderBottom();
|
| + return Table()->ShouldCollapseBorders()
|
| + ? LayoutUnit(CollapsedBorderHalfBottom(false))
|
| + : LayoutBlockFlow::BorderBottom();
|
| }
|
|
|
| // FIXME: https://bugs.webkit.org/show_bug.cgi?id=46191, make the collapsed
|
| // border drawing work with different block flow values instead of being
|
| // hard-coded to top-to-bottom.
|
| LayoutUnit LayoutTableCell::BorderStart() const {
|
| - return Table()->ShouldCollapseBorders() ? CollapsedBorderHalfStart(false)
|
| - : LayoutBlockFlow::BorderStart();
|
| + return Table()->ShouldCollapseBorders()
|
| + ? LayoutUnit(CollapsedBorderHalfStart(false))
|
| + : LayoutBlockFlow::BorderStart();
|
| }
|
|
|
| LayoutUnit LayoutTableCell::BorderEnd() const {
|
| - return Table()->ShouldCollapseBorders() ? CollapsedBorderHalfEnd(false)
|
| - : LayoutBlockFlow::BorderEnd();
|
| + return Table()->ShouldCollapseBorders()
|
| + ? LayoutUnit(CollapsedBorderHalfEnd(false))
|
| + : LayoutBlockFlow::BorderEnd();
|
| }
|
|
|
| LayoutUnit LayoutTableCell::BorderBefore() const {
|
| - return Table()->ShouldCollapseBorders() ? CollapsedBorderHalfBefore(false)
|
| - : LayoutBlockFlow::BorderBefore();
|
| + return Table()->ShouldCollapseBorders()
|
| + ? LayoutUnit(CollapsedBorderHalfBefore(false))
|
| + : LayoutBlockFlow::BorderBefore();
|
| }
|
|
|
| LayoutUnit LayoutTableCell::BorderAfter() const {
|
| - return Table()->ShouldCollapseBorders() ? CollapsedBorderHalfAfter(false)
|
| - : LayoutBlockFlow::BorderAfter();
|
| + return Table()->ShouldCollapseBorders()
|
| + ? LayoutUnit(CollapsedBorderHalfAfter(false))
|
| + : LayoutBlockFlow::BorderAfter();
|
| }
|
|
|
| -LayoutUnit LayoutTableCell::CollapsedBorderHalfLeft(bool outer) const {
|
| +unsigned LayoutTableCell::CollapsedBorderHalfLeft(bool outer) const {
|
| const ComputedStyle& style_for_cell_flow = this->StyleForCellFlow();
|
| if (style_for_cell_flow.IsHorizontalWritingMode()) {
|
| return style_for_cell_flow.IsLeftToRightDirection()
|
| @@ -1144,7 +1153,7 @@ LayoutUnit LayoutTableCell::CollapsedBorderHalfLeft(bool outer) const {
|
| : CollapsedBorderHalfBefore(outer);
|
| }
|
|
|
| -LayoutUnit LayoutTableCell::CollapsedBorderHalfRight(bool outer) const {
|
| +unsigned LayoutTableCell::CollapsedBorderHalfRight(bool outer) const {
|
| const ComputedStyle& style_for_cell_flow = this->StyleForCellFlow();
|
| if (style_for_cell_flow.IsHorizontalWritingMode()) {
|
| return style_for_cell_flow.IsLeftToRightDirection()
|
| @@ -1156,7 +1165,7 @@ LayoutUnit LayoutTableCell::CollapsedBorderHalfRight(bool outer) const {
|
| : CollapsedBorderHalfAfter(outer);
|
| }
|
|
|
| -LayoutUnit LayoutTableCell::CollapsedBorderHalfTop(bool outer) const {
|
| +unsigned LayoutTableCell::CollapsedBorderHalfTop(bool outer) const {
|
| const ComputedStyle& style_for_cell_flow = this->StyleForCellFlow();
|
| if (style_for_cell_flow.IsHorizontalWritingMode()) {
|
| return style_for_cell_flow.IsFlippedBlocksWritingMode()
|
| @@ -1168,7 +1177,7 @@ LayoutUnit LayoutTableCell::CollapsedBorderHalfTop(bool outer) const {
|
| : CollapsedBorderHalfEnd(outer);
|
| }
|
|
|
| -LayoutUnit LayoutTableCell::CollapsedBorderHalfBottom(bool outer) const {
|
| +unsigned LayoutTableCell::CollapsedBorderHalfBottom(bool outer) const {
|
| const ComputedStyle& style_for_cell_flow = this->StyleForCellFlow();
|
| if (style_for_cell_flow.IsHorizontalWritingMode()) {
|
| return style_for_cell_flow.IsFlippedBlocksWritingMode()
|
| @@ -1180,68 +1189,66 @@ LayoutUnit LayoutTableCell::CollapsedBorderHalfBottom(bool outer) const {
|
| : CollapsedBorderHalfStart(outer);
|
| }
|
|
|
| -LayoutUnit LayoutTableCell::CollapsedBorderHalfStart(bool outer) const {
|
| +unsigned LayoutTableCell::CollapsedBorderHalfStart(bool outer) const {
|
| UpdateCollapsedBorderValues();
|
| const auto* collapsed_border_values = this->GetCollapsedBorderValues();
|
| if (!collapsed_border_values)
|
| - return LayoutUnit();
|
| + return 0;
|
|
|
| const auto& border = collapsed_border_values->StartBorder();
|
| if (border.Exists()) {
|
| - return LayoutUnit(
|
| - (border.Width() +
|
| - ((StyleForCellFlow().IsLeftToRightDirection() ^ outer) ? 1 : 0)) /
|
| - 2); // Give the extra pixel to top and left.
|
| + return (border.Width() +
|
| + ((StyleForCellFlow().IsLeftToRightDirection() ^ outer) ? 1 : 0)) /
|
| + 2; // Give the extra pixel to top and left.
|
| }
|
| - return LayoutUnit();
|
| + return 0;
|
| }
|
|
|
| -LayoutUnit LayoutTableCell::CollapsedBorderHalfEnd(bool outer) const {
|
| +unsigned LayoutTableCell::CollapsedBorderHalfEnd(bool outer) const {
|
| UpdateCollapsedBorderValues();
|
| const auto* collapsed_border_values = this->GetCollapsedBorderValues();
|
| if (!collapsed_border_values)
|
| - return LayoutUnit();
|
| + return 0;
|
|
|
| const auto& border = collapsed_border_values->EndBorder();
|
| if (border.Exists()) {
|
| - return LayoutUnit(
|
| - (border.Width() +
|
| - ((StyleForCellFlow().IsLeftToRightDirection() ^ outer) ? 0 : 1)) /
|
| - 2);
|
| + return (border.Width() +
|
| + ((StyleForCellFlow().IsLeftToRightDirection() ^ outer) ? 0 : 1)) /
|
| + 2;
|
| }
|
| - return LayoutUnit();
|
| + return 0;
|
| }
|
|
|
| -LayoutUnit LayoutTableCell::CollapsedBorderHalfBefore(bool outer) const {
|
| +unsigned LayoutTableCell::CollapsedBorderHalfBefore(bool outer) const {
|
| UpdateCollapsedBorderValues();
|
| const auto* collapsed_border_values = this->GetCollapsedBorderValues();
|
| if (!collapsed_border_values)
|
| - return LayoutUnit();
|
| + return 0;
|
|
|
| const auto& border = collapsed_border_values->BeforeBorder();
|
| if (border.Exists()) {
|
| - return LayoutUnit(
|
| - (border.Width() +
|
| - ((StyleForCellFlow().IsFlippedBlocksWritingMode() ^ outer) ? 0 : 1)) /
|
| - 2); // Give the extra pixel to top and left.
|
| + return (border.Width() +
|
| + ((StyleForCellFlow().IsFlippedBlocksWritingMode() ^ outer) ? 0
|
| + : 1)) /
|
| + 2; // Give the extra pixel to top and left.
|
| }
|
| - return LayoutUnit();
|
| + return 0;
|
| }
|
|
|
| -LayoutUnit LayoutTableCell::CollapsedBorderHalfAfter(bool outer) const {
|
| +unsigned LayoutTableCell::CollapsedBorderHalfAfter(bool outer) const {
|
| UpdateCollapsedBorderValues();
|
| const auto* collapsed_border_values = this->GetCollapsedBorderValues();
|
| if (!collapsed_border_values)
|
| - return LayoutUnit();
|
| + return 0;
|
|
|
| const auto& border = collapsed_border_values->AfterBorder();
|
| if (border.Exists()) {
|
| - return LayoutUnit(
|
| - (border.Width() +
|
| - ((StyleForCellFlow().IsFlippedBlocksWritingMode() ^ outer) ? 1 : 0)) /
|
| - 2);
|
| + return (border.Width() +
|
| + ((StyleForCellFlow().IsFlippedBlocksWritingMode() ^ outer) ? 1
|
| + : 0)) /
|
| + 2;
|
| }
|
| - return LayoutUnit();
|
| + return 0;
|
| }
|
|
|
| void LayoutTableCell::Paint(const PaintInfo& paint_info,
|
|
|