Fix border collapsing at the end of a table-row-group

This fixes the border-end calculation for table rows whose borders are
collapsed with rows in different rowgroups.  The border collapsing code now
uses an iterator that yields all the rows as a flat sequence, regardless of
how they are grouped in rowgroups.  It gets rid of
`TableRowGroupFlow::preliminary_collapsed_borders` which was never correct.
(It was read but never written.)

This may fix #8120 but I'm not 100% certain. (I haven't managed to reproduce
the intermittent failure locally, and my reduced test case still fails but in
a different way.)
This commit is contained in:
Matt Brubeck 2016-02-29 14:33:41 -08:00
parent 4dc9d8b1c5
commit 6c684a5ac7
7 changed files with 181 additions and 139 deletions

View file

@ -1,3 +0,0 @@
[border-collapse-dynamic-cell-002.htm]
type: reftest
expected: FAIL

View file

@ -740,6 +740,18 @@
"url": "/_mozilla/css/border_collapse_missing_cell_a.html"
}
],
"css/border_collapse_rowgroup_a.html": [
{
"path": "css/border_collapse_rowgroup_a.html",
"references": [
[
"/_mozilla/css/border_collapse_rowgroup_ref.html",
"=="
]
],
"url": "/_mozilla/css/border_collapse_rowgroup_a.html"
}
],
"css/border_collapse_simple_a.html": [
{
"path": "css/border_collapse_simple_a.html",
@ -6910,6 +6922,18 @@
"url": "/_mozilla/css/border_collapse_missing_cell_a.html"
}
],
"css/border_collapse_rowgroup_a.html": [
{
"path": "css/border_collapse_rowgroup_a.html",
"references": [
[
"/_mozilla/css/border_collapse_rowgroup_ref.html",
"=="
]
],
"url": "/_mozilla/css/border_collapse_rowgroup_a.html"
}
],
"css/border_collapse_simple_a.html": [
{
"path": "css/border_collapse_simple_a.html",

View file

@ -1,3 +0,0 @@
[border_collapse_simple_a.html]
type: reftest
disabled: https://github.com/servo/servo/issues/8120

View file

@ -0,0 +1,28 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>border collapse rowgroup test</title>
<link rel="match" href="border_collapse_rowgroup_ref.html">
<style>
table {
border-collapse: collapse;
border: 4px solid black;
}
td {
border: 2px solid black;
padding: 16px;
width: 32px;
height: 32px;
}
</style>
</head>
<body>
<table>
<tbody>
<tr><td></td></tr>
</tbody>
<tr><td></td></tr>
</table>
</body>
</html>

View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>border collapse rowgroup reference</title>
<style>
table {
border-collapse: collapse;
border: 4px solid black;
}
td {
border: 2px solid black;
padding: 16px;
width: 32px;
height: 32px;
}
</style>
</head>
<body>
<table>
<tbody>
<tr><td></td></tr>
<tr><td></td></tr>
</tbody>
</table>
</body>
</html>