Commit ea016d39 authored by David Grogan's avatar David Grogan Committed by Commit Bot

[LayoutNG] Use legacy borders when painting table cell fragments

NG fragments don't support collapsed borders yet. This manifested with
background-clip. When the position/size of the clipped background was
determined, the cells' full borders were used, not half of the winning
border as is correct in collapsed mode.

Bug: 1008400
Change-Id: I53a80c88d854136e8d3f540fe7b8c969152aad13
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1858519
Commit-Queue: David Grogan <dgrogan@chromium.org>
Reviewed-by: default avatarMorten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#705454}
parent 6981e52a
......@@ -1236,6 +1236,8 @@ PhysicalRect NGBoxFragmentPainter::AdjustRectForScrolledContent(
}
LayoutRectOutsets NGBoxFragmentPainter::ComputeBorders() const {
if (box_fragment_.GetLayoutObject()->IsTableCell())
return ToLayoutBox(box_fragment_.GetLayoutObject())->BorderBoxOutsets();
return BoxStrutToLayoutRectOutsets(PhysicalFragment().BorderWidths());
}
......
<!doctype html>
<title>Collapsed borders and background-clip</title>
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-tables-3/#in-collapsed-borders-mode">
<link rel="help" href="https://drafts.csswg.org/css-backgrounds-3/#the-background-clip">
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
<link rel="bookmark" href="https://crbug.com/1008400" />
<meta name="flags" content="" />
<meta name="assert" content="background-clip on a cell with collapsed borders is calculated correctly" />
<style>
table {
border-collapse: collapse;
/* The properties after the blank line are not the behavior under test. */
background: red;
}
td {
background-clip: content-box;
border: 30px solid green;
background-color: green;
padding: 0px;
line-height: 0px;
}
.cell-content {
display: inline-block;
height: 40px;
width: 40px;
}
</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<table>
<tr>
<td>
<span class="cell-content"></span>
</td>
</tr>
</table>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment