summaryrefslogtreecommitdiffstats
path: root/layout/reftests/css-page
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /layout/reftests/css-page
parentInitial commit. (diff)
downloadthunderbird-upstream.tar.xz
thunderbird-upstream.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'layout/reftests/css-page')
-rw-r--r--layout/reftests/css-page/generate-page-name-two-page-test.py117
-rw-r--r--layout/reftests/css-page/page-name-abspos-001-ref.html7
-rw-r--r--layout/reftests/css-page/page-name-abspos-001.html7
-rw-r--r--layout/reftests/css-page/page-name-abspos-002-ref.html9
-rw-r--r--layout/reftests/css-page/page-name-abspos-002.html9
-rw-r--r--layout/reftests/css-page/page-name-abspos-003-ref.html8
-rw-r--r--layout/reftests/css-page/page-name-abspos-003.html8
-rw-r--r--layout/reftests/css-page/page-name-canvas-001-ref.html7
-rw-r--r--layout/reftests/css-page/page-name-canvas-001.html7
-rw-r--r--layout/reftests/css-page/page-name-canvas-002-ref.html7
-rw-r--r--layout/reftests/css-page/page-name-canvas-002.html7
-rw-r--r--layout/reftests/css-page/page-name-canvas-003-ref.html7
-rw-r--r--layout/reftests/css-page/page-name-canvas-003.html7
-rw-r--r--layout/reftests/css-page/page-name-canvas-004-ref.html7
-rw-r--r--layout/reftests/css-page/page-name-canvas-004.html7
-rw-r--r--layout/reftests/css-page/page-name-display-none-child-ref.html9
-rw-r--r--layout/reftests/css-page/page-name-display-none-child.html10
-rw-r--r--layout/reftests/css-page/page-name-fixed-pos-001-ref.html21
-rw-r--r--layout/reftests/css-page/page-name-fixed-pos-001.html22
-rw-r--r--layout/reftests/css-page/page-name-flex-001-ref.html11
-rw-r--r--layout/reftests/css-page/page-name-flex-001.html11
-rw-r--r--layout/reftests/css-page/page-name-flex-002-ref.html11
-rw-r--r--layout/reftests/css-page/page-name-flex-002.html11
-rw-r--r--layout/reftests/css-page/page-name-flex-003-ref.html11
-rw-r--r--layout/reftests/css-page/page-name-flex-003.html11
-rw-r--r--layout/reftests/css-page/page-name-flex-004-ref.html13
-rw-r--r--layout/reftests/css-page/page-name-flex-004.html15
-rw-r--r--layout/reftests/css-page/page-name-float-001-ref.html7
-rw-r--r--layout/reftests/css-page/page-name-float-001.html7
-rw-r--r--layout/reftests/css-page/page-name-float-002-ref.html8
-rw-r--r--layout/reftests/css-page/page-name-float-002.html8
-rw-r--r--layout/reftests/css-page/page-name-img-001-ref.html7
-rw-r--r--layout/reftests/css-page/page-name-img-001.html7
-rw-r--r--layout/reftests/css-page/page-name-img-002-ref.html7
-rw-r--r--layout/reftests/css-page/page-name-img-002.html7
-rw-r--r--layout/reftests/css-page/page-name-img-003-ref.html7
-rw-r--r--layout/reftests/css-page/page-name-img-003.html7
-rw-r--r--layout/reftests/css-page/page-name-img-004-ref.html7
-rw-r--r--layout/reftests/css-page/page-name-img-004.html7
-rw-r--r--layout/reftests/css-page/page-name-inline-block-001-ref.html9
-rw-r--r--layout/reftests/css-page/page-name-inline-block-001.html9
-rw-r--r--layout/reftests/css-page/page-name-inline-block-002-ref.html10
-rw-r--r--layout/reftests/css-page/page-name-inline-block-002.html10
-rw-r--r--layout/reftests/css-page/page-name-inline-block-003-ref.html7
-rw-r--r--layout/reftests/css-page/page-name-inline-block-003.html7
-rw-r--r--layout/reftests/css-page/page-name-margin-001-ref.html24
-rw-r--r--layout/reftests/css-page/page-name-margin-001.html24
-rw-r--r--layout/reftests/css-page/page-name-margin-002-ref.html19
-rw-r--r--layout/reftests/css-page/page-name-margin-002.html20
-rw-r--r--layout/reftests/css-page/page-name-orthogonal-writing-001-ref.html9
-rw-r--r--layout/reftests/css-page/page-name-orthogonal-writing-001.html9
-rw-r--r--layout/reftests/css-page/page-name-orthogonal-writing-002-ref.html7
-rw-r--r--layout/reftests/css-page/page-name-orthogonal-writing-002.html7
-rw-r--r--layout/reftests/css-page/page-name-orthogonal-writing-003-ref.html9
-rw-r--r--layout/reftests/css-page/page-name-orthogonal-writing-003.html9
-rw-r--r--layout/reftests/css-page/page-name-orthogonal-writing-004-ref.html11
-rw-r--r--layout/reftests/css-page/page-name-orthogonal-writing-004.html11
-rw-r--r--layout/reftests/css-page/page-name-propagated-001-ref.html11
-rw-r--r--layout/reftests/css-page/page-name-propagated-001.html11
-rw-r--r--layout/reftests/css-page/page-name-propagated-002-ref.html13
-rw-r--r--layout/reftests/css-page/page-name-propagated-002.html13
-rw-r--r--layout/reftests/css-page/page-name-propagated-003-ref.html8
-rw-r--r--layout/reftests/css-page/page-name-propagated-003.html12
-rw-r--r--layout/reftests/css-page/page-name-propagated-004-ref.html12
-rw-r--r--layout/reftests/css-page/page-name-propagated-004.html12
-rw-r--r--layout/reftests/css-page/page-name-propagated-005-ref.html12
-rw-r--r--layout/reftests/css-page/page-name-propagated-005.html12
-rw-r--r--layout/reftests/css-page/page-name-propagated-006-ref.html12
-rw-r--r--layout/reftests/css-page/page-name-propagated-006.html12
-rw-r--r--layout/reftests/css-page/page-name-propagated-007-ref.html9
-rw-r--r--layout/reftests/css-page/page-name-propagated-007.html11
-rw-r--r--layout/reftests/css-page/page-name-propagated-008-ref.html8
-rw-r--r--layout/reftests/css-page/page-name-propagated-008.html10
-rw-r--r--layout/reftests/css-page/page-name-propagated-009-ref.html8
-rw-r--r--layout/reftests/css-page/page-name-propagated-009.html10
-rw-r--r--layout/reftests/css-page/page-name-siblings-001.html8
-rw-r--r--layout/reftests/css-page/page-name-siblings-002.html10
-rw-r--r--layout/reftests/css-page/page-name-siblings-003.html10
-rw-r--r--layout/reftests/css-page/page-name-siblings-004.html8
-rw-r--r--layout/reftests/css-page/page-name-siblings-005.html8
-rw-r--r--layout/reftests/css-page/page-name-siblings-ref.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-001.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-002.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-003.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-004.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-005.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-006.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-007.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-008.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-009.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-010.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-011.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-012.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-013.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-014.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-015.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-016.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-017.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-018.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-019.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-020.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-021.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-022.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-023.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-024.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-025.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-026.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-027.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-028.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-029.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-030.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-031.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-032.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-033.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-034.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-035.html8
-rw-r--r--layout/reftests/css-page/page-name-two-page-ref.html7
-rw-r--r--layout/reftests/css-page/page-name-zero-height-001-ref.html12
-rw-r--r--layout/reftests/css-page/page-name-zero-height-001.html12
-rw-r--r--layout/reftests/css-page/reftest.list83
120 files changed, 1316 insertions, 0 deletions
diff --git a/layout/reftests/css-page/generate-page-name-two-page-test.py b/layout/reftests/css-page/generate-page-name-two-page-test.py
new file mode 100644
index 0000000000..9b06b8a159
--- /dev/null
+++ b/layout/reftests/css-page/generate-page-name-two-page-test.py
@@ -0,0 +1,117 @@
+#!/usr/bin/env python
+#
+# Any copyright is dedicated to the Public Domain.
+# http://creativecommons.org/publicdomain/zero/1.0/
+#
+# Generates HTML test files with permutations for frame tree hierarchies to
+# test page-name breaks.
+# These should all have page-name-two-pages-ref.html as their ref case.
+#
+# The generated tests have the structure of two <p> elements that will have
+# different page name values through various means:
+# * Both <p> elements have different values for the `page` property.
+# * One <p> element has a specified non-default `page` property and the other
+# does not.
+# * One <p> element has a specified non-default `page` property and the other
+# has `page: auto`.
+#
+# Additionally, the <p> elements may be contained in a <div> element, which may
+# also have the `page` property set on it.
+
+import os
+import sys
+
+# Test count, used for file numbers
+i = 1
+
+# Generate tests that enumerate putting each paragraph element into a div or
+# not, and applying the page-name to the div or the paragraph element.
+
+# Data that is used to generate the structure and element attributes for a page.
+ALL_DATA_COMBOS = (
+ {"p_page": True, "use_div": False, "div_page": False},
+ {"p_page": True, "use_div": True, "div_page": False},
+ {"p_page": False, "use_div": True, "div_page": True},
+)
+
+# Process ALL_DATA_COMBOS to generate data combos for a page with a given name.
+
+
+def gen_data_combos(name):
+ combos = [{"p_page": False, "use_div": False, "div_page": False}]
+ for data in ALL_DATA_COMBOS:
+ data_copy = data.copy()
+ data_copy["p_page"] = data["p_page"] and name
+ data_copy["div_page"] = data["div_page"] and name
+ combos.append(data_copy)
+ # Make page: auto versions for parts with empty page values.
+ for k in ("p_page", "div_page"):
+ # Only care about div page when there is a div
+ if k == "div_page" and not data["use_div"]:
+ continue
+ if not data[k]:
+ data_copy_auto = data_copy.copy()
+ data_copy_auto[k] = "auto"
+ combos.append(data_copy_auto)
+ return combos
+
+
+A_DATA_COMBOS = gen_data_combos("a")
+B_DATA_COMBOS = gen_data_combos("b")
+
+
+def tag(name, page, inner=""):
+ # Build the opening
+ open_tag = "<" + name
+ if page:
+ open_tag += ' style="page:' + page + '"'
+ open_tag += ">"
+
+ close_tag = "</" + name + ">"
+ return open_tag + inner + close_tag
+
+
+def generate_page_html(txt, p_page, use_div, div_page):
+ p = tag("p", p_page, txt)
+ if use_div:
+ return tag("div", div_page, p)
+ return p
+
+
+# Preamble to all test cases
+BEGIN = """\
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+"""
+
+# Closing tags for all test cases.
+END = """
+</body>
+</html>
+"""
+
+directory = os.path.dirname(sys.argv[0])
+
+
+def data_has_no_page(d):
+ return (not d["p_page"] or d["p_page"] == "auto") and (
+ not d["div_page"] or d["div_page"] == "auto"
+ )
+
+
+for a in A_DATA_COMBOS:
+ for b in B_DATA_COMBOS:
+ # Test for the case of empty or auto page-names in both data
+ if data_has_no_page(a) and data_has_no_page(b):
+ continue
+ file_name = "page-name-two-page-" + str(i).rjust(3, "0") + ".html"
+ i += 1
+ f = open(os.path.join(directory, file_name), "w")
+ f.write(BEGIN)
+ f.write(generate_page_html("a", **a))
+ f.write("\n")
+ f.write(generate_page_html("b", **b))
+ f.write(END)
+ f.close()
diff --git a/layout/reftests/css-page/page-name-abspos-001-ref.html b/layout/reftests/css-page/page-name-abspos-001-ref.html
new file mode 100644
index 0000000000..15d9c5d18e
--- /dev/null
+++ b/layout/reftests/css-page/page-name-abspos-001-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>a</div>
+ <div style="position: absolute; right: 0; top: 0;">b</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-abspos-001.html b/layout/reftests/css-page/page-name-abspos-001.html
new file mode 100644
index 0000000000..709df6a52c
--- /dev/null
+++ b/layout/reftests/css-page/page-name-abspos-001.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>a</div>
+ <div style="page: b; position: absolute; right: 0; top: 0;">b</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-abspos-002-ref.html b/layout/reftests/css-page/page-name-abspos-002-ref.html
new file mode 100644
index 0000000000..145012fe8d
--- /dev/null
+++ b/layout/reftests/css-page/page-name-abspos-002-ref.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="position: absolute; left: 0; top: 0;">
+ <div>a</div>
+ <div>b</div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-abspos-002.html b/layout/reftests/css-page/page-name-abspos-002.html
new file mode 100644
index 0000000000..23c324dac7
--- /dev/null
+++ b/layout/reftests/css-page/page-name-abspos-002.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="position: absolute; left: 0; top: 0;">
+ <div style="page: a">a</div>
+ <div style="page: b">b</div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-abspos-003-ref.html b/layout/reftests/css-page/page-name-abspos-003-ref.html
new file mode 100644
index 0000000000..918b1beeee
--- /dev/null
+++ b/layout/reftests/css-page/page-name-abspos-003-ref.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="page: a">a</div>
+ <div style="page: b; position: absolute; left: 0; top: 0;">b</div>
+ <div style="page: c; break-before: page;">c</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-abspos-003.html b/layout/reftests/css-page/page-name-abspos-003.html
new file mode 100644
index 0000000000..b086a4aa7a
--- /dev/null
+++ b/layout/reftests/css-page/page-name-abspos-003.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="page: a">a</div>
+ <div style="page: b; position: absolute; left: 0; top: 0;">b</div>
+ <div style="page: c">c</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-canvas-001-ref.html b/layout/reftests/css-page/page-name-canvas-001-ref.html
new file mode 100644
index 0000000000..082807ffbd
--- /dev/null
+++ b/layout/reftests/css-page/page-name-canvas-001-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <canvas height="1" style="border: 1px solid black; break-after: always"></canvas>
+ <p>b</p>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-canvas-001.html b/layout/reftests/css-page/page-name-canvas-001.html
new file mode 100644
index 0000000000..e6c1b48411
--- /dev/null
+++ b/layout/reftests/css-page/page-name-canvas-001.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body style="page:a">
+ <canvas height="1" style="page:b; border: 1px solid black"></canvas>
+ <p style="page:b">b</p>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-canvas-002-ref.html b/layout/reftests/css-page/page-name-canvas-002-ref.html
new file mode 100644
index 0000000000..b00e152b99
--- /dev/null
+++ b/layout/reftests/css-page/page-name-canvas-002-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <p style="break-after: always">a</p>
+ <canvas height="1" style="border: 1px solid black"></canvas>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-canvas-002.html b/layout/reftests/css-page/page-name-canvas-002.html
new file mode 100644
index 0000000000..c14269864a
--- /dev/null
+++ b/layout/reftests/css-page/page-name-canvas-002.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body style="page:a">
+ <p style="page:b">a</p>
+ <canvas height="1" style="page:b; border: 1px solid black"></canvas>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-canvas-003-ref.html b/layout/reftests/css-page/page-name-canvas-003-ref.html
new file mode 100644
index 0000000000..4ce545d810
--- /dev/null
+++ b/layout/reftests/css-page/page-name-canvas-003-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <canvas height="1" style="display: block; border: 1px solid black"></canvas>
+ <div>b</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-canvas-003.html b/layout/reftests/css-page/page-name-canvas-003.html
new file mode 100644
index 0000000000..c8e15e098d
--- /dev/null
+++ b/layout/reftests/css-page/page-name-canvas-003.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body style="page:a">
+ <canvas height="1" style="display: block; page: b; border: 1px solid black"></canvas>
+ <div style="page:b">b</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-canvas-004-ref.html b/layout/reftests/css-page/page-name-canvas-004-ref.html
new file mode 100644
index 0000000000..3ee8027020
--- /dev/null
+++ b/layout/reftests/css-page/page-name-canvas-004-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body style="page:a">
+ <canvas height="1" style="display: block; break-after: page; border: 1px solid black"></canvas>
+ <div>b</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-canvas-004.html b/layout/reftests/css-page/page-name-canvas-004.html
new file mode 100644
index 0000000000..6b4cad2ede
--- /dev/null
+++ b/layout/reftests/css-page/page-name-canvas-004.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body style="page:a">
+ <canvas height="1" style="display: block; page: b; border: 1px solid black"></canvas>
+ <div>b</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-display-none-child-ref.html b/layout/reftests/css-page/page-name-display-none-child-ref.html
new file mode 100644
index 0000000000..39d4e1e3c5
--- /dev/null
+++ b/layout/reftests/css-page/page-name-display-none-child-ref.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <p style="break-after:always">a</p>
+ <!-- This should match the test case, even if page-breaks are being coalesced -->
+ <div style="break-after:always"></div>
+ <p>b</p>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-display-none-child.html b/layout/reftests/css-page/page-name-display-none-child.html
new file mode 100644
index 0000000000..e480e51d94
--- /dev/null
+++ b/layout/reftests/css-page/page-name-display-none-child.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <p style="page:a">a</p>
+ <div style="page:c">
+ <p style="display: none">c</p>
+ </div>
+ <p style="page:b">b</p>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-fixed-pos-001-ref.html b/layout/reftests/css-page/page-name-fixed-pos-001-ref.html
new file mode 100644
index 0000000000..5b49a5ec88
--- /dev/null
+++ b/layout/reftests/css-page/page-name-fixed-pos-001-ref.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <style>
+div {
+ width: 1in;
+ height: 1in;
+ border: 1px solid black;
+}
+.fixed {
+ position: fixed;
+ left: 0.5in;
+ top: 0.5in;
+ border-color: blue;
+}
+ </style>
+ <body>
+ <div class="fixed">fixed</div>
+ <div style="break-after: page">a</div>
+ <div>b</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-fixed-pos-001.html b/layout/reftests/css-page/page-name-fixed-pos-001.html
new file mode 100644
index 0000000000..b70dd85f2b
--- /dev/null
+++ b/layout/reftests/css-page/page-name-fixed-pos-001.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <style>
+div {
+ width: 1in;
+ height: 1in;
+ border: 1px solid black;
+}
+.fixed {
+ position: fixed;
+ display: flex;
+ left: 0.5in;
+ top: 0.5in;
+ border-color: blue;
+}
+ </style>
+ <body>
+ <div class="fixed">fixed</div>
+ <div style="page: a">a</div>
+ <div class="page: b">b</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-flex-001-ref.html b/layout/reftests/css-page/page-name-flex-001-ref.html
new file mode 100644
index 0000000000..1081188abf
--- /dev/null
+++ b/layout/reftests/css-page/page-name-flex-001-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>a</div>
+ <div style="display:flex; flex-direction:column">
+ <div>b</div>
+ <div>c</div>
+ </div>
+ <div>d</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-flex-001.html b/layout/reftests/css-page/page-name-flex-001.html
new file mode 100644
index 0000000000..42f82d03d5
--- /dev/null
+++ b/layout/reftests/css-page/page-name-flex-001.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>a</div>
+ <div style="display:flex; flex-direction:column">
+ <div style="page:b">b</div>
+ <div style="page:c">c</div>
+ </div>
+ <div>d</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-flex-002-ref.html b/layout/reftests/css-page/page-name-flex-002-ref.html
new file mode 100644
index 0000000000..ee4b1dffa3
--- /dev/null
+++ b/layout/reftests/css-page/page-name-flex-002-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>a</div>
+ <div style="display:flex">
+ <div>b</div>
+ <div>c</div>
+ </div>
+ <div>d</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-flex-002.html b/layout/reftests/css-page/page-name-flex-002.html
new file mode 100644
index 0000000000..5eeed49f30
--- /dev/null
+++ b/layout/reftests/css-page/page-name-flex-002.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>a</div>
+ <div style="display:flex">
+ <div style="page:b">b</div>
+ <div style="page:c">c</div>
+ </div>
+ <div>d</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-flex-003-ref.html b/layout/reftests/css-page/page-name-flex-003-ref.html
new file mode 100644
index 0000000000..8df2a9b54d
--- /dev/null
+++ b/layout/reftests/css-page/page-name-flex-003-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>a</div>
+ <div style="break-before: page; break-after: page; display:flex; flex-direction:column">
+ <div>b</div>
+ <div>c</div>
+ </div>
+ <div>d</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-flex-003.html b/layout/reftests/css-page/page-name-flex-003.html
new file mode 100644
index 0000000000..42e657826e
--- /dev/null
+++ b/layout/reftests/css-page/page-name-flex-003.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body style="page:a">
+ <div>a</div>
+ <div style="page:b; display:flex; flex-direction:column">
+ <div>b</div>
+ <div>c</div>
+ </div>
+ <div>d</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-flex-004-ref.html b/layout/reftests/css-page/page-name-flex-004-ref.html
new file mode 100644
index 0000000000..c6e572a5d9
--- /dev/null
+++ b/layout/reftests/css-page/page-name-flex-004-ref.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>a</div>
+ <div style="display:flex; flex-direction:column">
+ <div>
+ <div style="break-after: page">b</div>
+ <div>c</div>
+ </div>
+ </div>
+ <div>d</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-flex-004.html b/layout/reftests/css-page/page-name-flex-004.html
new file mode 100644
index 0000000000..319513aa06
--- /dev/null
+++ b/layout/reftests/css-page/page-name-flex-004.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>a</div>
+ <div style="display:flex; flex-direction:column">
+ <div>
+ <div>
+ <div style="page:a">b</div>
+ <div style="page:b">c</div>
+ </div>
+ </div>
+ </div>
+ <div>d</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-float-001-ref.html b/layout/reftests/css-page/page-name-float-001-ref.html
new file mode 100644
index 0000000000..ddeb51aa8b
--- /dev/null
+++ b/layout/reftests/css-page/page-name-float-001-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="float: left;">a</div>
+ <div>b</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-float-001.html b/layout/reftests/css-page/page-name-float-001.html
new file mode 100644
index 0000000000..76664bc9c6
--- /dev/null
+++ b/layout/reftests/css-page/page-name-float-001.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="page: a; float: left;">a</div>
+ <div style="page: b">b</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-float-002-ref.html b/layout/reftests/css-page/page-name-float-002-ref.html
new file mode 100644
index 0000000000..bb16cf15bc
--- /dev/null
+++ b/layout/reftests/css-page/page-name-float-002-ref.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>a</div>
+ <div style="float: left;">b</div>
+ <div style="break-before: page;">c</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-float-002.html b/layout/reftests/css-page/page-name-float-002.html
new file mode 100644
index 0000000000..d0a3982ef6
--- /dev/null
+++ b/layout/reftests/css-page/page-name-float-002.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="page: a">a</div>
+ <div style="page: b; float: left;">b</div>
+ <div style="page: c">c</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-img-001-ref.html b/layout/reftests/css-page/page-name-img-001-ref.html
new file mode 100644
index 0000000000..de50e3bee6
--- /dev/null
+++ b/layout/reftests/css-page/page-name-img-001-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <img style="break-after: always" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAIAAAABc2X6AAAAa0lEQVR42u3QMREAAAwCMfybbl3AEu4NhCQ3abUAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOXwbunRwEDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3d78VrQ4ODmDDUAAAAASUVORK5CYII=">
+ <p>b</p>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-img-001.html b/layout/reftests/css-page/page-name-img-001.html
new file mode 100644
index 0000000000..dd57f99ae8
--- /dev/null
+++ b/layout/reftests/css-page/page-name-img-001.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body style="page:a">
+ <img style="page:b" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAIAAAABc2X6AAAAa0lEQVR42u3QMREAAAwCMfybbl3AEu4NhCQ3abUAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOXwbunRwEDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3d78VrQ4ODmDDUAAAAASUVORK5CYII=">
+ <p style="page:b">b</p>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-img-002-ref.html b/layout/reftests/css-page/page-name-img-002-ref.html
new file mode 100644
index 0000000000..57cab7b63c
--- /dev/null
+++ b/layout/reftests/css-page/page-name-img-002-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <p style="break-after: always">a</p>
+ <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAIAAAABc2X6AAAAa0lEQVR42u3QMREAAAwCMfybbl3AEu4NhCQ3abUAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOXwbunRwEDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3d78VrQ4ODmDDUAAAAASUVORK5CYII=">
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-img-002.html b/layout/reftests/css-page/page-name-img-002.html
new file mode 100644
index 0000000000..4873cc1d2d
--- /dev/null
+++ b/layout/reftests/css-page/page-name-img-002.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body style="page:a">
+ <p style="page:b">a</p>
+ <img style="page:b" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAIAAAABc2X6AAAAa0lEQVR42u3QMREAAAwCMfybbl3AEu4NhCQ3abUAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOXwbunRwEDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3d78VrQ4ODmDDUAAAAASUVORK5CYII=">
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-img-003-ref.html b/layout/reftests/css-page/page-name-img-003-ref.html
new file mode 100644
index 0000000000..102f37d584
--- /dev/null
+++ b/layout/reftests/css-page/page-name-img-003-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <img style="display: block;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAIAAAABc2X6AAAAa0lEQVR42u3QMREAAAwCMfybbl3AEu4NhCQ3abUAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOXwbunRwEDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3d78VrQ4ODmDDUAAAAASUVORK5CYII=">
+ <div>b</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-img-003.html b/layout/reftests/css-page/page-name-img-003.html
new file mode 100644
index 0000000000..150e903ebc
--- /dev/null
+++ b/layout/reftests/css-page/page-name-img-003.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body style="page:a">
+ <img style="display: block; page: b" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAIAAAABc2X6AAAAa0lEQVR42u3QMREAAAwCMfybbl3AEu4NhCQ3abUAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOXwbunRwEDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3d78VrQ4ODmDDUAAAAASUVORK5CYII=">
+ <div style="page:b">b</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-img-004-ref.html b/layout/reftests/css-page/page-name-img-004-ref.html
new file mode 100644
index 0000000000..70310a4c33
--- /dev/null
+++ b/layout/reftests/css-page/page-name-img-004-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>a</div>
+ <img style="display: block;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAIAAAABc2X6AAAAa0lEQVR42u3QMREAAAwCMfybbl3AEu4NhCQ3abUAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOXwbunRwEDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3d78VrQ4ODmDDUAAAAASUVORK5CYII=">
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-img-004.html b/layout/reftests/css-page/page-name-img-004.html
new file mode 100644
index 0000000000..e30c160599
--- /dev/null
+++ b/layout/reftests/css-page/page-name-img-004.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body style="page:a">
+ <div style="page: b">a</div>
+ <img style="display: block; page: b" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAIAAAABc2X6AAAAa0lEQVR42u3QMREAAAwCMfybbl3AEu4NhCQ3abUAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOXwbunRwEDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3d78VrQ4ODmDDUAAAAASUVORK5CYII=">
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-inline-block-001-ref.html b/layout/reftests/css-page/page-name-inline-block-001-ref.html
new file mode 100644
index 0000000000..cfa156b147
--- /dev/null
+++ b/layout/reftests/css-page/page-name-inline-block-001-ref.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="display: inline-block">
+ <div>a</div>
+ <div>b</div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-inline-block-001.html b/layout/reftests/css-page/page-name-inline-block-001.html
new file mode 100644
index 0000000000..75371b269d
--- /dev/null
+++ b/layout/reftests/css-page/page-name-inline-block-001.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="display: inline-block">
+ <div style="page: a">a</div>
+ <div style="page: b">b</div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-inline-block-002-ref.html b/layout/reftests/css-page/page-name-inline-block-002-ref.html
new file mode 100644
index 0000000000..ec483e2e79
--- /dev/null
+++ b/layout/reftests/css-page/page-name-inline-block-002-ref.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="display: inline-block">
+ <div>a</div>
+ <div>b</div>
+ </div>
+ <div style="break-before: page">c</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-inline-block-002.html b/layout/reftests/css-page/page-name-inline-block-002.html
new file mode 100644
index 0000000000..22416a44a9
--- /dev/null
+++ b/layout/reftests/css-page/page-name-inline-block-002.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="page: c; display: inline-block">
+ <div style="page: a">a</div>
+ <div style="page: b">b</div>
+ </div>
+ <div style="page: c">c</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-inline-block-003-ref.html b/layout/reftests/css-page/page-name-inline-block-003-ref.html
new file mode 100644
index 0000000000..73b17681be
--- /dev/null
+++ b/layout/reftests/css-page/page-name-inline-block-003-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="display: inline-block">a</div>
+ <div style="display: inline-block">b</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-inline-block-003.html b/layout/reftests/css-page/page-name-inline-block-003.html
new file mode 100644
index 0000000000..5c4be23c2a
--- /dev/null
+++ b/layout/reftests/css-page/page-name-inline-block-003.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="page: a; display: inline-block">a</div>
+ <div style="page: b; display: inline-block">b</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-margin-001-ref.html b/layout/reftests/css-page/page-name-margin-001-ref.html
new file mode 100644
index 0000000000..c438cbf858
--- /dev/null
+++ b/layout/reftests/css-page/page-name-margin-001-ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <style>
+@page {
+ margin: 0;
+}
+.block {
+ width: 1cm;
+ height: 1cm;
+ border: 2px solid red;
+}
+ </style>
+ <body>
+ <div style="padding: 0; break-after: page">
+ <div class="block" style="border-color: lightblue"></div>
+ </div>
+ <div style="padding: 1cm; break-after: page">
+ <div class="block" style="border-color: pink"></div>
+ </div>
+ <div style="padding: 2cm">
+ <div class="block" style="border-color: gray"></div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-margin-001.html b/layout/reftests/css-page/page-name-margin-001.html
new file mode 100644
index 0000000000..ebbcb1db40
--- /dev/null
+++ b/layout/reftests/css-page/page-name-margin-001.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <style>
+@page a {
+ margin: 0;
+}
+@page b {
+ margin: 1cm;
+}
+@page c {
+ margin: 2cm;
+}
+div {
+ width: 1cm;
+ height: 1cm;
+ border: 2px solid red;
+}
+ </style>
+ <body>
+ <div style="page: a; border-color: lightblue"></div>
+ <div style="page: b; border-color: pink"></div>
+ <div style="page: c; border-color: gray"></div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-margin-002-ref.html b/layout/reftests/css-page/page-name-margin-002-ref.html
new file mode 100644
index 0000000000..0068bd6f12
--- /dev/null
+++ b/layout/reftests/css-page/page-name-margin-002-ref.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <style>
+@page {
+ margin: 0;
+}
+.block {
+ width: 1cm;
+ height: 1cm;
+ border: 2px solid blue;
+}
+ </style>
+ <body>
+ <div class="block" style="break-after: page"></div>
+ <div style="padding: 1in">
+ <div class="block"></div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-margin-002.html b/layout/reftests/css-page/page-name-margin-002.html
new file mode 100644
index 0000000000..a7e4308e98
--- /dev/null
+++ b/layout/reftests/css-page/page-name-margin-002.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <style>
+@page a {
+ margin: 1in;
+}
+@page {
+ margin: 0;
+}
+div {
+ width: 1cm;
+ height: 1cm;
+ border: 2px solid blue;
+}
+ </style>
+ <body>
+ <div></div>
+ <div style="page: a"></div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-orthogonal-writing-001-ref.html b/layout/reftests/css-page/page-name-orthogonal-writing-001-ref.html
new file mode 100644
index 0000000000..f0ac73f874
--- /dev/null
+++ b/layout/reftests/css-page/page-name-orthogonal-writing-001-ref.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged" style="writing-mode: vertical-rl">
+ <body>
+ <div style="writing-mode: horizontal-tb">
+ <div>a</div>
+ <div>b</div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-orthogonal-writing-001.html b/layout/reftests/css-page/page-name-orthogonal-writing-001.html
new file mode 100644
index 0000000000..5133f59d85
--- /dev/null
+++ b/layout/reftests/css-page/page-name-orthogonal-writing-001.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged" style="writing-mode: vertical-rl">
+ <body>
+ <div style="writing-mode: horizontal-tb">
+ <div style="page: a">a</div>
+ <div style="page: b">b</div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-orthogonal-writing-002-ref.html b/layout/reftests/css-page/page-name-orthogonal-writing-002-ref.html
new file mode 100644
index 0000000000..f1d3c64839
--- /dev/null
+++ b/layout/reftests/css-page/page-name-orthogonal-writing-002-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged" style="writing-mode: vertical-rl">
+ <body>
+ <div style="margin-block-end: 999in">a</div>
+ <div>b</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-orthogonal-writing-002.html b/layout/reftests/css-page/page-name-orthogonal-writing-002.html
new file mode 100644
index 0000000000..cbcf5eaeae
--- /dev/null
+++ b/layout/reftests/css-page/page-name-orthogonal-writing-002.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged" style="writing-mode: vertical-rl">
+ <body>
+ <div style="page: a">a</div>
+ <div style="page: b">b</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-orthogonal-writing-003-ref.html b/layout/reftests/css-page/page-name-orthogonal-writing-003-ref.html
new file mode 100644
index 0000000000..77fee0e31e
--- /dev/null
+++ b/layout/reftests/css-page/page-name-orthogonal-writing-003-ref.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged" style="writing-mode: horizontal-tb">
+ <body>
+ <div style="writing-mode: vertical-rl">
+ <div>a</div>
+ <div>b</div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-orthogonal-writing-003.html b/layout/reftests/css-page/page-name-orthogonal-writing-003.html
new file mode 100644
index 0000000000..8ab95f4c62
--- /dev/null
+++ b/layout/reftests/css-page/page-name-orthogonal-writing-003.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged" style="writing-mode: horizontal-tb">
+ <body>
+ <div style="writing-mode: vertical-rl">
+ <div style="page: a">a</div>
+ <div style="page: b">b</div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-orthogonal-writing-004-ref.html b/layout/reftests/css-page/page-name-orthogonal-writing-004-ref.html
new file mode 100644
index 0000000000..7a97341af0
--- /dev/null
+++ b/layout/reftests/css-page/page-name-orthogonal-writing-004-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="writing-mode: vertical-rl">
+ <div style="writing-mode: horizontal-tb">
+ <div style="break-after: page">a</div>
+ <div>b</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-orthogonal-writing-004.html b/layout/reftests/css-page/page-name-orthogonal-writing-004.html
new file mode 100644
index 0000000000..ab2fc67646
--- /dev/null
+++ b/layout/reftests/css-page/page-name-orthogonal-writing-004.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="writing-mode: vertical-rl">
+ <div style="writing-mode: horizontal-tb">
+ <div style="page: a">a</div>
+ <div style="page: b">b</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-propagated-001-ref.html b/layout/reftests/css-page/page-name-propagated-001-ref.html
new file mode 100644
index 0000000000..aff27b6e16
--- /dev/null
+++ b/layout/reftests/css-page/page-name-propagated-001-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>a</div>
+ <div>
+ <div>
+ <div>b</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-propagated-001.html b/layout/reftests/css-page/page-name-propagated-001.html
new file mode 100644
index 0000000000..adabaec793
--- /dev/null
+++ b/layout/reftests/css-page/page-name-propagated-001.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="page: a">a</div>
+ <div style="page: b">
+ <div style="page: c">
+ <div style="page: a">b</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-propagated-002-ref.html b/layout/reftests/css-page/page-name-propagated-002-ref.html
new file mode 100644
index 0000000000..f1fb01ac45
--- /dev/null
+++ b/layout/reftests/css-page/page-name-propagated-002-ref.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>a</div>
+ <div>
+ <div>
+ <div>b</div>
+ </div>
+ <div style="break-before: page">c</div>
+ </div>
+ <div style="break-before: page">d</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-propagated-002.html b/layout/reftests/css-page/page-name-propagated-002.html
new file mode 100644
index 0000000000..5878279ee4
--- /dev/null
+++ b/layout/reftests/css-page/page-name-propagated-002.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="page: a">a</div>
+ <div style="page: b">
+ <div style="page: e">
+ <div style="page: a">b</div>
+ </div>
+ <div style="page: c">c</div>
+ </div>
+ <div style="page: d">d</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-propagated-003-ref.html b/layout/reftests/css-page/page-name-propagated-003-ref.html
new file mode 100644
index 0000000000..98f7c3693b
--- /dev/null
+++ b/layout/reftests/css-page/page-name-propagated-003-ref.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>a</div>
+ <div style="position: absolute; left: 100px">b</div>
+ <div>c</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-propagated-003.html b/layout/reftests/css-page/page-name-propagated-003.html
new file mode 100644
index 0000000000..b6f3d0ec86
--- /dev/null
+++ b/layout/reftests/css-page/page-name-propagated-003.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="page: a">a</div>
+ <div style="page: b">
+ <div style="page: c">
+ <div style="position: absolute; left: 100px">b</div>
+ <div style="page: a">c</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-propagated-004-ref.html b/layout/reftests/css-page/page-name-propagated-004-ref.html
new file mode 100644
index 0000000000..7f2ed250a0
--- /dev/null
+++ b/layout/reftests/css-page/page-name-propagated-004-ref.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="break-after: page">a</div>
+ <div>
+ <div>
+ <div style="position: absolute; left: 100px">b</div>
+ <div>c</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-propagated-004.html b/layout/reftests/css-page/page-name-propagated-004.html
new file mode 100644
index 0000000000..8ba5fa5070
--- /dev/null
+++ b/layout/reftests/css-page/page-name-propagated-004.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="page: a">a</div>
+ <div style="page: b">
+ <div style="page: c">
+ <div style="position: absolute; left: 100px">b</div>
+ <div style="page: x">c</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-propagated-005-ref.html b/layout/reftests/css-page/page-name-propagated-005-ref.html
new file mode 100644
index 0000000000..07d38eaf3e
--- /dev/null
+++ b/layout/reftests/css-page/page-name-propagated-005-ref.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>
+ <div>
+ <div>a</div>
+ <div style="position: absolute; left: 100px">b</div>
+ </div>
+ </div>
+ <div>c</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-propagated-005.html b/layout/reftests/css-page/page-name-propagated-005.html
new file mode 100644
index 0000000000..2c3215e309
--- /dev/null
+++ b/layout/reftests/css-page/page-name-propagated-005.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="page: b">
+ <div style="page: c">
+ <div style="page: a">a</div>
+ <div style="position: absolute; left: 100px">b</div>
+ </div>
+ </div>
+ <div style="page: a">c</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-propagated-006-ref.html b/layout/reftests/css-page/page-name-propagated-006-ref.html
new file mode 100644
index 0000000000..34246936a4
--- /dev/null
+++ b/layout/reftests/css-page/page-name-propagated-006-ref.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>
+ <div>
+ <div>a</div>
+ <div style="position: absolute; left: 100px">b</div>
+ </div>
+ </div>
+ <div style="break-before: page">c</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-propagated-006.html b/layout/reftests/css-page/page-name-propagated-006.html
new file mode 100644
index 0000000000..97da7682a5
--- /dev/null
+++ b/layout/reftests/css-page/page-name-propagated-006.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="page: b">
+ <div style="page: c">
+ <div style="page: x">a</div>
+ <div style="position: absolute; left: 100px">b</div>
+ </div>
+ </div>
+ <div style="page: a">c</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-propagated-007-ref.html b/layout/reftests/css-page/page-name-propagated-007-ref.html
new file mode 100644
index 0000000000..d9af37ced0
--- /dev/null
+++ b/layout/reftests/css-page/page-name-propagated-007-ref.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>a</div>
+ <div style="break-after: page">b</div>
+ <div style="break-after: page">c</div>
+ <div>d</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-propagated-007.html b/layout/reftests/css-page/page-name-propagated-007.html
new file mode 100644
index 0000000000..8353d2bc3d
--- /dev/null
+++ b/layout/reftests/css-page/page-name-propagated-007.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>a</div>
+ <div>
+ <div>b</div>
+ <div style="page: x">c</div>
+ </div>
+ <div>d</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-propagated-008-ref.html b/layout/reftests/css-page/page-name-propagated-008-ref.html
new file mode 100644
index 0000000000..69dd6ead65
--- /dev/null
+++ b/layout/reftests/css-page/page-name-propagated-008-ref.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="break-after: page">a</div>
+ <div style="break-after: page">b</div>
+ <div>c</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-propagated-008.html b/layout/reftests/css-page/page-name-propagated-008.html
new file mode 100644
index 0000000000..c7b0019380
--- /dev/null
+++ b/layout/reftests/css-page/page-name-propagated-008.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>
+ <div style="page: a">a</div>
+ <div>b</div>
+ </div>
+ <div style="page: a">c</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-propagated-009-ref.html b/layout/reftests/css-page/page-name-propagated-009-ref.html
new file mode 100644
index 0000000000..9486f7bdbd
--- /dev/null
+++ b/layout/reftests/css-page/page-name-propagated-009-ref.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="break-after: page">a</div>
+ <div>b</div>
+ <div>c</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-propagated-009.html b/layout/reftests/css-page/page-name-propagated-009.html
new file mode 100644
index 0000000000..0db893a6ac
--- /dev/null
+++ b/layout/reftests/css-page/page-name-propagated-009.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div>
+ <div style="page: a">a</div>
+ <div>b</div>
+ </div>
+ <div>c</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-siblings-001.html b/layout/reftests/css-page/page-name-siblings-001.html
new file mode 100644
index 0000000000..16bd26f4df
--- /dev/null
+++ b/layout/reftests/css-page/page-name-siblings-001.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <p style="page:b">a</p>
+ <p style="page:b">b</p>
+ <p>c</p>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-siblings-002.html b/layout/reftests/css-page/page-name-siblings-002.html
new file mode 100644
index 0000000000..c0d69c95bc
--- /dev/null
+++ b/layout/reftests/css-page/page-name-siblings-002.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <p style="page:a">a</p>
+ <div style="page:b">
+ <p style="page:a">b</p>
+ <p>c</p>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-siblings-003.html b/layout/reftests/css-page/page-name-siblings-003.html
new file mode 100644
index 0000000000..6ed9b2f006
--- /dev/null
+++ b/layout/reftests/css-page/page-name-siblings-003.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <div style="page:a">
+ <p>a</p>
+ </div>
+ <p style="page:a">b</p>
+ <p style="page:b">c</p>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-siblings-004.html b/layout/reftests/css-page/page-name-siblings-004.html
new file mode 100644
index 0000000000..07f283664a
--- /dev/null
+++ b/layout/reftests/css-page/page-name-siblings-004.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <p>a</p>
+ <p style="page:auto">b</p>
+ <p style="page:b">c</p>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-siblings-005.html b/layout/reftests/css-page/page-name-siblings-005.html
new file mode 100644
index 0000000000..cb42fd85a8
--- /dev/null
+++ b/layout/reftests/css-page/page-name-siblings-005.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body style="page:a">
+ <p style="page:a">a</p>
+ <p style="page:auto">b</p>
+ <p style="page:b">c</p>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-siblings-ref.html b/layout/reftests/css-page/page-name-siblings-ref.html
new file mode 100644
index 0000000000..cc07469439
--- /dev/null
+++ b/layout/reftests/css-page/page-name-siblings-ref.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <p>a</p>
+ <p style="break-after: always">b</p>
+ <p>c</p>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-001.html b/layout/reftests/css-page/page-name-two-page-001.html
new file mode 100644
index 0000000000..f72637eb77
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-001.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<p>a</p>
+<p style="page:b">b</p>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-002.html b/layout/reftests/css-page/page-name-two-page-002.html
new file mode 100644
index 0000000000..422006f5f0
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-002.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<p>a</p>
+<div><p style="page:b">b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-003.html b/layout/reftests/css-page/page-name-two-page-003.html
new file mode 100644
index 0000000000..fc12c465bb
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-003.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<p>a</p>
+<div style="page:auto"><p style="page:b">b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-004.html b/layout/reftests/css-page/page-name-two-page-004.html
new file mode 100644
index 0000000000..cc63f3c409
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-004.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<p>a</p>
+<div style="page:b"><p>b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-005.html b/layout/reftests/css-page/page-name-two-page-005.html
new file mode 100644
index 0000000000..953246c3ad
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-005.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<p>a</p>
+<div style="page:b"><p style="page:auto">b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-006.html b/layout/reftests/css-page/page-name-two-page-006.html
new file mode 100644
index 0000000000..e02e3f079e
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-006.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<p style="page:a">a</p>
+<p>b</p>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-007.html b/layout/reftests/css-page/page-name-two-page-007.html
new file mode 100644
index 0000000000..0cd5ab8af5
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-007.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<p style="page:a">a</p>
+<p style="page:b">b</p>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-008.html b/layout/reftests/css-page/page-name-two-page-008.html
new file mode 100644
index 0000000000..8cfcef46dd
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-008.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<p style="page:a">a</p>
+<div><p style="page:b">b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-009.html b/layout/reftests/css-page/page-name-two-page-009.html
new file mode 100644
index 0000000000..53429ba135
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-009.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<p style="page:a">a</p>
+<div style="page:auto"><p style="page:b">b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-010.html b/layout/reftests/css-page/page-name-two-page-010.html
new file mode 100644
index 0000000000..ff1584fdd8
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-010.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<p style="page:a">a</p>
+<div style="page:b"><p>b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-011.html b/layout/reftests/css-page/page-name-two-page-011.html
new file mode 100644
index 0000000000..13b0c69513
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-011.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<p style="page:a">a</p>
+<div style="page:b"><p style="page:auto">b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-012.html b/layout/reftests/css-page/page-name-two-page-012.html
new file mode 100644
index 0000000000..881f374af9
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-012.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div><p style="page:a">a</p></div>
+<p>b</p>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-013.html b/layout/reftests/css-page/page-name-two-page-013.html
new file mode 100644
index 0000000000..c551eec04e
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-013.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div><p style="page:a">a</p></div>
+<p style="page:b">b</p>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-014.html b/layout/reftests/css-page/page-name-two-page-014.html
new file mode 100644
index 0000000000..6f3cd7eb5d
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-014.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div><p style="page:a">a</p></div>
+<div><p style="page:b">b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-015.html b/layout/reftests/css-page/page-name-two-page-015.html
new file mode 100644
index 0000000000..ff502ae481
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-015.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div><p style="page:a">a</p></div>
+<div style="page:auto"><p style="page:b">b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-016.html b/layout/reftests/css-page/page-name-two-page-016.html
new file mode 100644
index 0000000000..3bafb1f095
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-016.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div><p style="page:a">a</p></div>
+<div style="page:b"><p>b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-017.html b/layout/reftests/css-page/page-name-two-page-017.html
new file mode 100644
index 0000000000..6f898f3c6e
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-017.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div><p style="page:a">a</p></div>
+<div style="page:b"><p style="page:auto">b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-018.html b/layout/reftests/css-page/page-name-two-page-018.html
new file mode 100644
index 0000000000..cb88ea56ab
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-018.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div style="page:auto"><p style="page:a">a</p></div>
+<p>b</p>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-019.html b/layout/reftests/css-page/page-name-two-page-019.html
new file mode 100644
index 0000000000..e0baf5bf8b
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-019.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div style="page:auto"><p style="page:a">a</p></div>
+<p style="page:b">b</p>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-020.html b/layout/reftests/css-page/page-name-two-page-020.html
new file mode 100644
index 0000000000..7966fb677e
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-020.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div style="page:auto"><p style="page:a">a</p></div>
+<div><p style="page:b">b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-021.html b/layout/reftests/css-page/page-name-two-page-021.html
new file mode 100644
index 0000000000..f0ce1e5e97
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-021.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div style="page:auto"><p style="page:a">a</p></div>
+<div style="page:auto"><p style="page:b">b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-022.html b/layout/reftests/css-page/page-name-two-page-022.html
new file mode 100644
index 0000000000..95db31942f
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-022.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div style="page:auto"><p style="page:a">a</p></div>
+<div style="page:b"><p>b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-023.html b/layout/reftests/css-page/page-name-two-page-023.html
new file mode 100644
index 0000000000..6eeeee372d
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-023.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div style="page:auto"><p style="page:a">a</p></div>
+<div style="page:b"><p style="page:auto">b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-024.html b/layout/reftests/css-page/page-name-two-page-024.html
new file mode 100644
index 0000000000..b62a55e8bd
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-024.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div style="page:a"><p>a</p></div>
+<p>b</p>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-025.html b/layout/reftests/css-page/page-name-two-page-025.html
new file mode 100644
index 0000000000..f5378945cd
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-025.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div style="page:a"><p>a</p></div>
+<p style="page:b">b</p>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-026.html b/layout/reftests/css-page/page-name-two-page-026.html
new file mode 100644
index 0000000000..abf1362b03
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-026.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div style="page:a"><p>a</p></div>
+<div><p style="page:b">b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-027.html b/layout/reftests/css-page/page-name-two-page-027.html
new file mode 100644
index 0000000000..3b5829fea6
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-027.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div style="page:a"><p>a</p></div>
+<div style="page:auto"><p style="page:b">b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-028.html b/layout/reftests/css-page/page-name-two-page-028.html
new file mode 100644
index 0000000000..ee855d5939
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-028.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div style="page:a"><p>a</p></div>
+<div style="page:b"><p>b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-029.html b/layout/reftests/css-page/page-name-two-page-029.html
new file mode 100644
index 0000000000..5cb21b2464
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-029.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div style="page:a"><p>a</p></div>
+<div style="page:b"><p style="page:auto">b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-030.html b/layout/reftests/css-page/page-name-two-page-030.html
new file mode 100644
index 0000000000..9309123b11
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-030.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div style="page:a"><p style="page:auto">a</p></div>
+<p>b</p>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-031.html b/layout/reftests/css-page/page-name-two-page-031.html
new file mode 100644
index 0000000000..42626652c1
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-031.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div style="page:a"><p style="page:auto">a</p></div>
+<p style="page:b">b</p>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-032.html b/layout/reftests/css-page/page-name-two-page-032.html
new file mode 100644
index 0000000000..2d9d604e8f
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-032.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div style="page:a"><p style="page:auto">a</p></div>
+<div><p style="page:b">b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-033.html b/layout/reftests/css-page/page-name-two-page-033.html
new file mode 100644
index 0000000000..51783f2a33
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-033.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div style="page:a"><p style="page:auto">a</p></div>
+<div style="page:auto"><p style="page:b">b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-034.html b/layout/reftests/css-page/page-name-two-page-034.html
new file mode 100644
index 0000000000..d8a117168c
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-034.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div style="page:a"><p style="page:auto">a</p></div>
+<div style="page:b"><p>b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-035.html b/layout/reftests/css-page/page-name-two-page-035.html
new file mode 100644
index 0000000000..ab7e4d1376
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-035.html
@@ -0,0 +1,8 @@
+<!-- AUTOGENERATED BY generate-page-name-two-page-test.py, DO NOT MODIFY -->
+<!DOCTYPE html>
+<html class="reftest-paged">
+<body>
+<div style="page:a"><p style="page:auto">a</p></div>
+<div style="page:b"><p style="page:auto">b</p></div>
+</body>
+</html>
diff --git a/layout/reftests/css-page/page-name-two-page-ref.html b/layout/reftests/css-page/page-name-two-page-ref.html
new file mode 100644
index 0000000000..752ba719b4
--- /dev/null
+++ b/layout/reftests/css-page/page-name-two-page-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <body>
+ <p style="break-after: always">a</p>
+ <p>b</p>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-zero-height-001-ref.html b/layout/reftests/css-page/page-name-zero-height-001-ref.html
new file mode 100644
index 0000000000..ecd493a956
--- /dev/null
+++ b/layout/reftests/css-page/page-name-zero-height-001-ref.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <style>div { line-height: 1.5; }</style>
+ <body>
+ <div style="break-after: page">a</div>
+ <div style="height: 0">b</div>
+ <div style="height: 0; padding-left: 2em">c</div>
+ <div style="height: 0; padding-left: 4em">d</div>
+ <div style="padding-left: 6em;">e</div>
+ <div style="break-before: page">f</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/page-name-zero-height-001.html b/layout/reftests/css-page/page-name-zero-height-001.html
new file mode 100644
index 0000000000..80d6d666a9
--- /dev/null
+++ b/layout/reftests/css-page/page-name-zero-height-001.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+ <style>div { line-height: 1.5; }</style>
+ <body>
+ <div style="page: a">a</div>
+ <div style="page: b; height: 0">b</div>
+ <div style="page: c; height: 0; padding-left: 2em">c</div>
+ <div style="page: d; height: 0; padding-left: 4em">d</div>
+ <div style="page: e; padding-left: 6em;">e</div>
+ <div style="page: f">f</div>
+ </body>
+</html>
diff --git a/layout/reftests/css-page/reftest.list b/layout/reftests/css-page/reftest.list
new file mode 100644
index 0000000000..2228dc15b7
--- /dev/null
+++ b/layout/reftests/css-page/reftest.list
@@ -0,0 +1,83 @@
+== page-name-abspos-001.html page-name-abspos-001-ref.html
+== page-name-abspos-002.html page-name-abspos-002-ref.html
+== page-name-abspos-003.html page-name-abspos-003-ref.html
+== page-name-canvas-001.html page-name-canvas-001-ref.html
+== page-name-canvas-002.html page-name-canvas-002-ref.html
+== page-name-canvas-003.html page-name-canvas-003-ref.html
+== page-name-canvas-004.html page-name-canvas-004-ref.html
+== page-name-display-none-child.html page-name-display-none-child-ref.html
+== page-name-fixed-pos-001.html page-name-fixed-pos-001-ref.html
+== page-name-flex-001.html page-name-flex-001-ref.html
+== page-name-flex-002.html page-name-flex-002-ref.html
+== page-name-flex-003.html page-name-flex-003-ref.html
+# This is affected by https://bugzilla.mozilla.org/1663079, however we can
+# still expect this to behave the same with break-after and page name breaks.
+== page-name-flex-004.html page-name-flex-004-ref.html
+== page-name-float-001.html page-name-float-001-ref.html
+== page-name-float-002.html page-name-float-002-ref.html
+== page-name-img-001.html page-name-img-001-ref.html
+== page-name-img-002.html page-name-img-002-ref.html
+== page-name-img-003.html page-name-img-003-ref.html
+== page-name-img-004.html page-name-img-004-ref.html
+== page-name-inline-block-001.html page-name-inline-block-001-ref.html
+== page-name-inline-block-002.html page-name-inline-block-002-ref.html
+== page-name-inline-block-003.html page-name-inline-block-003-ref.html
+== page-name-margin-001.html page-name-margin-001-ref.html
+== page-name-margin-002.html page-name-margin-002-ref.html
+== page-name-orthogonal-writing-001.html page-name-orthogonal-writing-001-ref.html
+== page-name-orthogonal-writing-002.html page-name-orthogonal-writing-002-ref.html
+== page-name-orthogonal-writing-003.html page-name-orthogonal-writing-003-ref.html
+== page-name-orthogonal-writing-004.html page-name-orthogonal-writing-004-ref.html
+== page-name-propagated-001.html page-name-propagated-001-ref.html
+== page-name-propagated-002.html page-name-propagated-002-ref.html
+# This is affected by https://bugzilla.mozilla.org/1818596, though that bug
+# affects both the ref and the test case in the same way.
+== page-name-propagated-003.html page-name-propagated-003-ref.html
+== page-name-propagated-004.html page-name-propagated-004-ref.html
+== page-name-propagated-005.html page-name-propagated-005-ref.html
+== page-name-propagated-006.html page-name-propagated-006-ref.html
+== page-name-propagated-007.html page-name-propagated-007-ref.html
+== page-name-propagated-008.html page-name-propagated-008-ref.html
+== page-name-propagated-009.html page-name-propagated-009-ref.html
+== page-name-siblings-001.html page-name-siblings-ref.html
+== page-name-siblings-002.html page-name-siblings-ref.html
+== page-name-siblings-003.html page-name-siblings-ref.html
+== page-name-siblings-004.html page-name-siblings-ref.html
+== page-name-siblings-005.html page-name-siblings-ref.html
+# Auto-generated test cases
+== page-name-two-page-001.html page-name-two-page-ref.html
+== page-name-two-page-002.html page-name-two-page-ref.html
+== page-name-two-page-003.html page-name-two-page-ref.html
+== page-name-two-page-004.html page-name-two-page-ref.html
+== page-name-two-page-005.html page-name-two-page-ref.html
+== page-name-two-page-006.html page-name-two-page-ref.html
+== page-name-two-page-007.html page-name-two-page-ref.html
+== page-name-two-page-008.html page-name-two-page-ref.html
+== page-name-two-page-009.html page-name-two-page-ref.html
+== page-name-two-page-010.html page-name-two-page-ref.html
+== page-name-two-page-011.html page-name-two-page-ref.html
+== page-name-two-page-012.html page-name-two-page-ref.html
+== page-name-two-page-013.html page-name-two-page-ref.html
+== page-name-two-page-014.html page-name-two-page-ref.html
+== page-name-two-page-015.html page-name-two-page-ref.html
+== page-name-two-page-016.html page-name-two-page-ref.html
+== page-name-two-page-017.html page-name-two-page-ref.html
+== page-name-two-page-018.html page-name-two-page-ref.html
+== page-name-two-page-019.html page-name-two-page-ref.html
+== page-name-two-page-020.html page-name-two-page-ref.html
+== page-name-two-page-021.html page-name-two-page-ref.html
+== page-name-two-page-022.html page-name-two-page-ref.html
+== page-name-two-page-023.html page-name-two-page-ref.html
+== page-name-two-page-024.html page-name-two-page-ref.html
+== page-name-two-page-025.html page-name-two-page-ref.html
+== page-name-two-page-026.html page-name-two-page-ref.html
+== page-name-two-page-027.html page-name-two-page-ref.html
+== page-name-two-page-028.html page-name-two-page-ref.html
+== page-name-two-page-029.html page-name-two-page-ref.html
+== page-name-two-page-030.html page-name-two-page-ref.html
+== page-name-two-page-031.html page-name-two-page-ref.html
+== page-name-two-page-032.html page-name-two-page-ref.html
+== page-name-two-page-033.html page-name-two-page-ref.html
+== page-name-two-page-034.html page-name-two-page-ref.html
+== page-name-two-page-035.html page-name-two-page-ref.html
+== page-name-zero-height-001.html page-name-zero-height-001-ref.html