| 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 685a18d52ffce671316053813a537d6aede801e3..115e67ac67bbda392255604c40c671286b95967e 100644
|
| --- a/third_party/WebKit/Source/core/paint/TableCellPainter.cpp
|
| +++ b/third_party/WebKit/Source/core/paint/TableCellPainter.cpp
|
| @@ -15,61 +15,11 @@
|
|
|
| namespace blink {
|
|
|
| -static const CollapsedBorderValue& CollapsedLeftBorder(
|
| - const ComputedStyle& style_for_cell_flow,
|
| - const LayoutTableCell::CollapsedBorderValues& values) {
|
| - if (style_for_cell_flow.IsHorizontalWritingMode()) {
|
| - return style_for_cell_flow.IsLeftToRightDirection() ? values.StartBorder()
|
| - : values.EndBorder();
|
| - }
|
| - return style_for_cell_flow.IsFlippedBlocksWritingMode()
|
| - ? values.AfterBorder()
|
| - : values.BeforeBorder();
|
| -}
|
| -
|
| -static const CollapsedBorderValue& CollapsedRightBorder(
|
| - const ComputedStyle& style_for_cell_flow,
|
| - const LayoutTableCell::CollapsedBorderValues& values) {
|
| - if (style_for_cell_flow.IsHorizontalWritingMode()) {
|
| - return style_for_cell_flow.IsLeftToRightDirection() ? values.EndBorder()
|
| - : values.StartBorder();
|
| - }
|
| - return style_for_cell_flow.IsFlippedBlocksWritingMode()
|
| - ? values.BeforeBorder()
|
| - : values.AfterBorder();
|
| -}
|
| -
|
| -static const CollapsedBorderValue& CollapsedTopBorder(
|
| - const ComputedStyle& style_for_cell_flow,
|
| - const LayoutTableCell::CollapsedBorderValues& values) {
|
| - if (style_for_cell_flow.IsHorizontalWritingMode())
|
| - return values.BeforeBorder();
|
| - return style_for_cell_flow.IsLeftToRightDirection() ? values.StartBorder()
|
| - : values.EndBorder();
|
| -}
|
| -
|
| -static const CollapsedBorderValue& CollapsedBottomBorder(
|
| - const ComputedStyle& style_for_cell_flow,
|
| - const LayoutTableCell::CollapsedBorderValues& values) {
|
| - if (style_for_cell_flow.IsHorizontalWritingMode())
|
| - return values.AfterBorder();
|
| - return style_for_cell_flow.IsLeftToRightDirection() ? values.EndBorder()
|
| - : values.StartBorder();
|
| -}
|
| -
|
| void TableCellPainter::Paint(const PaintInfo& paint_info,
|
| const LayoutPoint& paint_offset) {
|
| BlockPainter(layout_table_cell_).Paint(paint_info, paint_offset);
|
| }
|
|
|
| -static EBorderStyle CollapsedBorderStyle(EBorderStyle style) {
|
| - if (style == kBorderStyleOutset)
|
| - return kBorderStyleGroove;
|
| - if (style == kBorderStyleInset)
|
| - return kBorderStyleRidge;
|
| - return style;
|
| -}
|
| -
|
| const DisplayItemClient& TableCellPainter::DisplayItemClientForBorders() const {
|
| // TODO(wkorman): We may need to handle PaintInvalidationDelayedFull.
|
| // http://crbug.com/657186
|
| @@ -79,105 +29,6 @@ const DisplayItemClient& TableCellPainter::DisplayItemClientForBorders() const {
|
| : layout_table_cell_;
|
| }
|
|
|
| -void TableCellPainter::PaintCollapsedBorders(
|
| - const PaintInfo& paint_info,
|
| - const LayoutPoint& paint_offset,
|
| - const CollapsedBorderValue& current_border_value) {
|
| - if (layout_table_cell_.Style()->Visibility() != EVisibility::kVisible)
|
| - return;
|
| -
|
| - LayoutPoint adjusted_paint_offset =
|
| - paint_offset + layout_table_cell_.Location();
|
| - if (!BlockPainter(layout_table_cell_)
|
| - .IntersectsPaintRect(paint_info, adjusted_paint_offset))
|
| - return;
|
| -
|
| - const LayoutTableCell::CollapsedBorderValues* values =
|
| - layout_table_cell_.GetCollapsedBorderValues();
|
| - if (!values)
|
| - return;
|
| -
|
| - const ComputedStyle& style_for_cell_flow =
|
| - layout_table_cell_.StyleForCellFlow();
|
| - const CollapsedBorderValue& left_border_value =
|
| - CollapsedLeftBorder(style_for_cell_flow, *values);
|
| - const CollapsedBorderValue& right_border_value =
|
| - CollapsedRightBorder(style_for_cell_flow, *values);
|
| - const CollapsedBorderValue& top_border_value =
|
| - CollapsedTopBorder(style_for_cell_flow, *values);
|
| - const CollapsedBorderValue& bottom_border_value =
|
| - CollapsedBottomBorder(style_for_cell_flow, *values);
|
| -
|
| - int display_item_type = DisplayItem::kTableCollapsedBorderBase;
|
| - if (top_border_value.ShouldPaint(current_border_value))
|
| - display_item_type |= DisplayItem::kTableCollapsedBorderTop;
|
| - if (bottom_border_value.ShouldPaint(current_border_value))
|
| - display_item_type |= DisplayItem::kTableCollapsedBorderBottom;
|
| - if (left_border_value.ShouldPaint(current_border_value))
|
| - display_item_type |= DisplayItem::kTableCollapsedBorderLeft;
|
| - if (right_border_value.ShouldPaint(current_border_value))
|
| - display_item_type |= DisplayItem::kTableCollapsedBorderRight;
|
| - if (display_item_type == DisplayItem::kTableCollapsedBorderBase)
|
| - return;
|
| -
|
| - int top_width = top_border_value.Width();
|
| - int bottom_width = bottom_border_value.Width();
|
| - int left_width = left_border_value.Width();
|
| - int right_width = right_border_value.Width();
|
| -
|
| - // Adjust our x/y/width/height so that we paint the collapsed borders at the
|
| - // correct location.
|
| - LayoutRect paint_rect =
|
| - PaintRectNotIncludingVisualOverflow(adjusted_paint_offset);
|
| - IntRect border_rect = PixelSnappedIntRect(
|
| - paint_rect.X() - left_width / 2, paint_rect.Y() - top_width / 2,
|
| - paint_rect.Width() + left_width / 2 + (right_width + 1) / 2,
|
| - paint_rect.Height() + top_width / 2 + (bottom_width + 1) / 2);
|
| -
|
| - GraphicsContext& graphics_context = paint_info.context;
|
| - const DisplayItemClient& client = DisplayItemClientForBorders();
|
| - if (DrawingRecorder::UseCachedDrawingIfPossible(
|
| - graphics_context, client,
|
| - static_cast<DisplayItem::Type>(display_item_type)))
|
| - return;
|
| -
|
| - DrawingRecorder recorder(graphics_context, client,
|
| - static_cast<DisplayItem::Type>(display_item_type),
|
| - border_rect);
|
| - Color cell_color = layout_table_cell_.ResolveColor(CSSPropertyColor);
|
| -
|
| - // We never paint diagonals at the joins. We simply let the border with the
|
| - // highest precedence paint on top of borders with lower precedence.
|
| - if (display_item_type & DisplayItem::kTableCollapsedBorderTop) {
|
| - ObjectPainter::DrawLineForBoxSide(
|
| - graphics_context, border_rect.X(), border_rect.Y(), border_rect.MaxX(),
|
| - border_rect.Y() + top_width, kBSTop,
|
| - top_border_value.GetColor().Resolve(cell_color),
|
| - CollapsedBorderStyle(top_border_value.Style()), 0, 0, true);
|
| - }
|
| - if (display_item_type & DisplayItem::kTableCollapsedBorderBottom) {
|
| - ObjectPainter::DrawLineForBoxSide(
|
| - graphics_context, border_rect.X(), border_rect.MaxY() - bottom_width,
|
| - border_rect.MaxX(), border_rect.MaxY(), kBSBottom,
|
| - bottom_border_value.GetColor().Resolve(cell_color),
|
| - CollapsedBorderStyle(bottom_border_value.Style()), 0, 0, true);
|
| - }
|
| - if (display_item_type & DisplayItem::kTableCollapsedBorderLeft) {
|
| - ObjectPainter::DrawLineForBoxSide(
|
| - graphics_context, border_rect.X(), border_rect.Y(),
|
| - border_rect.X() + left_width, border_rect.MaxY(), kBSLeft,
|
| - left_border_value.GetColor().Resolve(cell_color),
|
| - CollapsedBorderStyle(left_border_value.Style()), 0, 0, true);
|
| - }
|
| - if (display_item_type & DisplayItem::kTableCollapsedBorderRight) {
|
| - ObjectPainter::DrawLineForBoxSide(
|
| - graphics_context, border_rect.MaxX() - right_width, border_rect.Y(),
|
| - border_rect.MaxX(), border_rect.MaxY(), kBSRight,
|
| - right_border_value.GetColor().Resolve(cell_color),
|
| - CollapsedBorderStyle(right_border_value.Style()), 0, 0, true);
|
| - }
|
| -}
|
| -
|
| void TableCellPainter::PaintContainerBackgroundBehindCell(
|
| const PaintInfo& paint_info,
|
| const LayoutPoint& paint_offset,
|
|
|