summaryrefslogtreecommitdiffstats
path: root/layout/reftests/pagination
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /layout/reftests/pagination
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'layout/reftests/pagination')
-rw-r--r--layout/reftests/pagination/abspos-breaking-000.ref.xhtml40
-rw-r--r--layout/reftests/pagination/abspos-breaking-000.xhtml41
-rw-r--r--layout/reftests/pagination/abspos-breaking-001.xhtml42
-rw-r--r--layout/reftests/pagination/abspos-breaking-002.xhtml43
-rw-r--r--layout/reftests/pagination/abspos-breaking-003-ref.html29
-rw-r--r--layout/reftests/pagination/abspos-breaking-003.html20
-rw-r--r--layout/reftests/pagination/abspos-breaking-004-ref.html29
-rw-r--r--layout/reftests/pagination/abspos-breaking-004.html20
-rw-r--r--layout/reftests/pagination/abspos-breaking-005-ref.html39
-rw-r--r--layout/reftests/pagination/abspos-breaking-005.html20
-rw-r--r--layout/reftests/pagination/abspos-breaking-006-ref.html35
-rw-r--r--layout/reftests/pagination/abspos-breaking-006.html20
-rw-r--r--layout/reftests/pagination/abspos-breaking-007-ref.html50
-rw-r--r--layout/reftests/pagination/abspos-breaking-007.html21
-rw-r--r--layout/reftests/pagination/abspos-breaking-008-ref.html35
-rw-r--r--layout/reftests/pagination/abspos-breaking-008.html21
-rw-r--r--layout/reftests/pagination/abspos-breaking-009-ref.html39
-rw-r--r--layout/reftests/pagination/abspos-breaking-009.html21
-rw-r--r--layout/reftests/pagination/abspos-breaking-010-ref.html30
-rw-r--r--layout/reftests/pagination/abspos-breaking-010.html21
-rw-r--r--layout/reftests/pagination/abspos-breaking-011-ref.html7
-rw-r--r--layout/reftests/pagination/abspos-breaking-011.html9
-rw-r--r--layout/reftests/pagination/abspos-overflow-01-cols.ref.xhtml73
-rw-r--r--layout/reftests/pagination/abspos-overflow-01-cols.xhtml189
-rw-r--r--layout/reftests/pagination/abspos-overflow-01.ref.xhtml47
-rw-r--r--layout/reftests/pagination/abspos-overflow-01.xhtml201
-rw-r--r--layout/reftests/pagination/blank.html1
-rw-r--r--layout/reftests/pagination/border-breaking-000-cols.ref.xhtml19
-rw-r--r--layout/reftests/pagination/border-breaking-000-cols.xhtml42
-rw-r--r--layout/reftests/pagination/border-breaking-001-cols.ref.xhtml38
-rw-r--r--layout/reftests/pagination/border-breaking-001-cols.xhtml74
-rw-r--r--layout/reftests/pagination/border-breaking-002-cols.ref.xhtml35
-rw-r--r--layout/reftests/pagination/border-breaking-002-cols.xhtml36
-rw-r--r--layout/reftests/pagination/border-breaking-003-cols.ref.xhtml31
-rw-r--r--layout/reftests/pagination/border-breaking-003-cols.xhtml40
-rw-r--r--layout/reftests/pagination/border-breaking-004-cols.xhtml29
-rw-r--r--layout/reftests/pagination/column-balancing-break-inside-avoid-2-ref.html48
-rw-r--r--layout/reftests/pagination/column-balancing-break-inside-avoid-2.html49
-rw-r--r--layout/reftests/pagination/combobox-page-break-inside-ref.html17
-rw-r--r--layout/reftests/pagination/combobox-page-break-inside.html17
-rw-r--r--layout/reftests/pagination/content-inserted-000.ref.xhtml44
-rw-r--r--layout/reftests/pagination/content-inserted-000.xhtml44
-rw-r--r--layout/reftests/pagination/content-inserted-001.ref.xhtml33
-rw-r--r--layout/reftests/pagination/content-inserted-001.xhtml33
-rw-r--r--layout/reftests/pagination/content-inserted-002.ref.xhtml42
-rw-r--r--layout/reftests/pagination/content-inserted-002.xhtml47
-rw-r--r--layout/reftests/pagination/content-inserted-003.xhtml48
-rw-r--r--layout/reftests/pagination/content-inserted-004.xhtml46
-rw-r--r--layout/reftests/pagination/content-inserted-005.xhtml42
-rw-r--r--layout/reftests/pagination/content-inserted-006.xhtml54
-rw-r--r--layout/reftests/pagination/content-inserted-007.xhtml53
-rw-r--r--layout/reftests/pagination/content-inserted-008.xhtml40
-rw-r--r--layout/reftests/pagination/content-inserted-009.xhtml49
-rw-r--r--layout/reftests/pagination/dynamic-abspos-overflow-01-cols.ref.xhtml78
-rw-r--r--layout/reftests/pagination/dynamic-abspos-overflow-01-cols.xhtml239
-rw-r--r--layout/reftests/pagination/float-clear-000-print.html36
-rw-r--r--layout/reftests/pagination/float-clear-000-print.ref.html24
-rw-r--r--layout/reftests/pagination/float-clear-000.html43
-rw-r--r--layout/reftests/pagination/float-clear-000.ref.html31
-rw-r--r--layout/reftests/pagination/float-clear-001-print.html36
-rw-r--r--layout/reftests/pagination/float-clear-001.html43
-rw-r--r--layout/reftests/pagination/float-clear-002-print.html36
-rw-r--r--layout/reftests/pagination/float-clear-002.html43
-rw-r--r--layout/reftests/pagination/float-clear-003-print.html45
-rw-r--r--layout/reftests/pagination/float-clear-003.html52
-rw-r--r--layout/reftests/pagination/float-continuations-000.html107
-rw-r--r--layout/reftests/pagination/float-continuations-000.ref.html39
-rw-r--r--layout/reftests/pagination/reftest-stylo.list109
-rw-r--r--layout/reftests/pagination/reftest.list74
-rw-r--r--layout/reftests/pagination/resize-reflow-000.html28
-rw-r--r--layout/reftests/pagination/resize-reflow-000.ref.html22
-rw-r--r--layout/reftests/pagination/resize-reflow-001.html19
-rw-r--r--layout/reftests/pagination/resize-reflow-001.inner.html26
-rw-r--r--layout/reftests/pagination/resize-reflow-001.ref.html22
-rw-r--r--layout/reftests/pagination/row-page-break-after-always-1.html19
-rw-r--r--layout/reftests/pagination/row-page-break-after-always-2.html18
-rw-r--r--layout/reftests/pagination/rowgroup-page-break-after-always-1.html19
-rw-r--r--layout/reftests/pagination/rowgroup-tfoot-page-break-after-always-1.html20
-rw-r--r--layout/reftests/pagination/rowgroup-thead-page-break-after-always-1.html20
-rw-r--r--layout/reftests/pagination/table-caption-splitaftercaption-1-ref.html21
-rw-r--r--layout/reftests/pagination/table-caption-splitaftercaption-1.html21
-rw-r--r--layout/reftests/pagination/table-caption-splitaftercaption-10.html23
-rw-r--r--layout/reftests/pagination/table-caption-splitaftercaption-11.html23
-rw-r--r--layout/reftests/pagination/table-caption-splitaftercaption-2-ref.html27
-rw-r--r--layout/reftests/pagination/table-caption-splitaftercaption-2.html21
-rw-r--r--layout/reftests/pagination/table-caption-splitaftercaption-3-ref.html27
-rw-r--r--layout/reftests/pagination/table-caption-splitaftercaption-3.html21
-rw-r--r--layout/reftests/pagination/table-caption-splitaftercaption-4-ref.html28
-rw-r--r--layout/reftests/pagination/table-caption-splitaftercaption-4.html22
-rw-r--r--layout/reftests/pagination/table-caption-splitaftercaption-5-ref.html28
-rw-r--r--layout/reftests/pagination/table-caption-splitaftercaption-5.html22
-rw-r--r--layout/reftests/pagination/table-caption-splitaftercaption-6-ref.html28
-rw-r--r--layout/reftests/pagination/table-caption-splitaftercaption-6.html22
-rw-r--r--layout/reftests/pagination/table-caption-splitaftercaption-7-ref.html28
-rw-r--r--layout/reftests/pagination/table-caption-splitaftercaption-7.html22
-rw-r--r--layout/reftests/pagination/table-caption-splitaftercaption-8.html24
-rw-r--r--layout/reftests/pagination/table-caption-splitaftercaption-9.html25
-rw-r--r--layout/reftests/pagination/table-caption-splitrowgroup-1-ref.html24
-rw-r--r--layout/reftests/pagination/table-caption-splitrowgroup-1.html20
-rw-r--r--layout/reftests/pagination/table-page-break-after-always-1.html21
-rw-r--r--layout/reftests/pagination/table-page-break-after-left-1.html21
-rw-r--r--layout/reftests/pagination/table-page-break-after-right-1.html21
-rw-r--r--layout/reftests/pagination/table-page-break-before-always-1-ref.html21
-rw-r--r--layout/reftests/pagination/table-page-break-before-always-1.html21
-rw-r--r--layout/reftests/pagination/table-page-break-before-auto-1-ref.html21
-rw-r--r--layout/reftests/pagination/table-page-break-before-auto-1.html21
-rw-r--r--layout/reftests/pagination/table-page-break-before-auto-2-ref.html22
-rw-r--r--layout/reftests/pagination/table-page-break-before-auto-2.html24
-rw-r--r--layout/reftests/pagination/table-page-break-before-auto-3-ref.html24
-rw-r--r--layout/reftests/pagination/table-page-break-before-avoid-1.html22
-rw-r--r--layout/reftests/pagination/table-page-break-before-left-1.html21
-rw-r--r--layout/reftests/pagination/table-page-break-before-right-1.html21
-rw-r--r--layout/reftests/pagination/table-tfoot-thead-1-ref.html27
-rw-r--r--layout/reftests/pagination/table-tfoot-thead-1.html25
-rw-r--r--layout/reftests/pagination/table_internal_pagebreak-1.html21
115 files changed, 4272 insertions, 0 deletions
diff --git a/layout/reftests/pagination/abspos-breaking-000.ref.xhtml b/layout/reftests/pagination/abspos-breaking-000.ref.xhtml
new file mode 100644
index 000000000..ec530e475
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-000.ref.xhtml
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" class="reftest-print">
+ <head>
+ <title>AbsPos Pagination</title>
+ <style type="text/css">
+ html, body, pre { margin: 0; padding: 0; }
+ pre {
+ padding-top: 1in;
+ line-height: 1;
+ font-size: 0.25in;
+ }
+ </style>
+ </head>
+ <body>
+ <pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24</pre>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-000.xhtml b/layout/reftests/pagination/abspos-breaking-000.xhtml
new file mode 100644
index 000000000..183752eb2
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-000.xhtml
@@ -0,0 +1,41 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" class="reftest-print">
+ <head>
+ <title>AbsPos Pagination</title>
+ <style type="text/css">
+ html, body, pre { margin: 0; padding: 0; }
+ pre {
+ position: absolute;
+ top: 1in;
+ line-height: 1;
+ font-size: 0.25in;
+ }
+ </style>
+ </head>
+ <body>
+ <pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24</pre>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-001.xhtml b/layout/reftests/pagination/abspos-breaking-001.xhtml
new file mode 100644
index 000000000..d2c6b4219
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-001.xhtml
@@ -0,0 +1,42 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" class="reftest-print">
+ <head>
+ <title>AbsPos Pagination</title>
+ <style type="text/css">
+ html, body, pre { margin: 0; padding: 0; }
+ pre {
+ position: absolute;
+ margin-top: 0.5in;
+ padding-top: 0.5in;
+ line-height: 1;
+ font-size: 0.25in;
+ }
+ </style>
+ </head>
+ <body>
+ <pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24</pre>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-002.xhtml b/layout/reftests/pagination/abspos-breaking-002.xhtml
new file mode 100644
index 000000000..e209dfd02
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-002.xhtml
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" class="reftest-print">
+ <head>
+ <title>AbsPos Pagination</title>
+ <style type="text/css">
+ html, body, pre { margin: 0; padding: 0; }
+ pre {
+ position: absolute;
+ margin-top: 0.3in;
+ padding-top: 0.3in;
+ top: 0.4in;
+ line-height: 1;
+ font-size: 0.25in;
+ }
+ </style>
+ </head>
+ <body>
+ <pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24</pre>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-003-ref.html b/layout/reftests/pagination/abspos-breaking-003-ref.html
new file mode 100644
index 000000000..d014e38c1
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-003-ref.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html class="reftest-print">
+ <head>
+ <title>AbsPos Pagination, with clip:rect()</title>
+ <style type="text/css">
+ html, body, pre { margin: 0; padding: 0; }
+ div {
+ position: absolute;
+ top: 50%;
+ border: 10px solid blue;
+ width: 50px;
+ height: 90%;
+ }
+ #mask1 {
+ border-color: white;
+ background: white;
+ clip:rect(0px, auto, 3px, 0px);
+ }
+ #mask2 {
+ border-color: white;
+ background: white;
+ clip:rect(0px, 5px, auto, 0px);
+ }
+ </style>
+ </head>
+ <body>
+ <div></div><div id="mask1"></div><div id="mask2"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-003.html b/layout/reftests/pagination/abspos-breaking-003.html
new file mode 100644
index 000000000..396d24db3
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-003.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html class="reftest-print">
+ <head>
+ <title>AbsPos Pagination, with clip:rect()</title>
+ <style type="text/css">
+ html, body, pre { margin: 0; padding: 0; }
+ pre {
+ position: absolute;
+ top: 50%;
+ border: 10px solid blue;
+ width: 50px;
+ height: 90%;
+ clip:rect(3px, auto, auto, 5px);
+ }
+ </style>
+ </head>
+ <body>
+ <pre></pre>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-004-ref.html b/layout/reftests/pagination/abspos-breaking-004-ref.html
new file mode 100644
index 000000000..eaef91c67
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-004-ref.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html class="reftest-print">
+ <head>
+ <title>AbsPos Pagination, with clip:rect()</title>
+ <style type="text/css">
+ html, body { margin: 0; padding: 0; }
+ div {
+ position: absolute;
+ top: 120px;
+ border: 10px solid blue;
+ width: 50px;
+ height: 300px;
+ }
+ #mask1 {
+ border-color: white;
+ background: white;
+ clip:rect(0px, auto, 200px, 0px);
+ }
+ #mask2 {
+ border-color: white;
+ background: white;
+ clip:rect(200px, 5px, auto, 0px);
+ }
+ </style>
+ </head>
+ <body>
+ <div></div><div id="mask1"></div><div id="mask2"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-004.html b/layout/reftests/pagination/abspos-breaking-004.html
new file mode 100644
index 000000000..6acca7a62
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-004.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html class="reftest-print">
+ <head>
+ <title>AbsPos Pagination, with clip:rect()</title>
+ <style type="text/css">
+ html, body { margin: 0; padding: 0; }
+ div {
+ position: absolute;
+ top: 120px;
+ border: 10px solid blue;
+ width: 50px;
+ height: 300px;
+ clip:rect(200px, auto, auto, 5px);
+ }
+ </style>
+ </head>
+ <body>
+ <div></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-005-ref.html b/layout/reftests/pagination/abspos-breaking-005-ref.html
new file mode 100644
index 000000000..965648efe
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-005-ref.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html class="reftest-print">
+ <head>
+ <title>AbsPos Pagination, with clip:rect()</title>
+ <style type="text/css">
+ html, body, pre { margin: 0; padding: 0; }
+ div {
+ position: absolute;
+ top: 100px;
+ border: 10px solid blue;
+ width: 50px;
+ height: 300px;
+ }
+ #mask1 {
+ border-color: white;
+ background: white;
+ clip:rect(0px, auto, 200px, 0px);
+ }
+ #mask2 {
+ border-color: white;
+ background: white;
+ clip:rect(200px, 5px, auto, 0px);
+ }
+ #mask3 {
+ border-color: white;
+ background: white;
+ clip:rect(250px, auto, auto, 0px);
+ }
+ #mask4 {
+ border-color: white;
+ background: white;
+ clip:rect(200px, auto, auto, 65px);
+ }
+ </style>
+ </head>
+ <body>
+ <div></div><div id="mask1"></div><div id="mask2"></div><div id="mask3"></div><div id="mask4"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-005.html b/layout/reftests/pagination/abspos-breaking-005.html
new file mode 100644
index 000000000..38511214f
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-005.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html class="reftest-print">
+ <head>
+ <title>AbsPos Pagination, with clip:rect()</title>
+ <style type="text/css">
+ html, body, pre { margin: 0; padding: 0; }
+ pre {
+ position: absolute;
+ top: 100px;
+ border: 10px solid blue;
+ width: 50px;
+ height: 300px;
+ clip:rect(200px, 65px, 250px, 5px);
+ }
+ </style>
+ </head>
+ <body>
+ <pre></pre>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-006-ref.html b/layout/reftests/pagination/abspos-breaking-006-ref.html
new file mode 100644
index 000000000..84a47e1a2
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-006-ref.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html class="reftest-print">
+ <head>
+ <title>AbsPos Pagination, with clip:rect()</title>
+ <style type="text/css">
+ html, body, pre { margin: 0; padding: 0; }
+ div {
+ position: absolute;
+ top: 50%;
+ border: 10px solid blue;
+ width: 50px;
+ height: 300px;
+ clip:rect(5px, auto, 50px, 5px);
+ }
+ #mask1 {
+ border-color: white;
+ background: white;
+ clip:rect(0px, auto, 5px, 0px);
+ }
+ #mask2 {
+ border-color: white;
+ background: white;
+ clip:rect(50px, auto, auto, 0px);
+ }
+ #mask2 {
+ border-color: white;
+ background: white;
+ clip:rect(0px, 5px, auto, 0px);
+ }
+ </style>
+ </head>
+ <body>
+ <div></div><div id="mask1"></div><div id="mask2"></div><div id="mask3"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-006.html b/layout/reftests/pagination/abspos-breaking-006.html
new file mode 100644
index 000000000..63c74f14d
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-006.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html class="reftest-print">
+ <head>
+ <title>AbsPos Pagination, with clip:rect()</title>
+ <style type="text/css">
+ html, body, pre { margin: 0; padding: 0; }
+ pre {
+ position: absolute;
+ top: 50%;
+ border: 10px solid blue;
+ width: 50px;
+ height: 300px;
+ clip:rect(5px, auto, 50px, 5px);
+ }
+ </style>
+ </head>
+ <body>
+ <pre></pre>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-007-ref.html b/layout/reftests/pagination/abspos-breaking-007-ref.html
new file mode 100644
index 000000000..8a730eccf
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-007-ref.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html class="reftest-print">
+ <head>
+ <title>AbsPos Pagination, with clip:rect() and box-decoration-break:clone</title>
+ <style type="text/css">
+ html, body, pre { margin: 0; padding: 0; }
+ #test {
+ box-decoration-break:clone;
+ }
+ div {
+ position: absolute;
+ top: 120px;
+ border: 10px solid blue;
+ width: 50px;
+ height: 160px;
+ }
+ #mask1 {
+ border-color: white;
+ background: white;
+ clip:rect(0px, auto, 3px, 0px);
+ }
+ #mask2 {
+ border-color: white;
+ background: white;
+ clip:rect(0px, 5px, auto, 0px);
+ }
+ #mask3 {
+ border-color: white;
+ background: white;
+ height: 180px;
+ clip:rect(0px, 5px, auto, 0px);
+ }
+ #mask4 {
+ border-color: white;
+ background: white;
+ height: 180px;
+ clip:rect(0px, 5px, auto, 0px);
+ }
+ #mask5 {
+ box-decoration-break:clone;
+ border-color: white;
+ height: 180px;
+ clip:rect(0, auto, 3px, 0px);
+ }
+ </style>
+ </head>
+ <body>
+ <div id="test"></div><div id="mask1"></div><div id="mask2"></div><div id="mask3"></div><div id="mask4"></div><div id="mask5"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-007.html b/layout/reftests/pagination/abspos-breaking-007.html
new file mode 100644
index 000000000..d28271747
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-007.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html class="reftest-print">
+ <head>
+ <title>AbsPos Pagination, with clip:rect() and box-decoration-break:clone</title>
+ <style type="text/css">
+ html, body, pre { margin: 0; padding: 0; }
+ pre {
+ box-decoration-break: clone;
+ position: absolute;
+ top: 120px;
+ border: 10px solid blue;
+ width: 50px;
+ height: 160px;
+ clip:rect(3px, auto, auto, 5px);
+ }
+ </style>
+ </head>
+ <body>
+ <pre></pre>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-008-ref.html b/layout/reftests/pagination/abspos-breaking-008-ref.html
new file mode 100644
index 000000000..ef3638067
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-008-ref.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html class="reftest-print">
+ <head>
+ <title>AbsPos Pagination, with clip:rect() and box-decoration-break:clone</title>
+ <style type="text/css">
+ html, body { margin: 0; padding: 0; }
+ div {
+ position: absolute;
+ top: 120px;
+ border: 10px solid blue;
+ width: 50px;
+ height: 220px;
+ }
+ #mask1 {
+ z-index:1;
+ border-color: white;
+ background: white;
+ clip:rect(0px, auto, 202px, 0px);
+ }
+ #mask2 {
+ border-color: white;
+ background: white;
+ clip:rect(0px, 5px, auto, 0px);
+ }
+ #mask3 {
+ border-color: white;
+ background: white;
+ clip:rect(237px, auto, auto, 0px);
+ }
+ </style>
+ </head>
+ <body>
+ <div></div><div id="mask1"></div><div id="mask2"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-008.html b/layout/reftests/pagination/abspos-breaking-008.html
new file mode 100644
index 000000000..a84d48a9a
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-008.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html class="reftest-print">
+ <head>
+ <title>AbsPos Pagination, with clip:rect() and box-decoration-break:clone</title>
+ <style type="text/css">
+ html, body { margin: 0; padding: 0; }
+ div {
+ box-decoration-break: clone;
+ position: absolute;
+ top: 120px;
+ border: 10px solid blue;
+ width: 50px;
+ height: 200px;
+ clip:rect(130px, auto, auto, 5px);
+ }
+ </style>
+ </head>
+ <body>
+ <div></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-009-ref.html b/layout/reftests/pagination/abspos-breaking-009-ref.html
new file mode 100644
index 000000000..98ed6500e
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-009-ref.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html class="reftest-print">
+ <head>
+ <title>AbsPos Pagination, with clip:rect() and box-decoration-break:clone</title>
+ <style type="text/css">
+ html, body, pre { margin: 0; padding: 0; }
+ div {
+ position: absolute;
+ top: 100px;
+ border: 10px solid blue;
+ width: 50px;
+ height: 220px;
+ }
+ #mask1 {
+ border-color: white;
+ background: white;
+ clip:rect(0px, auto, 212px, 0px);
+ }
+ #mask2 {
+ border-color: white;
+ background: white;
+ clip:rect(200px, 5px, auto, 0px);
+ }
+ #mask3 {
+ border-color: white;
+ background: white;
+ clip:rect(222px, auto, auto, 0px);
+ }
+ #mask4 {
+ border-color: white;
+ background: white;
+ clip:rect(200px, auto, auto, 65px);
+ }
+ </style>
+ </head>
+ <body>
+ <div></div><div id="mask1"></div><div id="mask2"></div><div id="mask3"></div><div id="mask4"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-009.html b/layout/reftests/pagination/abspos-breaking-009.html
new file mode 100644
index 000000000..082216f62
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-009.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html class="reftest-print">
+ <head>
+ <title>AbsPos Pagination, with clip:rect() and box-decoration-break:clone</title>
+ <style type="text/css">
+ html, body, pre { margin: 0; padding: 0; }
+ pre {
+ box-decoration-break: clone;
+ position: absolute;
+ top: 100px;
+ border: 10px solid blue;
+ width: 50px;
+ height: 200px;
+ clip:rect(120px, 65px, 130px, 5px);
+ }
+ </style>
+ </head>
+ <body>
+ <pre></pre>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-010-ref.html b/layout/reftests/pagination/abspos-breaking-010-ref.html
new file mode 100644
index 000000000..830fa7fcc
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-010-ref.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html class="reftest-print">
+ <head>
+ <title>AbsPos Pagination, with clip:rect() and box-decoration-break:clone</title>
+ <style type="text/css">
+ html, body, pre { margin: 0; padding: 0; }
+ .b {
+ page-break-before: always;
+ }
+ div {
+ position: absolute;
+ top: 50%;
+ border: 10px solid blue;
+ width: 50px;
+ height: 100px;
+ clip:rect(5px, auto, 50px, 5px);
+ }
+ x {
+ display: block;
+ position: relative;
+ }
+ x div { top:0; }
+ </style>
+ </head>
+ <body>
+ <div class="test"></div>
+ <x class="b"><div class="test"></div>&nbsp;</x>
+ <x class="b"><div class="test"></div>&nbsp;</x>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-010.html b/layout/reftests/pagination/abspos-breaking-010.html
new file mode 100644
index 000000000..586d94df4
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-010.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html class="reftest-print">
+ <head>
+ <title>AbsPos Pagination, with clip:rect() and box-decoration-break:clone</title>
+ <style type="text/css">
+ html, body, pre { margin: 0; padding: 0; }
+ pre {
+ box-decoration-break: clone;
+ position: absolute;
+ top: 50%;
+ border: 10px solid blue;
+ width: 50px;
+ height: 300px;
+ clip:rect(5px, auto, 50px, 5px);
+ }
+ </style>
+ </head>
+ <body>
+ <pre></pre>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-011-ref.html b/layout/reftests/pagination/abspos-breaking-011-ref.html
new file mode 100644
index 000000000..2f03ab1c4
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-011-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-print">
+<body style="margin:0">
+<div style="position:absolute; top:0; left:0; width:100px; height:100px; background:black;">Hi</div>
+<div style="height:1in;"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-breaking-011.html b/layout/reftests/pagination/abspos-breaking-011.html
new file mode 100644
index 000000000..dfe9bba28
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-011.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-print">
+<body style="margin:0">
+<div style="height:1in;"></div>
+<div style="position:absolute; clip:rect(-1in 200px 100px 0px);">
+ <div style="position:absolute; top:-1in; left:0; width:100px; height:100px; background:black;">Hi</div>
+</div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/abspos-overflow-01-cols.ref.xhtml b/layout/reftests/pagination/abspos-overflow-01-cols.ref.xhtml
new file mode 100644
index 000000000..1bb252ec0
--- /dev/null
+++ b/layout/reftests/pagination/abspos-overflow-01-cols.ref.xhtml
@@ -0,0 +1,73 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Multi-column Layout: AbsPos Pagination (Interlaced)</title>
+ <link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact"/>
+ <link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#the-height-property"/>
+ <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#length-units"/>
+ <style type="text/css">
+ html {
+ background: white;
+ }
+
+ .following {
+ margin: 0;
+ font-size: 10pt;
+ line-height: 10pt;
+ font-family: sans-serif;
+ text-align: center;
+ width: 100pt;
+ }
+ #colset {
+ width: 300pt;
+ height: 2in;
+ border: silver 2pt;
+ border-style: none solid;
+ }
+ #redline {
+ width: 303pt;
+ border-top: 4px solid lime;
+ margin-top: -1in;
+ position: relative;
+ z-index: -1;
+ }
+ </style>
+ </head>
+ <body>
+ <div id="colset">
+ <div>
+ <div class="ocontainer">
+ <div class="overflow o1"></div>
+ </div>
+ <div class="container">
+ <div class="overflow a1"></div>
+ <div class="overflow a2"></div>
+ <div class="overflow a3"></div>
+ <div class="overflow a4"></div>
+ </div>
+ <div class="container">
+ <div class="overflow b1"></div>
+ <div class="overflow b2"></div>
+ <div class="overflow b3"></div>
+ <div class="overflow b4">
+ <div class="overflow child1"></div>
+ <div class="overflow child2"></div>
+ </div>
+ <div class="overflow b5"></div>
+ <div class="overflow b6"></div>
+ </div>
+ </div>
+ <p class="following f1">
+ There must be a single green line and no red.
+ </p>
+ <div class="container">
+ <div class="overflow c1"></div>
+ <div class="overflow c2"></div>
+ <div class="overflow c3"></div>
+ <div class="overflow c4"></div>
+ </div>
+ <div class="following f2"></div>
+ </div>
+ <div id="redline"></div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/abspos-overflow-01-cols.xhtml b/layout/reftests/pagination/abspos-overflow-01-cols.xhtml
new file mode 100644
index 000000000..71eb6e68c
--- /dev/null
+++ b/layout/reftests/pagination/abspos-overflow-01-cols.xhtml
@@ -0,0 +1,189 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Multi-column Layout: AbsPos Pagination (Interlaced)</title>
+ <link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact"/>
+ <link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#the-height-property"/>
+ <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#length-units"/>
+ <style type="text/css">
+ html {
+ background: white;
+ }
+
+ .container {
+ background: red;
+ height: 24pt;
+ position: relative;
+ }
+ .overflow {
+ width: 10pt;
+ border-bottom: lime 4px solid;
+ top: 0;
+ }
+ .following {
+ font-size: 10pt;
+ line-height: 10pt;
+ font-family: sans-serif;
+ text-align: center;
+ position: relative;
+ background: white;
+ width: 100pt;
+ }
+ #colset {
+ width: 300pt;
+ height: 2in;
+ -moz-column-count: 3;
+ -moz-column-gap: 0;
+ -moz-column-fill: auto;
+ border: silver 2pt;
+ border-style: none solid;
+ }
+ #redline {
+ width: 303pt;
+ border-top: 4px solid red;
+ margin-top: -1in;
+ position: relative;
+ z-index: -1;
+ }
+
+ .ocontainer {
+ height: 0;
+ }
+ .o1 { /* 3rd col */
+ height: 5in;
+ }
+ .a1 { /* 1st col */
+ position: absolute;
+ height: 1in;
+ width: 33pt;
+ }
+ .a2 { /* 2nd col */
+ position: absolute;
+ height: 3in;
+ width: 25pt;
+ margin-left: 25pt;
+ }
+ .a3 { /* 3rd col */
+ position: absolute;
+ height: 5in;
+ margin-left: 10pt;
+ }
+ .a4 { /* 2nd col */
+ width: 25pt;
+ height: 3in;
+ }
+
+ .b1 { /* 3rd col */
+ position: absolute;
+ height: 336pt;
+ margin-left: 20pt;
+ }
+ .b2 { /* 2nd col */
+ position: absolute;
+ height: 192pt;
+ width: 25pt;
+ margin-left: 50pt;
+ }
+ .b3 { /* 3rd col */
+ position: absolute;
+ height: 336pt;
+ margin-left: 30pt;
+ }
+ .b4 { /* 1st col, but no border */
+ position: absolute;
+ height: 48pt;
+ border-bottom: none;
+ }
+ .b4 .child1 { /* 1st col */
+ position: absolute;
+ height: 100%;
+ width: 33pt;
+ margin-left: 33pt;
+ }
+ .b4 .child2 { /* 3rd col */
+ height: 336pt;
+ margin-left: 40pt;
+
+ }
+ .b5 { /* 1st col */
+ position: absolute;
+ height: 48pt;
+ width: 34pt;
+ margin-left: 66pt;
+ }
+ .b6 { /* 3rd col */
+ height: 336pt;
+ margin-left: 50pt;
+ }
+
+ .c1 { /* 3rd col */
+ position: absolute;
+ height: 3in;
+ margin-left: 60pt;
+ }
+ .c2 { /* 2nd col */
+ position: absolute;
+ height: 1in;
+ width: 25pt;
+ margin-left: 75pt;
+ }
+ .c3 { /* 3rd col */
+ position: absolute;
+ height: 3in;
+ margin-left: 70pt;
+ }
+ .c4 { /* 3rd col */
+ height: 3in;
+ width: 20pt;
+ margin-left: 80pt;
+ }
+
+ .f1 {
+ margin-top: -48pt;
+ height: 48pt;
+ margin-bottom: 96pt;
+ }
+ .f2 {
+ margin-top: -24pt;
+ height: 24pt;
+ }
+ </style>
+ </head>
+ <body>
+ <div id="colset">
+ <div>
+ <div class="ocontainer">
+ <div class="overflow o1"></div>
+ </div>
+ <div class="container">
+ <div class="overflow a1"></div>
+ <div class="overflow a2"></div>
+ <div class="overflow a3"></div>
+ <div class="overflow a4"></div>
+ </div>
+ <div class="container">
+ <div class="overflow b1"></div>
+ <div class="overflow b2"></div>
+ <div class="overflow b3"></div>
+ <div class="overflow b4">
+ <div class="overflow child1"></div>
+ <div class="overflow child2"></div>
+ </div>
+ <div class="overflow b5"></div>
+ <div class="overflow b6"></div>
+ </div>
+ </div>
+ <p class="following f1">
+ There must be a single green line and no red.
+ </p>
+ <div class="container">
+ <div class="overflow c1"></div>
+ <div class="overflow c2"></div>
+ <div class="overflow c3"></div>
+ <div class="overflow c4"></div>
+ </div>
+ <div class="following f2"></div>
+ </div>
+ <div id="redline"></div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/abspos-overflow-01.ref.xhtml b/layout/reftests/pagination/abspos-overflow-01.ref.xhtml
new file mode 100644
index 000000000..cee3ca767
--- /dev/null
+++ b/layout/reftests/pagination/abspos-overflow-01.ref.xhtml
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" class="reftest-print">
+ <head>
+ <title>Multi-column Layout: AbsPos Pagination (Interlaced)</title>
+ <link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact"/>
+ <link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#the-height-property"/>
+ <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#length-units"/>
+ <style type="text/css">
+ /* If the reftest print size change, this needs to change too. */
+ html, body, p {
+ margin: 0;
+ padding: 0;
+ }
+
+ .box {
+ font-size: 10pt;
+ line-height: 10pt;
+ font-family: sans-serif;
+ text-align: center;
+ position: relative;
+ border-bottom: lime 4px solid;
+ margin-top: -4px;
+ height: 2in;
+ }
+ #pageset {
+ width: 100pt;
+ border: silver 2pt;
+ border-style: none solid;
+ height: 6in;
+ }
+
+ .n1 {
+ margin: 0;
+ height: 1in;
+ }
+ </style>
+ </head>
+ <body>
+ <div id="pageset">
+ <p class="box n1">
+ There must be 3 pages, a single green line on each page, and no red.
+ </p>
+ <p class="box"></p>
+ <p class="box"></p>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/abspos-overflow-01.xhtml b/layout/reftests/pagination/abspos-overflow-01.xhtml
new file mode 100644
index 000000000..ba854ec76
--- /dev/null
+++ b/layout/reftests/pagination/abspos-overflow-01.xhtml
@@ -0,0 +1,201 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" class="reftest-print">
+ <head>
+ <title>Multi-column Layout: AbsPos Pagination (Interlaced)</title>
+ <link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact"/>
+ <link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#the-height-property"/>
+ <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#length-units"/>
+ <style type="text/css">
+ /* If the reftest print size change, this needs to change too. */
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+
+ .container {
+ background: red;
+ height: 24pt;
+ position: relative;
+ }
+ .overflow {
+ width: 10pt;
+ border-bottom: lime 4px solid;
+ top: 0;
+ }
+ .following {
+ font-size: 10pt;
+ line-height: 10pt;
+ font-family: sans-serif;
+ text-align: center;
+ position: relative;
+ background: white;
+ width: 100pt;
+ }
+ #pageset {
+ width: 100pt;
+ border: silver 2pt;
+ border-style: none solid;
+ height: 6in;
+ }
+ .redline {
+ float: left;
+ margin-right: -103pt;
+ width: 103pt;
+ border-bottom: 8px solid red;
+ position: relative;
+ z-index: -1;
+ }
+ .r1 {
+ height: 50%;
+ }
+ .r2 {
+ height: 150%;
+ }
+ .r3 {
+ height: 250%;
+ }
+
+ .ocontainer {
+ height: 0;
+ }
+ .o1 { /* 3rd page */
+ height: 5in;
+ }
+ .a1 { /* 1st page */
+ position: absolute;
+ height: 1in;
+ width: 33pt;
+ }
+ .a2 { /* 2nd page */
+ position: absolute;
+ height: 3in;
+ width: 25pt;
+ margin-left: 25pt;
+ }
+ .a3 { /* 3rd page */
+ position: absolute;
+ height: 5in;
+ margin-left: 10pt;
+ }
+ .a4 { /* 2nd page */
+ width: 25pt;
+ height: 3in;
+ }
+
+ .b1 { /* 3rd page */
+ position: absolute;
+ height: 336pt;
+ margin-left: 20pt;
+ }
+ .b2 { /* 2nd page */
+ position: absolute;
+ height: 192pt;
+ width: 25pt;
+ margin-left: 50pt;
+ }
+ .b3 { /* 3rd page */
+ position: absolute;
+ height: 336pt;
+ margin-left: 30pt;
+ }
+ .b4 { /* 1st col, but no border */
+ position: absolute;
+ height: 48pt;
+ border-bottom: none;
+ }
+ .b4 .child1 { /* 1st page */
+ position: absolute;
+ height: 100%;
+ width: 33pt;
+ margin-left: 33pt;
+ }
+ .b4 .child2 { /* 3rd page */
+ height: 336pt;
+ margin-left: 40pt;
+
+ }
+ .b5 { /* 1st page */
+ position: absolute;
+ height: 48pt;
+ width: 34pt;
+ margin-left: 66pt;
+ }
+ .b6 { /* 3rd page */
+ height: 336pt;
+ margin-left: 50pt;
+ }
+
+ .c1 { /* 3rd page */
+ position: absolute;
+ height: 3in;
+ margin-left: 60pt;
+ }
+ .c2 { /* 2nd page */
+ position: absolute;
+ height: 1in;
+ width: 25pt;
+ margin-left: 75pt;
+ }
+ .c3 { /* 3rd page */
+ position: absolute;
+ height: 3in;
+ margin-left: 70pt;
+ }
+ .c4 { /* 3rd page */
+ height: 3in;
+ width: 20pt;
+ margin-left: 80pt;
+ }
+
+ .f1 {
+ margin-top: -48pt;
+ height: 48pt;
+ margin-bottom: 96pt;
+ }
+ .f2 {
+ margin-top: -24pt;
+ height: 24pt;
+ }
+ </style>
+ </head>
+ <body>
+ <div class="redline r1"></div>
+ <div class="redline r2"></div>
+ <div class="redline r3"></div>
+
+ <div id="pageset">
+ <div>
+ <div class="ocontainer">
+ <div class="overflow o1"></div>
+ </div>
+ <div class="container">
+ <div class="overflow a1"></div>
+ <div class="overflow a2"></div>
+ <div class="overflow a3"></div>
+ <div class="overflow a4"></div>
+ </div>
+ <div class="container">
+ <div class="overflow b1"></div>
+ <div class="overflow b2"></div>
+ <div class="overflow b3"></div>
+ <div class="overflow b4">
+ <div class="overflow child1"></div>
+ <div class="overflow child2"></div>
+ </div>
+ <div class="overflow b5"></div>
+ <div class="overflow b6"></div>
+ </div>
+ </div>
+ <p class="following f1">
+ There must be 3 pages, a single green line on each page, and no red.
+ </p>
+ <div class="container">
+ <div class="overflow c1"></div>
+ <div class="overflow c2"></div>
+ <div class="overflow c3"></div>
+ <div class="overflow c4"></div>
+ </div>
+ <div class="following f2"></div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/blank.html b/layout/reftests/pagination/blank.html
new file mode 100644
index 000000000..180da60ea
--- /dev/null
+++ b/layout/reftests/pagination/blank.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html class="reftest-print"><style>html{font-size:12pt}</style>
diff --git a/layout/reftests/pagination/border-breaking-000-cols.ref.xhtml b/layout/reftests/pagination/border-breaking-000-cols.ref.xhtml
new file mode 100644
index 000000000..3ef0e2b0c
--- /dev/null
+++ b/layout/reftests/pagination/border-breaking-000-cols.ref.xhtml
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Pagination with Borders</title>
+ <style type="text/css">
+ div {
+ height: 200px;
+ width: 300px;
+ border: solid silver;
+ border-style: none solid;
+ background: green;
+ }
+ </style>
+ </head>
+ <body>
+ <div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/border-breaking-000-cols.xhtml b/layout/reftests/pagination/border-breaking-000-cols.xhtml
new file mode 100644
index 000000000..91283dc16
--- /dev/null
+++ b/layout/reftests/pagination/border-breaking-000-cols.xhtml
@@ -0,0 +1,42 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Pagination with Borders</title>
+ <style type="text/css">
+ .container {
+ padding-bottom: 10px;
+ border-bottom: 10px solid transparent;
+ }
+
+ .box {
+ background: green;
+ }
+ p {
+ font-size: 150px;
+ line-height: 1;
+ margin: 0;
+ }
+ p + p {
+ height: 200px;
+ }
+
+ body {
+ height: 200px;
+ width: 300px;
+ -moz-column-width: 150px;
+ -moz-column-gap: 0;
+ -moz-column-fill: auto;
+ border: solid silver;
+ border-style: none solid;
+ }
+ </style>
+ </head>
+ <body>
+ <div class="container">
+ <div class="box">
+ <p>&nbsp;</p>
+ <p>&nbsp;</p>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/border-breaking-001-cols.ref.xhtml b/layout/reftests/pagination/border-breaking-001-cols.ref.xhtml
new file mode 100644
index 000000000..37b035e3d
--- /dev/null
+++ b/layout/reftests/pagination/border-breaking-001-cols.ref.xhtml
@@ -0,0 +1,38 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Pagination with Borders</title>
+ <style type="text/css">
+ .container {
+ height: 500px;
+ background: lime;
+ border: 10px green;
+ border-style: none solid;
+ }
+ .long {
+ background: aqua;
+ width: 40px;
+ height: 500px;
+ }
+
+ .body {
+ height: 200px;
+ width: 300px;
+ -moz-column-width: 100px;
+ -moz-column-gap: 0;
+ -moz-column-fill: auto;
+ border: solid silver;
+ border-style: none solid;
+ background: yellow;
+ }
+ </style>
+ </head>
+ <body>
+ <div class="body">
+ <div class="container">
+ <div class="long">
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/border-breaking-001-cols.xhtml b/layout/reftests/pagination/border-breaking-001-cols.xhtml
new file mode 100644
index 000000000..5eeee0665
--- /dev/null
+++ b/layout/reftests/pagination/border-breaking-001-cols.xhtml
@@ -0,0 +1,74 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Pagination with Borders</title>
+ <style type="text/css">
+ .container {
+ height: 0;
+ padding-bottom: 10px;
+ border-bottom: 10px solid transparent;
+ margin-bottom: -20px;
+ }
+ .overflow {
+ position: relative;
+ background: aqua;
+ height: 500px;
+ width: 40px;
+ border: 10px solid red;
+ border-style: none solid;
+ }
+ body > .container .overflow {
+ border-right: none;
+ }
+ .abs {
+ position: relative;
+ }
+ .abs .container {
+ position: absolute;
+ width: 100%;
+ margin-left: 50px;
+ }
+ .abs .overflow {
+ background: lime;
+ border-left: none;
+ }
+ .long {
+ position: relative;
+ height: 500px;
+ border: solid 10px green;
+ border-style: none solid;
+ }
+
+ .block {
+ background: yellow;
+ height: 100px;
+ }
+
+ body {
+ height: 200px;
+ width: 300px;
+ -moz-column-width: 100px;
+ -moz-column-gap: 0;
+ -moz-column-fill: auto;
+ border: solid silver;
+ border-style: none solid;
+ }
+ </style>
+ </head>
+ <body>
+ <div class="abs">
+ <div class="container">
+ <div class="overflow">
+ </div>
+ </div>
+ </div>
+ <div class="container">
+ <div class="overflow">
+ </div>
+ </div>
+ <div class="long">
+ </div>
+ <div class="block">
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/border-breaking-002-cols.ref.xhtml b/layout/reftests/pagination/border-breaking-002-cols.ref.xhtml
new file mode 100644
index 000000000..2c1c1d286
--- /dev/null
+++ b/layout/reftests/pagination/border-breaking-002-cols.ref.xhtml
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Pagination with Borders</title>
+ <style type="text/css">
+ .container1 {
+ height: 190px;
+ border-top: 10px solid blue;
+ }
+ .container2 {
+ border-top: solid 10px aqua;
+ }
+
+ .multicol {
+ height: 200px;
+ width: 300px;
+ -moz-column-width: 150px;
+ -moz-column-gap: 0;
+ -moz-column-fill: auto;
+ border: solid silver;
+ }
+ </style>
+ </head>
+ <body>
+ There must be a continuous 10px line at the top
+ of the gray box, the left half blue and the right
+ half aqua.
+ <div class="multicol">
+ <div class="container1">
+ </div>
+ <div class="container2">
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/border-breaking-002-cols.xhtml b/layout/reftests/pagination/border-breaking-002-cols.xhtml
new file mode 100644
index 000000000..009070222
--- /dev/null
+++ b/layout/reftests/pagination/border-breaking-002-cols.xhtml
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Pagination with Borders</title>
+ <style type="text/css">
+ .container {
+ height: 0;
+ border-bottom: 10px solid blue;
+ }
+ .overflow {
+ height: 195px;
+ border-bottom: solid 10px aqua;
+ }
+
+ .multicol {
+ height: 200px;
+ width: 300px;
+ -moz-column-width: 150px;
+ -moz-column-gap: 0;
+ -moz-column-fill: auto;
+ border: solid silver;
+ }
+ </style>
+ </head>
+ <body>
+ There must be a continuous 10px line at the top
+ of the gray box, the left half blue and the right
+ half aqua.
+ <div class="multicol">
+ <div class="container">
+ <div class="overflow">
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/border-breaking-003-cols.ref.xhtml b/layout/reftests/pagination/border-breaking-003-cols.ref.xhtml
new file mode 100644
index 000000000..408d13c74
--- /dev/null
+++ b/layout/reftests/pagination/border-breaking-003-cols.ref.xhtml
@@ -0,0 +1,31 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Pagination with Borders</title>
+ <style type="text/css">
+ .container1 {
+ border-top: 10px solid blue;
+ }
+ .container2 {
+ border-top: solid 10px aqua;
+ }
+
+ .multicol {
+ height: 200px;
+ width: 300px;
+ border: solid silver;
+ }
+ </style>
+ </head>
+ <body>
+ There must be two continuous 10px lines at the top
+ of the gray box, the top one blue and the bottom one
+ aqua.
+ <div class="multicol">
+ <div class="container1">
+ </div>
+ <div class="container2">
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/border-breaking-003-cols.xhtml b/layout/reftests/pagination/border-breaking-003-cols.xhtml
new file mode 100644
index 000000000..1fbb7ff28
--- /dev/null
+++ b/layout/reftests/pagination/border-breaking-003-cols.xhtml
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Pagination with Borders</title>
+ <style type="text/css">
+ .container {
+ border-bottom: 10px solid aqua;
+ }
+ .overflow {
+ height: 175px;
+ border-bottom: solid 10px blue;
+ }
+ .rainbow {
+ border-top: 10px solid blue;
+ border-bottom: 10px solid aqua;
+ }
+
+ .multicol {
+ height: 200px;
+ width: 300px;
+ -moz-column-width: 150px;
+ -moz-column-gap: 0;
+ -moz-column-fill: auto;
+ border: solid silver;
+ }
+ </style>
+ </head>
+ <body>
+ There must be two continuous 10px lines at the top
+ of the gray box, the top one blue and the bottom one
+ aqua.
+ <div class="multicol">
+ <div class="rainbow"></div>
+ <div class="container">
+ <div class="overflow">
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/border-breaking-004-cols.xhtml b/layout/reftests/pagination/border-breaking-004-cols.xhtml
new file mode 100644
index 000000000..f00002448
--- /dev/null
+++ b/layout/reftests/pagination/border-breaking-004-cols.xhtml
@@ -0,0 +1,29 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Pagination with Borders</title>
+ <style type="text/css">
+ .container {
+ border-bottom: 10px solid aqua;
+ }
+ .overflow {
+ height: 185px;
+ border-top: solid 10px blue;
+ }
+
+ .multicol {
+ height: 200px;
+ width: 300px;
+ -moz-column-width: 150px;
+ -moz-column-gap: 0;
+ border: solid silver;
+ }
+ </style>
+ </head>
+ <body>
+ There must be a continuous 10px line at the top
+ of the gray box, the left half blue and the right
+ half aqua.
+ <div class="multicol"><div class="container"><div class="overflow"></div></div></div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/column-balancing-break-inside-avoid-2-ref.html b/layout/reftests/pagination/column-balancing-break-inside-avoid-2-ref.html
new file mode 100644
index 000000000..a71563c0a
--- /dev/null
+++ b/layout/reftests/pagination/column-balancing-break-inside-avoid-2-ref.html
@@ -0,0 +1,48 @@
+<html class="reftest-wait">
+<head>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=685012">
+ <link rel="help" href="http://www.w3.org/TR/CSS21/page.html#propdef-page-break-inside">
+ <meta name="flags" content="paged">
+ <meta charset="utf-8">
+ <title>Balancing Overflow, page-break-inside:avoid</title>
+<style>
+/* Sets of heights that trigger crash:
+ 100px/50px/51+px
+ 100px/30px/74+px
+ Get only an assert unless you set ".d { position: absolute; }".
+
+ Trigger hang (separate issue, absolute not needed):
+ 10px/10px/9999px
+ 10px/10px/999999px --> "bad height" notreached
+*/
+/* Note: The -moz-column-gap and the backgrounds
+ are just added here for easier visualization */
+#colset { width: 200px;
+ padding: 2px;
+ -moz-column-count: 3;
+ -moz-column-gap: 2px; }
+#a { height: 100px; background: lightblue;}
+#b { height: 50px; background: lightblue;}
+#c { height: 51px; background: orange;}
+</style>
+<script>
+ function boom() {
+ document.getElementById('colset').offsetHeight;
+ document.getElementById('a').style.height = 'auto';
+ document.documentElement.className = ''
+ }
+</script>
+</head>
+<!-- Removing whitespace in body for simpler frame trees -->
+<body onload="boom()"
+ ><div id="colset"
+ ><div
+ ><div id="a"></div
+ ><div id="b"
+ ><div id="c"></div
+ ><div id="d"></div
+ ></div
+ ></div
+ ></div
+></body>
+</html>
diff --git a/layout/reftests/pagination/column-balancing-break-inside-avoid-2.html b/layout/reftests/pagination/column-balancing-break-inside-avoid-2.html
new file mode 100644
index 000000000..3401e0c7f
--- /dev/null
+++ b/layout/reftests/pagination/column-balancing-break-inside-avoid-2.html
@@ -0,0 +1,49 @@
+<html class="reftest-wait">
+<head>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=685012">
+ <link rel="help" href="http://www.w3.org/TR/CSS21/page.html#propdef-page-break-inside">
+ <meta name="flags" content="paged">
+ <meta charset="utf-8">
+ <title>Balancing Overflow, page-break-inside:avoid</title>
+<style>
+/* Sets of heights that trigger crash:
+ 100px/50px/51+px
+ 100px/30px/74+px
+ Get only an assert unless you set ".d { position: absolute; }".
+
+ Trigger hang (separate issue, absolute not needed):
+ 10px/10px/9999px
+ 10px/10px/999999px --> "bad height" notreached
+*/
+/* Note: The -moz-column-gap and the backgrounds
+ are just added here for easier visualization */
+#colset { width: 200px;
+ padding: 2px;
+ -moz-column-count: 3;
+ -moz-column-gap: 2px; }
+#a { height: 100px; background: lightblue;}
+#b { height: 50px; background: lightblue;}
+#c { height: 51px; background: orange;}
+div {page-break-inside:avoid; }
+</style>
+<script>
+ function boom() {
+ document.getElementById('colset').offsetHeight;
+ document.getElementById('a').style.height = 'auto';
+ document.documentElement.className = ''
+ }
+</script>
+</head>
+<!-- Removing whitespace in body for simpler frame trees -->
+<body onload="boom()"
+ ><div id="colset"
+ ><div
+ ><div id="a"></div
+ ><div id="b"
+ ><div id="c"></div
+ ><div id="d"></div
+ ></div
+ ></div
+ ></div
+></body>
+</html>
diff --git a/layout/reftests/pagination/combobox-page-break-inside-ref.html b/layout/reftests/pagination/combobox-page-break-inside-ref.html
new file mode 100644
index 000000000..c8a7733cd
--- /dev/null
+++ b/layout/reftests/pagination/combobox-page-break-inside-ref.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html class="reftest-print">
+<head>
+<meta charset="utf-8">
+<style type="text/css">
+@page { size:5in 3in; margin:0in; }
+div { height: 0in; }
+select { height: 0.5in; display:block; padding:20px; page-break-before:always; }
+</style>
+</head>
+<body>
+ <div></div>
+ <select>
+ <option>Text</option>
+ </select>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/combobox-page-break-inside.html b/layout/reftests/pagination/combobox-page-break-inside.html
new file mode 100644
index 000000000..f573a1c9f
--- /dev/null
+++ b/layout/reftests/pagination/combobox-page-break-inside.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html class="reftest-print">
+<head>
+<meta charset="utf-8">
+<style type="text/css">
+@page { size:5in 3in; margin:0in; }
+div { height: 2.5in; }
+select { height: 0.5in; display:block; padding:20px; page-break-inside:avoid; }
+</style>
+</head>
+<body>
+ <div></div>
+ <select>
+ <option>Text</option>
+ </select>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/content-inserted-000.ref.xhtml b/layout/reftests/pagination/content-inserted-000.ref.xhtml
new file mode 100644
index 000000000..b3037746a
--- /dev/null
+++ b/layout/reftests/pagination/content-inserted-000.ref.xhtml
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Content Appended in {ib} Pagination with Overflow Containers</title>
+
+ <style type="text/css">
+ body {
+ font-size: 16px;
+ }
+
+ #colset {
+ height: 400px;
+ width: 450px;
+ -moz-column-width: 150px;
+ -moz-column-gap: 0;
+ border: 3px solid silver;
+ }
+
+ #x {
+ height: 200px;
+ border-bottom: 3px solid blue;
+ }
+
+ #overflow {
+ height: 1000px;
+ border-bottom: 3px solid orange;
+ }
+ </style>
+</head>
+
+<body>
+
+<div id="colset"
+ ><span id="span"
+ ><div id="x"
+ ><div id="overflow"></div
+ >This must be in the last column, below the orange line.
+ </div
+ >This must be in the first column, below the blue line.</span
+></div>
+
+</body>
+
+</html>
diff --git a/layout/reftests/pagination/content-inserted-000.xhtml b/layout/reftests/pagination/content-inserted-000.xhtml
new file mode 100644
index 000000000..328bdf916
--- /dev/null
+++ b/layout/reftests/pagination/content-inserted-000.xhtml
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Content Appended in {ib} Pagination with Overflow Containers</title>
+
+ <style type="text/css">
+ body {
+ font-size: 16px;
+ }
+
+ #colset {
+ height: 400px;
+ width: 450px;
+ -moz-column-width: 150px;
+ -moz-column-gap: 0;
+ border: 3px solid silver;
+ }
+
+ #x {
+ height: 200px;
+ border-bottom: 3px solid blue;
+ }
+
+ #overflow {
+ height: 1000px;
+ border-bottom: 3px solid orange;
+ }
+ </style>
+</head>
+
+<body onload="document.getElementById('span').appendChild(document.createTextNode('This must be in the first column, below the blue line.'))">
+
+<div id="colset"
+ ><span id="span"
+ ><div id="x"
+ ><div id="overflow"></div
+ >This must be in the last column, below the orange line.
+ </div
+ ></span
+></div>
+
+</body>
+
+</html>
diff --git a/layout/reftests/pagination/content-inserted-001.ref.xhtml b/layout/reftests/pagination/content-inserted-001.ref.xhtml
new file mode 100644
index 000000000..358aef640
--- /dev/null
+++ b/layout/reftests/pagination/content-inserted-001.ref.xhtml
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Content Appended in Paginated Element</title>
+
+ <style type="text/css">
+ body {
+ font-size: 16px;
+ }
+
+ #colset {
+ height: 200px;
+ width: 450px;
+ -moz-column-width: 150px;
+ -moz-column-gap: 0;
+ border: 3px solid silver;
+ }
+
+ #x {
+ height: 500px;
+ }
+</style>
+</head>
+
+<body>
+
+<div id="colset">
+ <div id="x">This must be in the first column.</div>
+</div>
+
+</body>
+
+</html>
diff --git a/layout/reftests/pagination/content-inserted-001.xhtml b/layout/reftests/pagination/content-inserted-001.xhtml
new file mode 100644
index 000000000..6ea28ae10
--- /dev/null
+++ b/layout/reftests/pagination/content-inserted-001.xhtml
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Content Appended in Paginated Element</title>
+
+ <style type="text/css">
+ body {
+ font-size: 16px;
+ }
+
+ #colset {
+ height: 200px;
+ width: 450px;
+ -moz-column-width: 150px;
+ -moz-column-gap: 0;
+ border: 3px solid silver;
+ }
+
+ #x {
+ height: 500px;
+ }
+</style>
+</head>
+
+<body onload="document.getElementById('x').appendChild(document.createTextNode('This must be in the first column.'))">
+
+<div id="colset">
+ <div id="x"></div>
+</div>
+
+</body>
+
+</html>
diff --git a/layout/reftests/pagination/content-inserted-002.ref.xhtml b/layout/reftests/pagination/content-inserted-002.ref.xhtml
new file mode 100644
index 000000000..c8bfaf8f4
--- /dev/null
+++ b/layout/reftests/pagination/content-inserted-002.ref.xhtml
@@ -0,0 +1,42 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Content Appended in Pagination</title>
+
+ <style type="text/css">
+ body {
+ font-size: 16px;
+ }
+
+ #colset {
+ height: 200px;
+ width: 450px;
+ -moz-column-width: 150px;
+ -moz-column-gap: 0;
+ -moz-column-fill: auto;
+ border: 3px solid silver;
+ }
+
+ #mark {
+ border-bottom: 4px solid blue;
+ }
+
+ #shift {
+ height: 201px;
+ border-bottom: 4px solid blue;
+ }
+</style>
+</head>
+
+<body>
+
+<div id="colset">
+ <div id="x">
+ <div id="shift"></div>
+ <div id="mark">This must be in the second column between two 4px blue lines.</div>
+ </div>
+</div>
+
+</body>
+
+</html>
diff --git a/layout/reftests/pagination/content-inserted-002.xhtml b/layout/reftests/pagination/content-inserted-002.xhtml
new file mode 100644
index 000000000..2cddd6d1b
--- /dev/null
+++ b/layout/reftests/pagination/content-inserted-002.xhtml
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Content Appended in Pagination before ::after</title>
+
+ <style type="text/css">
+ body {
+ font-size: 16px;
+ }
+
+ #colset {
+ height: 200px;
+ width: 450px;
+ -moz-column-width: 150px;
+ -moz-column-gap: 0;
+ -moz-column-fill: auto;
+ border: 3px solid silver;
+ }
+
+ #x {
+ height: 500px;
+ }
+
+ #x:after {
+ display: block;
+ content: "";
+ border-top: 4px solid blue;
+ }
+
+ #shift {
+ height: 201px;
+ border-bottom: 4px solid blue;
+ }
+</style>
+</head>
+
+<body onload="document.getElementById('x').appendChild(document.createTextNode('This must be in the second column between two 4px blue lines.'))">
+
+<div id="colset">
+ <div id="x">
+ <div id="shift"></div>
+ </div>
+</div>
+
+</body>
+
+</html>
diff --git a/layout/reftests/pagination/content-inserted-003.xhtml b/layout/reftests/pagination/content-inserted-003.xhtml
new file mode 100644
index 000000000..365194fee
--- /dev/null
+++ b/layout/reftests/pagination/content-inserted-003.xhtml
@@ -0,0 +1,48 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Content Appended in Pagination before ::after (alternate)</title>
+
+ <style type="text/css">
+ body {
+ font-size: 16px;
+ }
+
+ #colset {
+ height: 200px;
+ width: 450px;
+ -moz-column-width: 150px;
+ -moz-column-gap: 0;
+ -moz-column-fill: auto;
+ border: 3px solid silver;
+ }
+
+ #x {
+ height: 500px;
+ }
+
+ #x:after {
+ display: block;
+ height: 220px;
+ content: "";
+ border-top: 4px solid blue;
+ }
+
+ #shift {
+ height: 201px;
+ border-bottom: 4px solid blue;
+ }
+</style>
+</head>
+
+<body onload="document.getElementById('x').appendChild(document.createTextNode('This must be in the second column between two 4px blue lines.'))">
+
+<div id="colset">
+ <div id="x">
+ <div id="shift"></div>
+ </div>
+</div>
+
+</body>
+
+</html>
diff --git a/layout/reftests/pagination/content-inserted-004.xhtml b/layout/reftests/pagination/content-inserted-004.xhtml
new file mode 100644
index 000000000..d303d8ed7
--- /dev/null
+++ b/layout/reftests/pagination/content-inserted-004.xhtml
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Content Inserted in Pagination after ::before</title>
+
+ <style type="text/css">
+ body {
+ font-size: 16px;
+ }
+
+ #colset {
+ height: 200px;
+ width: 450px;
+ -moz-column-width: 150px;
+ -moz-column-gap: 0;
+ -moz-column-fill: auto;
+ border: 3px solid silver;
+ }
+
+ #x {
+ height: 500px;
+ }
+
+ #x:before {
+ display: block;
+ height: 201px;
+ content: "";
+ border-bottom: 4px solid blue;
+ }
+
+ #shift {
+ height: 220px;
+ border-top: 4px solid blue;
+ }
+</style>
+</head>
+
+<body onload="document.getElementById('x').insertBefore(document.createTextNode('This must be in the second column between two 4px blue lines.'), document.getElementById('shift'))">
+
+<div id="colset">
+ <div id="x"><div id="shift"></div></div>
+</div>
+
+</body>
+
+</html>
diff --git a/layout/reftests/pagination/content-inserted-005.xhtml b/layout/reftests/pagination/content-inserted-005.xhtml
new file mode 100644
index 000000000..1947b3cdb
--- /dev/null
+++ b/layout/reftests/pagination/content-inserted-005.xhtml
@@ -0,0 +1,42 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Content Appended in Pagination after ::before</title>
+
+ <style type="text/css">
+ body {
+ font-size: 16px;
+ }
+
+ #colset {
+ height: 200px;
+ width: 450px;
+ -moz-column-width: 150px;
+ -moz-column-gap: 0;
+ -moz-column-fill: auto;
+ border: 3px solid silver;
+ }
+
+ #x {
+ border-bottom: 4px solid blue;
+ }
+
+ #x:before {
+ display: block;
+ height: 201px;
+ content: "";
+ border-bottom: 4px solid blue;
+ }
+</style>
+</head>
+
+<body onload="document.getElementById('x').insertBefore(document.createTextNode('This must be in the second column between two 4px blue lines.'), null)">
+
+<div id="colset">
+ <div id="x">
+ </div>
+</div>
+
+</body>
+
+</html>
diff --git a/layout/reftests/pagination/content-inserted-006.xhtml b/layout/reftests/pagination/content-inserted-006.xhtml
new file mode 100644
index 000000000..fbb4c95a7
--- /dev/null
+++ b/layout/reftests/pagination/content-inserted-006.xhtml
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Content Appended in Pagination before ::after (alternate)</title>
+
+ <style type="text/css">
+ body {
+ font-size: 16px;
+ }
+
+ #colset {
+ height: 200px;
+ width: 450px;
+ -moz-column-width: 150px;
+ -moz-column-gap: 0;
+ -moz-column-fill: auto;
+ border: 3px solid silver;
+ }
+
+ #x {
+ height: 500px;
+ }
+
+ #x:after {
+ display: block;
+ height: 220px;
+ content: "";
+ border-top: 4px solid blue;
+ }
+
+ #shift {
+ height: 201px;
+ border-bottom: 4px solid blue;
+ }
+
+ #overflow {
+ height: 700px;
+ }
+</style>
+</head>
+
+<body onload="document.getElementById('x').appendChild(document.createTextNode('This must be in the second column between two 4px blue lines.'))">
+
+<div id="colset">
+ <div id="x">
+ <div id="shift">
+ <div id="overflow"></div>
+ </div
+ ></div>
+</div>
+
+</body>
+
+</html>
diff --git a/layout/reftests/pagination/content-inserted-007.xhtml b/layout/reftests/pagination/content-inserted-007.xhtml
new file mode 100644
index 000000000..0a447ae99
--- /dev/null
+++ b/layout/reftests/pagination/content-inserted-007.xhtml
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Content Inserted in Pagination after ::before</title>
+
+ <style type="text/css">
+ body {
+ font-size: 16px;
+ }
+
+ #colset {
+ height: 200px;
+ width: 450px;
+ -moz-column-width: 150px;
+ -moz-column-gap: 0;
+ -moz-column-fill: auto;
+ border: 3px solid silver;
+ }
+
+ #x {
+ height: 500px;
+ }
+
+ #x:before {
+ display: block;
+ height: 201px;
+ padding: 0 10px;
+ white-space: pre;
+ font-size: 100px;
+ line-height: 1.9em;
+ color: white;
+ content: "a\a b\a c\a d\a";
+ border-bottom: 4px solid blue;
+ }
+
+ #shift {
+ height: 220px;
+ border-top: 4px solid blue;
+ position: relative;
+ z-index: 1;
+ }
+</style>
+</head>
+
+<body onload="document.getElementById('x').insertBefore(document.createTextNode('This must be in the second column between two 4px blue lines.'), document.getElementById('shift'))">
+
+<div id="colset">
+ <div id="x"><div id="shift"></div></div>
+</div>
+
+</body>
+
+</html>
diff --git a/layout/reftests/pagination/content-inserted-008.xhtml b/layout/reftests/pagination/content-inserted-008.xhtml
new file mode 100644
index 000000000..621683d99
--- /dev/null
+++ b/layout/reftests/pagination/content-inserted-008.xhtml
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Content Appended in Pagination before ::after</title>
+
+ <style type="text/css">
+ body {
+ font-size: 16px;
+ }
+
+ #colset {
+ height: 200px;
+ width: 450px;
+ -moz-column-width: 150px;
+ -moz-column-gap: 0;
+ border: 3px solid silver;
+ }
+
+ #shift {
+ height: 0;
+ }
+ #overflow {
+ height: 500px;
+ }
+</style>
+</head>
+
+<body onload="document.getElementById('colset').insertBefore(document.createTextNode('This must be in the first column.'), document.getElementById('x'))">
+
+<div id="colset">
+ <div id="shift">
+ <div id="overflow"></div>
+ </div
+ ><div id="x">
+ </div>
+</div>
+
+</body>
+
+</html>
diff --git a/layout/reftests/pagination/content-inserted-009.xhtml b/layout/reftests/pagination/content-inserted-009.xhtml
new file mode 100644
index 000000000..1bb95d792
--- /dev/null
+++ b/layout/reftests/pagination/content-inserted-009.xhtml
@@ -0,0 +1,49 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Content Appended in Pagination before ::after</title>
+
+ <style type="text/css">
+ body {
+ font-size: 16px;
+ }
+
+ #colset {
+ height: 200px;
+ width: 450px;
+ -moz-column-width: 150px;
+ -moz-column-gap: 0;
+ -moz-column-fill: auto;
+ border: 3px solid silver;
+ }
+
+ #shift {
+ height: 201px;
+ border-bottom: 2px solid blue;
+ }
+ #overflow {
+ height: 500px;
+ }
+ div:not([id]) {
+ border-top: 2px solid blue;
+ }
+ #x {
+ border-bottom: 4px solid blue;
+ }
+</style>
+</head>
+
+<body onload="document.getElementById('span').insertBefore(document.createElement('div'), document.getElementById('x'))">
+
+<div id="colset">
+ <span id="span">
+ <div id="shift">
+ <div id="overflow"></div>
+ </div
+ ><div id="x">This must be in the second column between two 4px blue lines.</div
+ ></span
+></div>
+
+</body>
+
+</html>
diff --git a/layout/reftests/pagination/dynamic-abspos-overflow-01-cols.ref.xhtml b/layout/reftests/pagination/dynamic-abspos-overflow-01-cols.ref.xhtml
new file mode 100644
index 000000000..a063c742d
--- /dev/null
+++ b/layout/reftests/pagination/dynamic-abspos-overflow-01-cols.ref.xhtml
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Multi-column Layout: AbsPos Pagination (Interlaced Dynamic Height)</title>
+ <link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact"/>
+ <link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#the-height-property"/>
+ <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#length-units"/>
+ <style type="text/css">
+ html {
+ background: white;
+ }
+
+ #colset {
+ position: relative;
+ padding-top: 1px;
+ width: 300pt;
+ height: 2in;
+ border: silver 2pt;
+ border-style: none solid;
+ }
+
+ .centerline {
+ margin: 0 auto;
+ bottom: 0;
+ position: absolute;
+ width: 8px;
+ background: aqua;
+ }
+ #c1 {
+ height: 96pt;
+ right: 200pt;
+ left: 0;
+ }
+ #c2 {
+ height: 120pt;
+ right: 100pt;
+ left: 100pt;
+ }
+ #c3 {
+ height: 144pt;
+ right: 0;
+ left: 200pt;
+ }
+
+ #redline {
+ border-top: 8px solid lime;
+ margin-top: 1in;
+ position: relative;
+ }
+
+ #dynamo {
+ position: relative;
+ margin: -8px auto -8px;
+ width: 8px;
+ border-top: 8px solid orange;
+ }
+
+ </style>
+ </head>
+ <body>
+ <p>There must be a single green line with an orange square where
+ it intersects with the middle aqua line, and no red. The following
+ links must move the orange square to the intersection with the
+ indicated aqua line:</p>
+ <p>
+ <a href="asdljlwjerlk-unvisited">Left</a>
+ <a href="asdljlwjerlk-unvisited">Center</a>
+ <a href="asdljlwjerlk-unvisited">Right</a>
+ </p>
+ <div id="colset">
+ <div class="centerline" id="c1"></div>
+ <div class="centerline" id="c2"></div>
+ <div class="centerline" id="c3"></div>
+ <div id="redline"></div>
+ <div id="dynamo"></div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/dynamic-abspos-overflow-01-cols.xhtml b/layout/reftests/pagination/dynamic-abspos-overflow-01-cols.xhtml
new file mode 100644
index 000000000..bf7be75eb
--- /dev/null
+++ b/layout/reftests/pagination/dynamic-abspos-overflow-01-cols.xhtml
@@ -0,0 +1,239 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" class="reftest-wait">
+ <head>
+ <title>Multi-column Layout: AbsPos Pagination (Interlaced Dynamic Height)</title>
+ <link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact"/>
+ <link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#the-height-property"/>
+ <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#length-units"/>
+ <style type="text/css">
+ html {
+ background: white;
+ }
+
+ .container {
+ background: red;
+ height: 24pt;
+ position: relative;
+ }
+ .overflow {
+ width: 10pt;
+ border-bottom: lime 8px solid;
+ top: 0;
+ }
+ .following {
+ position: relative;
+ background: white;
+ width: 100pt;
+ }
+ #colset {
+ padding-top: 1px;
+ width: 300pt;
+ height: 2in;
+ -moz-column-count: 3;
+ -moz-column-gap: 0;
+ border: silver 2pt;
+ border-style: none solid;
+ }
+ #redline {
+ width: 303pt;
+ border-top: 8px solid red;
+ margin-top: -1in;
+ position: relative;
+ z-index: -1;
+ }
+
+ .ocontainer {
+ height: 0;
+ position: relative;
+ }
+ .o1 { /* 3rd col */
+ height: 5in;
+ }
+ .a1 { /* 1st col */
+ position: absolute;
+ height: 1in;
+ width: 33pt;
+ }
+ .a2 { /* 2nd col */
+ position: absolute;
+ height: 3in;
+ width: 25pt;
+ margin-left: 25pt;
+ }
+ .a3 { /* 3rd col */
+ position: absolute;
+ height: 5in;
+ margin-left: 10pt;
+ }
+ .a4 { /* 2nd col */
+ width: 25pt;
+ height: 3in;
+ }
+
+ .b1 { /* 3rd col */
+ position: absolute;
+ height: 336pt;
+ margin-left: 20pt;
+ }
+ .b2 { /* 2nd col */
+ position: absolute;
+ height: 192pt;
+ width: 25pt;
+ margin-left: 50pt;
+ }
+ .b3 { /* 3rd col */
+ position: absolute;
+ height: 336pt;
+ margin-left: 30pt;
+ }
+ .b4 { /* 1st col, but no border */
+ position: absolute;
+ height: 48pt;
+ border-bottom: none;
+ }
+ .b4 .child1 { /* 1st col */
+ position: absolute;
+ height: 100%;
+ width: 33pt;
+ margin-left: 33pt;
+ }
+ .b4 .child2 { /* 3rd col */
+ height: 336pt;
+ margin-left: 40pt;
+
+ }
+ .b5 { /* 1st col */
+ position: absolute;
+ height: 48pt;
+ width: 34pt;
+ margin-left: 66pt;
+ }
+ .b6 { /* 3rd col */
+ height: 336pt;
+ margin-left: 50pt;
+ }
+
+ .c1 { /* 3rd col */
+ position: absolute;
+ height: 3in;
+ margin-left: 60pt;
+ }
+ .c2 { /* 2nd col */
+ position: absolute;
+ height: 1in;
+ width: 25pt;
+ margin-left: 75pt;
+ }
+ .c3 { /* 3rd col */
+ position: absolute;
+ height: 3in;
+ margin-left: 70pt;
+ }
+ .c4 { /* 3rd col */
+ height: 3in;
+ width: 20pt;
+ margin-left: 80pt;
+ }
+
+ .f1 {
+ margin-top: -48pt;
+ height: 48pt;
+ margin-bottom: 96pt;
+ }
+ .f2 {
+ margin-top: -24pt;
+ height: 24pt;
+ }
+
+ .centerline {
+ margin: 0 auto;
+ top: 0;
+ left: 0;
+ right: 0;
+ position: absolute;
+ width: 8px;
+ height: 6in;
+ background: aqua;
+ }
+
+ #dynamo {
+ background: transparent;
+ border-bottom: 8px solid orange;
+ z-index: 10;
+ height: 192pt;
+ }
+
+ </style>
+ </head>
+ <body onload="document.getElementById('dynamo').style.height = '48pt';
+ document.getElementById('dynamo').offsetHeight;
+ document.getElementById('dynamo').style.height = '336pt';
+ document.getElementById('dynamo').offsetHeight;
+ document.getElementById('dynamo').style.height = '48pt';
+ document.getElementById('dynamo').offsetHeight;
+ document.getElementById('dynamo').style.height = '192pt';
+ document.getElementById('dynamo').offsetHeight;
+ document.getElementById('dynamo').style.height = '1500pt';
+ document.getElementById('dynamo').offsetHeight;
+ document.getElementById('dynamo').style.height = '48pt';
+ document.getElementById('dynamo').offsetHeight;
+ document.getElementById('dynamo').style.height = '192pt';
+ document.getElementById('dynamo').offsetHeight;
+ document.getElementById('dynamo').style.height = '336pt';
+ document.getElementById('dynamo').offsetHeight;
+ document.getElementById('dynamo').style.height = '192pt';
+ document.getElementById('dynamo').offsetHeight;
+ document.getElementById('dynamo').style.height = '48pt';
+ document.getElementById('dynamo').offsetHeight;
+ document.getElementById('dynamo').style.height = '192pt';
+ document.documentElement.className = ''
+ ">
+ <p>There must be a single green line with an orange square where
+ it intersects with the middle aqua line, and no red. The following
+ links must move the orange square to the intersection with the
+ indicated aqua line:</p>
+ <p>
+ <a href="asdljlwjerlk-unvisited" onclick="document.getElementById('dynamo').style.height = '48pt'; return false;">Left</a>
+ <a href="asdljlwjerlk-unvisited" onclick="document.getElementById('dynamo').style.height = '192pt'; return false;">Center</a>
+ <a href="asdljlwjerlk-unvisited" onclick="document.getElementById('dynamo').style.height = '336pt'; return false;">Right</a>
+ </p>
+ <div id="colset">
+ <div>
+ <div class="ocontainer">
+ <div class="centerline"></div>
+ <div class="overflow o1"></div>
+ </div>
+ <div class="container">
+ <div class="overflow a1"></div>
+ <div class="overflow a2"></div>
+ <div class="overflow a3"></div>
+ <div class="overflow a4"></div>
+ </div>
+ <div class="ocontainer">
+ <div id="dynamo" class="centerline"></div>
+ </div>
+ <div class="container">
+ <div class="overflow b1"></div>
+ <div class="overflow b2"></div>
+ <div class="overflow b3"></div>
+ <div class="overflow b4">
+ <div class="overflow child1"></div>
+ <div class="overflow child2"></div>
+ </div>
+ <div class="overflow b5"></div>
+ <div class="overflow b6"></div>
+ </div>
+ </div>
+ <p class="following f1">
+ </p>
+ <div class="container">
+ <div class="overflow c1"></div>
+ <div class="overflow c2"></div>
+ <div class="overflow c3"></div>
+ <div class="overflow c4"></div>
+ </div>
+ <div class="following f2"></div>
+ </div>
+ <div id="redline"></div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/float-clear-000-print.html b/layout/reftests/pagination/float-clear-000-print.html
new file mode 100644
index 000000000..e919ad262
--- /dev/null
+++ b/layout/reftests/pagination/float-clear-000-print.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html class="reftest-print">
+<style type="text/css">
+html, body {
+ margin: 0;
+ padding: 0;
+ height: 100%;
+}
+
+.float {
+ float: right;
+ width: 15px;
+ background: aqua;
+ height: 5in;
+}
+.L {
+ float: left;
+}
+
+.container {
+ width: 100%;
+ background: red;
+}
+
+.clear {
+ border-bottom: solid orange;
+}
+</style>
+
+<div class="container">
+ <div class="float L"></div>
+ <div class="float R"></div>
+</div>
+<div class="clear">
+ <br clear="all">
+</div>
diff --git a/layout/reftests/pagination/float-clear-000-print.ref.html b/layout/reftests/pagination/float-clear-000-print.ref.html
new file mode 100644
index 000000000..121395307
--- /dev/null
+++ b/layout/reftests/pagination/float-clear-000-print.ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html class="reftest-print">
+<style type="text/css">
+html, body {
+ margin: 0;
+ padding: 0;
+ height: 100%;
+}
+
+.container {
+ border: 15px aqua;
+ border-style: none solid;
+ height: 5in;
+}
+.clear {
+ border-bottom: solid orange;
+ background: red;
+}
+</style>
+
+<div class="container">
+</div>
+<div class="clear">
+</div>
diff --git a/layout/reftests/pagination/float-clear-000.html b/layout/reftests/pagination/float-clear-000.html
new file mode 100644
index 000000000..9c84f9916
--- /dev/null
+++ b/layout/reftests/pagination/float-clear-000.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<style type="text/css">
+.multicol {
+ margin: 1em;
+ border: solid silver;
+ width: 300px;
+ -moz-column-width: 100px;
+ -moz-column-gap: 0;
+ height: 100px;
+}
+
+.float {
+ float: right;
+ width: 15px;
+ background: aqua;
+ height: 250px;
+}
+.L {
+ float: left;
+}
+
+.container {
+ width: 100%;
+ background: red;
+}
+
+.clear {
+ border-bottom: solid orange;
+}
+</style>
+
+<p>The orange line should be halfway down the third column
+(immediately after the end of the aqua lines).
+
+<div class="multicol">
+ <div class="container">
+ <div class="float L"></div>
+ <div class="float R"></div>
+ </div>
+ <div class="clear">
+ <br clear="all">
+ </div>
+</div>
diff --git a/layout/reftests/pagination/float-clear-000.ref.html b/layout/reftests/pagination/float-clear-000.ref.html
new file mode 100644
index 000000000..9c7117ecc
--- /dev/null
+++ b/layout/reftests/pagination/float-clear-000.ref.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<style type="text/css">
+.multicol {
+ margin: 1em;
+ border: solid silver;
+ width: 300px;
+ -moz-column-width: 100px;
+ -moz-column-gap: 0;
+ height: 100px;
+}
+
+.container {
+ border: 15px aqua;
+ border-style: none solid;
+ height: 250px;
+}
+.clear {
+ border-bottom: solid orange;
+ background: red;
+}
+</style>
+
+<p>The orange line should be halfway down the third column
+(immediately after the end of the aqua lines).
+
+<div class="multicol">
+ <div class="container">
+ </div>
+ <div class="clear">
+ </div>
+</div>
diff --git a/layout/reftests/pagination/float-clear-001-print.html b/layout/reftests/pagination/float-clear-001-print.html
new file mode 100644
index 000000000..7142bf6b9
--- /dev/null
+++ b/layout/reftests/pagination/float-clear-001-print.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html class="reftest-print">
+<style type="text/css">
+html, body {
+ margin: 0;
+ padding: 0;
+ height: 100%;
+}
+
+.float {
+ float: right;
+ width: 15px;
+ background: aqua;
+ height: 5in;
+}
+.L {
+ float: left;
+}
+
+.container {
+ width: 100%;
+}
+
+.clear {
+ border-bottom: solid orange;
+ background: red;
+}
+</style>
+
+<div class="container">
+ <div class="float L"></div>
+ <div class="float R"></div>
+ <br clear="all">
+</div>
+<div class="clear">
+</div>
diff --git a/layout/reftests/pagination/float-clear-001.html b/layout/reftests/pagination/float-clear-001.html
new file mode 100644
index 000000000..fa73bd116
--- /dev/null
+++ b/layout/reftests/pagination/float-clear-001.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<style type="text/css">
+.multicol {
+ margin: 1em;
+ border: solid silver;
+ width: 300px;
+ -moz-column-width: 100px;
+ -moz-column-gap: 0;
+ height: 100px;
+}
+
+.float {
+ float: right;
+ width: 15px;
+ background: aqua;
+ height: 250px;
+}
+.L {
+ float: left;
+}
+
+.container {
+ width: 100%;
+}
+
+.clear {
+ border-bottom: solid orange;
+ background: red;
+}
+</style>
+
+<p>The orange line should be halfway down the third column
+(immediately after the end of the aqua lines).
+
+<div class="multicol">
+ <div class="container">
+ <div class="float L"></div>
+ <div class="float R"></div>
+ <br clear="all">
+ </div>
+ <div class="clear">
+ </div>
+</div>
diff --git a/layout/reftests/pagination/float-clear-002-print.html b/layout/reftests/pagination/float-clear-002-print.html
new file mode 100644
index 000000000..95f91588f
--- /dev/null
+++ b/layout/reftests/pagination/float-clear-002-print.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html class="reftest-print">
+<style type="text/css">
+html, body {
+ margin: 0;
+ padding: 0;
+ height: 100%;
+}
+
+.float {
+ float: right;
+ width: 15px;
+ background: aqua;
+ height: 5in;
+}
+.L {
+ float: left;
+}
+
+.container {
+ width: 100%;
+ height: 2in;
+}
+
+.clear {
+ clear: left;
+ border-bottom: solid orange;
+ background: red;
+}
+</style>
+
+<div class="container">
+ <div class="float L"></div>
+ <div class="float R"></div>
+</div>
+<div class="clear"></div>
diff --git a/layout/reftests/pagination/float-clear-002.html b/layout/reftests/pagination/float-clear-002.html
new file mode 100644
index 000000000..efd517d9d
--- /dev/null
+++ b/layout/reftests/pagination/float-clear-002.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<style type="text/css">
+.multicol {
+ margin: 1em;
+ border: solid silver;
+ width: 300px;
+ -moz-column-width: 100px;
+ -moz-column-gap: 0;
+ height: 100px;
+}
+
+.float {
+ float: right;
+ width: 15px;
+ background: aqua;
+ height: 250px;
+}
+.L {
+ float: left;
+}
+
+.container {
+ width: 100%;
+ background: red;
+}
+
+.clear {
+ clear: left;
+ border-bottom: solid orange;
+ background: red;
+}
+</style>
+
+<p>The orange line should be halfway down the third column
+(immediately after the end of the aqua lines).
+
+<div class="multicol">
+ <div class="container">
+ <div class="float L"></div>
+ <div class="float R"></div>
+ </div>
+ <div class="clear"></div>
+</div>
diff --git a/layout/reftests/pagination/float-clear-003-print.html b/layout/reftests/pagination/float-clear-003-print.html
new file mode 100644
index 000000000..5767b9f95
--- /dev/null
+++ b/layout/reftests/pagination/float-clear-003-print.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html class="reftest-print">
+<style type="text/css">
+html, body {
+ margin: 0;
+ padding: 0;
+ height: 100%;
+}
+
+.step {
+ height: 1in;
+ border: 15px aqua;
+ border-style: none solid;
+}
+.float {
+ float: right;
+ width: 15px;
+ background: aqua;
+ height: 4in;
+}
+.L {
+ float: left;
+}
+
+.container {
+ width: 100%;
+ background: red;
+}
+
+.clear {
+ clear: left;
+ height: 0;
+ background: red;
+}
+.bar {
+ border-bottom: orange solid;
+}
+</style>
+
+<div class="step"></div>
+<div class="container">
+ <div class="float L"></div>
+ <div class="float R"></div>
+</div>
+<div class="clear"><div class="bar"></div></div>
diff --git a/layout/reftests/pagination/float-clear-003.html b/layout/reftests/pagination/float-clear-003.html
new file mode 100644
index 000000000..0c5127565
--- /dev/null
+++ b/layout/reftests/pagination/float-clear-003.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<style type="text/css">
+.multicol {
+ margin: 1em;
+ border: solid silver;
+ width: 300px;
+ -moz-column-width: 100px;
+ -moz-column-gap: 0;
+ height: 100px;
+}
+
+.step {
+ height: 10px;
+ border: 15px aqua;
+ border-style: none solid;
+}
+.float {
+ float: right;
+ width: 15px;
+ background: aqua;
+ height: 240px;
+}
+.L {
+ float: left;
+}
+
+.container {
+ width: 100%;
+ background: red;
+}
+
+.clear {
+ clear: left;
+ height: 0;
+ background: red;
+}
+.bar {
+ border-bottom: orange solid;
+}
+</style>
+
+<p>The orange line should be halfway down the third column
+(immediately after the end of the aqua lines).
+
+<div class="multicol">
+ <div class="step"></div>
+ <div class="container">
+ <div class="float L"></div>
+ <div class="float R"></div>
+ </div>
+ <div class="clear"><div class="bar"></div></div>
+</div>
diff --git a/layout/reftests/pagination/float-continuations-000.html b/layout/reftests/pagination/float-continuations-000.html
new file mode 100644
index 000000000..8b5c5971a
--- /dev/null
+++ b/layout/reftests/pagination/float-continuations-000.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<style type="text/css">
+
+.multicol {
+ margin: 1em;
+ border: solid silver;
+ width: 500px;
+ -moz-column-width: 100px;
+ -moz-column-gap: 0;
+ height: 100px;
+}
+
+div {
+ margin: 2px 0;
+ border: 2px white;
+ border-style: solid none;
+}
+
+.float {
+ float: right;
+ margin: 44px 0;
+ width: 15px;
+ background: aqua;
+ border-color: aqua;
+ height: 296px;
+}
+
+#float0 {
+ float: left;
+ width: 30px;
+ margin-right: 5px;
+ margin-bottom: 0;
+}
+
+#float1 {
+ margin-left: -15px;
+ margin-right: -5px;
+ position: relative;
+ right: 5px;
+}
+#float2 {
+ margin-left: 5px;
+ margin-right: 15px;
+}
+
+#clear {
+ clear: left;
+ border: 2px solid orange;
+}
+
+#c1 {
+ height: 142px;
+}
+
+#c2 {
+ border-bottom: none;
+}
+
+#c3 {
+ height: 100px;
+ border-bottom: 4px solid orange;
+}
+#c4 {
+ height: 192px;
+ border-bottom: 4px solid orange;
+}
+
+hr {
+ border: solid orange 20px;
+ border-style: none solid;
+ height: 4px;
+ margin: 0 -5px;
+ padding: 0;
+ position: relative;
+ z-index: 20;
+}
+
+#c2 > hr {
+ margin-top: 44px;
+}
+</style>
+
+<body onload="var f = document.getElementById('float0');
+ f.style.height = '20px';
+ document.body.offsetHeight;
+ f.style.height = '900px';
+ document.body.offsetHeight;
+ f.style.height = '';
+ document.body.offsetHeight;
+ var c = document.getElementById('c2');
+ c.style.height = '900px';
+ document.body.offsetHeight;
+ c.style.height = '';
+">
+
+<div class="multicol">
+ <div id="c1">
+ <div id="c2">
+ <div class="float" id="float0"></div>
+ <div class="float" id="float1"></div>
+ <div class="float" id="float2"></div>
+ <hr>
+ </div>
+ </div>
+ <div id="c3"><hr><div id="clear"></div></div>
+ <div id="c4"></div>
+</div>
diff --git a/layout/reftests/pagination/float-continuations-000.ref.html b/layout/reftests/pagination/float-continuations-000.ref.html
new file mode 100644
index 000000000..bd68562ae
--- /dev/null
+++ b/layout/reftests/pagination/float-continuations-000.ref.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<style type="text/css">
+
+.multicol {
+ margin: 1em;
+ border: solid silver;
+ width: 500px;
+ -moz-column-width: 100px;
+ -moz-column-gap: 0;
+ height: 100px;
+ position: relative;
+}
+
+#clear {
+ top: 50px;
+ border-top: 4px solid orange;
+ width: 100%;
+ position: absolute;
+ z-index: -1;
+}
+
+.float {
+ border: aqua 30px;
+ border-style: none solid;
+ height: 300px;
+}
+
+.pad {
+ padding-top: 50px;
+}
+</style>
+
+<body>
+
+<div class="multicol">
+ <div id="clear"></div>
+ <div class="pad"></div>
+ <div class="float">&nbsp;</div>
+</div>
diff --git a/layout/reftests/pagination/reftest-stylo.list b/layout/reftests/pagination/reftest-stylo.list
new file mode 100644
index 000000000..3548c1d06
--- /dev/null
+++ b/layout/reftests/pagination/reftest-stylo.list
@@ -0,0 +1,109 @@
+# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
+# For more pagination tests, see layout/reftests/w3c-css/submitted/css21/pagination/
+# and layout/reftests/w3c-css/submitted/multicol3/
+# Pagination tests
+# asserts(3) == abspos-breaking-000.xhtml abspos-breaking-000.xhtml
+# bug 1067755, 1135556
+== abspos-breaking-001.xhtml abspos-breaking-001.xhtml
+== abspos-breaking-002.xhtml abspos-breaking-002.xhtml
+== abspos-breaking-003.html abspos-breaking-003.html
+== abspos-breaking-004.html abspos-breaking-004.html
+== abspos-breaking-005.html abspos-breaking-005.html
+== abspos-breaking-006.html abspos-breaking-006.html
+pref(layout.css.box-decoration-break.enabled,true) == abspos-breaking-007.html abspos-breaking-007.html
+skip-if(B2G||Mulet) pref(layout.css.box-decoration-break.enabled,true) == abspos-breaking-008.html abspos-breaking-008.html
+# Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) pref(layout.css.box-decoration-break.enabled,true) == abspos-breaking-009.html abspos-breaking-009.html
+# Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) pref(layout.css.box-decoration-break.enabled,true) == abspos-breaking-010.html abspos-breaking-010.html
+# Initial mulet triage: parity with B2G/B2G Desktop
+== abspos-breaking-011.html abspos-breaking-011.html
+== abspos-overflow-01.xhtml abspos-overflow-01.xhtml
+== abspos-overflow-01-cols.xhtml abspos-overflow-01-cols.xhtml
+skip == border-breaking-000-cols.xhtml border-breaking-000-cols.xhtml
+== border-breaking-001-cols.xhtml border-breaking-001-cols.xhtml
+== border-breaking-002-cols.xhtml border-breaking-002-cols.xhtml
+== border-breaking-003-cols.xhtml border-breaking-003-cols.xhtml
+== border-breaking-004-cols.xhtml border-breaking-004-cols.xhtml
+== content-inserted-000.xhtml content-inserted-000.xhtml
+== content-inserted-001.xhtml content-inserted-001.xhtml
+== content-inserted-002.xhtml content-inserted-002.xhtml
+== content-inserted-003.xhtml content-inserted-003.xhtml
+== content-inserted-004.xhtml content-inserted-004.xhtml
+== content-inserted-005.xhtml content-inserted-005.xhtml
+== content-inserted-006.xhtml content-inserted-006.xhtml
+== content-inserted-007.xhtml content-inserted-007.xhtml
+skip == content-inserted-008.xhtml content-inserted-008.xhtml
+== content-inserted-009.xhtml content-inserted-009.xhtml
+== dynamic-abspos-overflow-01-cols.xhtml dynamic-abspos-overflow-01-cols.xhtml
+== float-clear-000.html float-clear-000.html
+== float-clear-000.html float-clear-000.html
+== float-clear-001.html float-clear-001.html
+skip == float-clear-002.html float-clear-002.html
+skip == float-clear-002.html float-clear-002.html
+== float-clear-003.html float-clear-003.html
+== float-clear-000-print.html float-clear-000-print.html
+== float-clear-001-print.html float-clear-001-print.html
+== float-clear-002-print.html float-clear-002-print.html
+== float-clear-003-print.html float-clear-003-print.html
+== float-continuations-000.html float-continuations-000.html
+fails fuzzy-if(skiaContent,1,21) == resize-reflow-000.html resize-reflow-000.html
+fuzzy-if(skiaContent,1,23) == resize-reflow-001.html resize-reflow-001.html
+== table-page-break-before-auto-1.html table-page-break-before-auto-1.html
+#== table-page-break-before-auto-2.html table-page-break-before-auto-2-ref.html bug bug
+== table-page-break-before-always-1.html table-page-break-before-always-1.html
+== table-page-break-before-left-1.html table-page-break-before-left-1.html
+== table-page-break-before-right-1.html table-page-break-before-right-1.html
+== table-page-break-after-always-1.html table-page-break-after-always-1.html
+== table-page-break-after-left-1.html table-page-break-after-left-1.html
+== table-page-break-after-right-1.html table-page-break-after-right-1.html
+skip-if(B2G||Mulet) == rowgroup-page-break-after-always-1.html rowgroup-page-break-after-always-1.html
+# bug 773482
+# Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) == row-page-break-after-always-1.html row-page-break-after-always-1.html
+# bug 773482
+# Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) == row-page-break-after-always-2.html row-page-break-after-always-2.html
+# bug 773482
+# Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) == rowgroup-thead-page-break-after-always-1.html rowgroup-thead-page-break-after-always-1.html
+# bug 773482
+# Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) == rowgroup-tfoot-page-break-after-always-1.html rowgroup-tfoot-page-break-after-always-1.html
+# bug 773482
+# Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) == table-tfoot-thead-1.html table-tfoot-thead-1.html
+# bug 773482
+# Initial mulet triage: parity with B2G/B2G Desktop
+== table-caption-splitrowgroup-1.html table-caption-splitrowgroup-1.html
+== table-caption-splitaftercaption-1.html table-caption-splitaftercaption-1.html
+skip-if(B2G||Mulet) == table-caption-splitaftercaption-2.html table-caption-splitaftercaption-2.html
+# bug 773482
+# Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) == table-caption-splitaftercaption-3.html table-caption-splitaftercaption-3.html
+# bug 773482
+# Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) == table-caption-splitaftercaption-4.html table-caption-splitaftercaption-4.html
+# bug 773482
+# Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) == table-caption-splitaftercaption-5.html table-caption-splitaftercaption-5.html
+# bug 773482
+# Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) == table-caption-splitaftercaption-6.html table-caption-splitaftercaption-6.html
+# bug 773482
+# Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) == table-caption-splitaftercaption-7.html table-caption-splitaftercaption-7.html
+# bug 773482
+# Initial mulet triage: parity with B2G/B2G Desktop
+# == table-caption-splitaftercaption-8.html table-caption-splitaftercaption-8.html
+# bug 672654
+# == table-caption-splitaftercaption-9.html table-caption-splitaftercaption-9.html
+# bug 672654
+# == table-caption-splitaftercaption-10.html table-caption-splitaftercaption-10.html
+# bug 672654
+# == table-caption-splitaftercaption-11.html table-caption-splitaftercaption-11.html
+# bug 672654
+== column-balancing-break-inside-avoid-2.html column-balancing-break-inside-avoid-2.html
+fails-if(B2G||Mulet) == combobox-page-break-inside.html combobox-page-break-inside.html
+# reftest-print doesn't work on B2G
+# Initial mulet triage: parity with B2G/B2G Desktop
diff --git a/layout/reftests/pagination/reftest.list b/layout/reftests/pagination/reftest.list
new file mode 100644
index 000000000..e09d7d2fb
--- /dev/null
+++ b/layout/reftests/pagination/reftest.list
@@ -0,0 +1,74 @@
+# For more pagination tests, see layout/reftests/w3c-css/submitted/css21/pagination/
+# and layout/reftests/w3c-css/submitted/multicol3/
+# Pagination tests
+# asserts(3) == abspos-breaking-000.xhtml abspos-breaking-000.ref.xhtml # bug 1067755, 1135556
+== abspos-breaking-001.xhtml abspos-breaking-000.ref.xhtml
+== abspos-breaking-002.xhtml abspos-breaking-000.ref.xhtml
+== abspos-breaking-003.html abspos-breaking-003-ref.html
+== abspos-breaking-004.html abspos-breaking-004-ref.html
+== abspos-breaking-005.html abspos-breaking-005-ref.html
+== abspos-breaking-006.html abspos-breaking-006-ref.html
+pref(layout.css.box-decoration-break.enabled,true) == abspos-breaking-007.html abspos-breaking-007-ref.html
+pref(layout.css.box-decoration-break.enabled,true) == abspos-breaking-008.html abspos-breaking-008-ref.html
+pref(layout.css.box-decoration-break.enabled,true) == abspos-breaking-009.html abspos-breaking-009-ref.html
+pref(layout.css.box-decoration-break.enabled,true) == abspos-breaking-010.html abspos-breaking-010-ref.html
+== abspos-breaking-011.html abspos-breaking-011-ref.html
+== abspos-overflow-01.xhtml abspos-overflow-01.ref.xhtml
+== abspos-overflow-01-cols.xhtml abspos-overflow-01-cols.ref.xhtml
+== border-breaking-000-cols.xhtml border-breaking-000-cols.ref.xhtml
+== border-breaking-001-cols.xhtml border-breaking-001-cols.ref.xhtml
+== border-breaking-002-cols.xhtml border-breaking-002-cols.ref.xhtml
+== border-breaking-003-cols.xhtml border-breaking-003-cols.ref.xhtml
+fails == border-breaking-004-cols.xhtml border-breaking-002-cols.ref.xhtml
+== content-inserted-000.xhtml content-inserted-000.ref.xhtml
+== content-inserted-001.xhtml content-inserted-001.ref.xhtml
+== content-inserted-002.xhtml content-inserted-002.ref.xhtml
+== content-inserted-003.xhtml content-inserted-002.ref.xhtml
+== content-inserted-004.xhtml content-inserted-002.ref.xhtml
+== content-inserted-005.xhtml content-inserted-002.ref.xhtml
+== content-inserted-006.xhtml content-inserted-002.ref.xhtml
+== content-inserted-007.xhtml content-inserted-002.ref.xhtml
+== content-inserted-008.xhtml content-inserted-001.ref.xhtml
+== content-inserted-009.xhtml content-inserted-002.ref.xhtml
+== dynamic-abspos-overflow-01-cols.xhtml dynamic-abspos-overflow-01-cols.ref.xhtml
+test-pref(layout.float-fragments-inside-column.enabled,false) fails == float-clear-000.html float-clear-000.ref.html
+test-pref(layout.float-fragments-inside-column.enabled,true) == float-clear-000.html float-clear-000.ref.html
+fails == float-clear-001.html float-clear-000.ref.html
+test-pref(layout.float-fragments-inside-column.enabled,false) fails == float-clear-002.html float-clear-000.ref.html
+test-pref(layout.float-fragments-inside-column.enabled,true) == float-clear-002.html float-clear-000.ref.html
+fails == float-clear-003.html float-clear-000.ref.html
+== float-clear-000-print.html float-clear-000-print.ref.html
+== float-clear-001-print.html float-clear-000-print.ref.html
+== float-clear-002-print.html float-clear-000-print.ref.html
+== float-clear-003-print.html float-clear-000-print.ref.html
+fails == float-continuations-000.html float-continuations-000.ref.html
+fuzzy-if(skiaContent,1,21) == resize-reflow-000.html resize-reflow-000.ref.html
+fuzzy-if(skiaContent,1,23) == resize-reflow-001.html resize-reflow-001.ref.html
+== table-page-break-before-auto-1.html table-page-break-before-auto-1-ref.html
+#== table-page-break-before-auto-2.html table-page-break-before-auto-2-ref.html bug 563280
+== table-page-break-before-always-1.html table-page-break-before-auto-2-ref.html
+== table-page-break-before-left-1.html table-page-break-before-auto-2-ref.html
+== table-page-break-before-right-1.html table-page-break-before-auto-2-ref.html
+== table-page-break-after-always-1.html table-page-break-before-auto-2-ref.html
+== table-page-break-after-left-1.html table-page-break-before-auto-2-ref.html
+== table-page-break-after-right-1.html table-page-break-before-auto-2-ref.html
+== rowgroup-page-break-after-always-1.html table-page-break-before-auto-2-ref.html
+== row-page-break-after-always-1.html table-page-break-before-auto-2-ref.html
+== row-page-break-after-always-2.html table-page-break-before-auto-2-ref.html
+== rowgroup-thead-page-break-after-always-1.html table-page-break-before-auto-3-ref.html
+== rowgroup-tfoot-page-break-after-always-1.html table-page-break-before-auto-3-ref.html
+== table-tfoot-thead-1.html table-tfoot-thead-1-ref.html
+== table-caption-splitrowgroup-1.html table-caption-splitrowgroup-1-ref.html
+== table-caption-splitaftercaption-1.html table-caption-splitaftercaption-1-ref.html
+== table-caption-splitaftercaption-2.html table-caption-splitaftercaption-2-ref.html
+== table-caption-splitaftercaption-3.html table-caption-splitaftercaption-3-ref.html
+== table-caption-splitaftercaption-4.html table-caption-splitaftercaption-4-ref.html
+== table-caption-splitaftercaption-5.html table-caption-splitaftercaption-5-ref.html
+== table-caption-splitaftercaption-6.html table-caption-splitaftercaption-6-ref.html
+== table-caption-splitaftercaption-7.html table-caption-splitaftercaption-7-ref.html
+# == table-caption-splitaftercaption-8.html blank.html # bug 672654
+# == table-caption-splitaftercaption-9.html blank.html # bug 672654
+# == table-caption-splitaftercaption-10.html blank.html # bug 672654
+# == table-caption-splitaftercaption-11.html blank.html # bug 672654
+== column-balancing-break-inside-avoid-2.html column-balancing-break-inside-avoid-2-ref.html
+== combobox-page-break-inside.html combobox-page-break-inside-ref.html
diff --git a/layout/reftests/pagination/resize-reflow-000.html b/layout/reftests/pagination/resize-reflow-000.html
new file mode 100644
index 000000000..549b04d61
--- /dev/null
+++ b/layout/reftests/pagination/resize-reflow-000.html
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>Resize Reflow Test</title>
+</head>
+<body>
+
+<div style="-moz-column-width: 12em;
+ border: silver solid;
+ width: 30em" id="outer">
+x <div style="border: dotted;
+ background: aqua;
+ color: gray;">
+ blah<br>
+ blah<br>
+ blah<br>
+ blah
+ </div>
+</div>
+
+<script>
+document.body.offsetWidth;
+n = document.getElementById("outer").firstChild;
+n.data = ' ';
+</script>
+
+</body>
+</html>
diff --git a/layout/reftests/pagination/resize-reflow-000.ref.html b/layout/reftests/pagination/resize-reflow-000.ref.html
new file mode 100644
index 000000000..5190ce1d1
--- /dev/null
+++ b/layout/reftests/pagination/resize-reflow-000.ref.html
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>Resize Reflow Test</title>
+</head>
+<body>
+
+<div style="-moz-column-width: 12em;
+ border: silver solid;
+ width: 30em" id="outer">
+ <div style="border: dotted;
+ background: aqua;
+ color: gray;">
+ blah<br>
+ blah<br>
+ blah<br>
+ blah
+ </div>
+</div>
+
+</body>
+</html>
diff --git a/layout/reftests/pagination/resize-reflow-001.html b/layout/reftests/pagination/resize-reflow-001.html
new file mode 100644
index 000000000..3a9acdcae
--- /dev/null
+++ b/layout/reftests/pagination/resize-reflow-001.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML>
+<html class="reftest-wait">
+<title>Resize Reflow Harness</title>
+ <style>
+ html,body { height: 100%; overflow:hidden; }
+ </style>
+<body onload="
+var iframe = document.getElementById('outer')
+iframe.style.width = '50em';
+iframe.contentDocument.body.offsetWidth;
+iframe.style.width = '28em';
+document.documentElement.className = '';
+">
+
+<iframe id="outer" src="resize-reflow-001.inner.html" height="90%" frameborder=0></iframe>
+
+<script>
+
+</script>
diff --git a/layout/reftests/pagination/resize-reflow-001.inner.html b/layout/reftests/pagination/resize-reflow-001.inner.html
new file mode 100644
index 000000000..f9b069256
--- /dev/null
+++ b/layout/reftests/pagination/resize-reflow-001.inner.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>Resize Reflow Test</title>
+ <style>
+ html, body { margin: 0; padding: 0; }
+ html { overflow: hidden }
+ </style>
+</head>
+<body>
+
+<div style="-moz-column-width: 12em;
+ border: silver solid;
+ height: 5em;">
+ <div style="border: solid;
+ background: aqua;
+ color: gray;">
+ blah<br>
+ blah<br>
+ blah<br>
+ blah
+ </div>
+</div>
+
+</body>
+</html>
diff --git a/layout/reftests/pagination/resize-reflow-001.ref.html b/layout/reftests/pagination/resize-reflow-001.ref.html
new file mode 100644
index 000000000..9053dd446
--- /dev/null
+++ b/layout/reftests/pagination/resize-reflow-001.ref.html
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>Resize Reflow Test</title>
+</head>
+<body style="width: 28em">
+
+<div style="-moz-column-width: 12em;
+ border: silver solid;
+ height: 5em;">
+ <div style="border: solid;
+ background: aqua;
+ color: gray;">
+ blah<br>
+ blah<br>
+ blah<br>
+ blah
+ </div>
+</div>
+
+</body>
+</html>
diff --git a/layout/reftests/pagination/row-page-break-after-always-1.html b/layout/reftests/pagination/row-page-break-after-always-1.html
new file mode 100644
index 000000000..f8ef3236d
--- /dev/null
+++ b/layout/reftests/pagination/row-page-break-after-always-1.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 50px; width: 50px; border:thin solid green;}
+</style>
+</head>
+<body>
+<table >
+<tbody>
+<tr style="page-break-after:always"><td><div class="spacer"></div></td></tr>
+</tbody>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/row-page-break-after-always-2.html b/layout/reftests/pagination/row-page-break-after-always-2.html
new file mode 100644
index 000000000..fe0343f6d
--- /dev/null
+++ b/layout/reftests/pagination/row-page-break-after-always-2.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 50px; width: 50px; border:thin solid green;}
+</style>
+</head>
+<body>
+<table >
+<tbody>
+<tr style="page-break-after:always"><td><div class="spacer"></div></td></tr>
+
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/rowgroup-page-break-after-always-1.html b/layout/reftests/pagination/rowgroup-page-break-after-always-1.html
new file mode 100644
index 000000000..3c6f282ac
--- /dev/null
+++ b/layout/reftests/pagination/rowgroup-page-break-after-always-1.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 50px; width: 50px; border:thin solid green;}
+</style>
+</head>
+<body>
+<table>
+<tbody style="page-break-after:always">
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/rowgroup-tfoot-page-break-after-always-1.html b/layout/reftests/pagination/rowgroup-tfoot-page-break-after-always-1.html
new file mode 100644
index 000000000..03b31c359
--- /dev/null
+++ b/layout/reftests/pagination/rowgroup-tfoot-page-break-after-always-1.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 50px; width: 50px; border:thin solid green;}
+</style>
+</head>
+<body>
+<table>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+<tbody style="page-break-after:always">
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/rowgroup-thead-page-break-after-always-1.html b/layout/reftests/pagination/rowgroup-thead-page-break-after-always-1.html
new file mode 100644
index 000000000..17c9ed680
--- /dev/null
+++ b/layout/reftests/pagination/rowgroup-thead-page-break-after-always-1.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 50px; width: 50px; border:thin solid green;}
+</style>
+</head>
+<body>
+<table>
+<thead><tr><td><div class="spacer"></div></td></tr></thead>
+<tbody style="page-break-after:always">
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-caption-splitaftercaption-1-ref.html b/layout/reftests/pagination/table-caption-splitaftercaption-1-ref.html
new file mode 100644
index 000000000..afc1bb3e6
--- /dev/null
+++ b/layout/reftests/pagination/table-caption-splitaftercaption-1-ref.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.filler {height: 1in; width: 0.5in; border:thin solid blue;}
+div.spacer { height: 0px; width: 0px; padding: 0.2in;border:thin solid green;}
+</style>
+</head>
+<body>
+<div class=filler></div>
+<table cellspacing="0" cellpadding="0" style="page-break-before:always">
+<caption><div class="spacer"></div></caption>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-caption-splitaftercaption-1.html b/layout/reftests/pagination/table-caption-splitaftercaption-1.html
new file mode 100644
index 000000000..723279502
--- /dev/null
+++ b/layout/reftests/pagination/table-caption-splitaftercaption-1.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.filler {height: 1in; width: 0.5in; border:thin solid blue;}
+div.spacer { height: 0px; width: 0px; padding: 0.2in;border:thin solid green;}
+</style>
+</head>
+<body>
+<div class=filler></div>
+<table cellspacing="0" cellpadding="0">
+<caption><div class="spacer"></div></caption>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-caption-splitaftercaption-10.html b/layout/reftests/pagination/table-caption-splitaftercaption-10.html
new file mode 100644
index 000000000..b36c44cf9
--- /dev/null
+++ b/layout/reftests/pagination/table-caption-splitaftercaption-10.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.filler {height:5px; width: 50px; border:thin solid blue;}
+div.spacer { height: 0px; width: 0px; padding: 20px;border:thin solid green;}
+caption {margin-top: 5px; margin-bottom:5px; caption-side:top-outside}
+table {margin-top: 5px; margin-bottom:5px}
+</style>
+</head>
+<body>
+
+<table cellspacing="0" cellpadding="0">
+<caption><div class="spacer" style="padding-top:160px"></div></caption>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-caption-splitaftercaption-11.html b/layout/reftests/pagination/table-caption-splitaftercaption-11.html
new file mode 100644
index 000000000..153f8b9ce
--- /dev/null
+++ b/layout/reftests/pagination/table-caption-splitaftercaption-11.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.filler {height:5px; width: 50px; border:thin solid blue;}
+div.spacer { height: 0px; width: 0px; padding: 20px;border:thin solid green;}
+caption {margin-top: 5px; margin-bottom:5px; caption-side:bottom-outside}
+table {margin-top: 5px; margin-bottom:5px}
+</style>
+</head>
+<body>
+
+<table cellspacing="0" cellpadding="0">
+<caption><div class="spacer" style="padding-top:160px"></div></caption>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-caption-splitaftercaption-2-ref.html b/layout/reftests/pagination/table-caption-splitaftercaption-2-ref.html
new file mode 100644
index 000000000..51cc19a83
--- /dev/null
+++ b/layout/reftests/pagination/table-caption-splitaftercaption-2-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.filler {height: 0.5in; width: 0.5in; border:thin solid blue;}
+div.spacer { height: 0px; width: 0px; padding: 0.2in;border:thin solid green;}
+</style>
+</head>
+<body>
+<div class=filler></div>
+<table cellspacing="0" cellpadding="0">
+<caption><div class="spacer"></div></caption>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+
+<table cellspacing="0" cellpadding="0" style="page-break-before:always">
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-caption-splitaftercaption-2.html b/layout/reftests/pagination/table-caption-splitaftercaption-2.html
new file mode 100644
index 000000000..25f247d3a
--- /dev/null
+++ b/layout/reftests/pagination/table-caption-splitaftercaption-2.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.filler {height: 0.5in; width: 0.5in; border:thin solid blue;}
+div.spacer { height: 0px; width: 0px; padding: 0.2in;border:thin solid green;}
+</style>
+</head>
+<body>
+<div class=filler></div>
+<table cellspacing="0" cellpadding="0">
+<caption><div class="spacer"></div></caption>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-caption-splitaftercaption-3-ref.html b/layout/reftests/pagination/table-caption-splitaftercaption-3-ref.html
new file mode 100644
index 000000000..5bca7e708
--- /dev/null
+++ b/layout/reftests/pagination/table-caption-splitaftercaption-3-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 0px; width: 0px; padding: 0.2in;border:thin solid green;}
+caption {margin-top: 0.1in; margin-bottom:0.2in}
+</style>
+</head>
+<body>
+
+<table cellspacing="0" cellpadding="0">
+<caption><div class="spacer"></div></caption>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+
+<table cellspacing="0" cellpadding="0" style="page-break-before:always">
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-caption-splitaftercaption-3.html b/layout/reftests/pagination/table-caption-splitaftercaption-3.html
new file mode 100644
index 000000000..c6a4fab8c
--- /dev/null
+++ b/layout/reftests/pagination/table-caption-splitaftercaption-3.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 0px; width: 0px; padding: 0.2in;border:thin solid green;}
+caption {margin-top: 0.1in; margin-bottom:0.2in}
+</style>
+</head>
+<body>
+
+<table cellspacing="0" cellpadding="0">
+<caption><div class="spacer"></div></caption>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-caption-splitaftercaption-4-ref.html b/layout/reftests/pagination/table-caption-splitaftercaption-4-ref.html
new file mode 100644
index 000000000..2d8eec74e
--- /dev/null
+++ b/layout/reftests/pagination/table-caption-splitaftercaption-4-ref.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 0px; width: 0px; padding: 0.2in;border:thin solid green;}
+caption {margin-top: 0.15in; margin-bottom:0.15in}
+table {margin-top: 0.15in; margin-bottom:0.15in}
+</style>
+</head>
+<body>
+
+<table cellspacing="0" cellpadding="0">
+<caption><div class="spacer"></div></caption>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+
+<table cellspacing="0" cellpadding="0" style="page-break-before:always">
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-caption-splitaftercaption-4.html b/layout/reftests/pagination/table-caption-splitaftercaption-4.html
new file mode 100644
index 000000000..fa1a07092
--- /dev/null
+++ b/layout/reftests/pagination/table-caption-splitaftercaption-4.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 0px; width: 0px; padding: 0.2in;border:thin solid green;}
+caption {margin-top: 0.15in; margin-bottom:0.15in}
+table {margin-top: 0.15in; margin-bottom:0.15in}
+</style>
+</head>
+<body>
+
+<table cellspacing="0" cellpadding="0">
+<caption><div class="spacer"></div></caption>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-caption-splitaftercaption-5-ref.html b/layout/reftests/pagination/table-caption-splitaftercaption-5-ref.html
new file mode 100644
index 000000000..6464a8b61
--- /dev/null
+++ b/layout/reftests/pagination/table-caption-splitaftercaption-5-ref.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 0px; width: 0px; padding: 0.2in;border:thin solid green;}
+caption {margin-top: 0.15in; margin-bottom:0.15in; caption-side:bottom}
+table {margin-top: 0.15in; margin-bottom:0.15in}
+</style>
+</head>
+<body>
+
+<table cellspacing="0" cellpadding="0">
+<caption><div class="spacer"></div></caption>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+
+<table cellspacing="0" cellpadding="0" style="page-break-before:always">
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-caption-splitaftercaption-5.html b/layout/reftests/pagination/table-caption-splitaftercaption-5.html
new file mode 100644
index 000000000..073fc43c9
--- /dev/null
+++ b/layout/reftests/pagination/table-caption-splitaftercaption-5.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 0px; width: 0px; padding: 0.2in;border:thin solid green;}
+caption {margin-top: 0.15in; margin-bottom:0.15in; caption-side:bottom}
+table {margin-top: 0.15in; margin-bottom:0.15in}
+</style>
+</head>
+<body>
+
+<table cellspacing="0" cellpadding="0">
+<caption><div class="spacer"></div></caption>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-caption-splitaftercaption-6-ref.html b/layout/reftests/pagination/table-caption-splitaftercaption-6-ref.html
new file mode 100644
index 000000000..57d1e1710
--- /dev/null
+++ b/layout/reftests/pagination/table-caption-splitaftercaption-6-ref.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 0px; width: 0px; padding: 0.2in;border:thin solid green;}
+caption {margin-top: 0.1in; margin-bottom:0.3in; caption-side:top-outside}
+table {margin-top: 0.1in; margin-bottom:0.1in}
+</style>
+</head>
+<body>
+
+<table cellspacing="0" cellpadding="0">
+<caption><div class="spacer"></div></caption>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+
+<table cellspacing="0" cellpadding="0" style="page-break-before:always">
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-caption-splitaftercaption-6.html b/layout/reftests/pagination/table-caption-splitaftercaption-6.html
new file mode 100644
index 000000000..14d757de1
--- /dev/null
+++ b/layout/reftests/pagination/table-caption-splitaftercaption-6.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 0px; width: 0px; padding: 0.2in;border:thin solid green;}
+caption {margin-top: 0.1in; margin-bottom:0.3in; caption-side:top-outside}
+table {margin-top: 0.1in; margin-bottom:0.1in}
+</style>
+</head>
+<body>
+
+<table cellspacing="0" cellpadding="0">
+<caption><div class="spacer"></div></caption>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-caption-splitaftercaption-7-ref.html b/layout/reftests/pagination/table-caption-splitaftercaption-7-ref.html
new file mode 100644
index 000000000..2854bb6eb
--- /dev/null
+++ b/layout/reftests/pagination/table-caption-splitaftercaption-7-ref.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 0px; width: 0px; padding: 0.2in;border:thin solid green;}
+caption {margin-top: 0.1in; margin-bottom:0.3in; caption-side:bottom-outside}
+table {margin-top: 0.1in; margin-bottom:0.1in}
+</style>
+</head>
+<body>
+
+<table cellspacing="0" cellpadding="0">
+<caption><div class="spacer"></div></caption>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+
+<table cellspacing="0" cellpadding="0" style="page-break-before:always">
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-caption-splitaftercaption-7.html b/layout/reftests/pagination/table-caption-splitaftercaption-7.html
new file mode 100644
index 000000000..b1d0d2be1
--- /dev/null
+++ b/layout/reftests/pagination/table-caption-splitaftercaption-7.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 0px; width: 0px; padding: 0.2in;border:thin solid green;}
+caption {margin-top: 0.1in; margin-bottom:0.3in; caption-side:bottom-outside}
+table {margin-top: 0.1in; margin-bottom:0.1in}
+</style>
+</head>
+<body>
+
+<table cellspacing="0" cellpadding="0">
+<caption><div class="spacer"></div></caption>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-caption-splitaftercaption-8.html b/layout/reftests/pagination/table-caption-splitaftercaption-8.html
new file mode 100644
index 000000000..13ccc66a3
--- /dev/null
+++ b/layout/reftests/pagination/table-caption-splitaftercaption-8.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.filler {height:5px; width: 50px; border:thin solid blue;}
+div.spacer { height: 0px; width: 0px; padding: 20px;border:thin solid green;}
+tfoot div {border-color:orange;}
+caption {margin-top: 5px; margin-bottom:5px; caption-side:top}
+table {margin-top: 5px; margin-bottom:5px}
+</style>
+</head>
+<body>
+
+<table cellspacing="0" cellpadding="0">
+<caption><div class="spacer" style="padding-top:160px"></div></caption>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-caption-splitaftercaption-9.html b/layout/reftests/pagination/table-caption-splitaftercaption-9.html
new file mode 100644
index 000000000..4c246bf18
--- /dev/null
+++ b/layout/reftests/pagination/table-caption-splitaftercaption-9.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.filler {height:5px; width: 50px; border:thin solid blue;}
+div.spacer { height: 0px; width: 0px; padding: 20px;border:thin solid green;}
+caption {margin-top: 5px; margin-bottom:5px; caption-side:bottom}
+table {margin-top: 5px; margin-bottom:5px}
+tfoot div.spacer {border-color:orange;}
+tbody div.spacer{border-width: 4px}
+</style>
+</head>
+<body>
+
+<table cellspacing="0" cellpadding="0">
+<caption><div class="spacer" style="padding-top:1060px"></div></caption>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-caption-splitrowgroup-1-ref.html b/layout/reftests/pagination/table-caption-splitrowgroup-1-ref.html
new file mode 100644
index 000000000..34700dd60
--- /dev/null
+++ b/layout/reftests/pagination/table-caption-splitrowgroup-1-ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.filler {height: 80px; width: 50px; border:thin solid blue;}
+div.spacer { height: 0px; width: 0px; padding: 20px;border:thin solid green;}
+</style>
+</head>
+<body>
+<div class=filler></div>
+<table cellspacing="0" cellpadding="0">
+<caption><div class="spacer"></div></caption>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+
+<table cellspacing="0" cellpadding="0" style="page-break-before:always">
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-caption-splitrowgroup-1.html b/layout/reftests/pagination/table-caption-splitrowgroup-1.html
new file mode 100644
index 000000000..aa8c71364
--- /dev/null
+++ b/layout/reftests/pagination/table-caption-splitrowgroup-1.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.filler {height: 80px; width: 50px; border:thin solid blue;}
+div.spacer { height: 0px; width: 0px; padding: 20px;border:thin solid green;}
+</style>
+</head>
+<body>
+<div class=filler></div>
+<table cellspacing="0" cellpadding="0">
+<caption><div class="spacer"></div></caption>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-page-break-after-always-1.html b/layout/reftests/pagination/table-page-break-after-always-1.html
new file mode 100644
index 000000000..b9686f4a1
--- /dev/null
+++ b/layout/reftests/pagination/table-page-break-after-always-1.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 50px; width: 50px; border:thin solid green;}
+</style>
+</head>
+<body>
+<table style="page-break-after:always">
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+<table>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-page-break-after-left-1.html b/layout/reftests/pagination/table-page-break-after-left-1.html
new file mode 100644
index 000000000..9042b9a80
--- /dev/null
+++ b/layout/reftests/pagination/table-page-break-after-left-1.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 50px; width: 50px; border:thin solid green;}
+</style>
+</head>
+<body>
+<table style="page-break-after:right">
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+<table>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-page-break-after-right-1.html b/layout/reftests/pagination/table-page-break-after-right-1.html
new file mode 100644
index 000000000..9042b9a80
--- /dev/null
+++ b/layout/reftests/pagination/table-page-break-after-right-1.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 50px; width: 50px; border:thin solid green;}
+</style>
+</head>
+<body>
+<table style="page-break-after:right">
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+<table>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-page-break-before-always-1-ref.html b/layout/reftests/pagination/table-page-break-before-always-1-ref.html
new file mode 100644
index 000000000..94ca757f3
--- /dev/null
+++ b/layout/reftests/pagination/table-page-break-before-always-1-ref.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 50px; width: 50px; border:thin solid green;}
+</style>
+</head>
+<body>
+<table>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+<table style="page-break-before:always">
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-page-break-before-always-1.html b/layout/reftests/pagination/table-page-break-before-always-1.html
new file mode 100644
index 000000000..94ca757f3
--- /dev/null
+++ b/layout/reftests/pagination/table-page-break-before-always-1.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 50px; width: 50px; border:thin solid green;}
+</style>
+</head>
+<body>
+<table>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+<table style="page-break-before:always">
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-page-break-before-auto-1-ref.html b/layout/reftests/pagination/table-page-break-before-auto-1-ref.html
new file mode 100644
index 000000000..3ed19446a
--- /dev/null
+++ b/layout/reftests/pagination/table-page-break-before-auto-1-ref.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 50px; width: 50px; border:thin solid green;}
+</style>
+</head>
+<body>
+<table>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+<table>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-page-break-before-auto-1.html b/layout/reftests/pagination/table-page-break-before-auto-1.html
new file mode 100644
index 000000000..96d53d116
--- /dev/null
+++ b/layout/reftests/pagination/table-page-break-before-auto-1.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 50px; width: 50px; border:thin solid green;}
+</style>
+</head>
+<body>
+<table>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+<table style= "page-break-before: auto">
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-page-break-before-auto-2-ref.html b/layout/reftests/pagination/table-page-break-before-auto-2-ref.html
new file mode 100644
index 000000000..efe7853c9
--- /dev/null
+++ b/layout/reftests/pagination/table-page-break-before-auto-2-ref.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 50px; width: 50px; border:thin solid green;}
+</style>
+</head>
+<body>
+<table>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+<div style= "page-break-after: always"></div>
+<table>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-page-break-before-auto-2.html b/layout/reftests/pagination/table-page-break-before-auto-2.html
new file mode 100644
index 000000000..c5b37e875
--- /dev/null
+++ b/layout/reftests/pagination/table-page-break-before-auto-2.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 50px; width: 50px; border:thin solid green;}
+</style>
+</head>
+<body>
+<table>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+
+<div style="height: 1.4in;"></div>
+
+<table style= "page-break-before: auto">
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-page-break-before-auto-3-ref.html b/layout/reftests/pagination/table-page-break-before-auto-3-ref.html
new file mode 100644
index 000000000..002724ab5
--- /dev/null
+++ b/layout/reftests/pagination/table-page-break-before-auto-3-ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 50px; width: 50px; border:thin solid green;}
+</style>
+</head>
+<body>
+<table>
+<thead><tr><td><div class="spacer"></div></td></tr></thead>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+<div style= "page-break-after: always"></div>
+<table>
+<thead><tr><td><div class="spacer"></div></td></tr></thead>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-page-break-before-avoid-1.html b/layout/reftests/pagination/table-page-break-before-avoid-1.html
new file mode 100644
index 000000000..39b8bd89c
--- /dev/null
+++ b/layout/reftests/pagination/table-page-break-before-avoid-1.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 50px; width: 50px; border:thin solid green;}
+</style>
+</head>
+<body>
+<table>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+<div style= "height: 1.4in"></div>
+<table style="page-break-before:avoid">
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-page-break-before-left-1.html b/layout/reftests/pagination/table-page-break-before-left-1.html
new file mode 100644
index 000000000..21f622a68
--- /dev/null
+++ b/layout/reftests/pagination/table-page-break-before-left-1.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 50px; width: 50px; border:thin solid green;}
+</style>
+</head>
+<body>
+<table>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+<table style="page-break-before:left">
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-page-break-before-right-1.html b/layout/reftests/pagination/table-page-break-before-right-1.html
new file mode 100644
index 000000000..a372440f1
--- /dev/null
+++ b/layout/reftests/pagination/table-page-break-before-right-1.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 50px; width: 50px; border:thin solid green;}
+</style>
+</head>
+<body>
+<table>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+<table style="page-break-before:right">
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-tfoot-thead-1-ref.html b/layout/reftests/pagination/table-tfoot-thead-1-ref.html
new file mode 100644
index 000000000..2348f8269
--- /dev/null
+++ b/layout/reftests/pagination/table-tfoot-thead-1-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.filler {height:5px; width: 50px; border:thin solid blue;}
+div.spacer { height: 0px; width: 0px; padding: 5px;border:thin solid green;}
+tfoot div.spacer {border-color:orange;
+height: 10px}
+tbody div.spacer{border-width: 4px}
+thead div.spacer{height: 140px}
+</style>
+</head>
+<body>
+<div class="filler"></div>
+<table cellspacing="1" cellpadding="0">
+<thead><tr><td><div class="spacer"></div></td></tr></thead>
+<tbody><tr><td><div class="spacer"></div></td></tr></tbody>
+</table>
+
+<table cellspacing="1" cellpadding="0">
+<tbody> <tr><td><div class="spacer"></div></td></tr></tbody>
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+</table>
+
+</body>
+</html>
diff --git a/layout/reftests/pagination/table-tfoot-thead-1.html b/layout/reftests/pagination/table-tfoot-thead-1.html
new file mode 100644
index 000000000..ae523ee24
--- /dev/null
+++ b/layout/reftests/pagination/table-tfoot-thead-1.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.filler {height:5px; width: 50px; border:thin solid blue;}
+div.spacer { height: 0px; width: 0px; padding: 5px;border:thin solid green;}
+tfoot div.spacer {border-color:orange;
+height: 10px}
+tbody div.spacer{border-width: 4px}
+thead div.spacer{height: 140px}
+</style>
+</head>
+<body>
+<div class="filler"></div>
+<table cellspacing="1" cellpadding="0">
+<tfoot><tr><td><div class="spacer"></div></td></tr></tfoot>
+<tbody>
+ <tr><td><div class="spacer"></div></td></tr>
+ <tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<thead><tr><td><div class="spacer"></div></td></tr></thead>
+</table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/table_internal_pagebreak-1.html b/layout/reftests/pagination/table_internal_pagebreak-1.html
new file mode 100644
index 000000000..418b1cc1d
--- /dev/null
+++ b/layout/reftests/pagination/table_internal_pagebreak-1.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en-US" class="reftest-print">
+<head>
+<style type="text/css">
+div.spacer { height: 50px; width: 50px; border:thin solid green;}
+</style>
+</head>
+<body>
+<table><tr><td>
+<table>
+<tbody style="page-break-after:always">
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+<tbody>
+<tr><td><div class="spacer"></div></td></tr>
+</tbody>
+</table>
+</td></tr></table>
+</body>
+</html>