bug 378935 the border collapse code relies on having mutliple dead cell data entries in a row r=bzbarsky

This commit is contained in:
Bernd 2010-03-06 10:53:04 +01:00
Родитель bb01425406
Коммит fcf87cb895
9 изменённых файлов: 266 добавлений и 2 удалений

Просмотреть файл

@ -0,0 +1,53 @@
<!DOCTYPE html>
<html>
<head>
<title>Testcase, border-collapse invalidation/repaint bug</title>
<link rel="copyright" href="http://www.gnu.org/copyleft/fdl.html">
<!--
Reduced from
http://en.wikipedia.org/wiki/French_presidential_election%2C_2007
-->
<style type="text/css">
html, body { height: 100%; }
td { border: thin solid; }
td.noborder{border: thin none;}
</style>
</head>
<body>
<table style="width: 95%; height: 95%; border-collapse: collapse;">
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td class="noborder">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td class="noborder">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="noborder">&nbsp;</td>
<td class="noborder">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="noborder">&nbsp;</td>
<td class="noborder">&nbsp;</td>
</tr>
</table>
</body>
</html>

Просмотреть файл

@ -0,0 +1,46 @@
<!DOCTYPE html>
<html>
<head>
<title>Testcase, border-collapse invalidation/repaint bug</title>
<link rel="copyright" href="http://www.gnu.org/copyleft/fdl.html">
<!--
Reduced from
http://en.wikipedia.org/wiki/French_presidential_election%2C_2007
-->
<style type="text/css">
html, body { height: 100%; }
td { border: thin solid; }
</style>
</head>
<body>
<table style="width: 95%; height: 95%; border-collapse: collapse;">
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table>
</body>
</html>

Просмотреть файл

@ -0,0 +1,42 @@
<!DOCTYPE html>
<html>
<head>
<title>Testcase, border-collapse invalidation/repaint bug</title>
<link rel="copyright" href="http://www.gnu.org/copyleft/fdl.html">
<!--
Reduced from
http://en.wikipedia.org/wiki/French_presidential_election%2C_2007
-->
<style type="text/css">
html, body { height: 100%; }
col { border: thin solid; }
</style>
</head>
<body>
<table style="width: 95%; height: 95%; border-collapse: collapse;">
<col></col>
<col></col>
<col></col>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</body>
</html>

Просмотреть файл

@ -0,0 +1,39 @@
<!DOCTYPE html>
<html>
<head>
<title>Testcase, border-collapse invalidation/repaint bug</title>
<link rel="copyright" href="http://www.gnu.org/copyleft/fdl.html">
<!--
Reduced from
http://en.wikipedia.org/wiki/French_presidential_election%2C_2007
-->
<style type="text/css">
html, body { height: 100%; }
col { border: thin solid; }
</style>
</head>
<body>
<table style="width: 95%; height: 95%; border-collapse: collapse;">
<col></col>
<col></col>
<col></col>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table>
</body>
</html>

Просмотреть файл

@ -0,0 +1,41 @@
<!DOCTYPE html>
<html>
<head>
<title>Testcase, border-collapse invalidation/repaint bug</title>
<link rel="copyright" href="http://www.gnu.org/copyleft/fdl.html">
<!--
Reduced from
http://en.wikipedia.org/wiki/French_presidential_election%2C_2007
-->
<style type="text/css">
html, body { height: 100%; }
col { border: thin solid; }
</style>
</head>
<body>
<table style="width: 50%; height: 50%; border-collapse: collapse;">
<col></col>
<col></col>
<col></col>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</body>
</html>

Просмотреть файл

@ -0,0 +1,38 @@
<!DOCTYPE html>
<html>
<head>
<title>Testcase, border-collapse invalidation/repaint bug</title>
<link rel="copyright" href="http://www.gnu.org/copyleft/fdl.html">
<!--
Reduced from
http://en.wikipedia.org/wiki/French_presidential_election%2C_2007
-->
<style type="text/css">
html, body { height: 100%; }
col { border: thin solid; }
</style>
</head>
<body>
<table style="width: 50%; height: 50%; border-collapse: collapse;">
<col></col>
<col></col>
<col></col>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</body>
</html>

Просмотреть файл

@ -636,6 +636,9 @@ fails == 374927-1.html 374927-1-ref.html # Was broken by patch for bug 368600; f
== 377603-1.html 377603-1-ref.html
== 377918.html 377918-ref.html
== 378535-1.html 378535-1-ref.html
== 378933-1.html 378933-1-ref.html
== 378935-1.html 378935-1-ref.html
== 378937-1.html 378937-1-ref.html
== 379178-xhtml.xhtml 379178-xhtml-ref.xhtml
== 379178-html.html 379178-html-ref.html
== 379178-svg.svg 379178-svg-ref.svg

Просмотреть файл

@ -1474,7 +1474,9 @@ nsCellMap::AppendCell(nsTableCellMap& aMap,
CellData* data = GetDataAt(aRowIndex, startColIndex);
if (!data)
break;
if (data->IsDead()) {
// The border collapse code relies on having multiple dead cell data entries
// in a row.
if (data->IsDead() && aCellFrame) {
origData = data;
break;
}

Просмотреть файл

@ -6897,7 +6897,7 @@ BCHorizontalSeg::Paint(BCPaintBorderIterator& aIter,
NS_SIDE_TOP;
nsIFrame* rg = aIter.mRg; if (!rg) ABORT0();
nsIFrame* row = aIter.mRow; if (!row) ABORT0();
nsIFrame* cell = mFirstCell; if (!cell) ABORT0(); // ????
nsIFrame* cell = mFirstCell;
nsIFrame* col;
nsIFrame* owner = nsnull;