summaryrefslogtreecommitdiffstats
path: root/layout/reftests/pagination
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /layout/reftests/pagination
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'layout/reftests/pagination')
-rw-r--r--layout/reftests/pagination/1108104-ref.html33
-rw-r--r--layout/reftests/pagination/1108104.html30
-rw-r--r--layout/reftests/pagination/115199-1-ref.html20
-rw-r--r--layout/reftests/pagination/115199-1.html25
-rw-r--r--layout/reftests/pagination/115199-2-ref.html18
-rw-r--r--layout/reftests/pagination/115199-2a.html24
-rw-r--r--layout/reftests/pagination/115199-2b.html24
-rw-r--r--layout/reftests/pagination/1166147-ref.html35
-rw-r--r--layout/reftests/pagination/1166147.html36
-rw-r--r--layout/reftests/pagination/129941-1-ref.html10
-rw-r--r--layout/reftests/pagination/129941-1a.html10
-rw-r--r--layout/reftests/pagination/129941-1b.html10
-rw-r--r--layout/reftests/pagination/129941-1c.html10
-rw-r--r--layout/reftests/pagination/129941-1d.html10
-rw-r--r--layout/reftests/pagination/129941-1e-ref.html10
-rw-r--r--layout/reftests/pagination/129941-1e.html10
-rw-r--r--layout/reftests/pagination/1321803-1-ref.html10
-rw-r--r--layout/reftests/pagination/1321803-1a.html10
-rw-r--r--layout/reftests/pagination/1404868-1-ref.html27
-rw-r--r--layout/reftests/pagination/1404868-1.html27
-rw-r--r--layout/reftests/pagination/1406050-1-ref.html18
-rw-r--r--layout/reftests/pagination/1406050-1.html21
-rw-r--r--layout/reftests/pagination/1406291-1-ref.html16
-rw-r--r--layout/reftests/pagination/1406291-1.html23
-rw-r--r--layout/reftests/pagination/1409585-1-ref.html38
-rw-r--r--layout/reftests/pagination/1409585-1.html48
-rw-r--r--layout/reftests/pagination/1411799-1-ref.html39
-rw-r--r--layout/reftests/pagination/1411799-1.html38
-rw-r--r--layout/reftests/pagination/1420528-1-ref.html16
-rw-r--r--layout/reftests/pagination/1420528-1.html12
-rw-r--r--layout/reftests/pagination/1427141-1.html39
-rw-r--r--layout/reftests/pagination/1427141-2.html39
-rw-r--r--layout/reftests/pagination/1427141-ref.html31
-rw-r--r--layout/reftests/pagination/1468654-1-ref.html60
-rw-r--r--layout/reftests/pagination/1468654-1.html51
-rw-r--r--layout/reftests/pagination/1596310-ref.html17
-rw-r--r--layout/reftests/pagination/1596310.html19
-rw-r--r--layout/reftests/pagination/272830-1-ref.html22
-rw-r--r--layout/reftests/pagination/272830-1.html22
-rw-r--r--layout/reftests/pagination/318022-1-ref.html13
-rw-r--r--layout/reftests/pagination/318022-1.html15
-rw-r--r--layout/reftests/pagination/381497-f.html10
-rw-r--r--layout/reftests/pagination/381497-n.html16
-rw-r--r--layout/reftests/pagination/403669-1-ref.html12
-rw-r--r--layout/reftests/pagination/403669-1.html13
-rw-r--r--layout/reftests/pagination/577450-1-ref.html8
-rw-r--r--layout/reftests/pagination/577450-1.html8
-rw-r--r--layout/reftests/pagination/609227-1-ref.html12
-rw-r--r--layout/reftests/pagination/609227-1.html13
-rw-r--r--layout/reftests/pagination/609227-2-ref.html9
-rw-r--r--layout/reftests/pagination/609227-2a.html12
-rw-r--r--layout/reftests/pagination/609227-2b.html12
-rw-r--r--layout/reftests/pagination/626395-1-ref.html8
-rw-r--r--layout/reftests/pagination/626395-1a.html9
-rw-r--r--layout/reftests/pagination/626395-1b.html9
-rw-r--r--layout/reftests/pagination/626395-2-ref.html7
-rw-r--r--layout/reftests/pagination/626395-2a.html9
-rw-r--r--layout/reftests/pagination/626395-2b.html9
-rw-r--r--layout/reftests/pagination/626395-2c.html9
-rw-r--r--layout/reftests/pagination/626395-2d.html9
-rw-r--r--layout/reftests/pagination/652178-1-ref.html14
-rw-r--r--layout/reftests/pagination/652178-1-ref2.html14
-rw-r--r--layout/reftests/pagination/652178-1.html17
-rw-r--r--layout/reftests/pagination/745025-1-ref.html9
-rw-r--r--layout/reftests/pagination/745025-1.html18
-rw-r--r--layout/reftests/pagination/820496-1-ref.html7
-rw-r--r--layout/reftests/pagination/820496-1.html6
-rw-r--r--layout/reftests/pagination/960822-ref.html7
-rw-r--r--layout/reftests/pagination/960822.html7
-rw-r--r--layout/reftests/pagination/966419-1-ref.html9
-rw-r--r--layout/reftests/pagination/966419-1.html9
-rw-r--r--layout/reftests/pagination/966419-2-ref.html9
-rw-r--r--layout/reftests/pagination/966419-2.html9
-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-breaking-dynamic-001-ref.html41
-rw-r--r--layout/reftests/pagination/abspos-breaking-dynamic-001.html44
-rw-r--r--layout/reftests/pagination/abspos-breaking-dynamic-002-ref.html39
-rw-r--r--layout/reftests/pagination/abspos-breaking-dynamic-002.html44
-rw-r--r--layout/reftests/pagination/abspos-breaking-dynamic-003-ref.html49
-rw-r--r--layout/reftests/pagination/abspos-breaking-dynamic-003.html49
-rw-r--r--layout/reftests/pagination/abspos-breaking-dynamic-004.html46
-rw-r--r--layout/reftests/pagination/abspos-breaking-dynamic-005-ref.html37
-rw-r--r--layout/reftests/pagination/abspos-breaking-dynamic-005.html44
-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/bfc-001-ref.html19
-rw-r--r--layout/reftests/pagination/bfc-001.html25
-rw-r--r--layout/reftests/pagination/bfc-002.html25
-rw-r--r--layout/reftests/pagination/bfc-003.html25
-rw-r--r--layout/reftests/pagination/bfc-004-ref.html24
-rw-r--r--layout/reftests/pagination/bfc-004.html30
-rw-r--r--layout/reftests/pagination/bfc-005.html30
-rw-r--r--layout/reftests/pagination/bfc-006-ref.html19
-rw-r--r--layout/reftests/pagination/bfc-006.html25
-rw-r--r--layout/reftests/pagination/bfc-007.html25
-rw-r--r--layout/reftests/pagination/bfc-008.html25
-rw-r--r--layout/reftests/pagination/blank.html1
-rw-r--r--layout/reftests/pagination/block-max-height-001-ref.html21
-rw-r--r--layout/reftests/pagination/block-max-height-001.html21
-rw-r--r--layout/reftests/pagination/block-max-height-002.html21
-rw-r--r--layout/reftests/pagination/block-min-height-001-ref.html21
-rw-r--r--layout/reftests/pagination/block-min-height-001.html21
-rw-r--r--layout/reftests/pagination/block-min-height-002.html21
-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.html31
-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/contain-size-break-001-ref.html20
-rw-r--r--layout/reftests/pagination/contain-size-break-001.html29
-rw-r--r--layout/reftests/pagination/contain-size-break-002-ref.html26
-rw-r--r--layout/reftests/pagination/contain-size-break-002.html33
-rw-r--r--layout/reftests/pagination/contain-size-break-003-ref.html15
-rw-r--r--layout/reftests/pagination/contain-size-break-003.html20
-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/content-url-element.html9
-rw-r--r--layout/reftests/pagination/content-url-pseudo-ref.html11
-rw-r--r--layout/reftests/pagination/content-url-pseudo.html10
-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/fieldset-001-grid.html26
-rw-r--r--layout/reftests/pagination/fieldset-001-ref.html24
-rw-r--r--layout/reftests/pagination/fieldset-001.html24
-rw-r--r--layout/reftests/pagination/fieldset-002-ref.html24
-rw-r--r--layout/reftests/pagination/fieldset-002.html23
-rw-r--r--layout/reftests/pagination/fieldset-003-ref.html33
-rw-r--r--layout/reftests/pagination/fieldset-003.html29
-rw-r--r--layout/reftests/pagination/fieldset-004-ref.html37
-rw-r--r--layout/reftests/pagination/fieldset-004.html31
-rw-r--r--layout/reftests/pagination/fieldset-005-ref.html36
-rw-r--r--layout/reftests/pagination/fieldset-005.html30
-rw-r--r--layout/reftests/pagination/fieldset-006-ref.html40
-rw-r--r--layout/reftests/pagination/fieldset-006.html32
-rw-r--r--layout/reftests/pagination/fieldset-007-ref.html32
-rw-r--r--layout/reftests/pagination/fieldset-007.html31
-rw-r--r--layout/reftests/pagination/fieldset-008-ref.html39
-rw-r--r--layout/reftests/pagination/fieldset-008.html29
-rw-r--r--layout/reftests/pagination/fieldset-009-ref.html35
-rw-r--r--layout/reftests/pagination/fieldset-009.html30
-rw-r--r--layout/reftests/pagination/fieldset-00A-ref.html30
-rw-r--r--layout/reftests/pagination/fieldset-00A.html31
-rw-r--r--layout/reftests/pagination/fieldset-00B-ref.html36
-rw-r--r--layout/reftests/pagination/fieldset-00B.html32
-rw-r--r--layout/reftests/pagination/fieldset-00C-ref.html33
-rw-r--r--layout/reftests/pagination/fieldset-00C.html33
-rw-r--r--layout/reftests/pagination/fieldset-00D-ref.html31
-rw-r--r--layout/reftests/pagination/fieldset-00D.html34
-rw-r--r--layout/reftests/pagination/fieldset-00E-ref.html34
-rw-r--r--layout/reftests/pagination/fieldset-00E.html31
-rw-r--r--layout/reftests/pagination/fieldset-00F-ref.html32
-rw-r--r--layout/reftests/pagination/fieldset-00F.html32
-rw-r--r--layout/reftests/pagination/fieldset-00G-ref.html34
-rw-r--r--layout/reftests/pagination/fieldset-00G.html33
-rw-r--r--layout/reftests/pagination/fieldset-00H-grid.html27
-rw-r--r--layout/reftests/pagination/fieldset-00H-ref.html26
-rw-r--r--layout/reftests/pagination/fieldset-00H.html25
-rw-r--r--layout/reftests/pagination/fieldset-00I-grid.html35
-rw-r--r--layout/reftests/pagination/fieldset-00I-ref.html34
-rw-r--r--layout/reftests/pagination/fieldset-00I.html33
-rw-r--r--layout/reftests/pagination/fieldset-00J-grid.html34
-rw-r--r--layout/reftests/pagination/fieldset-00J-ref.html31
-rw-r--r--layout/reftests/pagination/fieldset-00J.html32
-rw-r--r--layout/reftests/pagination/fieldset-00K-ref.html31
-rw-r--r--layout/reftests/pagination/fieldset-00K.html32
-rw-r--r--layout/reftests/pagination/fieldset-00L-ref.html33
-rw-r--r--layout/reftests/pagination/fieldset-00L.html33
-rw-r--r--layout/reftests/pagination/fieldset-00M-ref.html28
-rw-r--r--layout/reftests/pagination/fieldset-00M.html28
-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-001-print.html36
-rw-r--r--layout/reftests/pagination/float-clear-002-print.html36
-rw-r--r--layout/reftests/pagination/float-clear-003-print.html45
-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/image.html4
-rw-r--r--layout/reftests/pagination/inline-block-frag-offset-1-ref.html35
-rw-r--r--layout/reftests/pagination/inline-block-frag-offset-1.html34
-rw-r--r--layout/reftests/pagination/inline-block-frag-offset-2-ref.html37
-rw-r--r--layout/reftests/pagination/inline-block-frag-offset-2.html35
-rw-r--r--layout/reftests/pagination/inline-block-frag-simple-1-ref.html25
-rw-r--r--layout/reftests/pagination/inline-block-frag-simple-1.html25
-rw-r--r--layout/reftests/pagination/inline-block-frag-simple-2-ref.html26
-rw-r--r--layout/reftests/pagination/inline-block-frag-simple-2.html26
-rw-r--r--layout/reftests/pagination/inline-block-frag-text-1-ref.html47
-rw-r--r--layout/reftests/pagination/inline-block-frag-text-1.html38
-rw-r--r--layout/reftests/pagination/inline-block-slice-1-ref.html37
-rw-r--r--layout/reftests/pagination/inline-block-slice-1.html37
-rw-r--r--layout/reftests/pagination/inline-block-slice-1b-ref.html38
-rw-r--r--layout/reftests/pagination/inline-block-slice-1b.html38
-rw-r--r--layout/reftests/pagination/inline-block-slice-1c-ref.html38
-rw-r--r--layout/reftests/pagination/inline-block-slice-1c.html38
-rw-r--r--layout/reftests/pagination/inline-block-slice-2-ref.html40
-rw-r--r--layout/reftests/pagination/inline-block-slice-2.html40
-rw-r--r--layout/reftests/pagination/inline-block-slice-2b-ref.html41
-rw-r--r--layout/reftests/pagination/inline-block-slice-2b.html41
-rw-r--r--layout/reftests/pagination/inline-block-slice-2c-ref.html41
-rw-r--r--layout/reftests/pagination/inline-block-slice-2c.html41
-rw-r--r--layout/reftests/pagination/inline-block-slice-3-ref.html46
-rw-r--r--layout/reftests/pagination/inline-block-slice-3.html48
-rw-r--r--layout/reftests/pagination/inline-block-slice-3b-ref.html47
-rw-r--r--layout/reftests/pagination/inline-block-slice-3b.html49
-rw-r--r--layout/reftests/pagination/inline-block-slice-3c-ref.html47
-rw-r--r--layout/reftests/pagination/inline-block-slice-3c.html49
-rw-r--r--layout/reftests/pagination/inline-block-slice-4-ref.html47
-rw-r--r--layout/reftests/pagination/inline-block-slice-4.html49
-rw-r--r--layout/reftests/pagination/inline-block-slice-4b-ref.html48
-rw-r--r--layout/reftests/pagination/inline-block-slice-4b.html50
-rw-r--r--layout/reftests/pagination/inline-block-slice-4c-ref.html48
-rw-r--r--layout/reftests/pagination/inline-block-slice-4c.html50
-rw-r--r--layout/reftests/pagination/inline-block-slice-5-ref.html45
-rw-r--r--layout/reftests/pagination/inline-block-slice-5.html43
-rw-r--r--layout/reftests/pagination/inline-block-slice-5b-ref.html48
-rw-r--r--layout/reftests/pagination/inline-block-slice-5b.html46
-rw-r--r--layout/reftests/pagination/inline-block-slice-5c-ref.html48
-rw-r--r--layout/reftests/pagination/inline-block-slice-5c.html46
-rw-r--r--layout/reftests/pagination/inline-block-slice-6-ref.html46
-rw-r--r--layout/reftests/pagination/inline-block-slice-6.html44
-rw-r--r--layout/reftests/pagination/inline-block-slice-6b-ref.html47
-rw-r--r--layout/reftests/pagination/inline-block-slice-6b.html45
-rw-r--r--layout/reftests/pagination/inline-block-slice-6c-ref.html48
-rw-r--r--layout/reftests/pagination/inline-block-slice-6c.html46
-rw-r--r--layout/reftests/pagination/inline-block-slice-7-ref.html49
-rw-r--r--layout/reftests/pagination/inline-block-slice-7.html52
-rw-r--r--layout/reftests/pagination/inline-block-slice-8-ref.html39
-rw-r--r--layout/reftests/pagination/inline-block-slice-8.html37
-rw-r--r--layout/reftests/pagination/inline-block-slice-8b-ref.html40
-rw-r--r--layout/reftests/pagination/inline-block-slice-8b.html38
-rw-r--r--layout/reftests/pagination/inline-block-slice-8c-ref.html39
-rw-r--r--layout/reftests/pagination/inline-block-slice-8c.html38
-rw-r--r--layout/reftests/pagination/quirks-notref.html5
-rw-r--r--layout/reftests/pagination/quirks-ref.html6
-rw-r--r--layout/reftests/pagination/quirks.html10
-rw-r--r--layout/reftests/pagination/reftest.list205
-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-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-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-cell-breaking-1-ref.html26
-rw-r--r--layout/reftests/pagination/table-cell-breaking-1a.html34
-rw-r--r--layout/reftests/pagination/table-cell-breaking-1b.html34
-rw-r--r--layout/reftests/pagination/table-cell-breaking-2-ref.html39
-rw-r--r--layout/reftests/pagination/table-cell-breaking-2a.html35
-rw-r--r--layout/reftests/pagination/table-cell-breaking-2b.html35
-rw-r--r--layout/reftests/pagination/table-cell-breaking-3-ref.html26
-rw-r--r--layout/reftests/pagination/table-cell-breaking-3a-ref.html30
-rw-r--r--layout/reftests/pagination/table-cell-breaking-3a.html36
-rw-r--r--layout/reftests/pagination/table-cell-breaking-3b.html36
-rw-r--r--layout/reftests/pagination/table-nested-1308876-1-ref.html20
-rw-r--r--layout/reftests/pagination/table-nested-1308876-1.xhtml29
-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
-rw-r--r--layout/reftests/pagination/test-async-paged.html33
330 files changed, 10399 insertions, 0 deletions
diff --git a/layout/reftests/pagination/1108104-ref.html b/layout/reftests/pagination/1108104-ref.html
new file mode 100644
index 0000000000..18de030c38
--- /dev/null
+++ b/layout/reftests/pagination/1108104-ref.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <meta charset="utf-8">
+ <style type="text/css" media="all">
+@font-face {
+ font-family: 'dvsm';
+ font-style: normal;
+ font-weight: 200;
+ src: url(../fonts/DejaVuSansMono.woff) format('truetype');
+}
+body,html {margin:0; padding:0;}
+.header{
+ font-family: 'dvsm';
+ position:absolute;
+ top:0;
+ left:0;
+ right:0;
+}
+</style>
+</head>
+<body>
+
+ <div class="header">This is a header!</div>
+
+ <p>I'm a paragraph (0)</p>
+ <div style="page-break-before:always;"></div>
+ <div style="height:1px; font-family: 'dvsm';">This is a header!</div>
+ <p style="margin-top:-1px; padding-top:2em;">I'm a paragraph (1)</p>
+
+
+</body>
+</html>
diff --git a/layout/reftests/pagination/1108104.html b/layout/reftests/pagination/1108104.html
new file mode 100644
index 0000000000..46b010d8e0
--- /dev/null
+++ b/layout/reftests/pagination/1108104.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <meta charset="utf-8">
+ <style type="text/css" media="all">
+@font-face {
+ font-family: 'dvsm';
+ font-style: normal;
+ font-weight: 200;
+ src: url(../fonts/DejaVuSansMono.woff) format('truetype');
+}
+body,html {margin:0; padding:0;}
+.header{
+ font-family: 'dvsm';
+ position:fixed;
+ top:0px;
+ left:0;
+ right:0;
+}
+</style>
+</head>
+<body>
+
+ <div class="header">This is a header!</div>
+
+ <p>I'm a paragraph (0)</p>
+ <p style="page-break-before:always; padding-top:2em;">I'm a paragraph (1)</p>
+
+</body>
+</html>
diff --git a/layout/reftests/pagination/115199-1-ref.html b/layout/reftests/pagination/115199-1-ref.html
new file mode 100644
index 0000000000..d1382d036d
--- /dev/null
+++ b/layout/reftests/pagination/115199-1-ref.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <style>
+ * {
+ margin: 0;
+ padding: 0;
+ }
+ body {
+ margin: 0.1in 0.1in;
+ }
+ div {
+ border: 0.25in solid green;
+ }
+ </style>
+</head>
+<body>
+ <div></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/115199-1.html b/layout/reftests/pagination/115199-1.html
new file mode 100644
index 0000000000..b805466194
--- /dev/null
+++ b/layout/reftests/pagination/115199-1.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <style>
+ @page {
+ /*
+ * Default page margins are .5in and the reference file adds .1inch margin
+ * to the body hence we do .6in to match this.
+ */
+ margin: 0.6in;
+ }
+ * {
+ margin: 0;
+ padding: 0;
+ }
+ div {
+ width: 100%;
+ border: 0.25in solid green;
+ }
+ </style>
+</head>
+<body>
+ <div></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/115199-2-ref.html b/layout/reftests/pagination/115199-2-ref.html
new file mode 100644
index 0000000000..19745efc2f
--- /dev/null
+++ b/layout/reftests/pagination/115199-2-ref.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <style>
+ * {
+ margin: 0;
+ padding: 0;
+ }
+ div {
+ width: 100%;
+ border: 0.25in solid green;
+ }
+ </style>
+</head>
+<body>
+ <div></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/115199-2a.html b/layout/reftests/pagination/115199-2a.html
new file mode 100644
index 0000000000..16f75fcb2c
--- /dev/null
+++ b/layout/reftests/pagination/115199-2a.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <style>
+ @page {
+ /*
+ * Test a margin that causes the page to have zero width.
+ */
+ margin: 0 2.5in;
+ }
+ * {
+ margin: 0;
+ padding: 0;
+ }
+ div {
+ width: 100%;
+ border: 0.25in solid green;
+ }
+ </style>
+</head>
+<body>
+ <div></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/115199-2b.html b/layout/reftests/pagination/115199-2b.html
new file mode 100644
index 0000000000..c92380523b
--- /dev/null
+++ b/layout/reftests/pagination/115199-2b.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <style>
+ @page {
+ /*
+ * Test huge margins, they should be reset back the default margin size.
+ */
+ margin: 10in;
+ }
+ * {
+ margin: 0;
+ padding: 0;
+ }
+ div {
+ width: 100%;
+ border: 0.25in solid green;
+ }
+ </style>
+</head>
+<body>
+ <div></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/1166147-ref.html b/layout/reftests/pagination/1166147-ref.html
new file mode 100644
index 0000000000..25f50d5f2f
--- /dev/null
+++ b/layout/reftests/pagination/1166147-ref.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!--
+This test passes if the pages generated are identical for both vertical-lr and
+horizontal-tb writing-modes by means of making the size of the content we are
+printing equal to exactly the same number of pages being generated in each
+writing mode.
+This sizing is calculated like so:
+
+1. It is important to note that irrespective of the writing-mode, the print
+ UI always lays out printed pages vertically. Therefore, it is possible
+ to equate the printed content of two different writing modes if both
+ cases generate the exact same number of pages (and of course no text on
+ the pages, which is why we use background color since it is independent
+ of writing mode).
+2. To avoid an unnecessary vertical scrollbar (since scrolled content will be
+ clipped anyway in the reftest snapshot), the maximum number of 5X3in pages
+ that we should generate for the reftest snapshot are equal to 3.
+3. Considering a margin of 0.5in on each side of the 5X3in page, we get the
+ size of the page content area to be 4X2in per page and to generate exactly 3
+ printed pages from this in horizontal-tb writing mode, we need a printable
+ area of 4X6in (as used below).
+
+Similarly, the size for the test case printable area is calculated, only
+considering a vertical-rl writing mode.
+
+It is important to note here that when printing this test outside of the test
+harness, the background color will not show since we omit printing and
+previewing of background colors by default via the browser printing path.
+-->
+<html class="reftest-paged">
+ <body style="margin:0;">
+ <div style="background: teal; width:4in; height:6in;">
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/layout/reftests/pagination/1166147.html b/layout/reftests/pagination/1166147.html
new file mode 100644
index 0000000000..585f55fd30
--- /dev/null
+++ b/layout/reftests/pagination/1166147.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<!--
+This test checks if content is paginated correctly in the horizontal
+direction when printing. The test passes if the pages generated
+are identical for both vertical-lr and horizontal-tb writing-modes by means of
+making the size of the content we are printing equal to exactly the same number
+of pages being generated in each writing mode.
+This sizing is calculated like so:
+
+1. It is important to note that irrespective of the writing-mode, the print
+ UI always lays out printed pages vertically. Therefore, it is possible
+ to equate the printed content of two different writing modes if both
+ cases generate the exact same number of pages (and of course no text on
+ the pages, which is why we use background color since it is independent
+ of writing mode).
+2. To avoid an unnecessary vertical scrollbar (since scrolled content will be
+ clipped anyway in the reftest snapshot), the maximum number of 5X3in pages
+ that we should generate for the reftest snapshot are equal to 3.
+3. Considering a margin of 0.5in on each side of the 5X3in page, we get the
+ size of the page content area to be 4X2in per page and to generate exactly 3
+ printed pages from this in the vertical-rl writing mode, we need a printable
+ area of 12X2in (as used below).
+
+Similarly, the size for the reference printable area is calculated, only
+considering a horizontal-tb writing mode.
+
+It is important to note here that when printing this test outside of the test
+harness, the background color will not show since we omit printing and
+previewing of background colors by default via the browser printing path.
+-->
+<html class="reftest-paged" style="writing-mode: vertical-rl;">
+ <body style="margin:0;">
+ <div style="background: teal; width:12in; height:2in;">
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/layout/reftests/pagination/129941-1-ref.html b/layout/reftests/pagination/129941-1-ref.html
new file mode 100644
index 0000000000..ac934f4de8
--- /dev/null
+++ b/layout/reftests/pagination/129941-1-ref.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html class="reftest-paged" style="margin: 0; padding: 0">
+ <body style="margin: 0; padding: 0">
+ <div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ <div style="height: 1.25in; border: 0.25in solid green; border-bottom: none"></div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/129941-1a.html b/layout/reftests/pagination/129941-1a.html
new file mode 100644
index 0000000000..776a4f1141
--- /dev/null
+++ b/layout/reftests/pagination/129941-1a.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html class="reftest-paged" style="margin: 0; padding: 0;">
+ <body style="margin: 0; padding: 0;">
+ <div style="overflow: scroll; height: 5in;">
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/129941-1b.html b/layout/reftests/pagination/129941-1b.html
new file mode 100644
index 0000000000..cf2ccb83ab
--- /dev/null
+++ b/layout/reftests/pagination/129941-1b.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html class="reftest-paged" style="margin: 0; padding: 0;">
+ <body style="margin: 0; padding: 0;">
+ <div style="overflow: clip; height: 5in;">
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/129941-1c.html b/layout/reftests/pagination/129941-1c.html
new file mode 100644
index 0000000000..8ba77bf4c7
--- /dev/null
+++ b/layout/reftests/pagination/129941-1c.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html class="reftest-paged" style="margin: 0; padding: 0; overflow: hidden">
+ <body style="margin: 0; padding: 0; overflow: scroll; height: 5in">
+ <div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/129941-1d.html b/layout/reftests/pagination/129941-1d.html
new file mode 100644
index 0000000000..a6ec1147dd
--- /dev/null
+++ b/layout/reftests/pagination/129941-1d.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html class="reftest-paged" style="margin: 0; padding: 0; overflow: hidden">
+ <body style="margin: 0; padding: 0; overflow: clip; height: 5in;">
+ <div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/129941-1e-ref.html b/layout/reftests/pagination/129941-1e-ref.html
new file mode 100644
index 0000000000..aede796893
--- /dev/null
+++ b/layout/reftests/pagination/129941-1e-ref.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html class="reftest-paged" style="margin: 0; padding: 0">
+ <body style="margin: 0; padding: 0">
+ <div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/129941-1e.html b/layout/reftests/pagination/129941-1e.html
new file mode 100644
index 0000000000..702bf57555
--- /dev/null
+++ b/layout/reftests/pagination/129941-1e.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html class="reftest-paged" style="margin: 0; padding: 0;">
+ <body style="margin: 0; padding: 0; overflow: clip; height: 5in;">
+ <div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/1321803-1-ref.html b/layout/reftests/pagination/1321803-1-ref.html
new file mode 100644
index 0000000000..3c928e3cb5
--- /dev/null
+++ b/layout/reftests/pagination/1321803-1-ref.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html class="reftest-paged" style="margin: 0; padding: 0">
+ <body style="margin: 0; padding: 0">
+ <div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ <div style="height: 1.25in; border: 0.25in solid green;"></div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/1321803-1a.html b/layout/reftests/pagination/1321803-1a.html
new file mode 100644
index 0000000000..462b940230
--- /dev/null
+++ b/layout/reftests/pagination/1321803-1a.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html class="reftest-paged" style="margin: 0; padding: 0;">
+ <body style="margin: 0; padding: 0; overflow: scroll; height: 5in">
+ <div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ <div style="height: 1.25in; border: 0.25in solid green"></div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/1404868-1-ref.html b/layout/reftests/pagination/1404868-1-ref.html
new file mode 100644
index 0000000000..5d49584e5c
--- /dev/null
+++ b/layout/reftests/pagination/1404868-1-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <meta charset="UTF-8">
+ <title>Test reference for bug 1404868</title>
+ <style type="text/css">
+ body { margin: 0 }
+ body > div { height: 2in }
+ .a { text-align: right; height: 0; }
+ </style>
+</head>
+<body>
+ <div>
+ <div class="page">
+ <div class="a">A</div>
+ <div class="b">B</div>
+ </div>
+ </div>
+
+ <div>
+ <div class="page">
+ <div class="a">A</div>
+ <div class="b">B</div>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/1404868-1.html b/layout/reftests/pagination/1404868-1.html
new file mode 100644
index 0000000000..6667256094
--- /dev/null
+++ b/layout/reftests/pagination/1404868-1.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <meta charset="UTF-8">
+ <title>Test for bug 1404868</title>
+ <style type="text/css">
+ body { margin: 0 }
+ .a { float: right; }
+ .page { page-break-after: always; }
+ </style>
+</head>
+<body>
+ <div>
+ <div class="page">
+ <div class="a">A</div>
+ <div class="b">B</div>
+ </div>
+ </div>
+
+ <div>
+ <div class="page">
+ <div class="a">A</div>
+ <div class="b">B</div>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/1406050-1-ref.html b/layout/reftests/pagination/1406050-1-ref.html
new file mode 100644
index 0000000000..a5650edc5f
--- /dev/null
+++ b/layout/reftests/pagination/1406050-1-ref.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <meta charset="utf-8">
+ <title>Reftest reference, Mozilla bug 1406050</title>
+</head>
+<body>
+ <div style="height: calc(2in - 7px)">test1</div>
+ <div style="margin-bottom: -1px"></div>
+ <table>
+ <tr>
+ <td>
+ <h1>test2</h1>
+ </td>
+ </tr>
+ </table>
+</body>
+</html>
diff --git a/layout/reftests/pagination/1406050-1.html b/layout/reftests/pagination/1406050-1.html
new file mode 100644
index 0000000000..d03c839577
--- /dev/null
+++ b/layout/reftests/pagination/1406050-1.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <meta charset="utf-8">
+ <title>Reftest, Mozilla bug 1406050</title>
+</head>
+<body>
+ <div style="page-break-after: always;">test1</div>
+ <div>
+ <div>
+ <table>
+ <tr>
+ <td>
+ <h1>test2</h1>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/1406291-1-ref.html b/layout/reftests/pagination/1406291-1-ref.html
new file mode 100644
index 0000000000..46f6ee2e02
--- /dev/null
+++ b/layout/reftests/pagination/1406291-1-ref.html
@@ -0,0 +1,16 @@
+<html class="reftest-paged">
+<title>Testcase, Mozilla bug 1406291</title>
+<style>
+body { margin: 0 }
+table { border-spacing: 0; }
+table, td { margin: 0; padding: 0; }
+</style>
+
+<div style="height: 2in"> <!-- the height of a page -->
+ Only line on first page.
+</div>
+
+<div style="padding-top: 1px;">
+ Line 1 on second page.
+</div>
+Line 2 on second page.
diff --git a/layout/reftests/pagination/1406291-1.html b/layout/reftests/pagination/1406291-1.html
new file mode 100644
index 0000000000..df8a7185d9
--- /dev/null
+++ b/layout/reftests/pagination/1406291-1.html
@@ -0,0 +1,23 @@
+<html class="reftest-paged">
+<title>Testcase, Mozilla bug 1406291</title>
+<style>
+body { margin: 0 }
+table { border-spacing: 0; }
+table, td { margin: 0; padding: 0; }
+</style>
+
+<div style="page-break-after: always;">
+ Only line on first page.
+ <br clear="all" />
+</div>
+
+<div>
+ <table>
+ <tr><td style="padding-top: 1px">
+ <div style="float:left">
+ Line 1 on second page.
+ </div>
+ </td></tr>
+ <tr><td>Line 2 on second page.</td></tr>
+ </table>
+</div>
diff --git a/layout/reftests/pagination/1409585-1-ref.html b/layout/reftests/pagination/1409585-1-ref.html
new file mode 100644
index 0000000000..92c5bc0ba1
--- /dev/null
+++ b/layout/reftests/pagination/1409585-1-ref.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML>
+<html class="reftest-paged">
+<meta charset="utf-8">
+<title>Reftest reference, bug 1409585</title>
+
+ <div style="height: calc(2in - 7px)">
+ <table>
+ <thead>
+ <tr>
+ <th>Header</th>
+ <th>Header</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>Data</td>
+ <td>Data</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div>
+ <div style="margin-bottom: -1px"></div>
+ <table>
+ <thead>
+ <tr>
+ <th>Header</th>
+ <th>Header</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>Data</td>
+ <td>Data</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
diff --git a/layout/reftests/pagination/1409585-1.html b/layout/reftests/pagination/1409585-1.html
new file mode 100644
index 0000000000..790f1f901e
--- /dev/null
+++ b/layout/reftests/pagination/1409585-1.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML>
+<html class="reftest-paged">
+<meta charset="utf-8">
+<title>Reftest, bug 1409585</title>
+<style type="text/css">
+ .break-after {
+ page-break-after: always;
+ }
+</style>
+
+<div class="break-after">
+ <div class="break-after">
+ <div>
+ <table>
+ <thead>
+ <tr>
+ <th>Header</th>
+ <th>Header</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>Data</td>
+ <td>Data</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="break-after">
+ <div>
+ <table>
+ <thead>
+ <tr>
+ <th>Header</th>
+ <th>Header</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>Data</td>
+ <td>Data</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+</div>
diff --git a/layout/reftests/pagination/1411799-1-ref.html b/layout/reftests/pagination/1411799-1-ref.html
new file mode 100644
index 0000000000..61bc77fa42
--- /dev/null
+++ b/layout/reftests/pagination/1411799-1-ref.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+<meta charset="UTF-8">
+<title>Testcase, Mozilla bug 1411799</title>
+<style>
+ section {
+ width: 42em;
+ }
+
+ ul {
+ padding: 0;
+ list-style-type: none;
+ columns: 14em;
+ column-gap: 0;
+ }
+
+ li {
+ margin: 0 0 8px 0;
+ padding: 0;
+ }
+
+ li::before {
+ display: inline-block;
+ margin-left: 4px;
+ width: 16px;
+ content: 'o';
+ }
+
+</style>
+
+<section>
+ <ul>
+ <li>Future</li>
+ <li>Firefox 70</li>
+ <li>Firefox 69</li>
+ <li>Firefox 68</li>
+ <li>Previous Versions</li>
+ </ul>
+</section>
diff --git a/layout/reftests/pagination/1411799-1.html b/layout/reftests/pagination/1411799-1.html
new file mode 100644
index 0000000000..9584a49b73
--- /dev/null
+++ b/layout/reftests/pagination/1411799-1.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<meta charset="UTF-8">
+<title>Testcase, Mozilla bug 1411799</title>
+<style>
+ section {
+ width: 42em;
+ }
+
+ ul {
+ padding: 0;
+ list-style-type: none;
+ columns: 14em;
+ column-gap: 0;
+ }
+
+ li {
+ margin: 0 0 8px 0;
+ padding: 0 0 0 20px;
+ }
+
+ li::before {
+ float: left;
+ margin-left: -16px;
+ content: 'o';
+ }
+
+</style>
+
+<section>
+ <ul>
+ <li>Future</li>
+ <li>Firefox 70</li>
+ <li>Firefox 69</li>
+ <li>Firefox 68</li>
+ <li>Previous Versions</li>
+ </ul>
+</section>
diff --git a/layout/reftests/pagination/1420528-1-ref.html b/layout/reftests/pagination/1420528-1-ref.html
new file mode 100644
index 0000000000..aa3cd52516
--- /dev/null
+++ b/layout/reftests/pagination/1420528-1-ref.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <body style="font: 14px serif">
+ <div style="column-count:2; column-fill:auto; column-gap: 0; height: 100px; width: 550px; border: 1px solid black;">
+ <!-- First column -->
+ <div style="height: 100px;"></div>
+
+ <!-- Second column -->
+ <div>Spacer</div>
+ <div>
+ Lime float at right.
+ <span style="float:right; background: lime;">FLOAT</span>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/1420528-1.html b/layout/reftests/pagination/1420528-1.html
new file mode 100644
index 0000000000..5dbed920a9
--- /dev/null
+++ b/layout/reftests/pagination/1420528-1.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <body style="font: 14px serif">
+ <div style="column-count:2; column-gap: 0; height: 100px; width: 550px; border: 1px solid black;">
+ <div style="margin-top: 60px;">Spacer</div>
+ <div>
+ Lime float at right.
+ <span style="float:right; background: lime;">FLOAT</span>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/1427141-1.html b/layout/reftests/pagination/1427141-1.html
new file mode 100644
index 0000000000..ed895a2075
--- /dev/null
+++ b/layout/reftests/pagination/1427141-1.html
@@ -0,0 +1,39 @@
+<!doctype html>
+<html class="reftest-paged">
+ <head>
+ <title>bug 1427141</title>
+
+ <style>
+ @page { size:5in 3in; margin:0.5in; }
+ html,body {
+ color:black; background-color:white; font:16px/1 monospace; padding:0; margin:0;
+ }
+
+ report-page {
+ height: 100%;
+ display: block;
+ overflow: hidden;
+ page-break-before: always;
+ }
+
+ html, body {
+ height: 100%;
+ width: 100%;
+ }
+ </style>
+ </head>
+ <body>
+ <report-page>
+ <div>
+ <table>
+ <tr>
+ <td>
+ PAGE 1 (above) is blank. The line below is visible:<br>
+ THIS IS PAGE 2
+ </td>
+ </tr>
+ </table>
+ </div>
+ </report-page>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/1427141-2.html b/layout/reftests/pagination/1427141-2.html
new file mode 100644
index 0000000000..221d9e5142
--- /dev/null
+++ b/layout/reftests/pagination/1427141-2.html
@@ -0,0 +1,39 @@
+<!doctype html>
+<html class="reftest-paged">
+ <head>
+ <title>bug 1427141</title>
+
+ <style>
+ @page { size:5in 3in; margin:0.5in; }
+ html,body {
+ color:black; background-color:white; font:16px/1 monospace; padding:0; margin:0;
+ }
+
+ report-page {
+ height: 100%;
+ display: block;
+ overflow: hidden;
+ }
+
+ html, body {
+ height: 100%;
+ width: 100%;
+ }
+ </style>
+ </head>
+ <body>
+ <div style="height:calc(100% - 0.6em)"></div>
+ <report-page>
+ <div>
+ <table>
+ <tr>
+ <td>
+ PAGE 1 (above) is blank. The line below is visible:<br>
+ THIS IS PAGE 2
+ </td>
+ </tr>
+ </table>
+ </div>
+ </report-page>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/1427141-ref.html b/layout/reftests/pagination/1427141-ref.html
new file mode 100644
index 0000000000..d5c04ae52a
--- /dev/null
+++ b/layout/reftests/pagination/1427141-ref.html
@@ -0,0 +1,31 @@
+<!doctype html>
+<html class="reftest-paged">
+ <head>
+ <title>bug 1427141</title>
+
+ <style>
+ @page { size:5in 3in; margin:0.5in; }
+ html,body {
+ color:black; background-color:white; font:16px/1 monospace; padding:0; margin:0;
+ }
+
+ html, body {
+ height: 100%;
+ width: 100%;
+ }
+ </style>
+ </head>
+ <body>
+ <div style="page-break-after:always"></div>
+ <div>
+ <table>
+ <tr>
+ <td>
+ PAGE 1 (above) is blank. The line below is visible:<br>
+ THIS IS PAGE 2
+ </td>
+ </tr>
+ </table>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/1468654-1-ref.html b/layout/reftests/pagination/1468654-1-ref.html
new file mode 100644
index 0000000000..69267eaf5f
--- /dev/null
+++ b/layout/reftests/pagination/1468654-1-ref.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<title>Testcase, Mozilla bug 1468654</title>
+<style>
+span {
+ display: block;
+ position: relative;
+}
+
+span:before {
+ content: '';
+ display: inline-block;
+ width: 16px;
+ height: 16px;
+ border: 1px solid black;
+ margin-left: 5px;
+ margin-top: 5px;
+ margin-right: 12px;
+ vertical-align: top;
+}
+
+body {
+ line-height: 1.6;
+}
+
+.column {
+ float: left;
+ width: 13em;
+ margin-right: 1em;
+}
+
+</style>
+
+<div class="column">
+<div><span>One</span></div>
+<div><span>Two</span></div>
+<div><span>Three</span></div>
+<div><span>Four</span></div>
+<div><span>Five</span></div>
+<div><span>Six</span></div>
+<div><span>Seven</span></div>
+</div>
+<div class="column">
+<div><span>Eight</span></div>
+<div><span>Nine</span></div>
+<div><span>Ten</span></div>
+<div><span>Eleven</span></div>
+<div><span>Twelve</span></div>
+<div><span>Thirteen</span></div>
+<div><span>Fourteen</span></div>
+</div>
+<div class="column">
+<div><span>Fifteen</span></div>
+<div><span>Sixteen</span></div>
+<div><span>Seventeen</span></div>
+<div><span>Eighteen</span></div>
+<div><span>Nineteen</span></div>
+<div><span>Twenty</span></div>
+<div><span>Twentyone</span></div>
+</div>
diff --git a/layout/reftests/pagination/1468654-1.html b/layout/reftests/pagination/1468654-1.html
new file mode 100644
index 0000000000..4de5045b30
--- /dev/null
+++ b/layout/reftests/pagination/1468654-1.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<title>Testcase, Mozilla bug 1468654</title>
+<style>
+span {
+ display: block;
+ position: relative;
+ padding-left: 35px;
+}
+
+span:before {
+ content: '';
+ display: block;
+ width: 16px;
+ height: 16px;
+ border: 1px solid black;
+ position: absolute;
+ left: 5px;
+ top: 5px;
+}
+
+body {
+ width: 41em;
+ columns: 3;
+ column-gap: 1em;
+ line-height: 1.6;
+}
+
+</style>
+
+<div><span>One</span></div>
+<div><span>Two</span></div>
+<div><span>Three</span></div>
+<div><span>Four</span></div>
+<div><span>Five</span></div>
+<div><span>Six</span></div>
+<div><span>Seven</span></div>
+<div><span>Eight</span></div>
+<div><span>Nine</span></div>
+<div><span>Ten</span></div>
+<div><span>Eleven</span></div>
+<div><span>Twelve</span></div>
+<div><span>Thirteen</span></div>
+<div><span>Fourteen</span></div>
+<div><span>Fifteen</span></div>
+<div><span>Sixteen</span></div>
+<div><span>Seventeen</span></div>
+<div><span>Eighteen</span></div>
+<div><span>Nineteen</span></div>
+<div><span>Twenty</span></div>
+<div><span>Twentyone</span></div>
diff --git a/layout/reftests/pagination/1596310-ref.html b/layout/reftests/pagination/1596310-ref.html
new file mode 100644
index 0000000000..4c5b42d893
--- /dev/null
+++ b/layout/reftests/pagination/1596310-ref.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+<style>
+@page { size:5in 3in; margin:0; }
+html,body { padding:0; margin:0; height:100%; }
+div {
+ height:100%;
+ background: black;
+ color: white;
+}
+</style>
+</head>
+<body>
+ <div>A</div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/1596310.html b/layout/reftests/pagination/1596310.html
new file mode 100644
index 0000000000..d3c97c62ad
--- /dev/null
+++ b/layout/reftests/pagination/1596310.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+<style>
+@page { size:5in 3in; margin:0; }
+html,body { padding:0; margin:0; height:100%; }
+div {
+ margin-bottom: 1in;
+ height: 100%;
+ background: black;
+ color: white;
+ page-break-after: always;
+}
+</style>
+</head>
+<body>
+ <div>A</div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/272830-1-ref.html b/layout/reftests/pagination/272830-1-ref.html
new file mode 100644
index 0000000000..d790351cba
--- /dev/null
+++ b/layout/reftests/pagination/272830-1-ref.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html><html class="reftest-paged"><style>html{font-size:12pt}</style>
+<table>
+ <tr><td>xxxxxxxxxxxxxxxxxxx</td></tr>
+ <tr><td>xxxxxxxxxxxxxxxxxxx</td></tr>
+ <tr><td>xxxxxxxxxxxxxxxxxxx</td></tr>
+ <tr><td>xxxxxxxxxxxxxxxxxxx</td></tr>
+ <tr><td>xxxxxxxxxxxxxxxxxxx</td></tr>
+ <tr><td>xxxxxxxxxxxxxxxxxxx</td></tr>
+ <tr><td>xxxxxxxxxxxxxxxxxxx</td></tr>
+ <tr><td>xxxxxxxxxxxxxxxxxxx</td></tr>
+ <tr><td>xxxxxxxxxxxxxxxxxxx</td></tr>
+ <tr><td>xxxxxxxxxxxxxxxxxxx</td></tr>
+ <tr><td>xxxxxxxxxxxxxxxxxxx</td></tr>
+ <tr><td>xxxxxxxxxxxxxxxxxxx</td></tr>
+ <tr><td>xxxxxxxxxxxxxxxxxxx</td></tr>
+ <tr><td>last line</td></tr>
+
+</table>
+
+</body>
+
+</html>
diff --git a/layout/reftests/pagination/272830-1.html b/layout/reftests/pagination/272830-1.html
new file mode 100644
index 0000000000..cf8a4519e5
--- /dev/null
+++ b/layout/reftests/pagination/272830-1.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html><html class="reftest-paged"><style>html{font-size:12pt}</style>
+<table>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>last line</td></tr></tbody>
+
+</table>
+
+</body>
+
+</html>
diff --git a/layout/reftests/pagination/318022-1-ref.html b/layout/reftests/pagination/318022-1-ref.html
new file mode 100644
index 0000000000..e48ee7e849
--- /dev/null
+++ b/layout/reftests/pagination/318022-1-ref.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html><html class="reftest-paged">
+<head>
+<style type="text/css" media="all">
+html{font-size:12pt}
+#c {page-break-before:always;}
+</style>
+</head>
+<body>
+<div>Line 1</div>
+<div>Line 2</div>
+<div id="c">Line 3</div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/318022-1.html b/layout/reftests/pagination/318022-1.html
new file mode 100644
index 0000000000..155eb5d0ca
--- /dev/null
+++ b/layout/reftests/pagination/318022-1.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html><html class="reftest-paged">
+<head>
+<style type="text/css" media="all">
+html{font-size:12pt}
+#a {float:left;}
+#b {clear:both;}
+#c {page-break-before:always;}
+</style>
+</head>
+<body>
+<div id="a">Line 1</div>
+<div id="b">Line 2</div>
+<div id="c">Line 3</div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/381497-f.html b/layout/reftests/pagination/381497-f.html
new file mode 100644
index 0000000000..885d56244c
--- /dev/null
+++ b/layout/reftests/pagination/381497-f.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html class="reftest-paged">
+<title>Height test</title>
+
+<div style="top: 0; left: 0; right: 0; position: fixed; height: 100%; border-left: 2em blue solid;">
+The left border of this box must span the entire page content area.
+This box must be repeated on the second page.
+</div>
+
+<p style="page-break-before: always;">...
diff --git a/layout/reftests/pagination/381497-n.html b/layout/reftests/pagination/381497-n.html
new file mode 100644
index 0000000000..83f56c660a
--- /dev/null
+++ b/layout/reftests/pagination/381497-n.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html class="reftest-paged">
+<title>Height test</title>
+<style type="text/css">
+ html, body { height: 100%; margin: 0; padding: 0;}
+</style>
+
+
+<div style="height: 100%; border-left: 2em blue solid;">
+The left border of this box must span the entire page content area.
+This box must be repeated on the second page.
+</div>
+<div style="height: 100%; border-left: 2em blue solid;">
+The left border of this box must span the entire page content area.
+This box must be repeated on the second page.
+</div> \ No newline at end of file
diff --git a/layout/reftests/pagination/403669-1-ref.html b/layout/reftests/pagination/403669-1-ref.html
new file mode 100644
index 0000000000..1c5dbe90d2
--- /dev/null
+++ b/layout/reftests/pagination/403669-1-ref.html
@@ -0,0 +1,12 @@
+<html class="reftest-paged">
+<body>
+ <table cellspacing="0" cellpadding="0"
+ width="1px">
+ <tr><td>
+ a a a a a a a a a a a a a a
+ a a a a a a a a a a a a a a
+ </td></tr>
+ </table>
+ Ending Text
+</body>
+</html>
diff --git a/layout/reftests/pagination/403669-1.html b/layout/reftests/pagination/403669-1.html
new file mode 100644
index 0000000000..dd42de3f3d
--- /dev/null
+++ b/layout/reftests/pagination/403669-1.html
@@ -0,0 +1,13 @@
+<html class="reftest-paged">
+<body>
+ <table cellspacing="0" cellpadding="0"
+ height="100px"
+ width="1px">
+ <tr><td>
+ a a a a a a a a a a a a a a
+ a a a a a a a a a a a a a a
+ </td></tr>
+ </table>
+ Ending Text
+</body>
+</html>
diff --git a/layout/reftests/pagination/577450-1-ref.html b/layout/reftests/pagination/577450-1-ref.html
new file mode 100644
index 0000000000..63dd4e3172
--- /dev/null
+++ b/layout/reftests/pagination/577450-1-ref.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="position: fixed; color: green; font-size: 2em">Big green text</div>
+ <!-- force two pages -->
+ <div style="height: 3in; width: 2in"></div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/577450-1.html b/layout/reftests/pagination/577450-1.html
new file mode 100644
index 0000000000..3e511c94b1
--- /dev/null
+++ b/layout/reftests/pagination/577450-1.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body style="color: green; font-size: 2em">
+ <div style="position: fixed">Big green text</div>
+ <!-- force two pages -->
+ <div style="height: 3in; width: 2in"></div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/609227-1-ref.html b/layout/reftests/pagination/609227-1-ref.html
new file mode 100644
index 0000000000..5a990404e8
--- /dev/null
+++ b/layout/reftests/pagination/609227-1-ref.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html style="overflow: hidden; height: 100%; margin: 0; padding:0"
+ class="reftest-paged">
+ <body style="overflow: hidden; height: 100%; margin: 0; padding:0">
+ <!-- Hidden overflow on the inline-block to put its baseline at its bottom
+ edge, as in the original issue in bug 609227 -->
+ <div style="height: 100%; display: inline-block; overflow: hidden">
+ Some text
+ </div>
+ </body>
+</html>
+
diff --git a/layout/reftests/pagination/609227-1.html b/layout/reftests/pagination/609227-1.html
new file mode 100644
index 0000000000..5cd5b0d32f
--- /dev/null
+++ b/layout/reftests/pagination/609227-1.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html style="overflow: hidden; height: 100%; margin: 0; padding: 0"
+ class="reftest-paged">
+ <body style="overflow: hidden; height: 100%; margin: 0; padding:0">
+ <div></div>
+ <!-- Hidden overflow on the inline-block to put its baseline at its bottom
+ edge, as in the original issue in bug 609227 -->
+ <div style="height: 100%; display: inline-block; overflow: hidden">
+ Some text
+ </div>
+ </body>
+</html>
+
diff --git a/layout/reftests/pagination/609227-2-ref.html b/layout/reftests/pagination/609227-2-ref.html
new file mode 100644
index 0000000000..290b74d665
--- /dev/null
+++ b/layout/reftests/pagination/609227-2-ref.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="page-break-before: always">
+ <div style="display: inline-block; width: 1in; height: 1in">
+ Should be on second page
+ </div>
+ </div>
+</html>
diff --git a/layout/reftests/pagination/609227-2a.html b/layout/reftests/pagination/609227-2a.html
new file mode 100644
index 0000000000..062544fe96
--- /dev/null
+++ b/layout/reftests/pagination/609227-2a.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>
+ <div style="float: left; width: 3.5in; height: 1.5in;"></div>
+ </div>
+ <div>
+ <div style="display: inline-block; width: 1in; height: 1in">
+ Should be on second page
+ </div>
+ </div>
+</html>
diff --git a/layout/reftests/pagination/609227-2b.html b/layout/reftests/pagination/609227-2b.html
new file mode 100644
index 0000000000..a78feeaaff
--- /dev/null
+++ b/layout/reftests/pagination/609227-2b.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <!-- Key: no whitespace between float and inline-block -->
+ <div>
+ <div style="float: left; width: 3.5in;
+ height: 1.5in;"></div></div><div><div
+ style="display: inline-block; width: 1in; height: 1in">
+ Should be on second page
+ </div>
+ </div>
+</html>
diff --git a/layout/reftests/pagination/626395-1-ref.html b/layout/reftests/pagination/626395-1-ref.html
new file mode 100644
index 0000000000..6bf542caa6
--- /dev/null
+++ b/layout/reftests/pagination/626395-1-ref.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="overflow: hidden; height: 3in">
+ </div>
+ Some text
+ </body>
+</html>
diff --git a/layout/reftests/pagination/626395-1a.html b/layout/reftests/pagination/626395-1a.html
new file mode 100644
index 0000000000..c99845b44f
--- /dev/null
+++ b/layout/reftests/pagination/626395-1a.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="overflow: hidden; height: 3in;">
+ <div style="height: 10in;"></div>
+ </div>
+ Some text
+ </body>
+</html>
diff --git a/layout/reftests/pagination/626395-1b.html b/layout/reftests/pagination/626395-1b.html
new file mode 100644
index 0000000000..faf8ec3c3e
--- /dev/null
+++ b/layout/reftests/pagination/626395-1b.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="overflow: clip; height: 3in;">
+ <div style="height: 10in;"></div>
+ </div>
+ Some text
+ </body>
+</html>
diff --git a/layout/reftests/pagination/626395-2-ref.html b/layout/reftests/pagination/626395-2-ref.html
new file mode 100644
index 0000000000..38aa21bc49
--- /dev/null
+++ b/layout/reftests/pagination/626395-2-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="overflow: hidden; height: 3in">
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/626395-2a.html b/layout/reftests/pagination/626395-2a.html
new file mode 100644
index 0000000000..0b45aebd2b
--- /dev/null
+++ b/layout/reftests/pagination/626395-2a.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="overflow: hidden; height: 3in;
+ padding-bottom: 0.5in; margin-bottom: 5in">
+ <div style="height: 10in;"></div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/626395-2b.html b/layout/reftests/pagination/626395-2b.html
new file mode 100644
index 0000000000..2fe5f2cceb
--- /dev/null
+++ b/layout/reftests/pagination/626395-2b.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="overflow: clip; height: 3in;
+ padding-bottom: 0.5in; margin-bottom: 5in">
+ <div style="height: 10in;"></div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/626395-2c.html b/layout/reftests/pagination/626395-2c.html
new file mode 100644
index 0000000000..30b013b833
--- /dev/null
+++ b/layout/reftests/pagination/626395-2c.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="overflow: hidden; height: 1in;
+ padding-bottom: 1in; border-bottom: 1in solid transparent">
+ <div style="height: 10in;"></div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/626395-2d.html b/layout/reftests/pagination/626395-2d.html
new file mode 100644
index 0000000000..8d36a1d861
--- /dev/null
+++ b/layout/reftests/pagination/626395-2d.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="overflow: clip; height: 1in;
+ padding-bottom: 1in; border-bottom: 1in solid transparent">
+ <div style="height: 10in;"></div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/652178-1-ref.html b/layout/reftests/pagination/652178-1-ref.html
new file mode 100644
index 0000000000..06d1c22146
--- /dev/null
+++ b/layout/reftests/pagination/652178-1-ref.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+ Something
+ <div>
+ <div style="width: 60%; float: left; border: 5px solid green;">
+ This should print on page 1
+ </div>
+
+ <!-- This just needs to be taller than a page -->
+ <div style="width: 30%; float: right; border: 5px solid purple; height: 3in">
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/652178-1-ref2.html b/layout/reftests/pagination/652178-1-ref2.html
new file mode 100644
index 0000000000..c3d0c994d6
--- /dev/null
+++ b/layout/reftests/pagination/652178-1-ref2.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+ Something
+ <div style="height: 0">
+ <div style="width: 60%; border: 5px solid green;">
+ This should print on page 1
+ </div>
+ </div>
+
+ <div style="width: 30%; margin-left: auto; border: 5px solid purple; height: 3in">
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/652178-1.html b/layout/reftests/pagination/652178-1.html
new file mode 100644
index 0000000000..a75a53166a
--- /dev/null
+++ b/layout/reftests/pagination/652178-1.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+ Something
+ <div>
+ <div style="width: 60%; float: left; border: 5px solid green;">
+ This should print on page 1
+ </div>
+
+ <!-- This just needs to be taller than a page -->
+ <div style="width: 30%; float: right; border: 5px solid purple; height: 3in">
+ </div>
+
+ <!-- This is needed! -->
+ <div style="clear: both"></div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/745025-1-ref.html b/layout/reftests/pagination/745025-1-ref.html
new file mode 100644
index 0000000000..5a1643f213
--- /dev/null
+++ b/layout/reftests/pagination/745025-1-ref.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+
+</head>
+<body>
+<!-- A 10x10 red image --><img style="transform: perspective(1px)" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAFElEQVQYlWP4z8DwnxjMMKqQvgoBksPHOVp9kXEAAAAASUVORK5CYII=">
+</body>
+</html>
diff --git a/layout/reftests/pagination/745025-1.html b/layout/reftests/pagination/745025-1.html
new file mode 100644
index 0000000000..fa179d19bf
--- /dev/null
+++ b/layout/reftests/pagination/745025-1.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html class="reftest-wait reftest-paged">
+<body>
+<canvas id="canvas" width="10" height="10"></canvas>
+<script>
+var canvas = document.getElementById('canvas');
+canvas.mozPrintCallback = function(obj) {
+ setTimeout(function() {
+ var ctx = obj.context;
+ ctx.fillStyle = 'rgb(255, 0, 0)';
+ ctx.fillRect(0, 0, 10, 10);
+ obj.done();
+ document.documentElement.classList.toggle("reftest-wait");
+ }, 0);
+};
+</script>
+</body>
+</html>
diff --git a/layout/reftests/pagination/820496-1-ref.html b/layout/reftests/pagination/820496-1-ref.html
new file mode 100644
index 0000000000..82348b6d0f
--- /dev/null
+++ b/layout/reftests/pagination/820496-1-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body style="margin:0">
+ <div style="height:10000px; background:blue;">
+ <div style="height:5000px; width:50%; background:yellow;">
+</body>
+</html>
diff --git a/layout/reftests/pagination/820496-1.html b/layout/reftests/pagination/820496-1.html
new file mode 100644
index 0000000000..1397edb293
--- /dev/null
+++ b/layout/reftests/pagination/820496-1.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body style="margin:0; height:10000px; background:blue;">
+ <div style="height:5000px; width:50%; background:yellow;">
+</body>
+</html>
diff --git a/layout/reftests/pagination/960822-ref.html b/layout/reftests/pagination/960822-ref.html
new file mode 100644
index 0000000000..17a702141b
--- /dev/null
+++ b/layout/reftests/pagination/960822-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head><meta charset="utf-8"></head>
+<body>
+<div style="width:100in; border:solid blue;">line</div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/960822.html b/layout/reftests/pagination/960822.html
new file mode 100644
index 0000000000..7a91d9aa8e
--- /dev/null
+++ b/layout/reftests/pagination/960822.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head><meta charset="utf-8"></head>
+<body>
+<div style="width:30in; border:solid blue;">line</div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/966419-1-ref.html b/layout/reftests/pagination/966419-1-ref.html
new file mode 100644
index 0000000000..24a41a9b9f
--- /dev/null
+++ b/layout/reftests/pagination/966419-1-ref.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head><meta charset="utf-8"></head>
+<body>
+<div style="width:8in; border:solid blue">line</div>
+<div style="page-break-before:always"></div>
+<div style="width:1in;height:1em"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/966419-1.html b/layout/reftests/pagination/966419-1.html
new file mode 100644
index 0000000000..34cebf0f24
--- /dev/null
+++ b/layout/reftests/pagination/966419-1.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head><meta charset="utf-8"></head>
+<body>
+<div style="width:8in; border:solid blue">line</div>
+<div style="page-break-before:always"></div>
+<div style="width:6in;height:1em"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/966419-2-ref.html b/layout/reftests/pagination/966419-2-ref.html
new file mode 100644
index 0000000000..455f7e6e33
--- /dev/null
+++ b/layout/reftests/pagination/966419-2-ref.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head><meta charset="utf-8"></head>
+<body>
+<div style="width:1in;height:1em"></div>
+<div style="page-break-before:always"></div>
+<div style="width:8in; border:solid blue">line</div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/966419-2.html b/layout/reftests/pagination/966419-2.html
new file mode 100644
index 0000000000..64cca2ad60
--- /dev/null
+++ b/layout/reftests/pagination/966419-2.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head><meta charset="utf-8"></head>
+<body>
+<div style="width:6in;height:1em"></div>
+<div style="page-break-before:always"></div>
+<div style="width:8in; border:solid blue">line</div>
+</body>
+</html>
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 0000000000..9781d0b7fb
--- /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-paged">
+ <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 0000000000..a0a0e9ad93
--- /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-paged">
+ <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 0000000000..7d474c56da
--- /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-paged">
+ <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 0000000000..aa0db459c4
--- /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-paged">
+ <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 0000000000..fa46710f6c
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-003-ref.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <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 0000000000..0caf7c2669
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-003.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <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 0000000000..37323d7947
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-004-ref.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <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 0000000000..edec053aaf
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-004.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <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 0000000000..1f3956e7a1
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-005-ref.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <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 0000000000..d3c45446dd
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-005.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <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 0000000000..55e87919b5
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-006-ref.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <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 0000000000..5dce30e8bc
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-006.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <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 0000000000..a258efdc8b
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-007-ref.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <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 0000000000..84095b6b38
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-007.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <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 0000000000..9a71d5e2bc
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-008-ref.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <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 0000000000..70fad20ca9
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-008.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <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 0000000000..bdfd701527
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-009-ref.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <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 0000000000..04427ddc6a
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-009.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <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 0000000000..757d9b7c7f
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-010-ref.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <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 0000000000..ef1fe8c696
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-010.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <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 0000000000..d39ce99010
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-011-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<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 0000000000..f4bd2058c3
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-011.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<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-breaking-dynamic-001-ref.html b/layout/reftests/pagination/abspos-breaking-dynamic-001-ref.html
new file mode 100644
index 0000000000..e94b3eb94a
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-dynamic-001-ref.html
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML>
+<title>Test for dynamic re-pagination of absolutely positioned elements</title>
+<link rel="author" title="L. David Baron" href="https://dbaron.org/">
+<style>
+
+#multicol {
+ height: 100px;
+ width: 300px;
+ background: yellow;
+ position: relative;
+}
+
+#relpos {
+ position: absolute;
+ background: aqua;
+ height: 100px;
+ width: 90px;
+ top: 0;
+ left: 0;
+}
+
+#abspos {
+ position: absolute;
+ right: 0;
+ height: 80px;
+ width: 50px;
+ background: blue;
+}
+
+</style>
+
+<div id="multicol">
+ <div id="relpos" style="left: 0">
+ <div id="abspos" style="top: 80px; height: 20px"></div>
+ </div>
+ <div id="relpos" style="left: 105px">
+ <div id="abspos" style="top: 0px; height: 60px"></div>
+ </div>
+ <div id="relpos" style="left: 210px; height: 50px">
+ </div>
+</div>
diff --git a/layout/reftests/pagination/abspos-breaking-dynamic-001.html b/layout/reftests/pagination/abspos-breaking-dynamic-001.html
new file mode 100644
index 0000000000..3752730182
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-dynamic-001.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML>
+<title>Test for dynamic re-pagination of absolutely positioned elements</title>
+<link rel="author" title="L. David Baron" href="https://dbaron.org/">
+<style>
+
+#multicol {
+ columns: 3;
+ column-fill: auto;
+ column-gap: 15px;
+ height: 150px;
+ width: 300px;
+ background: yellow;
+}
+
+#relpos {
+ position: relative;
+ background: aqua;
+ height: 250px;
+}
+
+#abspos {
+ position: absolute;
+ top: 80px;
+ right: 0;
+ height: 80px;
+ width: 50px;
+ background: blue;
+}
+
+</style>
+
+<div id="multicol">
+ <div id="relpos">
+ <div id="abspos"></div>
+ </div>
+</div>
+
+<script>
+
+var mc = document.getElementById("multicol");
+mc.offsetHeight; // flush layout
+mc.style.height = "100px";
+
+</script>
diff --git a/layout/reftests/pagination/abspos-breaking-dynamic-002-ref.html b/layout/reftests/pagination/abspos-breaking-dynamic-002-ref.html
new file mode 100644
index 0000000000..1399f3c527
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-dynamic-002-ref.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML>
+<title>Test for dynamic re-pagination of absolutely positioned elements</title>
+<link rel="author" title="L. David Baron" href="https://dbaron.org/">
+<style>
+
+#multicol {
+ height: 150px;
+ width: 300px;
+ background: yellow;
+ position: relative;
+}
+
+#relpos {
+ position: absolute;
+ background: aqua;
+ height: 150px;
+ width: 90px;
+ top: 0;
+ left: 0;
+}
+
+#abspos {
+ position: absolute;
+ right: 0;
+ height: 80px;
+ width: 50px;
+ background: blue;
+}
+
+</style>
+
+<div id="multicol">
+ <div id="relpos" style="left: 0">
+ <div id="abspos" style="top: 80px; height: 70px"></div>
+ </div>
+ <div id="relpos" style="left: 105px; height: 100px;">
+ <div id="abspos" style="top: 0px; height: 10px"></div>
+ </div>
+</div>
diff --git a/layout/reftests/pagination/abspos-breaking-dynamic-002.html b/layout/reftests/pagination/abspos-breaking-dynamic-002.html
new file mode 100644
index 0000000000..52c50786cc
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-dynamic-002.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML>
+<title>Test for dynamic re-pagination of absolutely positioned elements</title>
+<link rel="author" title="L. David Baron" href="https://dbaron.org/">
+<style>
+
+#multicol {
+ columns: 3;
+ column-fill: auto;
+ column-gap: 15px;
+ height: 100px;
+ width: 300px;
+ background: yellow;
+}
+
+#relpos {
+ position: relative;
+ background: aqua;
+ height: 250px;
+}
+
+#abspos {
+ position: absolute;
+ top: 80px;
+ right: 0;
+ height: 80px;
+ width: 50px;
+ background: blue;
+}
+
+</style>
+
+<div id="multicol">
+ <div id="relpos">
+ <div id="abspos"></div>
+ </div>
+</div>
+
+<script>
+
+var mc = document.getElementById("multicol");
+mc.offsetHeight; // flush layout
+mc.style.height = "150px";
+
+</script>
diff --git a/layout/reftests/pagination/abspos-breaking-dynamic-003-ref.html b/layout/reftests/pagination/abspos-breaking-dynamic-003-ref.html
new file mode 100644
index 0000000000..bccffbb2ec
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-dynamic-003-ref.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML>
+<title>Test for dynamic re-pagination of absolutely positioned elements</title>
+<link rel="author" title="L. David Baron" href="https://dbaron.org/">
+<style>
+
+#multicol {
+ height: 140px;
+ width: 300px;
+ background: yellow;
+ position: relative;
+}
+
+#relpos {
+ position: absolute;
+ background: aqua;
+ height: 140px;
+ width: 90px;
+ top: 0;
+ left: 0;
+}
+
+#abspos {
+ position: absolute;
+ right: 0;
+ height: 80px;
+ width: 50px;
+ background: blue;
+}
+
+#overflow {
+ position: absolute;
+ width: 30px;
+ background: grey;
+}
+
+</style>
+
+<div id="multicol">
+ <div id="relpos" style="left: 0">
+ <div id="abspos" style="top: 60px; height: 80px">
+ <div id="overflow" style="height: 80px"></div>
+ </div>
+ </div>
+ <div id="relpos" style="left: 105px; height: 110px;">
+ <div id="abspos" style="top: 0px; height: 0px">
+ <div id="overflow" style="height: 20px"></div>
+ </div>
+ </div>
+</div>
diff --git a/layout/reftests/pagination/abspos-breaking-dynamic-003.html b/layout/reftests/pagination/abspos-breaking-dynamic-003.html
new file mode 100644
index 0000000000..d5005f407f
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-dynamic-003.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML>
+<title>Test for dynamic re-pagination of absolutely positioned elements</title>
+<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
+<style>
+
+#multicol {
+ columns: 3;
+ column-fill: auto;
+ column-gap: 15px;
+ height: 500px;
+ width: 300px;
+ background: yellow;
+}
+
+#relpos {
+ position: relative;
+ background: aqua;
+ height: 250px;
+}
+
+#abspos {
+ position: absolute;
+ top: 60px;
+ right: 0;
+ height: 80px;
+ width: 50px;
+ background: blue;
+}
+
+#overflow {
+ height: 100px;
+ width: 30px;
+ background: grey;
+}
+</style>
+
+<div id="multicol">
+ <div id="relpos">
+ <div id="abspos"><div id="overflow"></div></div>
+ </div>
+</div>
+
+<script>
+
+var mc = document.getElementById("multicol");
+mc.offsetHeight; // flush layout
+mc.style.height = "140px";
+
+</script>
diff --git a/layout/reftests/pagination/abspos-breaking-dynamic-004.html b/layout/reftests/pagination/abspos-breaking-dynamic-004.html
new file mode 100644
index 0000000000..6002204cce
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-dynamic-004.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML>
+<title>Test for dynamic re-pagination of absolutely positioned elements</title>
+<link rel="author" title="L. David Baron" href="https://dbaron.org/">
+<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+<style>
+
+#multicol {
+ columns: 3;
+ column-fill: auto;
+ column-gap: 15px;
+ height: 150px;
+ width: 300px;
+ background: yellow;
+}
+
+#relpos {
+ position: relative;
+ background: aqua;
+ height: 250px;
+}
+
+#abspos {
+ position: absolute;
+ top: 80px;
+ right: 0;
+ height: 80px;
+ width: 50px;
+ background: blue;
+}
+
+</style>
+
+<div id="multicol">
+ <div id="relpos">
+ <div id="abspos"></div>
+ </div>
+</div>
+
+<script>
+var mc = document.getElementById("multicol");
+mc.offsetHeight; // flush layout
+
+// abspos-breaking-dynamic-001.html changes "height", but we change "maxHeight".
+mc.style.maxHeight = "100px";
+
+</script>
diff --git a/layout/reftests/pagination/abspos-breaking-dynamic-005-ref.html b/layout/reftests/pagination/abspos-breaking-dynamic-005-ref.html
new file mode 100644
index 0000000000..ebbf6a0505
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-dynamic-005-ref.html
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML>
+<title>Test for dynamic re-pagination of absolutely positioned elements</title>
+<link rel="author" title="L. David Baron" href="https://dbaron.org/">
+<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+<style>
+
+#multicol {
+ height: 250px;
+ width: 300px;
+ background: yellow;
+ position: relative;
+}
+
+#relpos {
+ position: absolute;
+ background: aqua;
+ height: 250px;
+ width: 90px;
+ top: 0;
+ left: 0;
+}
+
+#abspos {
+ position: absolute;
+ right: 0;
+ height: 80px;
+ width: 50px;
+ background: blue;
+}
+
+</style>
+
+<div id="multicol">
+ <div id="relpos" style="left: 0">
+ <div id="abspos" style="top: 80px; height: 80px"></div>
+ </div>
+</div>
diff --git a/layout/reftests/pagination/abspos-breaking-dynamic-005.html b/layout/reftests/pagination/abspos-breaking-dynamic-005.html
new file mode 100644
index 0000000000..d5c23d549b
--- /dev/null
+++ b/layout/reftests/pagination/abspos-breaking-dynamic-005.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML>
+<title>Test for dynamic re-pagination of absolutely positioned elements</title>
+<link rel="author" title="L. David Baron" href="https://dbaron.org/">
+<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+<style>
+
+#multicol {
+ columns: 3;
+ column-fill: auto;
+ column-gap: 15px;
+ height: 150px;
+ width: 300px;
+ background: yellow;
+}
+
+#relpos {
+ position: relative;
+ background: aqua;
+ height: 250px;
+}
+
+#abspos {
+ position: absolute;
+ top: 80px;
+ right: 0;
+ height: 80px;
+ width: 50px;
+ background: blue;
+}
+
+</style>
+
+<div id="multicol">
+ <div id="relpos">
+ <div id="abspos"></div>
+ </div>
+</div>
+
+<script>
+var mc = document.getElementById("multicol");
+mc.offsetHeight; // flush layout
+mc.style.height = "auto";
+
+</script>
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 0000000000..1bb252ec01
--- /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 0000000000..ea731c4ab2
--- /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;
+ column-count: 3;
+ column-gap: 0;
+ 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 0000000000..a2dd5a9c13
--- /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-paged">
+ <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 0000000000..12e12ce4d3
--- /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-paged">
+ <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/bfc-001-ref.html b/layout/reftests/pagination/bfc-001-ref.html
new file mode 100644
index 0000000000..fe76ae41b1
--- /dev/null
+++ b/layout/reftests/pagination/bfc-001-ref.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: overflow:hidden block fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1572573">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+</style>
+</head>
+<body>
+ BEFORE
+ <div style="height:3in; width:1in; background:black"></div>
+ AFTER
+</body>
+</html>
diff --git a/layout/reftests/pagination/bfc-001.html b/layout/reftests/pagination/bfc-001.html
new file mode 100644
index 0000000000..7954a0b702
--- /dev/null
+++ b/layout/reftests/pagination/bfc-001.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: overflow:hidden block fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1572573">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+</style>
+</head>
+<body>
+ BEFORE
+ <div style="overflow:hidden">
+ <div style="overflow:hidden">
+ <div style="float: left">
+ <div style="height:3in; width:1in; background:black"></div>
+ </div>
+ </div>
+ </div>
+ AFTER
+</body>
+</html>
diff --git a/layout/reftests/pagination/bfc-002.html b/layout/reftests/pagination/bfc-002.html
new file mode 100644
index 0000000000..22cf0a5be7
--- /dev/null
+++ b/layout/reftests/pagination/bfc-002.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: display:flow-root block fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1572573">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+</style>
+</head>
+<body>
+ BEFORE
+ <div style="display:flow-root">
+ <div style="display:flow-root">
+ <div style="float: left">
+ <div style="height:3in; width:1in; background:black"></div>
+ </div>
+ </div>
+ </div>
+ AFTER
+</body>
+</html>
diff --git a/layout/reftests/pagination/bfc-003.html b/layout/reftests/pagination/bfc-003.html
new file mode 100644
index 0000000000..a97d32fbf4
--- /dev/null
+++ b/layout/reftests/pagination/bfc-003.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: overflow:hidden + display:flow-root block fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1572573">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+</style>
+</head>
+<body>
+ BEFORE
+ <div style="overflow:hidden">
+ <div style="display:flow-root">
+ <div style="float: left">
+ <div style="height:3in; width:1in; background:black"></div>
+ </div>
+ </div>
+ </div>
+ AFTER
+</body>
+</html>
diff --git a/layout/reftests/pagination/bfc-004-ref.html b/layout/reftests/pagination/bfc-004-ref.html
new file mode 100644
index 0000000000..05e9399ef3
--- /dev/null
+++ b/layout/reftests/pagination/bfc-004-ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: display:flow-root block fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1572573">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:1px/1 monospace; padding:0; margin:0;
+}
+.before, .after {
+ height: 0.5in;
+ content: "x";
+ background: black;
+}
+</style>
+</head>
+<body>
+ <div class="before"></div>
+ <div style="height:1in; width:1in; background:black"></div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/bfc-004.html b/layout/reftests/pagination/bfc-004.html
new file mode 100644
index 0000000000..294c2ab9a2
--- /dev/null
+++ b/layout/reftests/pagination/bfc-004.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: display:flow-root block fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1572573">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:1px/1 monospace; padding:0; margin:0;
+}
+.before, .after {
+ height: 0.5in;
+ content: "x";
+ background: black;
+}
+</style>
+</head>
+<body>
+ <div class="before"></div>
+ <div style="display:flow-root">
+ <div style="overflow:hidden; position:relative; min-height:1in">
+ <div style="position:absolute">
+ <div style="height:3in; width:1in; background:black"></div>
+ </div>
+ </div>
+ </div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/bfc-005.html b/layout/reftests/pagination/bfc-005.html
new file mode 100644
index 0000000000..03e4ed22c4
--- /dev/null
+++ b/layout/reftests/pagination/bfc-005.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: overflow:hidden block fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1572573">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:1px/1 monospace; padding:0; margin:0;
+}
+.before, .after {
+ height: 0.5in;
+ content: "x";
+ background: black;
+}
+</style>
+</head>
+<body>
+ <div class="before"></div>
+ <div style="overflow:hidden; height:1in">
+ <div style="overflow:hidden">
+ <div style="float: left">
+ <div style="height:3in; width:1in; background:black"></div>
+ </div>
+ </div>
+ </div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/bfc-006-ref.html b/layout/reftests/pagination/bfc-006-ref.html
new file mode 100644
index 0000000000..e1c6e98cd7
--- /dev/null
+++ b/layout/reftests/pagination/bfc-006-ref.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: overflow:hidden block fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1572573">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+</style>
+</head>
+<body>
+ BEFORE
+ <div style="height:2in; width:1in; background:black"></div>
+ AFTER
+</body>
+</html>
diff --git a/layout/reftests/pagination/bfc-006.html b/layout/reftests/pagination/bfc-006.html
new file mode 100644
index 0000000000..228801aa3f
--- /dev/null
+++ b/layout/reftests/pagination/bfc-006.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: overflow:hidden block fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1572573">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+</style>
+</head>
+<body>
+ BEFORE
+ <div style="overflow:hidden; height:2in">
+ <div style="overflow:hidden">
+ <div style="float: left">
+ <div style="height:3in; width:1in; background:black"></div>
+ </div>
+ </div>
+ </div>
+ AFTER
+</body>
+</html>
diff --git a/layout/reftests/pagination/bfc-007.html b/layout/reftests/pagination/bfc-007.html
new file mode 100644
index 0000000000..0703fb2c75
--- /dev/null
+++ b/layout/reftests/pagination/bfc-007.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: overflow:hidden block fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1572573">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+</style>
+</head>
+<body>
+ BEFORE
+ <div style="overflow:hidden; max-height:2in">
+ <div style="overflow:hidden">
+ <div style="float: left">
+ <div style="height:3in; width:1in; background:black"></div>
+ </div>
+ </div>
+ </div>
+ AFTER
+</body>
+</html>
diff --git a/layout/reftests/pagination/bfc-008.html b/layout/reftests/pagination/bfc-008.html
new file mode 100644
index 0000000000..3569e93203
--- /dev/null
+++ b/layout/reftests/pagination/bfc-008.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: overflow:hidden block fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1572573">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+</style>
+</head>
+<body>
+ BEFORE
+ <div style="overflow:hidden">
+ <div style="overflow:hidden; max-height:2in">
+ <div style="float: left">
+ <div style="height:3in; width:1in; background:black"></div>
+ </div>
+ </div>
+ </div>
+ AFTER
+</body>
+</html>
diff --git a/layout/reftests/pagination/blank.html b/layout/reftests/pagination/blank.html
new file mode 100644
index 0000000000..64ece4f45a
--- /dev/null
+++ b/layout/reftests/pagination/blank.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html class="reftest-paged"><style>html{font-size:12pt}</style>
diff --git a/layout/reftests/pagination/block-max-height-001-ref.html b/layout/reftests/pagination/block-max-height-001-ref.html
new file mode 100644
index 0000000000..d32cdbc7fc
--- /dev/null
+++ b/layout/reftests/pagination/block-max-height-001-ref.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: max-height block fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1602430">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+</style>
+</head>
+<body>
+ BEFORE
+ <div style="height:2in">
+ <div style="height:3in; width:1in; border:solid"></div>
+ </div>
+ AFTER
+</body>
+</html>
diff --git a/layout/reftests/pagination/block-max-height-001.html b/layout/reftests/pagination/block-max-height-001.html
new file mode 100644
index 0000000000..7f345d7a3d
--- /dev/null
+++ b/layout/reftests/pagination/block-max-height-001.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: max-height block fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1602430">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+</style>
+</head>
+<body>
+ BEFORE
+ <div style="max-height:2in">
+ <div style="height:3in; width:1in; border:solid"></div>
+ </div>
+ AFTER
+</body>
+</html>
diff --git a/layout/reftests/pagination/block-max-height-002.html b/layout/reftests/pagination/block-max-height-002.html
new file mode 100644
index 0000000000..5b7bba1f93
--- /dev/null
+++ b/layout/reftests/pagination/block-max-height-002.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: min/max-height block fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1602430">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+</style>
+</head>
+<body>
+ BEFORE
+ <div style="min-height:1.8in; max-height:2in">
+ <div style="height:3in; width:1in; border:solid"></div>
+ </div>
+ AFTER
+</body>
+</html>
diff --git a/layout/reftests/pagination/block-min-height-001-ref.html b/layout/reftests/pagination/block-min-height-001-ref.html
new file mode 100644
index 0000000000..b3986b7c30
--- /dev/null
+++ b/layout/reftests/pagination/block-min-height-001-ref.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: min-height block fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1602430">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+</style>
+</head>
+<body>
+ BEFORE
+ <div style="height:3in">
+ <div style="height:2in; width:1in; border:solid"></div>
+ </div>
+ AFTER
+</body>
+</html>
diff --git a/layout/reftests/pagination/block-min-height-001.html b/layout/reftests/pagination/block-min-height-001.html
new file mode 100644
index 0000000000..22b98ed148
--- /dev/null
+++ b/layout/reftests/pagination/block-min-height-001.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: max-height block fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1602430">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+</style>
+</head>
+<body>
+ BEFORE
+ <div style="min-height:3in">
+ <div style="height:2in; width:1in; border:solid"></div>
+ </div>
+ AFTER
+</body>
+</html>
diff --git a/layout/reftests/pagination/block-min-height-002.html b/layout/reftests/pagination/block-min-height-002.html
new file mode 100644
index 0000000000..433f2d58b6
--- /dev/null
+++ b/layout/reftests/pagination/block-min-height-002.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: min/max-height block fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1602430">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+</style>
+</head>
+<body>
+ BEFORE
+ <div style="min-height:3in; max-height:2in">
+ <div style="height:2in; width:1in; border:solid"></div>
+ </div>
+ AFTER
+</body>
+</html>
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 0000000000..3ef0e2b0ca
--- /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 0000000000..cfda48b719
--- /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;
+ column-width: 150px;
+ column-gap: 0;
+ 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 0000000000..9203c9e254
--- /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;
+ column-width: 100px;
+ column-gap: 0;
+ 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 0000000000..3b54c0944d
--- /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;
+ column-width: 100px;
+ column-gap: 0;
+ 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 0000000000..12be28f669
--- /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;
+ column-width: 150px;
+ column-gap: 0;
+ 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 0000000000..fb26bde1c3
--- /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;
+ column-width: 150px;
+ column-gap: 0;
+ 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 0000000000..408d13c74c
--- /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 0000000000..00c57117f6
--- /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;
+ column-width: 150px;
+ column-gap: 0;
+ 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 0000000000..b6da119892
--- /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;
+ column-width: 150px;
+ 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 0000000000..5ac8e38252
--- /dev/null
+++ b/layout/reftests/pagination/column-balancing-break-inside-avoid-2-ref.html
@@ -0,0 +1,31 @@
+<html>
+<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>
+#colset { width: 200px;
+ padding: 2px;
+ column-count: 3;
+ column-gap: 2px;
+ column-fill: auto; }
+#a { height: auto; background: lightblue;}
+#b { height: 50px; background: lightblue;}
+#c { height: 51px; background: orange;}
+</style>
+</head>
+<!-- Removing whitespace in body for simpler frame trees -->
+<body
+ ><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 0000000000..7b19e815b2
--- /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 column-gap and the backgrounds
+ are just added here for easier visualization */
+#colset { width: 200px;
+ padding: 2px;
+ column-count: 3;
+ 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 0000000000..1819aa23be
--- /dev/null
+++ b/layout/reftests/pagination/combobox-page-break-inside-ref.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<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 0000000000..436620997b
--- /dev/null
+++ b/layout/reftests/pagination/combobox-page-break-inside.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<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/contain-size-break-001-ref.html b/layout/reftests/pagination/contain-size-break-001-ref.html
new file mode 100644
index 0000000000..9e28978679
--- /dev/null
+++ b/layout/reftests/pagination/contain-size-break-001-ref.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <meta charset="utf-8">
+ <title>CSS Reftest Reference</title>
+ <style>
+ .basicOuter {
+ height: 20px;
+ background: orange;
+ }
+ </style>
+</head>
+ <body>
+ <div class="basicOuter">
+ before
+ <div>inside</div>
+ after
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/contain-size-break-001.html b/layout/reftests/pagination/contain-size-break-001.html
new file mode 100644
index 0000000000..b596d521b5
--- /dev/null
+++ b/layout/reftests/pagination/contain-size-break-001.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+<meta charset="utf-8">
+ <title>CSS Test: 'contain: size' should ignore breaks and force elements to be monolithic.</title>
+ <style>
+ .contain {
+ contain:size;
+ }
+ .innerPageBreak {
+ page-break-before: always;
+ page-break-after: always;
+ }
+ .basicOuter {
+ height: 20px;
+ background: orange;
+ }
+ </style>
+</head>
+ <body>
+ <div class="contain basicOuter">
+ before
+ <div class="innerPageBreak">
+ inside
+ </div>
+ after
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/contain-size-break-002-ref.html b/layout/reftests/pagination/contain-size-break-002-ref.html
new file mode 100644
index 0000000000..3ccd8a6b8f
--- /dev/null
+++ b/layout/reftests/pagination/contain-size-break-002-ref.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <meta charset="utf-8">
+ <title>CSS Reftest Reference</title>
+ <style>
+ table {
+ background: lightblue;
+ height: 1in;
+ width: 1in;
+ }
+ .basicOuter {
+ height: 20px;
+ background: orange;
+ }
+ </style>
+</head>
+ <body>
+ <div class="basicOuter">
+ <table border>
+ <tr><td></td></tr>
+ <tr><td></td></tr>
+ </table>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/contain-size-break-002.html b/layout/reftests/pagination/contain-size-break-002.html
new file mode 100644
index 0000000000..ec3693fd98
--- /dev/null
+++ b/layout/reftests/pagination/contain-size-break-002.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+<meta charset="utf-8">
+ <title>CSS Test: 'contain: size' should ignore breaks and force elements to be monolithic.</title>
+ <style>
+ table {
+ background: lightblue;
+ height: 1in;
+ width: 1in;
+ }
+ .contain {
+ contain:size;
+ }
+ .innerPageBreak {
+ page-break-before: always;
+ page-break-after: always;
+ }
+ .basicOuter {
+ height: 20px;
+ background: orange;
+ }
+ </style>
+</head>
+ <body>
+ <div class="contain basicOuter">
+ <table border>
+ <tr class="innerPageBreak"><td></td></tr>
+ <tr class="innerPageBreak"><td></td></tr>
+ </table>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/contain-size-break-003-ref.html b/layout/reftests/pagination/contain-size-break-003-ref.html
new file mode 100644
index 0000000000..eadd23ae6c
--- /dev/null
+++ b/layout/reftests/pagination/contain-size-break-003-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <meta charset="utf-8">
+ <title>CSS Reftest Reference</title>
+</head>
+ <body>
+ <table>
+ <tr>
+ <td style="height:4in; width: 50px; background:orange;">
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>
diff --git a/layout/reftests/pagination/contain-size-break-003.html b/layout/reftests/pagination/contain-size-break-003.html
new file mode 100644
index 0000000000..08555cf878
--- /dev/null
+++ b/layout/reftests/pagination/contain-size-break-003.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+<meta charset="utf-8">
+ <title>CSS Test: 'contain: size' should not affect breaking in tables or table elements.</title>
+ <style>
+ .contain {
+ contain:size;
+ }
+ </style>
+</head>
+ <body>
+ <table class="contain">
+ <tr>
+ <td style="height:4in; width: 50px; background:orange;">
+ </td>
+ </tr>
+ </table>
+ </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 0000000000..a22b0079c6
--- /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;
+ column-width: 150px;
+ 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 0000000000..52fbd627c7
--- /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;
+ column-width: 150px;
+ 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 0000000000..4015521d90
--- /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;
+ column-width: 150px;
+ 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 0000000000..42760ef098
--- /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;
+ column-width: 150px;
+ 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 0000000000..464cdee7be
--- /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;
+ column-width: 150px;
+ column-gap: 0;
+ 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 0000000000..0f85d45fb0
--- /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;
+ column-width: 150px;
+ column-gap: 0;
+ 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 0000000000..2dde71a7bc
--- /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;
+ column-width: 150px;
+ column-gap: 0;
+ 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 0000000000..8a7dc6a699
--- /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;
+ column-width: 150px;
+ column-gap: 0;
+ 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 0000000000..d410fe1f4a
--- /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;
+ column-width: 150px;
+ column-gap: 0;
+ 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 0000000000..91d4aa89a5
--- /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;
+ column-width: 150px;
+ column-gap: 0;
+ 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 0000000000..52492b9e68
--- /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;
+ column-width: 150px;
+ column-gap: 0;
+ 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 0000000000..afcef207b2
--- /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;
+ column-width: 150px;
+ 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 0000000000..a31916eca6
--- /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;
+ column-width: 150px;
+ column-gap: 0;
+ 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/content-url-element.html b/layout/reftests/pagination/content-url-element.html
new file mode 100644
index 0000000000..4026a253fd
--- /dev/null
+++ b/layout/reftests/pagination/content-url-element.html
@@ -0,0 +1,9 @@
+<!doctype html>
+<html class="reftest-paged">
+<style>
+ div {
+ content: url(data:image/gif,GIF89a%01%00%E8%03%80%00%00%00%00%00%FF%FF%FF!%F9%04%00%00%00%00%00%2C%00%00%00%00%01%00%E8%03%00%02%1E%84%8F%A9%CB%ED%0F%A3%9C%B4%DA%8B%B3%DE%BC%FB%0F%86%E2H%96%E6%89%A6%EA%CA%B6%EE%0B%3B%05%00%3B);
+ height: 20in;
+ }
+</style>
+<div>FAIL</div>
diff --git a/layout/reftests/pagination/content-url-pseudo-ref.html b/layout/reftests/pagination/content-url-pseudo-ref.html
new file mode 100644
index 0000000000..9ef813c14f
--- /dev/null
+++ b/layout/reftests/pagination/content-url-pseudo-ref.html
@@ -0,0 +1,11 @@
+<!doctype html>
+<html class="reftest-paged">
+<style>
+ div {
+ display: block;
+ height: 20in;
+ }
+</style>
+<div>
+ <img src="data:image/gif,GIF89a%01%00%E8%03%80%00%00%00%00%00%FF%FF%FF!%F9%04%00%00%00%00%00%2C%00%00%00%00%01%00%E8%03%00%02%1E%84%8F%A9%CB%ED%0F%A3%9C%B4%DA%8B%B3%DE%BC%FB%0F%86%E2H%96%E6%89%A6%EA%CA%B6%EE%0B%3B%05%00%3B">
+</div>
diff --git a/layout/reftests/pagination/content-url-pseudo.html b/layout/reftests/pagination/content-url-pseudo.html
new file mode 100644
index 0000000000..a7d022ec35
--- /dev/null
+++ b/layout/reftests/pagination/content-url-pseudo.html
@@ -0,0 +1,10 @@
+<!doctype html>
+<html class="reftest-paged">
+<style>
+ div::after {
+ display: block;
+ content: url(data:image/gif,GIF89a%01%00%E8%03%80%00%00%00%00%00%FF%FF%FF!%F9%04%00%00%00%00%00%2C%00%00%00%00%01%00%E8%03%00%02%1E%84%8F%A9%CB%ED%0F%A3%9C%B4%DA%8B%B3%DE%BC%FB%0F%86%E2H%96%E6%89%A6%EA%CA%B6%EE%0B%3B%05%00%3B);
+ height: 20in;
+ }
+</style>
+<div></div>
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 0000000000..a063c742d2
--- /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 0000000000..8c1d7db62c
--- /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;
+ column-count: 3;
+ 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/fieldset-001-grid.html b/layout/reftests/pagination/fieldset-001-grid.html
new file mode 100644
index 0000000000..58f0bcd5ea
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-001-grid.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ display: grid;
+ grid-template-rows: repeat(2,auto);
+ padding: 0;
+ margin: 0;
+ border: 1em solid black;
+}
+.pb { page-break-after: always; }
+</style>
+</head>
+<body>
+ <fieldset><x class="pb">A</x>B</fieldset>
+ <span>AFTER</span>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-001-ref.html b/layout/reftests/pagination/fieldset-001-ref.html
new file mode 100644
index 0000000000..1009c92b56
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-001-ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+div {
+ padding: 0;
+ margin: 0;
+ border: 1em solid black;
+}
+.pb { page-break-after: always; }
+</style>
+</head>
+<body>
+ <div>A<br class="pb">B</div>
+ <span>AFTER</span>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-001.html b/layout/reftests/pagination/fieldset-001.html
new file mode 100644
index 0000000000..a46f788fae
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-001.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 1em solid black;
+}
+.pb { page-break-after: always; }
+</style>
+</head>
+<body>
+ <fieldset>A<br class="pb">B</fieldset>
+ <span>AFTER</span>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-002-ref.html b/layout/reftests/pagination/fieldset-002-ref.html
new file mode 100644
index 0000000000..09f6f0b68a
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-002-ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 1em solid black;
+}
+div { page-break-after: always; }
+</style>
+</head>
+<body>
+ <fieldset><div style="height:3em">A<br>B<br>C</div><div style="height:4em">D<br>E<br>F<br>G</div></fieldset>
+ <span>AFTER</span>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-002.html b/layout/reftests/pagination/fieldset-002.html
new file mode 100644
index 0000000000..98e98397ac
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-002.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 1em solid black;
+}
+</style>
+</head>
+<body>
+ <fieldset>A<br>B<br>C<br>D<br>E<br>F<br>G<br></fieldset>
+ <span>AFTER</span>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-003-ref.html b/layout/reftests/pagination/fieldset-003-ref.html
new file mode 100644
index 0000000000..e9510467f0
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-003-ref.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ position: relative;
+ padding: 0;
+ margin: 0;
+ padding-top: 0.5em;
+ margin-top: 0.5em;
+ border: 1em solid black;
+}
+div {
+ position: absolute;
+ top: -1em;
+ width: 3em;
+ height: 1em;
+ background-color: white;
+}
+</style>
+</head>
+<body>
+ <fieldset><div></div>A<br>B</fieldset>
+ <span>AFTER</span>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-003.html b/layout/reftests/pagination/fieldset-003.html
new file mode 100644
index 0000000000..fb683c8f7a
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-003.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 1em solid black;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 2em;
+}
+</style>
+</head>
+<body>
+ <fieldset><legend>&nbsp;</legend>A<br>B</fieldset>
+ <span>AFTER</span>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-004-ref.html b/layout/reftests/pagination/fieldset-004-ref.html
new file mode 100644
index 0000000000..5ffb65dcec
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-004-ref.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ position: relative;
+ padding: 0;
+ margin: 0;
+ padding-top: 0.5em;
+ margin-top: 0.5em;
+ border: 1em solid black;
+ border-bottom-color: white;
+ page-break-after: always;
+}
+div {
+ position: absolute;
+ top: -1em;
+ width: 3em;
+ height: 1em;
+ background-color: white;
+}
+p { margin: 0; }
+x { display: block; height: 1em; }
+</style>
+</head>
+<body>
+ <fieldset><div></div><x>A<br>B</x></fieldset>
+ <p style="padding-left:1em">C</p><p style="margin-top:-1em">AFTER</p>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-004.html b/layout/reftests/pagination/fieldset-004.html
new file mode 100644
index 0000000000..171f2109ff
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-004.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 1em solid black;
+ border-bottom-color: white;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 2em;
+}
+div { height: 1em; }
+</style>
+</head>
+<body>
+ <fieldset><div>A<br>B<br>C</div><legend></legend></fieldset>
+ <span>AFTER</span>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-005-ref.html b/layout/reftests/pagination/fieldset-005-ref.html
new file mode 100644
index 0000000000..8032eb1de9
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-005-ref.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ position: relative;
+ padding: 0;
+ margin: 0;
+ padding-top: 0.5em;
+ margin-top: 0.5em;
+ border: 1em solid black;
+ page-break-after:always;
+}
+div {
+ position: absolute;
+ top: -1em;
+ width: 3em;
+ height: 1em;
+ background-color: white;
+}
+p { margin:0 }
+</style>
+</head>
+<body>
+ <fieldset><div></div>A</fieldset>
+ <p style="width:3em; height:1em; background:black; position: relative; left:1em"></p>
+ <p style="margin-top:-1em">AFTER</p>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-005.html b/layout/reftests/pagination/fieldset-005.html
new file mode 100644
index 0000000000..482256bc58
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-005.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 1em solid black;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 2em;
+}
+div { width:100%; height: 4em; border-bottom: 1em solid black; }
+</style>
+</head>
+<body>
+ <fieldset>A<legend><div></div></legend></fieldset>
+ <span>AFTER</span>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-006-ref.html b/layout/reftests/pagination/fieldset-006-ref.html
new file mode 100644
index 0000000000..7b0acf4c39
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-006-ref.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ position: relative;
+ padding: 0;
+ margin: 0;
+ padding-top: 0.5em;
+ margin-top: 0.5em;
+ border: 1em solid black;
+ border-bottom-color: white;
+ page-break-after:always;
+}
+div {
+ position: absolute;
+ top: -1em;
+ width: 3em;
+ height: 1em;
+ background-color: white;
+}
+p { margin:0 }
+x { display:block; height:1em; }
+</style>
+</head>
+<body>
+ <fieldset><div></div><x>A<br>B</x></fieldset>
+ <p style="padding-left:1em">C<br>D<br>E</p>
+ <p style="margin-top:-3em">AFTER</p>
+ <p style="height:5em"></p>
+ <p style="width:3em; height:1em; background:black; position: relative; left:1em"></p>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-006.html b/layout/reftests/pagination/fieldset-006.html
new file mode 100644
index 0000000000..8c955dc316
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-006.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 1em solid black;
+ border-bottom-color: white;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 2em;
+}
+div { width:100%; height: 10em; border-bottom: 1em solid black; }
+x { display:block; height:1em; }
+</style>
+</head>
+<body>
+ <fieldset><x>A<br>B<br>C<br>D<br>E</x><legend><div></div></legend></fieldset>
+ <span>AFTER</span>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-007-ref.html b/layout/reftests/pagination/fieldset-007-ref.html
new file mode 100644
index 0000000000..3548bb84bf
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-007-ref.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0.1em;
+ margin: 0.5em;
+ border: 0.2em solid black;
+ margin-top: 0.3em;
+}
+legend {
+ padding: 0.2em;
+ margin: 0.3em;
+ width: 3em;
+ height: 1em;
+ background: black;
+}
+.pb { page-break-after: always; }
+</style>
+</head>
+<body>
+ <fieldset>A<br><div class="pb"></div>B<legend></legend></fieldset>
+ <span>AFTER</span>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-007.html b/layout/reftests/pagination/fieldset-007.html
new file mode 100644
index 0000000000..6114e7ea37
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-007.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0.1em;
+ margin: 0.5em;
+ border: 0.2em solid black;
+ margin-top: 0.3em;
+}
+legend {
+ padding: 0.2em;
+ margin: 0.3em;
+ width: 3em;
+ height: 1em;
+ background: black;
+}
+</style>
+</head>
+<body>
+ <fieldset>A<br>B<legend></legend></fieldset>
+ <span>AFTER</span>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-008-ref.html b/layout/reftests/pagination/fieldset-008-ref.html
new file mode 100644
index 0000000000..31db8e9162
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-008-ref.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0.5em;
+ margin: 1em;
+ border: 1em solid black;
+ border-bottom-width: 0;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 0;
+ height: 0;
+}
+p {
+ margin: 1em;
+ margin-top: 0;
+ padding: 0;
+ border: 1em solid black;
+ border-top-width: 0;
+}
+.pb { page-break-after: always; }
+</style>
+</head>
+<body>
+ <fieldset class="pb"><legend></legend>A</fieldset>
+ <p></p>
+ <span>AFTER</span>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-008.html b/layout/reftests/pagination/fieldset-008.html
new file mode 100644
index 0000000000..f0aa6e6cec
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-008.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0.5em;
+ margin: 1em;
+ border: 1em solid black;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 0;
+ height: 0;
+}
+</style>
+</head>
+<body>
+ <fieldset><legend></legend>A</fieldset>
+ <span>AFTER</span>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-009-ref.html b/layout/reftests/pagination/fieldset-009-ref.html
new file mode 100644
index 0000000000..9ddcf66784
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-009-ref.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+div {
+ padding: 0;
+ margin: 0;
+ margin-top: 0.5em;
+ border: 1em solid black;
+}
+x {
+ position: relative;
+ display: block;
+ padding: 0;
+ margin: 0;
+ margin-top: -1.5em;
+ width: 3em;
+ height: 2em;
+ box-sizing: border-box;
+ border: 0.1in solid black;
+ background: white;
+}
+</style>
+</head>
+<body>
+ <div><x></x></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-009.html b/layout/reftests/pagination/fieldset-009.html
new file mode 100644
index 0000000000..2e85b8828c
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-009.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 1em solid black;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 2em;
+ box-sizing: border-box;
+ border: 0.1in solid black;
+}
+</style>
+</head>
+<body>
+ <fieldset><legend></legend></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00A-ref.html b/layout/reftests/pagination/fieldset-00A-ref.html
new file mode 100644
index 0000000000..5eb154b331
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00A-ref.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 1em solid black;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 2em;
+ box-sizing: border-box;
+ border: 0.1in solid black;
+}
+</style>
+</head>
+<body>
+ <fieldset><legend></legend></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00A.html b/layout/reftests/pagination/fieldset-00A.html
new file mode 100644
index 0000000000..036ca78216
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00A.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 1em solid black;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 2em;
+ box-sizing: border-box;
+ border: 0.1in solid black;
+ page-break-before: always;
+}
+</style>
+</head>
+<body>
+ <fieldset><legend></legend></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00B-ref.html b/layout/reftests/pagination/fieldset-00B-ref.html
new file mode 100644
index 0000000000..94ec989c23
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00B-ref.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+div {
+ padding: 0;
+ margin: 0;
+ border: 1em solid black;
+}
+x {
+ display: block;
+ padding: 0;
+ margin: 0;
+ margin-top: -1.5em;
+ width: 3em;
+ height: 2em;
+ box-sizing: border-box;
+ border: 0.1in solid black;
+ background: white;
+}
+</style>
+</head>
+<body>
+ X
+ <br style="page-break-after:always">
+ <p style="margin:0; padding-top:0.5em"></p>
+ <div><x></x></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00B.html b/layout/reftests/pagination/fieldset-00B.html
new file mode 100644
index 0000000000..04f01afbef
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00B.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 1em solid black;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 2em;
+ box-sizing: border-box;
+ border: 0.1in solid black;
+ page-break-before: always;
+}
+</style>
+</head>
+<body>
+ X
+ <fieldset><legend></legend></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00C-ref.html b/layout/reftests/pagination/fieldset-00C-ref.html
new file mode 100644
index 0000000000..4f47e28762
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00C-ref.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ background: black;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 2em;
+ box-sizing: border-box;
+ border: 0.1in solid black;
+}
+</style>
+</head>
+<body>
+ X
+ <br style="page-break-after:always">
+ <fieldset><legend></legend></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00C.html b/layout/reftests/pagination/fieldset-00C.html
new file mode 100644
index 0000000000..bce234c68e
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00C.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ background: black;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 2em;
+ box-sizing: border-box;
+ border: 0.1in solid black;
+ page-break-before: always;
+}
+</style>
+</head>
+<body>
+ X
+ <fieldset><legend></legend></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00D-ref.html b/layout/reftests/pagination/fieldset-00D-ref.html
new file mode 100644
index 0000000000..944ab3cc0c
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00D-ref.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ border: 0.1in solid black;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 2em;
+ box-sizing: border-box;
+ border: 0.1in solid black;
+}
+</style>
+</head>
+<body>
+ <fieldset><legend></legend></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00D.html b/layout/reftests/pagination/fieldset-00D.html
new file mode 100644
index 0000000000..c85cc6d6df
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00D.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ border: 0.1in solid black;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 2em;
+ box-sizing: border-box;
+ border: 0.1in solid black;
+}
+x {
+ page-break-before: always;
+}
+</style>
+</head>
+<body>
+ <fieldset><legend><x></x></legend></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00E-ref.html b/layout/reftests/pagination/fieldset-00E-ref.html
new file mode 100644
index 0000000000..75b601d871
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00E-ref.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0.1in solid black;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 2em;
+ box-sizing: border-box;
+ border: 0.1in solid black;
+}
+x {
+ display: block;
+ page-break-after: always;
+}
+</style>
+</head>
+<body>
+ <fieldset><legend></legend><x></x></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00E.html b/layout/reftests/pagination/fieldset-00E.html
new file mode 100644
index 0000000000..73582e7500
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00E.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0.1in solid black;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 2em;
+ box-sizing: border-box;
+ border: 0.1in solid black;
+ page-break-after: always;
+}
+</style>
+</head>
+<body>
+ <fieldset><legend></legend></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00F-ref.html b/layout/reftests/pagination/fieldset-00F-ref.html
new file mode 100644
index 0000000000..35d9daddd4
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00F-ref.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ border: 0.1in solid black;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 2em;
+ box-sizing: border-box;
+ border: 0.1in solid black;
+}
+div { page-break-before: always; break-inside: avoid; }
+</style>
+</head>
+<body>
+ <fieldset><legend></legend><div>A</div></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00F.html b/layout/reftests/pagination/fieldset-00F.html
new file mode 100644
index 0000000000..df318f5028
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00F.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ border: 0.1in solid black;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 2em;
+ box-sizing: border-box;
+ border: 0.1in solid black;
+ page-break-after: always;
+}
+</style>
+</head>
+<body>
+ <fieldset><legend></legend>A</fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00G-ref.html b/layout/reftests/pagination/fieldset-00G-ref.html
new file mode 100644
index 0000000000..23a18129db
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00G-ref.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ border: 0.1in solid black;
+ break-inside: avoid;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 3in;
+ box-sizing: border-box;
+ border: 0.1in solid black;
+}
+</style>
+</head>
+<body>
+ A
+ <div style="page-break-after:always"></div>
+ <fieldset><legend></legend></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00G.html b/layout/reftests/pagination/fieldset-00G.html
new file mode 100644
index 0000000000..6b12193f6e
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00G.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ border: 0.1in solid black;
+ break-inside: avoid;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 3in;
+ box-sizing: border-box;
+ border: 0.1in solid black;
+}
+</style>
+</head>
+<body>
+ A
+ <fieldset><legend></legend></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00H-grid.html b/layout/reftests/pagination/fieldset-00H-grid.html
new file mode 100644
index 0000000000..4b717a0a92
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00H-grid.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ display: grid;
+ grid-template-rows: repeat(3,auto);
+ padding: 0;
+ margin: 0;
+ border: 0;
+ border: 0.1in solid black;
+ break-inside: avoid;
+}
+</style>
+</head>
+<body>
+ X
+ <fieldset><x>A</x>B<x>C</x></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00H-ref.html b/layout/reftests/pagination/fieldset-00H-ref.html
new file mode 100644
index 0000000000..a1ef27a5a1
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00H-ref.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+div {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ border: 0.1in solid black;
+ break-inside: avoid;
+}
+</style>
+</head>
+<body>
+ X
+ <br style="page-break-after:always">
+ <div>A<br>B<br>C</div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00H.html b/layout/reftests/pagination/fieldset-00H.html
new file mode 100644
index 0000000000..9acb4893ab
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00H.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ border: 0.1in solid black;
+ break-inside: avoid;
+}
+</style>
+</head>
+<body>
+ X
+ <fieldset>A<br>B<br>C</fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00I-grid.html b/layout/reftests/pagination/fieldset-00I-grid.html
new file mode 100644
index 0000000000..04d2b3eb8b
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00I-grid.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ display: grid;
+ grid-template-rows: repeat(2,auto);
+ padding: 0;
+ margin: 0;
+ border: 0;
+ border: 0.1in solid black;
+ break-inside: avoid;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 1em;
+ box-sizing: border-box;
+ background: black;
+}
+</style>
+</head>
+<body>
+ X
+ <fieldset><legend></legend><x>A</x>B</fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00I-ref.html b/layout/reftests/pagination/fieldset-00I-ref.html
new file mode 100644
index 0000000000..8055b4223d
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00I-ref.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ border: 0.1in solid black;
+ break-inside: avoid;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 1em;
+ box-sizing: border-box;
+ background: black;
+}
+</style>
+</head>
+<body>
+ X
+ <br style="page-break-after:always">
+ <fieldset><legend></legend>A<br>B<br></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00I.html b/layout/reftests/pagination/fieldset-00I.html
new file mode 100644
index 0000000000..f3586a77cf
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00I.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ border: 0.1in solid black;
+ break-inside: avoid;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 1em;
+ box-sizing: border-box;
+ background: black;
+}
+</style>
+</head>
+<body>
+ X
+ <fieldset><legend></legend>A<br>B<br></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00J-grid.html b/layout/reftests/pagination/fieldset-00J-grid.html
new file mode 100644
index 0000000000..8c31bdae55
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00J-grid.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ display: grid;
+ grid-template-rows: repeat(3,auto);
+ padding: 0;
+ margin: 0;
+ border: 0;
+ border: 0.1in solid black;
+ break-inside: avoid;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 1em;
+ box-sizing: border-box;
+ background: black;
+}
+</style>
+</head>
+<body>
+ <fieldset><legend></legend><x>A</x>B<x>C</x></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00J-ref.html b/layout/reftests/pagination/fieldset-00J-ref.html
new file mode 100644
index 0000000000..2621083be3
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00J-ref.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ border: 0.1in solid black;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 1em;
+ box-sizing: border-box;
+ background: black;
+}
+</style>
+</head>
+<body>
+ <fieldset><legend></legend>A<br>B<br>C<br style="page-break-after:always"></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00J.html b/layout/reftests/pagination/fieldset-00J.html
new file mode 100644
index 0000000000..19c197ccdb
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00J.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ border: 0.1in solid black;
+ break-inside: avoid;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 1em;
+ box-sizing: border-box;
+ background: black;
+}
+</style>
+</head>
+<body>
+ <fieldset><legend></legend>A<br>B<br>C<br></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00K-ref.html b/layout/reftests/pagination/fieldset-00K-ref.html
new file mode 100644
index 0000000000..d0851402c6
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00K-ref.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>Reference: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ border: 0.1in solid black;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 3in;
+ box-sizing: border-box;
+ border: 0.1in solid black;
+}
+</style>
+</head>
+<body>
+ <div style="height:0"><fieldset><legend></legend></fieldset></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00K.html b/layout/reftests/pagination/fieldset-00K.html
new file mode 100644
index 0000000000..f89d99e6e8
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00K.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ border: 0.1in solid black;
+ break-inside: avoid;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 3in;
+ box-sizing: border-box;
+ border: 0.1in solid black;
+}
+</style>
+</head>
+<body>
+ <fieldset><legend></legend></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00L-ref.html b/layout/reftests/pagination/fieldset-00L-ref.html
new file mode 100644
index 0000000000..441b94fddc
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00L-ref.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 1em;
+ margin: 0;
+ border: 0;
+ border: 0.1in solid black;
+}
+legend {
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 5in;
+ box-sizing: border-box;
+ border: 0.1in solid black;
+}
+</style>
+</head>
+<body>
+ A
+ <br style="page-break-after:always">
+ <fieldset><legend></legend></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00L.html b/layout/reftests/pagination/fieldset-00L.html
new file mode 100644
index 0000000000..c680febc6f
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00L.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=471015">
+ <meta name="flags" content="paged">
+ <style>
+@page { size:5in 3in; margin:0.5in; }
+html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+}
+fieldset {
+ padding: 1em;
+ margin: 0;
+ border: 0;
+ border: 0.1in solid black;
+}
+legend {
+ break-inside: avoid;
+ padding: 0;
+ margin: 0;
+ width: 3em;
+ height: 5in;
+ box-sizing: border-box;
+ border: 0.1in solid black;
+}
+</style>
+</head>
+<body>
+ A
+ <fieldset><legend></legend></fieldset>
+</body>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00M-ref.html b/layout/reftests/pagination/fieldset-00M-ref.html
new file mode 100644
index 0000000000..cc89e41703
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00M-ref.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <title>CSS Reference: fieldset fragmentation</title>
+ <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+ <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1735375">
+ <meta name="flags" content="paged">
+ <style>
+ @page { size:5in 3in; margin:0.5in; }
+ html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+ }
+ .flexbox {
+ display: flex;
+ }
+ .fieldset {
+ padding: 0;
+ margin: 0;
+ border: 1em solid black;
+ }
+ </style>
+
+ <div class="flexbox">
+ <div>
+ <div>BEFORE</div>
+ <div class="fieldset">A<br>B<br>C</div>
+ </div>
+ </div>
+</html>
diff --git a/layout/reftests/pagination/fieldset-00M.html b/layout/reftests/pagination/fieldset-00M.html
new file mode 100644
index 0000000000..37db42a1e2
--- /dev/null
+++ b/layout/reftests/pagination/fieldset-00M.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <title>CSS Test: fieldset fragmentation</title>
+ <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+ <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1735375">
+ <meta name="flags" content="paged">
+ <style>
+ @page { size:5in 3in; margin:0.5in; }
+ html,body {
+ color:black; background-color:white; font:0.5in/1 monospace; padding:0; margin:0;
+ }
+ .flexbox {
+ display: flex;
+ }
+ fieldset {
+ padding: 0;
+ margin: 0;
+ border: 1em solid black;
+ }
+ </style>
+
+ <div class="flexbox">
+ <div>
+ <div>BEFORE</div>
+ <fieldset>A<br>B<br>C</fieldset>
+ </div>
+ </div>
+</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 0000000000..b2ea7c907a
--- /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-paged">
+<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 0000000000..93f9aae19f
--- /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-paged">
+<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-001-print.html b/layout/reftests/pagination/float-clear-001-print.html
new file mode 100644
index 0000000000..ecb1ae2c58
--- /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-paged">
+<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-002-print.html b/layout/reftests/pagination/float-clear-002-print.html
new file mode 100644
index 0000000000..e81cc08eb2
--- /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-paged">
+<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-003-print.html b/layout/reftests/pagination/float-clear-003-print.html
new file mode 100644
index 0000000000..4b1bbbfa40
--- /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-paged">
+<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-continuations-000.html b/layout/reftests/pagination/float-continuations-000.html
new file mode 100644
index 0000000000..34d90dccdd
--- /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;
+ column-width: 100px;
+ 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 0000000000..578cbc1ce5
--- /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;
+ column-width: 100px;
+ 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/image.html b/layout/reftests/pagination/image.html
new file mode 100644
index 0000000000..37936fc705
--- /dev/null
+++ b/layout/reftests/pagination/image.html
@@ -0,0 +1,4 @@
+<!doctype html>
+<html class="reftest-paged">
+<img style="display: block; height: 20in"
+ src="data:image/gif,GIF89a%01%00%E8%03%80%00%00%00%00%00%FF%FF%FF!%F9%04%00%00%00%00%00%2C%00%00%00%00%01%00%E8%03%00%02%1E%84%8F%A9%CB%ED%0F%A3%9C%B4%DA%8B%B3%DE%BC%FB%0F%86%E2H%96%E6%89%A6%EA%CA%B6%EE%0B%3B%05%00%3B">
diff --git a/layout/reftests/pagination/inline-block-frag-offset-1-ref.html b/layout/reftests/pagination/inline-block-frag-offset-1-ref.html
new file mode 100644
index 0000000000..17824b4715
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-frag-offset-1-ref.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <style>
+ @page {
+ size: 5in 3in;
+ margin: 0.5in;
+ }
+
+ * {
+ margin: 0;
+ }
+
+ .green {
+ display: block;
+ width: 1in;
+ height: 3in;
+ background-color: green;
+ }
+
+ .blue {
+ width: 1in;
+ height: 1in;
+ background-color: blue;
+ position: absolute;
+ top: 1.5in;
+ z-index: 1;
+ }
+ </style>
+</head>
+<body>
+ <div class="green"></div>
+ <div class="blue"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-frag-offset-1.html b/layout/reftests/pagination/inline-block-frag-offset-1.html
new file mode 100644
index 0000000000..bdb888ffb0
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-frag-offset-1.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <style>
+ @page {
+ size: 5in 3in;
+ margin: 0.5in;
+ }
+
+ * {
+ margin: 0;
+ }
+
+ .green {
+ display: inline-block;
+ width: 1in;
+ height: 3in;
+ background-color: green;
+ }
+
+ .blue {
+ width: 1in;
+ height: 1in;
+ background-color: blue;
+ transform: translateY(1.5in);
+ }
+ </style>
+</head>
+<body>
+ <div class="green">
+ <div class="blue"></div>
+ </div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-frag-offset-2-ref.html b/layout/reftests/pagination/inline-block-frag-offset-2-ref.html
new file mode 100644
index 0000000000..b43d876e2e
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-frag-offset-2-ref.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <style>
+ @page {
+ size: 5in 3in;
+ margin: 0.5in;
+ }
+
+ * {
+ margin: 0;
+ }
+
+ .green {
+ display: block;
+ width: 1in;
+ height: 3in;
+ background-color: green;
+ transform: translateX(0.5in);
+ }
+
+ .blue {
+ width: 1in;
+ height: 1in;
+ background-color: blue;
+ position: absolute;
+ top: 1.5in;
+ transform: translateX(0.5in);
+ z-index: 1;
+ }
+ </style>
+</head>
+<body>
+ <div class="green"></div>
+ <div class="blue"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-frag-offset-2.html b/layout/reftests/pagination/inline-block-frag-offset-2.html
new file mode 100644
index 0000000000..883dc00a33
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-frag-offset-2.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <style>
+ @page {
+ size: 5in 3in;
+ margin: 0.5in;
+ }
+
+ * {
+ margin: 0;
+ }
+
+ .green {
+ display: inline-block;
+ width: 1in;
+ height: 3in;
+ background-color: green;
+ transform: translateX(0.5in);
+ }
+
+ .blue {
+ width: 1in;
+ height: 1in;
+ background-color: blue;
+ transform: translateY(1.5in);
+ }
+ </style>
+</head>
+<body>
+ <div class="green">
+ <div class="blue"></div>
+ </div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-frag-simple-1-ref.html b/layout/reftests/pagination/inline-block-frag-simple-1-ref.html
new file mode 100644
index 0000000000..3cab5ecaf1
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-frag-simple-1-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <style>
+ @page { size:5in 3in; margin:0.5in; }
+
+ html,
+ body {
+ padding: 0;
+ margin: 0;
+ }
+
+ .gradient {
+ display: block;
+ background: linear-gradient(white, green);
+ border: 1px solid;
+ width: 100px;
+ height: 1000px;
+ }
+ </style>
+</head>
+<body>
+ <div class="gradient"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-frag-simple-1.html b/layout/reftests/pagination/inline-block-frag-simple-1.html
new file mode 100644
index 0000000000..e305a102ae
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-frag-simple-1.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <style>
+ @page { size:5in 3in; margin:0.5in; }
+
+ html,
+ body {
+ padding: 0;
+ margin: 0;
+ }
+
+ .gradient {
+ display: inline-block;
+ background: linear-gradient(white, green);
+ border: 1px solid;
+ width: 100px;
+ height: 1000px;
+ }
+ </style>
+</head>
+<body>
+ <div class="gradient"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-frag-simple-2-ref.html b/layout/reftests/pagination/inline-block-frag-simple-2-ref.html
new file mode 100644
index 0000000000..98cc911504
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-frag-simple-2-ref.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <style>
+ @page { size:5in 3in; margin:0.5in; }
+
+ html,
+ body {
+ padding: 0;
+ margin: 0;
+ }
+
+ .gradient {
+ display: block;
+ background: linear-gradient(white, green);
+ border: 1px solid;
+ width: 100px;
+ height: 1000px;
+ }
+ </style>
+</head>
+<body>
+ <div style="page-break-after: always;"></div>
+ <div class="gradient"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-frag-simple-2.html b/layout/reftests/pagination/inline-block-frag-simple-2.html
new file mode 100644
index 0000000000..a926027a5b
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-frag-simple-2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <style>
+ @page { size:5in 3in; margin:0.5in; }
+
+ html,
+ body {
+ padding: 0;
+ margin: 0;
+ }
+
+ .gradient {
+ display: inline-block;
+ background: linear-gradient(white, green);
+ border: 1px solid;
+ width: 100px;
+ height: 1000px;
+ }
+ </style>
+</head>
+<body>
+ <div style="page-break-after: always;"></div>
+ <div class="gradient"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-frag-text-1-ref.html b/layout/reftests/pagination/inline-block-frag-text-1-ref.html
new file mode 100644
index 0000000000..d8b22419b9
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-frag-text-1-ref.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <style>
+ @page {
+ size: 5in 3in;
+ margin: 0;
+ }
+
+ @font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+ }
+
+ * {
+ margin: 0;
+ padding: 0;
+ }
+
+ .text {
+ display: block;
+ border: 2px solid;
+ background-color: grey;
+ width: 220px;
+ font: 50px/1 Ahem;
+ }
+
+ .first {
+ position: absolute;
+ top: calc(3in - 25px);
+ left: 0px;
+ }
+
+ .second {
+ position: relative;
+ top: -25px;
+ left: 0px;
+ }
+ </style>
+</head>
+
+<body>
+ <div class="text first">XpXp</div>
+ <div style="page-break-after: always"></div>
+ <div class="text second">XpXp</div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-frag-text-1.html b/layout/reftests/pagination/inline-block-frag-text-1.html
new file mode 100644
index 0000000000..5297c8ab79
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-frag-text-1.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+<head>
+ <style>
+ @page {
+ size: 5in 3in;
+ margin: 0;
+ }
+
+ @font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+ }
+
+ * {
+ margin: 0;
+ padding: 0;
+ }
+
+ .text {
+ display: inline-block;
+ border: 2px solid;
+ background-color: grey;
+ width: 220px;
+ font: 50px/1 Ahem;
+ }
+
+ .pos {
+ position: absolute;
+ top: calc(3in - 25px);
+ left: 0px;
+ }
+ </style>
+</head>
+<body>
+ <div class="text pos">XpXp</div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-1-ref.html b/layout/reftests/pagination/inline-block-slice-1-ref.html
new file mode 100644
index 0000000000..9793be3e11
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-1-ref.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+}
+
+.ib {
+ display: block;
+ inline-size: 50vw;
+ block-size: 150vh;
+ background-color: grey;
+ vertical-align: top;
+}
+
+.after {
+ inline-size: 50vw;
+ block-size: 10vh;
+ background-color: black;
+}
+</style>
+</head>
+<body>
+ <div class="ib"></div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-1.html b/layout/reftests/pagination/inline-block-slice-1.html
new file mode 100644
index 0000000000..6f8392e5ac
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-1.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+}
+
+.ib {
+ display: inline-block;
+ inline-size: 50vw;
+ block-size: 150vh;
+ background-color: grey;
+ vertical-align: top;
+}
+
+.after {
+ inline-size: 50vw;
+ block-size: 10vh;
+ background-color: black;
+}
+</style>
+</head>
+<body>
+ <div class="ib"></div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-1b-ref.html b/layout/reftests/pagination/inline-block-slice-1b-ref.html
new file mode 100644
index 0000000000..d4aba85ca0
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-1b-ref.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+ writing-mode: vertical-lr;
+}
+
+.ib {
+ display: block;
+ inline-size: 50vh;
+ block-size: 150vw;
+ background-color: grey;
+ vertical-align: top;
+}
+
+.after {
+ inline-size: 50vh;
+ block-size: 10vw;
+ background-color: black;
+}
+</style>
+</head>
+<body>
+ <div class="ib"></div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-1b.html b/layout/reftests/pagination/inline-block-slice-1b.html
new file mode 100644
index 0000000000..41619c2d98
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-1b.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+ writing-mode: vertical-lr;
+}
+
+.ib {
+ display: inline-block;
+ inline-size: 50vh;
+ block-size: 150vw;
+ background-color: grey;
+ vertical-align: top;
+}
+
+.after {
+ inline-size: 50vh;
+ block-size: 10vw;
+ background-color: black;
+}
+</style>
+</head>
+<body>
+ <div class="ib"></div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-1c-ref.html b/layout/reftests/pagination/inline-block-slice-1c-ref.html
new file mode 100644
index 0000000000..b40cbf262e
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-1c-ref.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+ writing-mode: vertical-rl;
+}
+
+.ib {
+ display: block;
+ inline-size: 50vh;
+ block-size: 150vw;
+ background-color: grey;
+ vertical-align: top;
+}
+
+.after {
+ inline-size: 50vh;
+ block-size: 10vw;
+ background-color: black;
+}
+</style>
+</head>
+<body>
+ <div class="ib"></div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-1c.html b/layout/reftests/pagination/inline-block-slice-1c.html
new file mode 100644
index 0000000000..0eb4f6a660
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-1c.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+ writing-mode: vertical-rl;
+}
+
+.ib {
+ display: inline-block;
+ inline-size: 50vh;
+ block-size: 150vw;
+ background-color: grey;
+ vertical-align: top;
+}
+
+.after {
+ inline-size: 50vh;
+ block-size: 10vw;
+ background-color: black;
+}
+</style>
+</head>
+<body>
+ <div class="ib"></div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-2-ref.html b/layout/reftests/pagination/inline-block-slice-2-ref.html
new file mode 100644
index 0000000000..11a9f568f1
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-2-ref.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+}
+
+.ib {
+ display: block;
+ inline-size: 50vw;
+ block-size: 150vh;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.after {
+ inline-size: 60vw;
+ block-size: 10vh;
+ position: relative;
+ inset-block-start: -20vh;
+ border: 5px solid grey;
+ background-color: white;
+}
+</style>
+</head>
+<body>
+ <div class="ib"></div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-2.html b/layout/reftests/pagination/inline-block-slice-2.html
new file mode 100644
index 0000000000..258527cfa5
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-2.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+}
+
+.ib {
+ display: inline-block;
+ inline-size: 50vw;
+ block-size: 150vh;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.after {
+ inline-size: 60vw;
+ block-size: 10vh;
+ position: relative;
+ inset-block-start: -20vh;
+ border: 5px solid grey;
+ background-color: white;
+}
+</style>
+</head>
+<body>
+ <div class="ib"></div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-2b-ref.html b/layout/reftests/pagination/inline-block-slice-2b-ref.html
new file mode 100644
index 0000000000..bd648957e6
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-2b-ref.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+ writing-mode: vertical-lr;
+}
+
+.ib {
+ display: block;
+ inline-size: 50vh;
+ block-size: 150vw;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.after {
+ inline-size: 60vh;
+ block-size: 10vw;
+ position: relative;
+ inset-block-start: -20vw;
+ border: 5px solid grey;
+ background-color: white;
+}
+</style>
+</head>
+<body>
+ <div class="ib"></div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-2b.html b/layout/reftests/pagination/inline-block-slice-2b.html
new file mode 100644
index 0000000000..831e568e71
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-2b.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+ writing-mode: vertical-lr;
+}
+
+.ib {
+ display: inline-block;
+ inline-size: 50vh;
+ block-size: 150vw;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.after {
+ inline-size: 60vh;
+ block-size: 10vw;
+ position: relative;
+ inset-block-start: -20vw;
+ border: 5px solid grey;
+ background-color: white;
+}
+</style>
+</head>
+<body>
+ <div class="ib"></div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-2c-ref.html b/layout/reftests/pagination/inline-block-slice-2c-ref.html
new file mode 100644
index 0000000000..1c643d1881
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-2c-ref.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+ writing-mode: vertical-rl;
+}
+
+.ib {
+ display: block;
+ inline-size: 50vh;
+ block-size: 150vw;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.after {
+ inline-size: 60vh;
+ block-size: 10vw;
+ position: relative;
+ inset-block-start: -20vw;
+ border: 5px solid grey;
+ background-color: white;
+}
+</style>
+</head>
+<body>
+ <div class="ib"></div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-2c.html b/layout/reftests/pagination/inline-block-slice-2c.html
new file mode 100644
index 0000000000..f6ea9f6d79
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-2c.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+ writing-mode: vertical-rl;
+}
+
+.ib {
+ display: inline-block;
+ inline-size: 50vh;
+ block-size: 150vw;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.after {
+ inline-size: 60vh;
+ block-size: 10vw;
+ position: relative;
+ inset-block-start: -20vw;
+ border: 5px solid grey;
+ background-color: white;
+}
+</style>
+</head>
+<body>
+ <div class="ib"></div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-3-ref.html b/layout/reftests/pagination/inline-block-slice-3-ref.html
new file mode 100644
index 0000000000..00cadb6166
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-3-ref.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+}
+
+.ib {
+ display: block;
+ inline-size: 50vw;
+ block-size: 130vh;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.ib > div {
+ inline-size: 50vw;
+ block-size: 150vh;
+ border: 5px solid grey;
+}
+
+.after {
+ inline-size: 60vw;
+ block-size: 10vh;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ <div class="ib">
+ <div></div>
+ </div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-3.html b/layout/reftests/pagination/inline-block-slice-3.html
new file mode 100644
index 0000000000..2fcb06d8b8
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-3.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+}
+
+.ib {
+ display: inline-block;
+ inline-size: 50vw;
+ block-size: 130vh;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.ib > div {
+ inline-size: 50vw;
+ block-size: 150vh;
+ border: 5px solid grey;
+}
+
+.after {
+ display: inline-block;
+ vertical-align: top;
+ inline-size: 60vw;
+ block-size: 10vh;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ <div class="ib">
+ <div></div>
+ </div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-3b-ref.html b/layout/reftests/pagination/inline-block-slice-3b-ref.html
new file mode 100644
index 0000000000..dae62a8ce0
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-3b-ref.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+ writing-mode: vertical-lr;
+}
+
+.ib {
+ display: block;
+ inline-size: 50vh;
+ block-size: 130vw;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.ib > div {
+ inline-size: 50vh;
+ block-size: 150vw;
+ border: 5px solid grey;
+}
+
+.after {
+ inline-size: 60vh;
+ block-size: 10vw;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ <div class="ib">
+ <div></div>
+ </div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-3b.html b/layout/reftests/pagination/inline-block-slice-3b.html
new file mode 100644
index 0000000000..3db9323699
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-3b.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+ writing-mode: vertical-lr;
+}
+
+.ib {
+ display: inline-block;
+ inline-size: 50vh;
+ block-size: 130vw;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.ib > div {
+ inline-size: 50vh;
+ block-size: 150vw;
+ border: 5px solid grey;
+}
+
+.after {
+ display: inline-block;
+ vertical-align: top;
+ inline-size: 60vh;
+ block-size: 10vw;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ <div class="ib">
+ <div></div>
+ </div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-3c-ref.html b/layout/reftests/pagination/inline-block-slice-3c-ref.html
new file mode 100644
index 0000000000..733dbda168
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-3c-ref.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+ writing-mode: vertical-rl;
+}
+
+.ib {
+ display: block;
+ inline-size: 50vh;
+ block-size: 130vw;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.ib > div {
+ inline-size: 50vh;
+ block-size: 150vw;
+ border: 5px solid grey;
+}
+
+.after {
+ inline-size: 60vh;
+ block-size: 10vw;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ <div class="ib">
+ <div></div>
+ </div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-3c.html b/layout/reftests/pagination/inline-block-slice-3c.html
new file mode 100644
index 0000000000..6bca5af2d4
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-3c.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+ writing-mode: vertical-rl;
+}
+
+.ib {
+ display: inline-block;
+ inline-size: 50vh;
+ block-size: 130vw;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.ib > div {
+ inline-size: 50vh;
+ block-size: 150vw;
+ border: 5px solid grey;
+}
+
+.after {
+ display: inline-block;
+ vertical-align: top;
+ inline-size: 60vh;
+ block-size: 10vw;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ <div class="ib">
+ <div></div>
+ </div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-4-ref.html b/layout/reftests/pagination/inline-block-slice-4-ref.html
new file mode 100644
index 0000000000..ed517fb66e
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-4-ref.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+}
+html { margin-block-start: 80vh; }
+
+.ib {
+ display: block;
+ inline-size: 50vw;
+ block-size: 130vh;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.ib > div {
+ inline-size: 50vw;
+ block-size: 150vh;
+ border: 5px solid grey;
+}
+
+.after {
+ inline-size: 60vw;
+ block-size: 10vh;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ <div class="ib">
+ <div></div>
+ </div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-4.html b/layout/reftests/pagination/inline-block-slice-4.html
new file mode 100644
index 0000000000..c3d8008442
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-4.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+}
+html { margin-block-start: 80vh; }
+
+.ib {
+ display: inline-block;
+ inline-size: 50vw;
+ block-size: 130vh;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.ib > div {
+ inline-size: 50vw;
+ block-size: 150vh;
+ border: 5px solid grey;
+}
+
+.after {
+ display: inline-block;
+ vertical-align: top;
+ inline-size: 60vw;
+ block-size: 10vh;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ <div class="ib">
+ <div></div>
+ </div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-4b-ref.html b/layout/reftests/pagination/inline-block-slice-4b-ref.html
new file mode 100644
index 0000000000..a3336cac5c
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-4b-ref.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+ writing-mode: vertical-lr;
+}
+html { margin-block-start: 80vw; }
+
+.ib {
+ display: block;
+ inline-size: 50vh;
+ block-size: 130vw;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.ib > div {
+ inline-size: 50vh;
+ block-size: 150vw;
+ border: 5px solid grey;
+}
+
+.after {
+ inline-size: 60vh;
+ block-size: 25vw;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ <div class="ib">
+ <div></div>
+ </div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-4b.html b/layout/reftests/pagination/inline-block-slice-4b.html
new file mode 100644
index 0000000000..562931eb86
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-4b.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+ writing-mode: vertical-lr;
+}
+html { margin-block-start: 80vw; }
+
+.ib {
+ display: inline-block;
+ inline-size: 50vh;
+ block-size: 130vw;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.ib > div {
+ inline-size: 50vh;
+ block-size: 150vw;
+ border: 5px solid grey;
+}
+
+.after {
+ display: inline-block;
+ vertical-align: top;
+ inline-size: 60vh;
+ block-size: 25vw;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ <div class="ib">
+ <div></div>
+ </div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-4c-ref.html b/layout/reftests/pagination/inline-block-slice-4c-ref.html
new file mode 100644
index 0000000000..de93e8ada1
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-4c-ref.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+ writing-mode: vertical-rl;
+}
+html { margin-block-start: 80vw; }
+
+.ib {
+ display: block;
+ inline-size: 50vh;
+ block-size: 130vw;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.ib > div {
+ inline-size: 50vh;
+ block-size: 150vw;
+ border: 5px solid grey;
+}
+
+.after {
+ inline-size: 60vh;
+ block-size: 25vw;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ <div class="ib">
+ <div></div>
+ </div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-4c.html b/layout/reftests/pagination/inline-block-slice-4c.html
new file mode 100644
index 0000000000..b1415ef939
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-4c.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 monospace; padding:0; margin:0;
+ writing-mode: vertical-rl;
+}
+html { margin-block-start: 80vw; }
+
+.ib {
+ display: inline-block;
+ inline-size: 50vh;
+ block-size: 130vw;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.ib > div {
+ inline-size: 50vh;
+ block-size: 150vw;
+ border: 5px solid grey;
+}
+
+.after {
+ display: inline-block;
+ vertical-align: top;
+ inline-size: 60vh;
+ block-size: 25vw;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ <div class="ib">
+ <div></div>
+ </div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-5-ref.html b/layout/reftests/pagination/inline-block-slice-5-ref.html
new file mode 100644
index 0000000000..0c3b4ae605
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-5-ref.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
+}
+
+.ib {
+ display: block;
+ inline-size: 50vw;
+ block-size: 210vh;
+ border: 5px solid black;
+ margin-left: 20px;
+ margin-top: -20px;
+}
+
+.after {
+ display: block;
+ inline-size: 60vw;
+ block-size: 10vh;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ X<span style="display:inline-block; inline-size:50vw; border:5px solid transparent"></span>p
+ <div class="ib"></div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-5.html b/layout/reftests/pagination/inline-block-slice-5.html
new file mode 100644
index 0000000000..105ab942f7
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-5.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
+}
+
+.ib {
+ display: inline-block;
+ inline-size: 50vw;
+ block-size: 210vh;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.after {
+ display: block;
+ inline-size: 60vw;
+ block-size: 10vh;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ X<div class="ib"></div>p
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-5b-ref.html b/layout/reftests/pagination/inline-block-slice-5b-ref.html
new file mode 100644
index 0000000000..c1d0f6f517
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-5b-ref.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
+ writing-mode: vertical-lr;
+}
+
+.ib {
+ display: block;
+ inline-size: 50vh;
+ block-size: 210vw;
+ border: 5px solid black;
+ border-block-start-color: blue;
+ border-inline-start-color: lime;
+ margin-inline-start: 20px;
+ margin-block-end: -20px;
+}
+
+.after {
+ display: block;
+ inline-size: 60vh;
+ block-size: 10vw;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ <div class="ib"></div>
+ X<span style="display:inline-block; inline-size:50vh; border:5px solid transparent"></span>p
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-5b.html b/layout/reftests/pagination/inline-block-slice-5b.html
new file mode 100644
index 0000000000..07684ea506
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-5b.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
+ writing-mode: vertical-lr;
+}
+
+.ib {
+ display: inline-block;
+ inline-size: 50vh;
+ block-size: 210vw;
+ vertical-align: top;
+ border: 5px solid black;
+ border-block-start-color: blue;
+ border-inline-start-color: lime;
+}
+
+.after {
+ display: block;
+ inline-size: 60vh;
+ block-size: 10vw;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ X<div class="ib"></div>p
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-5c-ref.html b/layout/reftests/pagination/inline-block-slice-5c-ref.html
new file mode 100644
index 0000000000..e3ca384695
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-5c-ref.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
+ writing-mode: vertical-rl;
+}
+
+.ib {
+ display: block;
+ inline-size: 50vh;
+ block-size: 210vw;
+ border: 5px solid black;
+ border-block-start-color: blue;
+ border-inline-start-color: lime;
+ margin-inline-start: 20px;
+ margin-block-start: -20px;
+}
+
+.after {
+ display: block;
+ inline-size: 60vh;
+ block-size: 10vw;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ X<span style="display:inline-block; inline-size:50vh; border:5px solid transparent"></span>p
+ <div class="ib"></div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-5c.html b/layout/reftests/pagination/inline-block-slice-5c.html
new file mode 100644
index 0000000000..4965181ff0
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-5c.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
+ writing-mode: vertical-rl;
+}
+
+.ib {
+ display: inline-block;
+ inline-size: 50vh;
+ block-size: 210vw;
+ vertical-align: top;
+ border: 5px solid black;
+ border-block-start-color: blue;
+ border-inline-start-color: lime;
+}
+
+.after {
+ display: block;
+ inline-size: 60vh;
+ block-size: 10vw;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ X<div class="ib"></div>p
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-6-ref.html b/layout/reftests/pagination/inline-block-slice-6-ref.html
new file mode 100644
index 0000000000..ad673c23c2
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-6-ref.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
+}
+html { block-size: 40vh; }
+
+.ib {
+ display: block;
+ inline-size: 50vw;
+ block-size: 210vh;
+ border: 5px solid black;
+ margin-left: 20px;
+ margin-top: -20px;
+}
+
+.after {
+ display: block;
+ inline-size: 60vw;
+ block-size: 10vh;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ X<span style="display:inline-block; inline-size:50vw; border:5px solid transparent"></span>p
+ <div class="ib"></div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-6.html b/layout/reftests/pagination/inline-block-slice-6.html
new file mode 100644
index 0000000000..e6688ef199
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-6.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
+}
+html { block-size: 40vh; }
+
+.ib {
+ display: inline-block;
+ inline-size: 50vw;
+ block-size: 210vh;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.after {
+ display: block;
+ inline-size: 60vw;
+ block-size: 10vh;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ X<div class="ib"></div>p
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-6b-ref.html b/layout/reftests/pagination/inline-block-slice-6b-ref.html
new file mode 100644
index 0000000000..38b1dcfb12
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-6b-ref.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
+ writing-mode: vertical-lr;
+}
+html { block-size: 40vw; }
+
+.ib {
+ display: block;
+ inline-size: 50vh;
+ block-size: 210vw;
+ border: 5px solid black;
+ margin-top: 20px;
+ margin-right: -20px;
+}
+
+.after {
+ display: block;
+ inline-size: 60vh;
+ block-size: 10vw;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ <div class="ib"></div>
+ X<span style="display:inline-block; inline-size:50vh; border:5px solid transparent"></span>p
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-6b.html b/layout/reftests/pagination/inline-block-slice-6b.html
new file mode 100644
index 0000000000..1ddbbfdada
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-6b.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
+ writing-mode: vertical-lr;
+}
+html { block-size: 40vw; }
+
+.ib {
+ display: inline-block;
+ inline-size: 50vh;
+ block-size: 210vw;
+ vertical-align: top;
+ border: 5px solid black;
+}
+
+.after {
+ display: block;
+ inline-size: 60vh;
+ block-size: 10vw;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ X<div class="ib"></div>p
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-6c-ref.html b/layout/reftests/pagination/inline-block-slice-6c-ref.html
new file mode 100644
index 0000000000..9754426561
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-6c-ref.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
+}
+html { block-size: 40vw; writing-mode: vertical-rl; }
+
+.ib {
+ display: block;
+ inline-size: 50vh;
+ block-size: 210vw;
+ border: 5px solid black;
+ margin-top: 20px;
+ margin-right: -20px;
+ border-block-start-color: blue;
+ border-inline-start-color: lime;
+}
+
+.after {
+ display: block;
+ inline-size: 60vh;
+ block-size: 10vw;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ X<span style="display:inline-block; inline-size:50vh; border:5px solid transparent"></span>p
+ <div class="ib"></div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-6c.html b/layout/reftests/pagination/inline-block-slice-6c.html
new file mode 100644
index 0000000000..425e25936f
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-6c.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
+}
+html { block-size: 40vw; writing-mode: vertical-rl; }
+
+.ib {
+ display: inline-block;
+ inline-size: 50vh;
+ block-size: 210vw;
+ vertical-align: top;
+ border: 5px solid black;
+ border-block-start-color: blue;
+ border-inline-start-color: lime;
+}
+
+.after {
+ display: block;
+ inline-size: 60vh;
+ block-size: 10vw;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ X<div class="ib"></div>p
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-7-ref.html b/layout/reftests/pagination/inline-block-slice-7-ref.html
new file mode 100644
index 0000000000..e47980b573
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-7-ref.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
+}
+html { block-size: 40vh; }
+
+.ib {
+ display: block;
+ inline-size: 50vw;
+ block-size: 210vh;
+ border: 5px solid black;
+ margin-left: 20px;
+ margin-top: -20px;
+}
+.ib > div {
+ block-size: 220vh; /* creates a bit of scrollable overflow on .ib */
+}
+
+.after {
+ display: block;
+ inline-size: 60vw;
+ block-size: 10vh;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ X<span style="display:inline-block; inline-size:50vw; border:5px solid transparent"></span>p
+ <div class="ib"><div></div></div>
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-7.html b/layout/reftests/pagination/inline-block-slice-7.html
new file mode 100644
index 0000000000..a4f69a5863
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-7.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
+}
+html { block-size: 40vh; }
+
+.ib {
+ display: inline-block;
+ inline-size: 50vw;
+ block-size: 210vh;
+ vertical-align: top;
+ border: 5px solid black;
+}
+.ib > div {
+ block-size: 220vh; /* creates a bit of scrollable overflow on .ib */
+}
+
+.after {
+ display: block;
+ inline-size: 60vw;
+ block-size: 10vh;
+ border: 5px dashed grey;
+ background-color: grey;
+}
+</style>
+</head>
+<body>
+ <!--
+ -- Note that the correct rendering is that the grey block placed
+ -- immediately below the black bottom border. Our fragmentation
+ -- fallback mechanism can't handle this case correctly.
+ -->
+ X<div class="ib"><div></div></div>p
+ <div class="after"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-8-ref.html b/layout/reftests/pagination/inline-block-slice-8-ref.html
new file mode 100644
index 0000000000..5f0a0a105a
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-8-ref.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
+}
+html { block-size: 40vh; }
+
+.ib {
+ display: block;
+ inline-size: 50vw;
+ block-size: 210vh;
+ border: 5px solid black;
+ border-block-start-color: blue;
+ border-inline-start-color: lime;
+ margin-inline-start: 20px;
+ margin-block-start: -20px;
+}
+</style>
+</head>
+<body>
+ X<span style="display:inline-block; inline-size:50vw; border:5px solid transparent"></span>p
+ <div class="ib"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-8.html b/layout/reftests/pagination/inline-block-slice-8.html
new file mode 100644
index 0000000000..d5b6968a5c
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-8.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
+}
+html { block-size: 40vh; }
+
+.ib {
+ display: inline-block;
+ inline-size: 50vw;
+ block-size: 210vh;
+ vertical-align: top;
+ border: 5px solid black;
+ border-block-start-color: blue;
+ border-inline-start-color: lime;
+}
+</style>
+</head>
+<body>
+ X<div class="ib"></div>p
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-8b-ref.html b/layout/reftests/pagination/inline-block-slice-8b-ref.html
new file mode 100644
index 0000000000..2a4149d7a6
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-8b-ref.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
+ writing-mode: vertical-lr;
+}
+html { block-size: 40vw; }
+
+.ib {
+ display: block;
+ inline-size: 50vh;
+ block-size: 210vw;
+ border: 5px solid black;
+ border-block-start-color: blue;
+ border-inline-start-color: lime;
+ margin-inline-start: 20px;
+ margin-block-end: -20px;
+}
+</style>
+</head>
+<body>
+ <div class="ib"></div>
+ X<span style="display:inline-block; inline-size:50vh; border:5px solid transparent"></span>p
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-8b.html b/layout/reftests/pagination/inline-block-slice-8b.html
new file mode 100644
index 0000000000..1525983a95
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-8b.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
+ writing-mode: vertical-lr;
+}
+html { block-size: 40vw; }
+
+.ib {
+ display: inline-block;
+ inline-size: 50vh;
+ block-size: 210vw;
+ vertical-align: top;
+ border: 5px solid black;
+ border-block-start-color: blue;
+ border-inline-start-color: lime;
+}
+</style>
+</head>
+<body>
+ X<div class="ib"></div>p
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-8c-ref.html b/layout/reftests/pagination/inline-block-slice-8c-ref.html
new file mode 100644
index 0000000000..839cadf6b6
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-8c-ref.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
+}
+html { block-size: 40vw; writing-mode: vertical-rl; }
+
+.ib {
+ display: block;
+ inline-size: 50vh;
+ block-size: 210vw;
+ border: 5px solid black;
+ border-block-start-color: blue;
+ border-inline-start-color: lime;
+ margin-inline-start: 20px;
+ margin-block-start: -20px;
+}
+</style>
+</head>
+<body>
+ X<span style="display:inline-block; inline-size:50vh; border:5px solid transparent"></span>p
+ <div class="ib"></div>
+</body>
+</html>
diff --git a/layout/reftests/pagination/inline-block-slice-8c.html b/layout/reftests/pagination/inline-block-slice-8c.html
new file mode 100644
index 0000000000..6b25d0d951
--- /dev/null
+++ b/layout/reftests/pagination/inline-block-slice-8c.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html class="reftest-paged">
+<head>
+<style>
+@page {
+ size: 5in 3in;
+ margin: 0.5in;
+}
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+
+html,body {
+ color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
+ writing-mode: vertical-rl;
+}
+html { block-size: 40vw; }
+
+.ib {
+ display: inline-block;
+ inline-size: 50vh;
+ block-size: 210vw;
+ vertical-align: top;
+ border: 5px solid black;
+ border-block-start-color: blue;
+ border-inline-start-color: lime;
+}
+</style>
+</head>
+<body>
+ X<div class="ib"></div>p
+</body>
+</html>
diff --git a/layout/reftests/pagination/quirks-notref.html b/layout/reftests/pagination/quirks-notref.html
new file mode 100644
index 0000000000..5f225005d8
--- /dev/null
+++ b/layout/reftests/pagination/quirks-notref.html
@@ -0,0 +1,5 @@
+<!doctype html>
+<!-- bug 1567105 -->
+<html class="reftest-paged">
+<meta charset="utf-8">
+<!-- Intentionally blank -->
diff --git a/layout/reftests/pagination/quirks-ref.html b/layout/reftests/pagination/quirks-ref.html
new file mode 100644
index 0000000000..312bb9daef
--- /dev/null
+++ b/layout/reftests/pagination/quirks-ref.html
@@ -0,0 +1,6 @@
+<!doctype html>
+<html class="reftest-paged">
+<meta charset="utf-8">
+<body>
+ Some content that I should be able to print.
+</body>
diff --git a/layout/reftests/pagination/quirks.html b/layout/reftests/pagination/quirks.html
new file mode 100644
index 0000000000..2cfe260065
--- /dev/null
+++ b/layout/reftests/pagination/quirks.html
@@ -0,0 +1,10 @@
+<!doctype html>
+<!-- bug 1567105 -->
+<html class="reftest-paged">
+<meta charset="utf-8">
+<style>
+ .HiDdEn { display: none }
+</style>
+<body class="hidden">
+ Some content that I should be able to print.
+</body>
diff --git a/layout/reftests/pagination/reftest.list b/layout/reftests/pagination/reftest.list
new file mode 100644
index 0000000000..6946a3126a
--- /dev/null
+++ b/layout/reftests/pagination/reftest.list
@@ -0,0 +1,205 @@
+# For more pagination tests, see layout/reftests/w3c-css/submitted/css21/pagination/,
+# layout/reftests/css-page/, 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
+== abspos-breaking-007.html abspos-breaking-007-ref.html
+== abspos-breaking-008.html abspos-breaking-008-ref.html
+== abspos-breaking-009.html abspos-breaking-009-ref.html
+== abspos-breaking-010.html abspos-breaking-010-ref.html
+== abspos-breaking-011.html abspos-breaking-011-ref.html # Bug 1392106
+== abspos-breaking-dynamic-001.html abspos-breaking-dynamic-001-ref.html
+== abspos-breaking-dynamic-002.html abspos-breaking-dynamic-002-ref.html
+== abspos-breaking-dynamic-003.html abspos-breaking-dynamic-003-ref.html
+== abspos-breaking-dynamic-004.html abspos-breaking-dynamic-001-ref.html
+== abspos-breaking-dynamic-005.html abspos-breaking-dynamic-005-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
+== 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(0-1,0-21) == resize-reflow-000.html resize-reflow-000.ref.html
+fuzzy(0-1,0-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-8.html blank.html # bug 672654
+# == table-caption-splitaftercaption-9.html blank.html # bug 672654
+== table-cell-breaking-1a.html table-cell-breaking-1-ref.html
+== table-cell-breaking-1b.html table-cell-breaking-1-ref.html
+== table-cell-breaking-2a.html table-cell-breaking-2-ref.html
+== table-cell-breaking-2b.html table-cell-breaking-2-ref.html
+pref(layout.display-list.improve-fragmentation,false) == table-cell-breaking-3a.html table-cell-breaking-3a-ref.html
+pref(layout.display-list.improve-fragmentation,true) == table-cell-breaking-3a.html table-cell-breaking-3-ref.html
+asserts(1-1) pref(layout.display-list.improve-fragmentation,false) == table-cell-breaking-3b.html table-cell-breaking-3-ref.html # bug 714667
+asserts(1-1) pref(layout.display-list.improve-fragmentation,true) fails == table-cell-breaking-3b.html table-cell-breaking-3-ref.html # assert is bug 714667, fails due to bug 1681063
+== column-balancing-break-inside-avoid-2.html column-balancing-break-inside-avoid-2-ref.html
+fuzzy-if(Android,0-4,0-2) fuzzy-if(swgl,0-1,0-35) == combobox-page-break-inside.html combobox-page-break-inside-ref.html
+pref(layout.display-list.improve-fragmentation,false) fuzzy-if(OSX,23-23,1-1) == table-nested-1308876-1.xhtml table-nested-1308876-1-ref.html # bug 1681063
+== contain-size-break-001.html contain-size-break-001-ref.html
+== contain-size-break-002.html contain-size-break-002-ref.html
+== contain-size-break-003.html contain-size-break-003-ref.html
+
+# Bugs
+== 272830-1.html 272830-1-ref.html
+== 318022-1.html 318022-1-ref.html
+== 403669-1.html 403669-1-ref.html
+== 381497-n.html 381497-f.html
+== test-async-paged.html 272830-1-ref.html
+== 129941-1a.html 129941-1-ref.html
+== 129941-1b.html 129941-1-ref.html
+== 129941-1c.html 129941-1-ref.html
+== 129941-1d.html 129941-1-ref.html
+== 129941-1e.html 129941-1e-ref.html
+== 609227-1.html 609227-1-ref.html
+== 609227-2a.html 609227-2-ref.html
+== 609227-2b.html 609227-2-ref.html
+== 577450-1.html 577450-1-ref.html
+== 626395-1a.html 626395-1-ref.html
+== 626395-1b.html 626395-1-ref.html
+== 626395-2a.html 626395-2-ref.html
+== 626395-2b.html 626395-2-ref.html
+== 626395-2c.html 626395-2-ref.html
+== 626395-2d.html 626395-2-ref.html
+== 652178-1.html 652178-1-ref.html
+== 115199-1.html 115199-1-ref.html
+== 115199-2a.html 115199-2-ref.html
+== 115199-2b.html 115199-2-ref.html
+== 652178-1.html 652178-1-ref2.html
+fuzzy-if(cocoaWidget,0-1,0-5000) fuzzy-if(swgl,0-1,0-9) == 745025-1.html 745025-1-ref.html
+== 820496-1.html 820496-1-ref.html
+
+# NOTE: These tests don't yet rigorously test what they're
+# trying to test (shrink-to-fit behavior), due to bug 967311.
+== 960822.html 960822-ref.html
+== 966419-1.html 966419-1-ref.html
+== 966419-2.html 966419-2-ref.html
+
+# asserts(3) fails 1108104.html 1108104-ref.html # bug 1067755, 1135556
+== 1166147.html 1166147-ref.html
+== 1321803-1a.html 1321803-1-ref.html
+== 1404868-1.html 1404868-1-ref.html
+== 1406050-1.html 1406050-1-ref.html
+== 1406291-1.html 1406291-1-ref.html
+== 1409585-1.html 1409585-1-ref.html
+== 1411799-1.html 1411799-1-ref.html
+== 1420528-1.html 1420528-1-ref.html
+== 1427141-1.html 1427141-ref.html
+== 1427141-2.html 1427141-ref.html
+== 1468654-1.html 1468654-1-ref.html
+== 1596310.html 1596310-ref.html
+
+fuzzy-if(swgl,0-1,0-3) == content-url-element.html image.html # Fuzz in reftest background
+fuzzy-if(swgl,0-1,0-3) == content-url-pseudo.html content-url-pseudo-ref.html # As above
+
+== quirks.html quirks-ref.html
+!= quirks.html quirks-notref.html
+
+== fieldset-001.html fieldset-001-ref.html
+== fieldset-001-grid.html fieldset-001-ref.html
+== fieldset-002.html fieldset-002-ref.html
+== fieldset-003.html fieldset-003-ref.html
+== fieldset-004.html fieldset-004-ref.html
+== fieldset-005.html fieldset-005-ref.html
+== fieldset-006.html fieldset-006-ref.html
+== fieldset-007.html fieldset-007-ref.html
+== fieldset-008.html fieldset-008-ref.html
+== fieldset-009.html fieldset-009-ref.html
+== fieldset-00A.html fieldset-00A-ref.html
+== fieldset-00B.html fieldset-00B-ref.html
+== fieldset-00C.html fieldset-00C-ref.html
+== fieldset-00D.html fieldset-00D-ref.html
+== fieldset-00E.html fieldset-00E-ref.html
+== fieldset-00F.html fieldset-00F-ref.html
+== fieldset-00G.html fieldset-00G-ref.html
+== fieldset-00H.html fieldset-00H-ref.html
+== fieldset-00H-grid.html fieldset-00H-ref.html
+== fieldset-00I.html fieldset-00I-ref.html
+== fieldset-00I-grid.html fieldset-00I-ref.html
+== fieldset-00J.html fieldset-00J-ref.html
+== fieldset-00J-grid.html fieldset-00J-ref.html
+== fieldset-00K.html fieldset-00K-ref.html
+== fieldset-00L.html fieldset-00L-ref.html
+== fieldset-00M.html fieldset-00M-ref.html
+
+== block-max-height-001.html block-max-height-001-ref.html
+== block-max-height-002.html block-max-height-001-ref.html
+== block-min-height-001.html block-min-height-001-ref.html
+== block-min-height-002.html block-min-height-001-ref.html
+
+== bfc-001.html bfc-001-ref.html
+== bfc-002.html bfc-001-ref.html
+== bfc-003.html bfc-001-ref.html
+fails == bfc-004.html bfc-004-ref.html # bug 1602484
+== bfc-005.html bfc-004-ref.html
+== bfc-006.html bfc-006-ref.html
+== bfc-007.html bfc-006-ref.html
+== bfc-008.html bfc-006-ref.html
+
+pref(layout.display-list.improve-fragmentation,true) fuzzy-if(swgl,0-1,0-200) == inline-block-frag-simple-1.html inline-block-frag-simple-1-ref.html
+pref(layout.display-list.improve-fragmentation,true) fuzzy-if(swgl,0-1,0-21) == inline-block-frag-simple-2.html inline-block-frag-simple-2-ref.html
+pref(layout.display-list.improve-fragmentation,true) == inline-block-frag-offset-1.html inline-block-frag-offset-1-ref.html
+pref(layout.display-list.improve-fragmentation,true) == inline-block-frag-offset-2.html inline-block-frag-offset-2-ref.html
+pref(layout.display-list.improve-fragmentation,true) == inline-block-frag-text-1.html inline-block-frag-text-1-ref.html
+pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-1.html inline-block-slice-1-ref.html
+pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-1b.html inline-block-slice-1b-ref.html
+pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-1c.html inline-block-slice-1c-ref.html
+pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-2.html inline-block-slice-2-ref.html
+pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-2b.html inline-block-slice-2b-ref.html
+pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-2c.html inline-block-slice-2c-ref.html
+pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-3.html inline-block-slice-3-ref.html
+pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-3b.html inline-block-slice-3b-ref.html
+pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-3c.html inline-block-slice-3c-ref.html
+pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-4.html inline-block-slice-4-ref.html
+pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-4b.html inline-block-slice-4b-ref.html
+pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-4c.html inline-block-slice-4c-ref.html
+pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-5.html inline-block-slice-5-ref.html
+fuzzy-if(useDrawSnapshot&&gtkWidget,0-102,0-49) pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-5b.html inline-block-slice-5b-ref.html
+fuzzy-if(useDrawSnapshot&&gtkWidget,0-102,0-48) pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-5c.html inline-block-slice-5c-ref.html
+pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-6.html inline-block-slice-6-ref.html
+fuzzy-if(useDrawSnapshot&&gtkWidget,0-21,0-36) pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-6b.html inline-block-slice-6b-ref.html
+fuzzy-if(useDrawSnapshot&&gtkWidget,0-102,0-48) pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-6c.html inline-block-slice-6c-ref.html
+pref(layout.display-list.improve-fragmentation,true) != inline-block-slice-7.html inline-block-slice-7-ref.html
+pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-8.html inline-block-slice-8-ref.html
+fuzzy-if(useDrawSnapshot&&gtkWidget,0-102,0-13) pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-8b.html inline-block-slice-8b-ref.html
+fuzzy-if(useDrawSnapshot&&gtkWidget,0-102,0-12) pref(layout.display-list.improve-fragmentation,true) == inline-block-slice-8c.html inline-block-slice-8c-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 0000000000..b9afc83c86
--- /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="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 0000000000..76f4d5e06e
--- /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="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 0000000000..3a9acdcae0
--- /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 0000000000..6eb3e065f3
--- /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="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 0000000000..1c39565eb4
--- /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="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 0000000000..00102308d4
--- /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-paged">
+<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 0000000000..0b84be2b30
--- /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-paged">
+<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 0000000000..9d14c3aeac
--- /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-paged">
+<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 0000000000..3b20496b3e
--- /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-paged">
+<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 0000000000..6064687761
--- /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-paged">
+<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 0000000000..8bfd9a8d48
--- /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-paged">
+<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 0000000000..b785b05e73
--- /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-paged">
+<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-2-ref.html b/layout/reftests/pagination/table-caption-splitaftercaption-2-ref.html
new file mode 100644
index 0000000000..2ae39d64b7
--- /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-paged">
+<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 0000000000..ad0efd79c0
--- /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-paged">
+<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 0000000000..cc5552d385
--- /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-paged">
+<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 0000000000..83dc9c0b79
--- /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-paged">
+<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 0000000000..26214aa21c
--- /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-paged">
+<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 0000000000..5e9d5f42d8
--- /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-paged">
+<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 0000000000..b66fef887f
--- /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-paged">
+<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 0000000000..03b5d25b81
--- /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-paged">
+<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-8.html b/layout/reftests/pagination/table-caption-splitaftercaption-8.html
new file mode 100644
index 0000000000..4ac07381a3
--- /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-paged">
+<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 0000000000..c6e587e961
--- /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-paged">
+<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 0000000000..61330812b0
--- /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-paged">
+<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 0000000000..fbc0b6a5a6
--- /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-paged">
+<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-cell-breaking-1-ref.html b/layout/reftests/pagination/table-cell-breaking-1-ref.html
new file mode 100644
index 0000000000..7dfc20e490
--- /dev/null
+++ b/layout/reftests/pagination/table-cell-breaking-1-ref.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <meta charset="utf-8">
+ <title>CSS Fragmentation Test Reference: breaking of a table-cell</title>
+ <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+ <link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+
+ <style>
+ @page { size:5in 3in; margin:0.5in; }
+
+ html, body {
+ font-size: 12pt; margin: 0;
+ }
+
+ .td {
+ width: 1in;
+ background: green;
+ padding: 0.25in;
+ border: 0.25in solid gray;
+ }
+ </style>
+
+ <div class="td">
+ <div style="height: 2in; background: yellow;"></div>
+ </div>
+</html>
diff --git a/layout/reftests/pagination/table-cell-breaking-1a.html b/layout/reftests/pagination/table-cell-breaking-1a.html
new file mode 100644
index 0000000000..9557eb1e0f
--- /dev/null
+++ b/layout/reftests/pagination/table-cell-breaking-1a.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <meta charset="utf-8">
+ <title>CSS Fragmentation Test: breaking of an auto block-size table-cell</title>
+ <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+ <link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+
+ <style>
+ @page { size:5in 3in; margin:0.5in; }
+
+ html, body {
+ font-size: 12pt; margin: 0;
+ }
+
+ table {
+ border-spacing: 0;
+ }
+
+ td {
+ width: 1in;
+ background: green;
+ padding: 0.25in;
+ border: 0.25in solid gray;
+ }
+ </style>
+
+ <table>
+ <tbody>
+ <tr>
+ <td><div style="height: 2in; background: yellow;"></div></td>
+ </tr>
+ </tbody>
+ </table>
+</html>
diff --git a/layout/reftests/pagination/table-cell-breaking-1b.html b/layout/reftests/pagination/table-cell-breaking-1b.html
new file mode 100644
index 0000000000..c8e985407b
--- /dev/null
+++ b/layout/reftests/pagination/table-cell-breaking-1b.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <meta charset="utf-8">
+ <title>CSS Fragmentation Test: breaking of a fixed block-size table-cell</title>
+ <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+ <link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+
+ <style>
+ @page { size:5in 3in; margin:0.5in; }
+
+ html, body {
+ font-size: 12pt; margin: 0;
+ }
+
+ table {
+ border-spacing: 0;
+ }
+
+ td {
+ width: 1in;
+ background: green;
+ padding: 0.25in;
+ border: 0.25in solid gray;
+ }
+ </style>
+
+ <table>
+ <tbody>
+ <tr>
+ <td style="height: 2in;"><div style="height: 100%; background: yellow;"></div></td>
+ </tr>
+ </tbody>
+ </table>
+</html>
diff --git a/layout/reftests/pagination/table-cell-breaking-2-ref.html b/layout/reftests/pagination/table-cell-breaking-2-ref.html
new file mode 100644
index 0000000000..77c884fcf4
--- /dev/null
+++ b/layout/reftests/pagination/table-cell-breaking-2-ref.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <meta charset="utf-8">
+ <title>CSS Fragmentation Test Reference: breaking of a table-cell with box-decoration-break:clone</title>
+ <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+ <link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+
+ <style>
+ @page { size:5in 3in; margin:0.5in; }
+
+ html, body {
+ font-size: 12pt; margin: 0;
+ }
+
+ .td {
+ width: 1in;
+ background: green;
+ padding: 0.25in;
+ border: 0.25in solid gray;
+ }
+ </style>
+
+ <!-- Due to bug 1564726, a block frame with box-decoration-break:clone doesn't
+ setup its available space correctly to reflow its children, so content
+ can draw onto its border and padding. So we use two <div class="td"> to
+ workaround that instead of the following snippet.
+
+ <div class="td">
+ <div style="height: 2in; background: yellow;"></div>
+ </div>
+ -->
+
+ <div class="td">
+ <div style="height: 1in; background: yellow;"></div>
+ </div>
+ <div class="td">
+ <div style="height: 1in; background: yellow;"></div>
+ </div>
+</html>
diff --git a/layout/reftests/pagination/table-cell-breaking-2a.html b/layout/reftests/pagination/table-cell-breaking-2a.html
new file mode 100644
index 0000000000..2c0873a6cf
--- /dev/null
+++ b/layout/reftests/pagination/table-cell-breaking-2a.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <meta charset="utf-8">
+ <title>CSS Fragmentation Test: breaking of an auto block-size table-cell with box-decoration-break:clone</title>
+ <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+ <link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+
+ <style>
+ @page { size:5in 3in; margin:0.5in; }
+
+ html, body {
+ font-size: 12pt; margin: 0;
+ }
+
+ table {
+ border-spacing: 0;
+ }
+
+ td {
+ width: 1in;
+ background: green;
+ padding: 0.25in;
+ border: 0.25in solid gray;
+ box-decoration-break: clone;
+ }
+ </style>
+
+ <table>
+ <tbody>
+ <tr>
+ <td><div style="height: 2in; background: yellow;"></div></td>
+ </tr>
+ </tbody>
+ </table>
+</html>
diff --git a/layout/reftests/pagination/table-cell-breaking-2b.html b/layout/reftests/pagination/table-cell-breaking-2b.html
new file mode 100644
index 0000000000..1c91cd597a
--- /dev/null
+++ b/layout/reftests/pagination/table-cell-breaking-2b.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <meta charset="utf-8">
+ <title>CSS Fragmentation Test: breaking of a fixed block-size table-cell box-decoration-break:clone</title>
+ <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+ <link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+
+ <style>
+ @page { size:5in 3in; margin:0.5in; }
+
+ html, body {
+ font-size: 12pt; margin: 0;
+ }
+
+ table {
+ border-spacing: 0;
+ }
+
+ td {
+ width: 1in;
+ background: green;
+ padding: 0.25in;
+ border: 0.25in solid gray;
+ box-decoration-break: clone;
+ }
+ </style>
+
+ <table>
+ <tbody>
+ <tr>
+ <td style="height: 2in;"><div style="height: 100%; background: yellow;"></div></td>
+ </tr>
+ </tbody>
+ </table>
+</html>
diff --git a/layout/reftests/pagination/table-cell-breaking-3-ref.html b/layout/reftests/pagination/table-cell-breaking-3-ref.html
new file mode 100644
index 0000000000..b3fdbf3304
--- /dev/null
+++ b/layout/reftests/pagination/table-cell-breaking-3-ref.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <meta charset="utf-8">
+ <title>CSS Fragmentation Test Reference: breaking of a table-cell</title>
+ <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+ <link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+
+ <style>
+ @page { size:5in 3in; margin:0.5in; }
+
+ html, body {
+ font-size: 12pt; margin: 0;
+ }
+
+ .td {
+ width: 1in;
+ background: green;
+ padding: 0.25in;
+ border: 0.25in solid gray;
+ }
+ </style>
+
+ <div class="td" style="height: 1.5in">
+ <div style="height: 1.5in; background: yellow;"></div>
+ </div>
+</html>
diff --git a/layout/reftests/pagination/table-cell-breaking-3a-ref.html b/layout/reftests/pagination/table-cell-breaking-3a-ref.html
new file mode 100644
index 0000000000..321db3e214
--- /dev/null
+++ b/layout/reftests/pagination/table-cell-breaking-3a-ref.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <meta charset="utf-8">
+ <title>CSS Fragmentation Test Reference: breaking of a table-cell</title>
+ <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+ <link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+
+ <style>
+ @page { size:5in 3in; margin:0.5in; }
+
+ html, body {
+ font-size: 12pt; margin: 0;
+ }
+
+ .td {
+ width: 1in;
+ background: green;
+ padding: 0.25in;
+ border: 0.25in solid gray;
+ padding-bottom: 0;
+ border-bottom: 0;
+ }
+ </style>
+
+ <!-- table-cell-breaking-3a.html currently matches this reference file, but
+ ideally it should match table-cell-breaking-3-ref.html -->
+ <div class="td">
+ <div style="height: 1.5in; background: yellow;"></div>
+ </div>
+</html>
diff --git a/layout/reftests/pagination/table-cell-breaking-3a.html b/layout/reftests/pagination/table-cell-breaking-3a.html
new file mode 100644
index 0000000000..587c40cda5
--- /dev/null
+++ b/layout/reftests/pagination/table-cell-breaking-3a.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <meta charset="utf-8">
+ <title>CSS Fragmentation Test: breaking of an auto block-size table-cell</title>
+ <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+ <link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+
+ <style>
+ @page { size:5in 3in; margin:0.5in; }
+
+ html, body {
+ font-size: 12pt; margin: 0;
+ }
+
+ table {
+ border-spacing: 0;
+ }
+
+ td {
+ width: 1in;
+ background: green;
+ padding: 0.25in;
+ border: 0.25in solid gray;
+ }
+ </style>
+
+ <table>
+ <tbody>
+ <tr>
+ <!-- The <div> can fit on the first page, but <td>'s bottom border
+ and padding cannot fit. -->
+ <td><div style="height: 1.5in; background: yellow;"></div></td>
+ </tr>
+ </tbody>
+ </table>
+</html>
diff --git a/layout/reftests/pagination/table-cell-breaking-3b.html b/layout/reftests/pagination/table-cell-breaking-3b.html
new file mode 100644
index 0000000000..c7a054e2ca
--- /dev/null
+++ b/layout/reftests/pagination/table-cell-breaking-3b.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <meta charset="utf-8">
+ <title>CSS Fragmentation Test: breaking of a fixed block-size table-cell</title>
+ <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+ <link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+
+ <style>
+ @page { size:5in 3in; margin:0.5in; }
+
+ html, body {
+ font-size: 12pt; margin: 0;
+ }
+
+ table {
+ border-spacing: 0;
+ }
+
+ td {
+ width: 1in;
+ background: green;
+ padding: 0.25in;
+ border: 0.25in solid gray;
+ }
+ </style>
+
+ <table>
+ <tbody>
+ <tr>
+ <!-- The <div> can fit on the first page, but <td>'s bottom border
+ and padding cannot fit. -->
+ <td style="height: 1.5in;"><div style="height: 100%; background: yellow;"></div></td>
+ </tr>
+ </tbody>
+ </table>
+</html>
diff --git a/layout/reftests/pagination/table-nested-1308876-1-ref.html b/layout/reftests/pagination/table-nested-1308876-1-ref.html
new file mode 100644
index 0000000000..ba8cd989aa
--- /dev/null
+++ b/layout/reftests/pagination/table-nested-1308876-1-ref.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML>
+<html class="reftest-paged">
+<!--
+This reference matches our current rendering, which isn't necessarily
+correct, but I'd at least like to know about it if it changes, given how
+little test coverage of this we currently have.
+-->
+<style>
+html, body { margin: 0; padding: 0; }
+</style>
+<div id="page1" style="border: 2px solid black; background: yellow; height: 2in; box-sizing: border-box; padding: 3px; width: min-content">
+ <div style="background: orange; height: calc(2in - 15px); padding: 3px;">
+ <div style="background: brown; color: black;padding: 1px;">A</div>
+ </div>
+</div>
+<div id="page2" style="border: 2px solid black; background: yellow; height: 2in; box-sizing: border-box; padding: 2px 3px 3px 3px; border-bottom: none; padding-bottom: 0; width: min-content">
+ <div style="background: orange; height: calc(2in - 6px); padding: 2px 3px 0 3px">
+ <div style="border: 1px solid fuchsia; background: aqua; height: calc(2in - 7px); border-bottom: none; color: transparent">A</div>
+ </div>
+</div>
diff --git a/layout/reftests/pagination/table-nested-1308876-1.xhtml b/layout/reftests/pagination/table-nested-1308876-1.xhtml
new file mode 100644
index 0000000000..3a804949c4
--- /dev/null
+++ b/layout/reftests/pagination/table-nested-1308876-1.xhtml
@@ -0,0 +1,29 @@
+<html xmlns="http://www.w3.org/1999/xhtml" class="reftest-paged">
+<!--
+Reduced from layout/base/crashtests/470851-1.xhtml and turned into a reftest.
+-->
+<table style="background: black">
+<tbody>
+<tr>
+<td style="background: yellow">
+ <table>
+ <tbody style="top: 10%; position: relative; overflow: scroll">
+ <tr>
+ <td style="background: orange">
+ <table>
+ <tbody style="background: brown">
+ <tr><td>A</td></tr>
+ </tbody>
+ <tbody style="background: fuchsia">
+ <tr><td><div style="background: aqua; line-height: 4in">A</div></td></tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+</td>
+</tr>
+</tbody>
+</table>
+</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 0000000000..7cc8e669c3
--- /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-paged">
+<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 0000000000..a2f0157606
--- /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-paged">
+<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 0000000000..a2f0157606
--- /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-paged">
+<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 0000000000..939b3923e5
--- /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-paged">
+<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 0000000000..939b3923e5
--- /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-paged">
+<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 0000000000..52ee4a07b1
--- /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-paged">
+<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 0000000000..beed9b61d4
--- /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-paged">
+<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 0000000000..3f780684f3
--- /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-paged">
+<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 0000000000..832bc8bfc8
--- /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-paged">
+<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 0000000000..72f5960ac2
--- /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-paged">
+<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 0000000000..20a9d1142b
--- /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-paged">
+<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 0000000000..2e045aa813
--- /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-paged">
+<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 0000000000..e2792c2cd2
--- /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-paged">
+<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 0000000000..469027d86a
--- /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-paged">
+<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 0000000000..1a64f917ba
--- /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-paged">
+<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 0000000000..64684c359a
--- /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-paged">
+<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>
diff --git a/layout/reftests/pagination/test-async-paged.html b/layout/reftests/pagination/test-async-paged.html
new file mode 100644
index 0000000000..bbeb757d28
--- /dev/null
+++ b/layout/reftests/pagination/test-async-paged.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html><html class="reftest-wait reftest-paged"><style>html{font-size:12pt}</style>
+<head>
+ <script type="text/javascript">
+
+ window.onload = function (){
+ setTimeout(function() {
+ document.documentElement.className = "reftest-paged";},
+ 1000);
+ }
+ </script>
+</head>
+<body>
+<table>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>xxxxxxxxxxxxxxxxxxx</td></tr></tbody>
+ <tbody><tr><td>last line</td></tr></tbody>
+
+</table>
+
+</body>
+
+</html>