summaryrefslogtreecommitdiffstats
path: root/layout/reftests/reftest-sanity
diff options
context:
space:
mode:
Diffstat (limited to 'layout/reftests/reftest-sanity')
-rw-r--r--layout/reftests/reftest-sanity/647192-1-ref.html12
-rw-r--r--layout/reftests/reftest-sanity/647192-1.html16
-rw-r--r--layout/reftests/reftest-sanity/656041-1-ref.html33
-rw-r--r--layout/reftests/reftest-sanity/656041-1.html33
-rw-r--r--layout/reftests/reftest-sanity/async-scroll-1-ref.html7
-rw-r--r--layout/reftests/reftest-sanity/async-scroll-1a.html10
-rw-r--r--layout/reftests/reftest-sanity/async-scroll-1b.html10
-rw-r--r--layout/reftests/reftest-sanity/async-zoom-1-ref.html6
-rw-r--r--layout/reftests/reftest-sanity/async-zoom-1.html6
-rw-r--r--layout/reftests/reftest-sanity/async-zoom-2-ref.html6
-rw-r--r--layout/reftests/reftest-sanity/async-zoom-2.html6
-rw-r--r--layout/reftests/reftest-sanity/bg.pngbin0 -> 110 bytes
-rw-r--r--layout/reftests/reftest-sanity/blank.html5
-rw-r--r--layout/reftests/reftest-sanity/corners-1-ref.html6
-rw-r--r--layout/reftests/reftest-sanity/corners-1.html6
-rw-r--r--layout/reftests/reftest-sanity/corners-2-ref.html6
-rw-r--r--layout/reftests/reftest-sanity/corners-2.html6
-rw-r--r--layout/reftests/reftest-sanity/corners-3-ref.html6
-rw-r--r--layout/reftests/reftest-sanity/corners-3.html6
-rw-r--r--layout/reftests/reftest-sanity/corners-4-ref.html6
-rw-r--r--layout/reftests/reftest-sanity/corners-4.html6
-rw-r--r--layout/reftests/reftest-sanity/default-preferences-include.list6
-rw-r--r--layout/reftests/reftest-sanity/default-preferences-tests-stylo.list29
-rw-r--r--layout/reftests/reftest-sanity/default-preferences-tests.list28
-rw-r--r--layout/reftests/reftest-sanity/default.html6
-rw-r--r--layout/reftests/reftest-sanity/div-ref.html7
-rw-r--r--layout/reftests/reftest-sanity/div.html8
-rw-r--r--layout/reftests/reftest-sanity/filter-1-ref.xhtml20
-rw-r--r--layout/reftests/reftest-sanity/filter-1.xhtml32
-rw-r--r--layout/reftests/reftest-sanity/filter-2-ref.xhtml16
-rw-r--r--layout/reftests/reftest-sanity/filter-2.xhtml32
-rw-r--r--layout/reftests/reftest-sanity/font-default.html12
-rw-r--r--layout/reftests/reftest-sanity/font-download.html17
-rw-r--r--layout/reftests/reftest-sanity/font-sans-serif.html13
-rw-r--r--layout/reftests/reftest-sanity/font-serif.html13
-rw-r--r--layout/reftests/reftest-sanity/font-size-16.html13
-rw-r--r--layout/reftests/reftest-sanity/font-size-24.html13
-rw-r--r--layout/reftests/reftest-sanity/fuzzy-ref.html6
-rw-r--r--layout/reftests/reftest-sanity/fuzzy.html6
-rw-r--r--layout/reftests/reftest-sanity/green.html6
-rw-r--r--layout/reftests/reftest-sanity/html-vs-xhtml-by-extension.html19
-rw-r--r--layout/reftests/reftest-sanity/html-vs-xhtml-by-extension.xhtml19
-rw-r--r--layout/reftests/reftest-sanity/invalidation.html12
-rw-r--r--layout/reftests/reftest-sanity/needs-focus.html14
-rw-r--r--layout/reftests/reftest-sanity/no-root.html8
-rw-r--r--layout/reftests/reftest-sanity/page-height-2.1in.html8
-rw-r--r--layout/reftests/reftest-sanity/page-height-2in.html8
-rw-r--r--layout/reftests/reftest-sanity/page-height-forcebreak.html8
-rw-r--r--layout/reftests/reftest-sanity/page-height-nobreak.html7
-rw-r--r--layout/reftests/reftest-sanity/page-width-3.9in.html8
-rw-r--r--layout/reftests/reftest-sanity/page-width-4.1in.html8
-rw-r--r--layout/reftests/reftest-sanity/page-width-4in.html8
-rw-r--r--layout/reftests/reftest-sanity/page-width-auto.html8
-rw-r--r--layout/reftests/reftest-sanity/prefix-suffix.html17
-rw-r--r--layout/reftests/reftest-sanity/prefix/scripttest-fail.html17
-rw-r--r--layout/reftests/reftest-sanity/prefix/suffix.html17
-rw-r--r--layout/reftests/reftest-sanity/prefix/urlprefixtests-include.list7
-rw-r--r--layout/reftests/reftest-sanity/red.html6
-rw-r--r--layout/reftests/reftest-sanity/reftest-assigned-layer-fail-1.html52
-rw-r--r--layout/reftests/reftest-sanity/reftest-assigned-layer-fail-2.html52
-rw-r--r--layout/reftests/reftest-sanity/reftest-assigned-layer-fail-3.html52
-rw-r--r--layout/reftests/reftest-sanity/reftest-assigned-layer-fail-4.html52
-rw-r--r--layout/reftests/reftest-sanity/reftest-assigned-layer-pass.html48
-rw-r--r--layout/reftests/reftest-sanity/reftest-no-paint-ref.html7
-rw-r--r--layout/reftests/reftest-sanity/reftest-no-paint.html15
-rw-r--r--layout/reftests/reftest-sanity/reftest-opaque-layer-fail.html29
-rw-r--r--layout/reftests/reftest-sanity/reftest-opaque-layer-pass.html33
-rw-r--r--layout/reftests/reftest-sanity/reftest-opaque-layer-wait-fail.html43
-rw-r--r--layout/reftests/reftest-sanity/reftest-opaque-layer-wait-pass.html48
-rw-r--r--layout/reftests/reftest-sanity/reftest-stylo.list210
-rw-r--r--layout/reftests/reftest-sanity/reftest.list197
-rw-r--r--layout/reftests/reftest-sanity/scripttest-fail.html17
-rw-r--r--layout/reftests/reftest-sanity/scripttest-pass-fail.html18
-rw-r--r--layout/reftests/reftest-sanity/scripttest-pass.html17
-rw-r--r--layout/reftests/reftest-sanity/scripttests-stylo.list11
-rw-r--r--layout/reftests/reftest-sanity/scripttests.list10
-rw-r--r--layout/reftests/reftest-sanity/test-async-ref.html2
-rw-r--r--layout/reftests/reftest-sanity/test-async-ref.xul3
-rw-r--r--layout/reftests/reftest-sanity/test-async.html12
-rw-r--r--layout/reftests/reftest-sanity/test-async.xul15
-rw-r--r--layout/reftests/reftest-sanity/test-bg-attachment-fixed-ref.html16
-rw-r--r--layout/reftests/reftest-sanity/test-bg-attachment-fixed.html22
-rw-r--r--layout/reftests/reftest-sanity/test-displayport-2.html7
-rw-r--r--layout/reftests/reftest-sanity/test-displayport-bg.html7
-rw-r--r--layout/reftests/reftest-sanity/test-displayport-ref.html4
-rw-r--r--layout/reftests/reftest-sanity/test-pos-fixed-ref.html7
-rw-r--r--layout/reftests/reftest-sanity/test-pos-fixed-transform-ref.html7
-rw-r--r--layout/reftests/reftest-sanity/test-pos-fixed-transform.html7
-rw-r--r--layout/reftests/reftest-sanity/test-pos-fixed.html8
-rw-r--r--layout/reftests/reftest-sanity/test-zoom-ref.html7
-rw-r--r--layout/reftests/reftest-sanity/test-zoom.html7
-rw-r--r--layout/reftests/reftest-sanity/too-fuzzy.html6
-rw-r--r--layout/reftests/reftest-sanity/urlprefixtests-include.list6
-rw-r--r--layout/reftests/reftest-sanity/urlprefixtests-stylo.list24
-rw-r--r--layout/reftests/reftest-sanity/urlprefixtests.list23
-rw-r--r--layout/reftests/reftest-sanity/zoom-invalidation-ref.html6
-rw-r--r--layout/reftests/reftest-sanity/zoom-invalidation.html13
97 files changed, 1800 insertions, 0 deletions
diff --git a/layout/reftests/reftest-sanity/647192-1-ref.html b/layout/reftests/reftest-sanity/647192-1-ref.html
new file mode 100644
index 000000000..d1a673c62
--- /dev/null
+++ b/layout/reftests/reftest-sanity/647192-1-ref.html
@@ -0,0 +1,12 @@
+<html><head>
+<style>
+div {
+ outline: 1px solid black;
+}
+</style>
+
+</head><body>
+You should see no red, only green<br>
+ <div style="overflow: scroll; height: 200px; z-index: 2; position: relative; background-color: lime;"></div>
+ </div>
+</body></html>
diff --git a/layout/reftests/reftest-sanity/647192-1.html b/layout/reftests/reftest-sanity/647192-1.html
new file mode 100644
index 000000000..365f7652f
--- /dev/null
+++ b/layout/reftests/reftest-sanity/647192-1.html
@@ -0,0 +1,16 @@
+<html><head>
+<style>
+div {
+ outline: 1px solid black;
+}
+</style>
+
+</head><body>
+You should see no red, only green<br>
+ <div style="overflow: scroll; height: 200px; z-index: 2; position: relative; background-color: red;"></div>
+ <div class="displayport" reftest-displayport-h="500" style="overflow: scroll; position: relative; margin-top: -200px; height: 200px;">
+ <div style="z-index: 10; position: absolute; width: 100%; height: 500px; bottom: -300px;">
+ <div style="height: 200px; background-color: lime;"></div>
+ </div>
+ </div>
+</body></html>
diff --git a/layout/reftests/reftest-sanity/656041-1-ref.html b/layout/reftests/reftest-sanity/656041-1-ref.html
new file mode 100644
index 000000000..a92943594
--- /dev/null
+++ b/layout/reftests/reftest-sanity/656041-1-ref.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+ <meta charset="utf-8">
+ <title>Reftest</title>
+ <style type="text/css">
+ ul {
+ position: absolute;
+ top: 50px;
+ bottom: 0px;
+ left: 0;
+ right: 0;
+ overflow: auto;
+ }
+ li {
+ height: 2000px;
+ }
+ a {
+ float: left;
+ color: black;
+ border: solid black 1px;
+ }
+ </style>
+ </head>
+ <body>
+ <ul>
+ <li>
+ <a href="#"> </a>
+ </li>
+ </ul>
+ </body>
+</html>
diff --git a/layout/reftests/reftest-sanity/656041-1.html b/layout/reftests/reftest-sanity/656041-1.html
new file mode 100644
index 000000000..d888fbe40
--- /dev/null
+++ b/layout/reftests/reftest-sanity/656041-1.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+ <meta charset="utf-8">
+ <title>Reftest</title>
+ <style type="text/css">
+ ul {
+ position: absolute;
+ top: 50px;
+ bottom: 0px;
+ left: 0;
+ right: 0;
+ overflow: auto;
+ }
+ li {
+ height: 2000px;
+ }
+ a {
+ float: left;
+ color: black;
+ border: solid black 1px;
+ }
+ </style>
+ </head>
+ <body>
+ <ul class="displayport">
+ <li>
+ <a href="#"> </a>
+ </li>
+ </ul>
+ </body>
+</html>
diff --git a/layout/reftests/reftest-sanity/async-scroll-1-ref.html b/layout/reftests/reftest-sanity/async-scroll-1-ref.html
new file mode 100644
index 000000000..f68227c18
--- /dev/null
+++ b/layout/reftests/reftest-sanity/async-scroll-1-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE HTML>
+<html>
+<body style="background:red;">
+ <div style="position:absolute; background:lime; top:0; left:0; width:800px; height:1000px"></div>
+ <div style="position:absolute; background:yellow; bottom:0; left:50px; width:50px; height:50px"></div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/async-scroll-1a.html b/layout/reftests/reftest-sanity/async-scroll-1a.html
new file mode 100644
index 000000000..b471268e4
--- /dev/null
+++ b/layout/reftests/reftest-sanity/async-scroll-1a.html
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML>
+<html reftest-async-scroll
+ reftest-displayport-x="0" reftest-displayport-y="0"
+ reftest-displayport-w="800" reftest-displayport-h="2000"
+ reftest-async-scroll-x="0" reftest-async-scroll-y="50">
+<body style="background:red; margin:0; overflow:hidden">
+ <div style="position:absolute; background:lime; top:50px; left:0; width:800px; height:1000px"></div>
+ <div style="position:absolute; background:yellow; bottom:-50px; left:50px; width:50px; height:50px"></div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/async-scroll-1b.html b/layout/reftests/reftest-sanity/async-scroll-1b.html
new file mode 100644
index 000000000..d5e9e2e48
--- /dev/null
+++ b/layout/reftests/reftest-sanity/async-scroll-1b.html
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML>
+<html reftest-async-scroll
+ reftest-displayport-x="0" reftest-displayport-y="0"
+ reftest-displayport-w="800" reftest-displayport-h="1000"
+ reftest-async-scroll-x="0" reftest-async-scroll-y="50">
+<body style="background:red; margin:0; overflow:hidden">
+ <div style="position:absolute; background:lime; top:50px; left:0; width:800px; height:1000px"></div>
+ <div style="position:absolute; background:yellow; bottom:-50px; left:50px; width:50px; height:50px"></div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/async-zoom-1-ref.html b/layout/reftests/reftest-sanity/async-zoom-1-ref.html
new file mode 100644
index 000000000..734bce16d
--- /dev/null
+++ b/layout/reftests/reftest-sanity/async-zoom-1-ref.html
@@ -0,0 +1,6 @@
+<!DOCTYPE HTML>
+<html>
+<body>
+This is some content.
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/async-zoom-1.html b/layout/reftests/reftest-sanity/async-zoom-1.html
new file mode 100644
index 000000000..7f4d2244d
--- /dev/null
+++ b/layout/reftests/reftest-sanity/async-zoom-1.html
@@ -0,0 +1,6 @@
+<!DOCTYPE HTML>
+<html reftest-async-zoom="1.5">
+<body>
+This is some content.
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/async-zoom-2-ref.html b/layout/reftests/reftest-sanity/async-zoom-2-ref.html
new file mode 100644
index 000000000..939f62579
--- /dev/null
+++ b/layout/reftests/reftest-sanity/async-zoom-2-ref.html
@@ -0,0 +1,6 @@
+<!DOCTYPE HTML>
+<html>
+<body>
+<div style="position: absolute; top: 0; left: 0; width: 200px; height: 200px; background: red"></div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/async-zoom-2.html b/layout/reftests/reftest-sanity/async-zoom-2.html
new file mode 100644
index 000000000..6ca883678
--- /dev/null
+++ b/layout/reftests/reftest-sanity/async-zoom-2.html
@@ -0,0 +1,6 @@
+<!DOCTYPE HTML>
+<html reftest-async-zoom="2">
+<body>
+<div style="position:absolute; top: 0; left: 0; width: 100px; height: 100px; background: red;"></div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/bg.png b/layout/reftests/reftest-sanity/bg.png
new file mode 100644
index 000000000..deefd19b2
--- /dev/null
+++ b/layout/reftests/reftest-sanity/bg.png
Binary files differ
diff --git a/layout/reftests/reftest-sanity/blank.html b/layout/reftests/reftest-sanity/blank.html
new file mode 100644
index 000000000..eaca3f49f
--- /dev/null
+++ b/layout/reftests/reftest-sanity/blank.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<html>
+<body>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/corners-1-ref.html b/layout/reftests/reftest-sanity/corners-1-ref.html
new file mode 100644
index 000000000..e002df815
--- /dev/null
+++ b/layout/reftests/reftest-sanity/corners-1-ref.html
@@ -0,0 +1,6 @@
+<!DOCTYPE HTML>
+<html>
+<body style="overflow:hidden">
+ <div style="width:1px; height:1px; background:lime; position:absolute; left:0; top:0;"></div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/corners-1.html b/layout/reftests/reftest-sanity/corners-1.html
new file mode 100644
index 000000000..d1461fc19
--- /dev/null
+++ b/layout/reftests/reftest-sanity/corners-1.html
@@ -0,0 +1,6 @@
+<!DOCTYPE HTML>
+<html>
+<body style="overflow:hidden">
+ <div style="width:1px; height:1px; background:red; position:absolute; left:0; top:0;"></div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/corners-2-ref.html b/layout/reftests/reftest-sanity/corners-2-ref.html
new file mode 100644
index 000000000..89a5a0928
--- /dev/null
+++ b/layout/reftests/reftest-sanity/corners-2-ref.html
@@ -0,0 +1,6 @@
+<!DOCTYPE HTML>
+<html>
+<body style="overflow:hidden">
+ <div style="width:1px; height:1px; background:lime; position:absolute; left:599px; top:0;"></div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/corners-2.html b/layout/reftests/reftest-sanity/corners-2.html
new file mode 100644
index 000000000..05c3d4a20
--- /dev/null
+++ b/layout/reftests/reftest-sanity/corners-2.html
@@ -0,0 +1,6 @@
+<!DOCTYPE HTML>
+<html>
+<body style="overflow:hidden">
+ <div style="width:1px; height:1px; background:red; position:absolute; left:599px; top:0;"></div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/corners-3-ref.html b/layout/reftests/reftest-sanity/corners-3-ref.html
new file mode 100644
index 000000000..eb28b7712
--- /dev/null
+++ b/layout/reftests/reftest-sanity/corners-3-ref.html
@@ -0,0 +1,6 @@
+<!DOCTYPE HTML>
+<html>
+<body style="overflow:hidden">
+ <div style="width:1px; height:1px; background:lime; position:absolute; left:599px; top:599px;"></div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/corners-3.html b/layout/reftests/reftest-sanity/corners-3.html
new file mode 100644
index 000000000..47c30a61a
--- /dev/null
+++ b/layout/reftests/reftest-sanity/corners-3.html
@@ -0,0 +1,6 @@
+<!DOCTYPE HTML>
+<html>
+<body style="overflow:hidden">
+ <div style="width:1px; height:1px; background:red; position:absolute; left:599px; top:599px;"></div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/corners-4-ref.html b/layout/reftests/reftest-sanity/corners-4-ref.html
new file mode 100644
index 000000000..976b298ab
--- /dev/null
+++ b/layout/reftests/reftest-sanity/corners-4-ref.html
@@ -0,0 +1,6 @@
+<!DOCTYPE HTML>
+<html>
+<body style="overflow:hidden">
+ <div style="width:1px; height:1px; background:lime; position:absolute; left:0; top:599px;"></div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/corners-4.html b/layout/reftests/reftest-sanity/corners-4.html
new file mode 100644
index 000000000..c46d50119
--- /dev/null
+++ b/layout/reftests/reftest-sanity/corners-4.html
@@ -0,0 +1,6 @@
+<!DOCTYPE HTML>
+<html>
+<body style="overflow:hidden">
+ <div style="width:1px; height:1px; background:red; position:absolute; left:0; top:599px;"></div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/default-preferences-include.list b/layout/reftests/reftest-sanity/default-preferences-include.list
new file mode 100644
index 000000000..2d0de2f37
--- /dev/null
+++ b/layout/reftests/reftest-sanity/default-preferences-include.list
@@ -0,0 +1,6 @@
+# test default-preferences on include commands
+
+# In default-preferences-tests.list, the default-preferences line in effect
+# before the include statement sets different font sizes for the test and
+# reference files. Those default preferences should not inherit into this file.
+== font-default.html font-default.html
diff --git a/layout/reftests/reftest-sanity/default-preferences-tests-stylo.list b/layout/reftests/reftest-sanity/default-preferences-tests-stylo.list
new file mode 100644
index 000000000..907f56c8f
--- /dev/null
+++ b/layout/reftests/reftest-sanity/default-preferences-tests-stylo.list
@@ -0,0 +1,29 @@
+# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
+# test default-preferences
+
+# test default-preferences with a pref()
+default-preferences pref(font.size.variable.x-western,24)
+skip == font-default.html font-default.html
+skip == font-default.html font-default.html
+
+# test that a default preference can be overridden
+skip pref(font.size.variable.x-western,16) == font-default.html font-default.html
+skip pref(font.size.variable.x-western,16) == font-default.html font-default.html
+
+# test that default preferences are kept when other test-specific preferences are set
+skip pref(font.size.variable.zh-HK,36) == font-default.html font-default.html
+skip pref(font.size.variable.zh-HK,36) == font-default.html font-default.html
+
+# test default-preferences with test-pref() and ref-pref()
+default-preferences test-pref(font.size.variable.x-western,16) ref-pref(font.size.variable.x-western,24)
+skip == font-default.html font-default.html
+skip == font-default.html font-default.html
+== font-size-24.html font-size-24.html
+
+# test that default-preferences does not apply to include commands
+include default-preferences-include.list
+
+# test resetting default-preferences
+default-preferences
+skip == font-default.html font-default.html
+
diff --git a/layout/reftests/reftest-sanity/default-preferences-tests.list b/layout/reftests/reftest-sanity/default-preferences-tests.list
new file mode 100644
index 000000000..9e72bf2ad
--- /dev/null
+++ b/layout/reftests/reftest-sanity/default-preferences-tests.list
@@ -0,0 +1,28 @@
+# test default-preferences
+
+# test default-preferences with a pref()
+default-preferences pref(font.size.variable.x-western,24)
+!= font-default.html font-size-16.html
+== font-default.html font-size-24.html
+
+# test that a default preference can be overridden
+pref(font.size.variable.x-western,16) == font-default.html font-size-16.html
+pref(font.size.variable.x-western,16) != font-default.html font-size-24.html
+
+# test that default preferences are kept when other test-specific preferences are set
+pref(font.size.variable.zh-HK,36) != font-default.html font-size-16.html
+pref(font.size.variable.zh-HK,36) == font-default.html font-size-24.html
+
+# test default-preferences with test-pref() and ref-pref()
+default-preferences test-pref(font.size.variable.x-western,16) ref-pref(font.size.variable.x-western,24)
+!= font-default.html font-default.html
+== font-default.html font-size-16.html
+== font-size-24.html font-default.html
+
+# test that default-preferences does not apply to include commands
+include default-preferences-include.list
+
+# test resetting default-preferences
+default-preferences
+== font-default.html font-default.html
+
diff --git a/layout/reftests/reftest-sanity/default.html b/layout/reftests/reftest-sanity/default.html
new file mode 100644
index 000000000..e80f240e0
--- /dev/null
+++ b/layout/reftests/reftest-sanity/default.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div>Text</div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/div-ref.html b/layout/reftests/reftest-sanity/div-ref.html
new file mode 100644
index 000000000..a798096de
--- /dev/null
+++ b/layout/reftests/reftest-sanity/div-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html>
+ <body>
+ <span style="display:block">aaa</span>
+ <span style="display:block">bbb</span>
+ </body>
+</html>
diff --git a/layout/reftests/reftest-sanity/div.html b/layout/reftests/reftest-sanity/div.html
new file mode 100644
index 000000000..f1bcffaf1
--- /dev/null
+++ b/layout/reftests/reftest-sanity/div.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html>
+ <body>
+ <div>aaa</div>
+ <div>bbb</div>
+ </body>
+</html>
+
diff --git a/layout/reftests/reftest-sanity/filter-1-ref.xhtml b/layout/reftests/reftest-sanity/filter-1-ref.xhtml
new file mode 100644
index 000000000..32f3a01b5
--- /dev/null
+++ b/layout/reftests/reftest-sanity/filter-1-ref.xhtml
@@ -0,0 +1,20 @@
+ <html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Filter sanity-check</title>
+ <style type="text/css">
+ html, body { margin: 0; background: white; height: 100%; width: 100%; }
+ body { position: relative; }
+ </style>
+ </head>
+ <body>
+
+ <div style="position: absolute; top: 10px; left: 10px; width: 100px; height: 10px; background: black"></div>
+
+ <div style="position: absolute; top: 30px; left: 10px; width: 94px; height: 4px; border: 3px solid #000;"></div>
+
+ <div style="position: absolute; top: 50px; left: 10px; width: 100px; height: 10px; background: black"></div>
+
+ <div style="position: absolute; top: 70px; left: 10px; width: 94px; height: 4px; border: 3px solid #000;"></div>
+
+ </body>
+ </html>
diff --git a/layout/reftests/reftest-sanity/filter-1.xhtml b/layout/reftests/reftest-sanity/filter-1.xhtml
new file mode 100644
index 000000000..5cc01f1e2
--- /dev/null
+++ b/layout/reftests/reftest-sanity/filter-1.xhtml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.1">
+
+ <!-- use an empty g to force filters.svg to load before onload -->
+ <use xlink:href="../filters.svg#empty" />
+
+ <foreignObject filter="url(../filters.svg#NonWhiteToBlack)"
+ x="0" y="0" height="100%" width="100%">
+ <html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Filter sanity-check</title>
+ <style type="text/css">
+ html, body { margin: 0; background: white; color: black; height: 100%; width: 100%; }
+ body { position: relative; }
+ </style>
+ </head>
+ <body>
+
+ <div style="position: absolute; top: 10px; left: 10px; width: 100px; height: 10px; background: green"></div>
+
+ <div style="position: absolute; top: 30px; left: 10px; width: 94px; height: 4px; border: 3px solid #c90;"></div>
+
+ <div style="position: absolute; top: 50px; left: 10px; width: 100px; height: 10px; background: black"></div>
+
+ <div style="position: absolute; top: 70px; left: 10px; width: 94px; height: 4px; border: 3px solid #000;"></div>
+
+ </body>
+ </html>
+ </foreignObject>
+</svg>
diff --git a/layout/reftests/reftest-sanity/filter-2-ref.xhtml b/layout/reftests/reftest-sanity/filter-2-ref.xhtml
new file mode 100644
index 000000000..c2514ba38
--- /dev/null
+++ b/layout/reftests/reftest-sanity/filter-2-ref.xhtml
@@ -0,0 +1,16 @@
+ <html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Filter sanity-check</title>
+ <style type="text/css">
+ html, body { margin: 0; background: white; height: 100%; width: 100%; }
+ body { position: relative; }
+ </style>
+ </head>
+ <body>
+
+ <div style="position: absolute; top: 50px; left: 10px; width: 100px; height: 10px; background: black"></div>
+
+ <div style="position: absolute; top: 70px; left: 10px; width: 94px; height: 4px; border: 3px solid #000;"></div>
+
+ </body>
+ </html>
diff --git a/layout/reftests/reftest-sanity/filter-2.xhtml b/layout/reftests/reftest-sanity/filter-2.xhtml
new file mode 100644
index 000000000..4dd67951e
--- /dev/null
+++ b/layout/reftests/reftest-sanity/filter-2.xhtml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.1">
+
+ <!-- use an empty g to force filters.svg to load before onload -->
+ <use xlink:href="../filters.svg#empty" />
+
+ <foreignObject filter="url(../filters.svg#NonBlackToWhite)"
+ x="0" y="0" height="100%" width="100%">
+ <html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Filter sanity-check</title>
+ <style type="text/css">
+ html, body { margin: 0; background: white; color: black; height: 100%; width: 100%; }
+ body { position: relative; }
+ </style>
+ </head>
+ <body>
+
+ <div style="position: absolute; top: 10px; left: 10px; width: 100px; height: 10px; background: green"></div>
+
+ <div style="position: absolute; top: 30px; left: 10px; width: 94px; height: 4px; border: 3px solid #c90;"></div>
+
+ <div style="position: absolute; top: 50px; left: 10px; width: 100px; height: 10px; background: black"></div>
+
+ <div style="position: absolute; top: 70px; left: 10px; width: 94px; height: 4px; border: 3px solid #000;"></div>
+
+ </body>
+ </html>
+ </foreignObject>
+</svg>
diff --git a/layout/reftests/reftest-sanity/font-default.html b/layout/reftests/reftest-sanity/font-default.html
new file mode 100644
index 000000000..3bdf2d555
--- /dev/null
+++ b/layout/reftests/reftest-sanity/font-default.html
@@ -0,0 +1,12 @@
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<style type="text/css">
+div {
+}
+</style>
+</head>
+<body>
+<div>Hello world 123</div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/font-download.html b/layout/reftests/reftest-sanity/font-download.html
new file mode 100644
index 000000000..2ab084ca4
--- /dev/null
+++ b/layout/reftests/reftest-sanity/font-download.html
@@ -0,0 +1,17 @@
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<style type="text/css">
+@font-face {
+ font-family: foo;
+ src: url(../fonts/DejaVuSansMono.woff);
+}
+div {
+ font-family: foo;
+}
+</style>
+</head>
+<body>
+<div>Hello world 123</div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/font-sans-serif.html b/layout/reftests/reftest-sanity/font-sans-serif.html
new file mode 100644
index 000000000..ac22b4ee5
--- /dev/null
+++ b/layout/reftests/reftest-sanity/font-sans-serif.html
@@ -0,0 +1,13 @@
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<style type="text/css">
+div {
+ font-family: sans-serif;
+}
+</style>
+</head>
+<body>
+<div>Hello world 123</div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/font-serif.html b/layout/reftests/reftest-sanity/font-serif.html
new file mode 100644
index 000000000..f3f22ef22
--- /dev/null
+++ b/layout/reftests/reftest-sanity/font-serif.html
@@ -0,0 +1,13 @@
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<style type="text/css">
+div {
+ font-family: serif;
+}
+</style>
+</head>
+<body>
+<div>Hello world 123</div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/font-size-16.html b/layout/reftests/reftest-sanity/font-size-16.html
new file mode 100644
index 000000000..2be81f9dc
--- /dev/null
+++ b/layout/reftests/reftest-sanity/font-size-16.html
@@ -0,0 +1,13 @@
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<style type="text/css">
+div {
+ font-size: 16px;
+}
+</style>
+</head>
+<body>
+<div>Hello world 123</div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/font-size-24.html b/layout/reftests/reftest-sanity/font-size-24.html
new file mode 100644
index 000000000..8907a1079
--- /dev/null
+++ b/layout/reftests/reftest-sanity/font-size-24.html
@@ -0,0 +1,13 @@
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<style type="text/css">
+div {
+ font-size: 24px;
+}
+</style>
+</head>
+<body>
+<div>Hello world 123</div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/fuzzy-ref.html b/layout/reftests/reftest-sanity/fuzzy-ref.html
new file mode 100644
index 000000000..776c7911d
--- /dev/null
+++ b/layout/reftests/reftest-sanity/fuzzy-ref.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<html>
+ <body>
+ <div style="background: #ff00ff; width: 500px; height: 500px;"></div>
+ </body>
+</html>
diff --git a/layout/reftests/reftest-sanity/fuzzy.html b/layout/reftests/reftest-sanity/fuzzy.html
new file mode 100644
index 000000000..d288560e9
--- /dev/null
+++ b/layout/reftests/reftest-sanity/fuzzy.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<html>
+ <body>
+ <div style="background: #ff01ff; width: 500px; height: 500px;"></div>
+ </body>
+</html>
diff --git a/layout/reftests/reftest-sanity/green.html b/layout/reftests/reftest-sanity/green.html
new file mode 100644
index 000000000..d1695cb8b
--- /dev/null
+++ b/layout/reftests/reftest-sanity/green.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div style="color: green">Text</div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/html-vs-xhtml-by-extension.html b/layout/reftests/reftest-sanity/html-vs-xhtml-by-extension.html
new file mode 100644
index 000000000..033e9ad72
--- /dev/null
+++ b/layout/reftests/reftest-sanity/html-vs-xhtml-by-extension.html
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Test that XHTML vs. HTML processing decision is made by file extension</title>
+ <style type="text/css">
+ p { border: medium solid; margin: 1em; padding: 1em; }
+ </style>
+</head>
+<body>
+
+<p>This is a paragraph.
+<p>This is a paragraph.
+</p>
+</p>
+
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/html-vs-xhtml-by-extension.xhtml b/layout/reftests/reftest-sanity/html-vs-xhtml-by-extension.xhtml
new file mode 100644
index 000000000..033e9ad72
--- /dev/null
+++ b/layout/reftests/reftest-sanity/html-vs-xhtml-by-extension.xhtml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Test that XHTML vs. HTML processing decision is made by file extension</title>
+ <style type="text/css">
+ p { border: medium solid; margin: 1em; padding: 1em; }
+ </style>
+</head>
+<body>
+
+<p>This is a paragraph.
+<p>This is a paragraph.
+</p>
+</p>
+
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/invalidation.html b/layout/reftests/reftest-sanity/invalidation.html
new file mode 100644
index 000000000..144587b9c
--- /dev/null
+++ b/layout/reftests/reftest-sanity/invalidation.html
@@ -0,0 +1,12 @@
+<!DOCTYPE HTML>
+<html class="reftest-wait">
+<body style="border:10px solid pink;">
+<script>
+ function doTest() {
+ document.body.style.border = "";
+ document.documentElement.removeAttribute('class');
+}
+document.addEventListener("MozReftestInvalidate", doTest, false);
+</script>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/needs-focus.html b/layout/reftests/reftest-sanity/needs-focus.html
new file mode 100644
index 000000000..10fdada2b
--- /dev/null
+++ b/layout/reftests/reftest-sanity/needs-focus.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <script type="text/javascript">
+function focusInput() {
+ document.getElementById('i').focus();
+}
+function done() {
+ document.documentElement.className = '';
+}
+ </script>
+ <body onload="focusInput();">
+ <input type="text" id="i" onfocus="done();">
+ </body>
+</html>
diff --git a/layout/reftests/reftest-sanity/no-root.html b/layout/reftests/reftest-sanity/no-root.html
new file mode 100644
index 000000000..9ed41863a
--- /dev/null
+++ b/layout/reftests/reftest-sanity/no-root.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script type="text/javascript">
+document.removeChild(document.documentElement);
+</script>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/page-height-2.1in.html b/layout/reftests/reftest-sanity/page-height-2.1in.html
new file mode 100644
index 000000000..d8d1242c2
--- /dev/null
+++ b/layout/reftests/reftest-sanity/page-height-2.1in.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML>
+<html class="reftest-print">
+<title>Test that reftest-print page content height is 2 inches (3 inch page, half inch margins)</title>
+<style>
+body { margin: 0 }
+div { height: 2.1in; }
+</style>
+<div>hello</div>
diff --git a/layout/reftests/reftest-sanity/page-height-2in.html b/layout/reftests/reftest-sanity/page-height-2in.html
new file mode 100644
index 000000000..eefcb7771
--- /dev/null
+++ b/layout/reftests/reftest-sanity/page-height-2in.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML>
+<html class="reftest-print">
+<title>Test that reftest-print page content height is 2 inches (3 inch page, half inch margins)</title>
+<style>
+body { margin: 0 }
+div { height: 2in; }
+</style>
+<div>hello</div>
diff --git a/layout/reftests/reftest-sanity/page-height-forcebreak.html b/layout/reftests/reftest-sanity/page-height-forcebreak.html
new file mode 100644
index 000000000..02c48b466
--- /dev/null
+++ b/layout/reftests/reftest-sanity/page-height-forcebreak.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML>
+<html class="reftest-print">
+<title>Test that reftest-print page content height is 2 inches (3 inch page, half inch margins)</title>
+<style>
+body { margin: 0 }
+</style>
+<div>hello</div>
+<div style="page-break-before: always">&nbsp;</div>
diff --git a/layout/reftests/reftest-sanity/page-height-nobreak.html b/layout/reftests/reftest-sanity/page-height-nobreak.html
new file mode 100644
index 000000000..331d9bfed
--- /dev/null
+++ b/layout/reftests/reftest-sanity/page-height-nobreak.html
@@ -0,0 +1,7 @@
+<!DOCTYPE HTML>
+<html class="reftest-print">
+<title>Test that reftest-print page content height is 2 inches (3 inch page, half inch margins)</title>
+<style>
+body { margin: 0 }
+</style>
+<div>hello</div>
diff --git a/layout/reftests/reftest-sanity/page-width-3.9in.html b/layout/reftests/reftest-sanity/page-width-3.9in.html
new file mode 100644
index 000000000..918b804e1
--- /dev/null
+++ b/layout/reftests/reftest-sanity/page-width-3.9in.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML>
+<html class="reftest-print">
+<title>Test that reftest-print page content width is 4 inches (5 inch page, half inch margins)</title>
+<style>
+body { margin: 0 }
+div { background: blue; color: white; width: 3.9in; }
+</style>
+<div>hello</div>
diff --git a/layout/reftests/reftest-sanity/page-width-4.1in.html b/layout/reftests/reftest-sanity/page-width-4.1in.html
new file mode 100644
index 000000000..4503c2e43
--- /dev/null
+++ b/layout/reftests/reftest-sanity/page-width-4.1in.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML>
+<html class="reftest-print">
+<title>Test that reftest-print page content width is 4 inches (5 inch page, half inch margins)</title>
+<style>
+body { margin: 0 }
+div { background: blue; color: white; width: 4.1in; }
+</style>
+<div>hello</div>
diff --git a/layout/reftests/reftest-sanity/page-width-4in.html b/layout/reftests/reftest-sanity/page-width-4in.html
new file mode 100644
index 000000000..d78de1f75
--- /dev/null
+++ b/layout/reftests/reftest-sanity/page-width-4in.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML>
+<html class="reftest-print">
+<title>Test that reftest-print page content width is 4 inches (5 inch page, half inch margins)</title>
+<style>
+body { margin: 0 }
+div { background: blue; color: white; width: 4in; }
+</style>
+<div>hello</div>
diff --git a/layout/reftests/reftest-sanity/page-width-auto.html b/layout/reftests/reftest-sanity/page-width-auto.html
new file mode 100644
index 000000000..0114927e0
--- /dev/null
+++ b/layout/reftests/reftest-sanity/page-width-auto.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML>
+<html class="reftest-print">
+<title>Test that reftest-print page content width is 4 inches (5 inch page, half inch margins)</title>
+<style>
+body { margin: 0 }
+div { background: blue; color: white; }
+</style>
+<div>hello</div>
diff --git a/layout/reftests/reftest-sanity/prefix-suffix.html b/layout/reftests/reftest-sanity/prefix-suffix.html
new file mode 100644
index 000000000..fed54adbd
--- /dev/null
+++ b/layout/reftests/reftest-sanity/prefix-suffix.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>suffix - test url-prefix for script test</title>
+<script type="text/javascript">
+function getTestCases()
+{
+ return [
+ { testPassed: (function () { return true; }), testDescription: (function () { return "passed"; }) }
+ ];
+}
+</script>
+</head>
+<body>
+<h1>suffix - test url-prefix for script test</h1>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/prefix/scripttest-fail.html b/layout/reftests/reftest-sanity/prefix/scripttest-fail.html
new file mode 100644
index 000000000..7172902f1
--- /dev/null
+++ b/layout/reftests/reftest-sanity/prefix/scripttest-fail.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>scripttest-fail</title>
+<script type="text/javascript">
+function getTestCases()
+{
+ return [
+ { testPassed: (function () { return false; }), testDescription: (function () { return "failed"; }) }
+ ];
+}
+</script>
+</head>
+<body>
+<h1>scripttest-fail</h1>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/prefix/suffix.html b/layout/reftests/reftest-sanity/prefix/suffix.html
new file mode 100644
index 000000000..fa99971a5
--- /dev/null
+++ b/layout/reftests/reftest-sanity/prefix/suffix.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>suffix - test url-prefix containing / for script test</title>
+<script type="text/javascript">
+function getTestCases()
+{
+ return [
+ { testPassed: (function () { return true; }), testDescription: (function () { return "passed"; }) }
+ ];
+}
+</script>
+</head>
+<body>
+<h1>suffix - test url-prefix containing / for script test</h1>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/prefix/urlprefixtests-include.list b/layout/reftests/reftest-sanity/prefix/urlprefixtests-include.list
new file mode 100644
index 000000000..62e08a2d4
--- /dev/null
+++ b/layout/reftests/reftest-sanity/prefix/urlprefixtests-include.list
@@ -0,0 +1,7 @@
+# test url-prefix on include commands.
+
+# This include file should not be loaded if url-prefix is ignored for
+# the include command in ../urlprefixtests.list. The test fails if
+# this test is loaded.
+
+script scripttest-fail.html
diff --git a/layout/reftests/reftest-sanity/red.html b/layout/reftests/reftest-sanity/red.html
new file mode 100644
index 000000000..a9db5be4d
--- /dev/null
+++ b/layout/reftests/reftest-sanity/red.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div style="color: red">Text</div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/reftest-assigned-layer-fail-1.html b/layout/reftests/reftest-sanity/reftest-assigned-layer-fail-1.html
new file mode 100644
index 000000000..c1810a67f
--- /dev/null
+++ b/layout/reftests/reftest-sanity/reftest-assigned-layer-fail-1.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang="en">
+<meta charset="utf-8">
+<title>This test will fail because .high-z is not in the same layer as .low-z</title>
+
+<style>
+
+.content {
+ box-sizing: border-box;
+ width: 200px;
+ height: 200px;
+ border: 1px solid black;
+ margin: 10px;
+}
+
+.relative {
+ position: relative;
+}
+
+.fixed {
+ position: fixed;
+ top: 140px;
+ left: 140px;
+}
+
+.low-z {
+ z-index: 1;
+}
+
+.mid-z {
+ z-index: 2;
+}
+
+.high-z {
+ z-index: 3;
+}
+
+.opaque-background {
+ background-color: white;
+}
+
+body {
+ height: 4000px;
+}
+
+</style>
+
+<div class="content relative low-z" reftest-assigned-layer="page-background"></div>
+
+<div class="fixed opaque-background content mid-z" reftest-assigned-layer="fixed-layer"></div>
+
+<div class="content relative high-z" reftest-assigned-layer="page-background"></div>
diff --git a/layout/reftests/reftest-sanity/reftest-assigned-layer-fail-2.html b/layout/reftests/reftest-sanity/reftest-assigned-layer-fail-2.html
new file mode 100644
index 000000000..16c36860a
--- /dev/null
+++ b/layout/reftests/reftest-sanity/reftest-assigned-layer-fail-2.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang="en">
+<meta charset="utf-8">
+<title>This test will fail because .mid-z is not in the same layer as .low-z</title>
+
+<style>
+
+.content {
+ box-sizing: border-box;
+ width: 200px;
+ height: 200px;
+ border: 1px solid black;
+ margin: 10px;
+}
+
+.relative {
+ position: relative;
+}
+
+.fixed {
+ position: fixed;
+ top: 140px;
+ left: 140px;
+}
+
+.low-z {
+ z-index: 1;
+}
+
+.mid-z {
+ z-index: 2;
+}
+
+.high-z {
+ z-index: 3;
+}
+
+.opaque-background {
+ background-color: white;
+}
+
+body {
+ height: 4000px;
+}
+
+</style>
+
+<div class="content relative low-z" reftest-assigned-layer="page-background"></div>
+
+<div class="fixed opaque-background content mid-z" reftest-assigned-layer="page-background"></div>
+
+<div class="content relative low-z" reftest-assigned-layer="page-background"></div>
diff --git a/layout/reftests/reftest-sanity/reftest-assigned-layer-fail-3.html b/layout/reftests/reftest-sanity/reftest-assigned-layer-fail-3.html
new file mode 100644
index 000000000..6e97dfba6
--- /dev/null
+++ b/layout/reftests/reftest-sanity/reftest-assigned-layer-fail-3.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang="en">
+<meta charset="utf-8">
+<title>This test will fail because .high-z is not in the same layer as .mid-z</title>
+
+<style>
+
+.content {
+ box-sizing: border-box;
+ width: 200px;
+ height: 200px;
+ border: 1px solid black;
+ margin: 10px;
+}
+
+.relative {
+ position: relative;
+}
+
+.fixed {
+ position: fixed;
+ top: 140px;
+ left: 140px;
+}
+
+.low-z {
+ z-index: 1;
+}
+
+.mid-z {
+ z-index: 2;
+}
+
+.high-z {
+ z-index: 3;
+}
+
+.opaque-background {
+ background-color: white;
+}
+
+body {
+ height: 4000px;
+}
+
+</style>
+
+<div class="content relative low-z" reftest-assigned-layer="page-background"></div>
+
+<div class="fixed opaque-background content mid-z" reftest-assigned-layer="fixed-layer"></div>
+
+<div class="content relative low-z" reftest-assigned-layer="fixed-layer"></div>
diff --git a/layout/reftests/reftest-sanity/reftest-assigned-layer-fail-4.html b/layout/reftests/reftest-sanity/reftest-assigned-layer-fail-4.html
new file mode 100644
index 000000000..92bcbdbdc
--- /dev/null
+++ b/layout/reftests/reftest-sanity/reftest-assigned-layer-fail-4.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang="en">
+<meta charset="utf-8">
+<title>This test will fail because the some-other-layer gets merged into the page background layer</title>
+
+<style>
+
+.content {
+ box-sizing: border-box;
+ width: 200px;
+ height: 200px;
+ border: 1px solid black;
+ margin: 10px;
+}
+
+.relative {
+ position: relative;
+}
+
+.fixed {
+ position: fixed;
+ top: 140px;
+ left: 140px;
+}
+
+.low-z {
+ z-index: 1;
+}
+
+.mid-z {
+ z-index: 2;
+}
+
+.high-z {
+ z-index: 3;
+}
+
+.opaque-background {
+ background-color: white;
+}
+
+body {
+ height: 4000px;
+}
+
+</style>
+
+<div class="content relative low-z" reftest-assigned-layer="page-background"></div>
+
+<div class="fixed opaque-background content mid-z" reftest-assigned-layer="fixed-layer"></div>
+
+<div class="content relative low-z" reftest-assigned-layer="some-other-layer"></div>
diff --git a/layout/reftests/reftest-sanity/reftest-assigned-layer-pass.html b/layout/reftests/reftest-sanity/reftest-assigned-layer-pass.html
new file mode 100644
index 000000000..19dc004d8
--- /dev/null
+++ b/layout/reftests/reftest-sanity/reftest-assigned-layer-pass.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html lang="en">
+<meta charset="utf-8">
+<title>Both divs should be part of opaque layers.</title>
+
+<style>
+
+.content {
+ box-sizing: border-box;
+ width: 200px;
+ height: 200px;
+ border: 1px solid black;
+ margin: 10px;
+}
+
+.relative {
+ position: relative;
+}
+
+.fixed {
+ position: fixed;
+ top: 140px;
+ left: 140px;
+}
+
+.low-z {
+ z-index: 1;
+}
+
+.high-z {
+ z-index: 2;
+}
+
+.opaque-background {
+ background-color: white;
+}
+
+body {
+ height: 4000px;
+}
+
+</style>
+
+<div class="content relative low-z" reftest-assigned-layer="page-background"></div>
+
+<div class="fixed opaque-background content high-z" reftest-assigned-layer="fixed-layer"></div>
+
+<div class="content relative low-z" reftest-assigned-layer="page-background"></div>
diff --git a/layout/reftests/reftest-sanity/reftest-no-paint-ref.html b/layout/reftests/reftest-sanity/reftest-no-paint-ref.html
new file mode 100644
index 000000000..f8b0679de
--- /dev/null
+++ b/layout/reftests/reftest-sanity/reftest-no-paint-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE HTML>
+<html>
+<body style="background-color: black">
+<div style="background-color: rgba(255, 0, 0, 0.5); width:100px; height:100px;" >
+</div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/reftest-no-paint.html b/layout/reftests/reftest-sanity/reftest-no-paint.html
new file mode 100644
index 000000000..57384a6ac
--- /dev/null
+++ b/layout/reftests/reftest-sanity/reftest-no-paint.html
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML>
+<html class="reftest-wait">
+<body>
+<div class="reftest-no-paint" style="background-color: rgba(255, 0, 0, 0.5); width:100px; height:100px;" >
+</div>
+<script type="application/javascript">
+
+function doTest() {
+ document.body.style.background = "black";
+ document.documentElement.removeAttribute("class");
+}
+document.addEventListener("MozReftestInvalidate", doTest, false);
+</script>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/reftest-opaque-layer-fail.html b/layout/reftests/reftest-sanity/reftest-opaque-layer-fail.html
new file mode 100644
index 000000000..bb8a17e85
--- /dev/null
+++ b/layout/reftests/reftest-sanity/reftest-opaque-layer-fail.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html lang="en">
+<meta charset="utf-8">
+<title>The fixed layer can't be opaque, so this test must fail.</title>
+
+<style>
+
+.content {
+ box-sizing: border-box;
+ width: 200px;
+ height: 200px;
+ border: 1px solid black;
+}
+
+.fixed {
+ position: fixed;
+ top: 20px;
+ left: 140px;
+}
+
+body {
+ height: 4000px;
+}
+
+</style>
+
+<div class="content reftest-opaque-layer"></div>
+
+<div class="fixed content reftest-opaque-layer"></div>
diff --git a/layout/reftests/reftest-sanity/reftest-opaque-layer-pass.html b/layout/reftests/reftest-sanity/reftest-opaque-layer-pass.html
new file mode 100644
index 000000000..6286bb36b
--- /dev/null
+++ b/layout/reftests/reftest-sanity/reftest-opaque-layer-pass.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html lang="en">
+<meta charset="utf-8">
+<title>Both divs should be part of opaque layers.</title>
+
+<style>
+
+.content {
+ box-sizing: border-box;
+ width: 200px;
+ height: 200px;
+ border: 1px solid black;
+}
+
+.fixed {
+ position: fixed;
+ top: 20px;
+ left: 140px;
+}
+
+.opaque-background {
+ background-color: white;
+}
+
+body {
+ height: 4000px;
+}
+
+</style>
+
+<div class="content reftest-opaque-layer"></div>
+
+<div class="fixed opaque-background content reftest-opaque-layer"></div>
diff --git a/layout/reftests/reftest-sanity/reftest-opaque-layer-wait-fail.html b/layout/reftests/reftest-sanity/reftest-opaque-layer-wait-fail.html
new file mode 100644
index 000000000..1810236b1
--- /dev/null
+++ b/layout/reftests/reftest-sanity/reftest-opaque-layer-wait-fail.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html lang="en" class="reftest-wait">
+<meta charset="utf-8">
+<title>The fixed layer can't be opaque in the final paint, so this test must fail.</title>
+
+<style>
+
+.content {
+ box-sizing: border-box;
+ width: 200px;
+ height: 200px;
+ border: 1px solid black;
+}
+
+.fixed {
+ position: fixed;
+ top: 20px;
+ left: 140px;
+}
+
+.reftest-wait .reftest-opaque-layer {
+ /* make the layer opaque until the final paint */
+ background-color: white;
+}
+
+body {
+ height: 4000px;
+}
+
+</style>
+
+<div class="content reftest-opaque-layer"></div>
+
+<div class="fixed content reftest-opaque-layer"></div>
+
+<script>
+
+function doTest() {
+ document.documentElement.removeAttribute("class");
+}
+document.addEventListener("MozReftestInvalidate", doTest, false);
+
+</script>
diff --git a/layout/reftests/reftest-sanity/reftest-opaque-layer-wait-pass.html b/layout/reftests/reftest-sanity/reftest-opaque-layer-wait-pass.html
new file mode 100644
index 000000000..b03c1a827
--- /dev/null
+++ b/layout/reftests/reftest-sanity/reftest-opaque-layer-wait-pass.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html lang="en" class="reftest-wait">
+<meta charset="utf-8">
+<title>Both divs should be part of opaque layers in the final paint.</title>
+
+<style>
+
+.content {
+ box-sizing: border-box;
+ width: 200px;
+ height: 200px;
+ border: 1px solid black;
+}
+
+.fixed {
+ position: fixed;
+ top: 20px;
+ left: 140px;
+}
+
+.opaque-background {
+ background-color: white;
+}
+
+.reftest-wait .opaque-background {
+ /* make the layer start out transparent */
+ background-color: transparent;
+}
+
+body {
+ height: 4000px;
+}
+
+</style>
+
+<div class="content reftest-opaque-layer"></div>
+
+<div class="fixed opaque-background content reftest-opaque-layer"></div>
+
+<script>
+
+function doTest() {
+ document.documentElement.removeAttribute("class");
+}
+document.addEventListener("MozReftestInvalidate", doTest, false);
+
+</script>
+
diff --git a/layout/reftests/reftest-sanity/reftest-stylo.list b/layout/reftests/reftest-sanity/reftest-stylo.list
new file mode 100644
index 000000000..0d759dd84
--- /dev/null
+++ b/layout/reftests/reftest-sanity/reftest-stylo.list
@@ -0,0 +1,210 @@
+# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
+== data:text/html,<body> data:text/html,<body>
+skip == data:text/plain, data:text/plain,
+skip == data:text/plain,HELLO data:text/plain,HELLO
+
+# these tests make sure async reftests work:
+skip-if(B2G||Mulet) == test-async.xul test-async.xul
+# bug 785074
+# Initial mulet triage: parity with B2G
+skip-if(B2G||Mulet) == test-async.html test-async.html
+# bug 785074
+# Initial mulet triage: parity with B2G
+
+# test that zoom works (and really zooms, not just scales)
+== test-zoom.html test-zoom.html
+
+# make sure we don't fall over if the root is missing
+skip == no-root.html no-root.html
+
+# Makes sure that the file: protocol handler and HTTP server both
+# choose HTML vs. XHTML processing based on the file extensions.
+== html-vs-xhtml-by-extension.html html-vs-xhtml-by-extension.html
+HTTP == html-vs-xhtml-by-extension.html html-vs-xhtml-by-extension.html
+
+# make sure red and green colors are not the default and are different from
+# each other
+== green.html green.html
+== green.html green.html
+== red.html red.html
+
+# Make sure about:blank works, even via HTTP.
+skip == blank.html blank.html
+skip == about:blank about:blank
+skip HTTP == blank.html blank.html
+skip HTTP == about:blank about:blank
+# same for data:
+== default.html default.html
+== data:text/html,<div>Text</div> data:text/html,<div>Text</div>
+HTTP == default.html default.html
+HTTP == data:text/html,<div>Text</div> data:text/html,<div>Text</div>
+skip == blank.html blank.html
+skip HTTP == blank.html blank.html
+
+skip-if(B2G||Mulet) HTTP(..) == filter-1.xhtml filter-1.xhtml
+# Initial mulet triage: parity with B2G
+skip-if(B2G||Mulet) HTTP(..) == filter-2.xhtml filter-2.xhtml
+# bug 773482
+# Initial mulet triage: parity with B2G
+
+# test that the MozReftestInvalidate event fires
+== invalidation.html invalidation.html
+== zoom-invalidation.html zoom-invalidation.html
+
+# test parsing of asserts() expressions
+skip asserts(0) load about:blank
+skip asserts(0-5) load about:blank
+skip asserts-if(true,0) load about:blank
+skip asserts-if(false,7) load about:blank
+skip asserts-if(true,0-4) load about:blank
+skip asserts-if(false,6-8) load about:blank
+
+# test that <div> is display:block
+== div.html div.html
+
+# test script keyword
+include scripttests-stylo.list
+
+# test url-prefix
+include urlprefixtests-stylo.list
+
+# test default-preferences
+include default-preferences-tests-stylo.list
+
+# test that all corners are visible
+== corners-1.html corners-1.html
+== corners-2.html corners-2.html
+== corners-3.html corners-3.html
+== corners-4.html corners-4.html
+
+# Test that the harness gives the correct page dimensions.
+== page-width-3.9in.html page-width-3.9in.html
+skip-if(B2G||Mulet) == page-width-4.1in.html page-width-4.1in.html
+# bug 774396
+# Initial mulet triage: parity with B2G
+skip-if(B2G||Mulet) == page-width-auto.html page-width-auto.html
+# bug 774396
+# Initial mulet triage: parity with B2G
+skip-if(B2G||Mulet) == page-height-2in.html page-height-2in.html
+# bug 774396
+# Initial mulet triage: parity with B2G
+== page-height-2in.html page-height-2in.html
+== page-height-2.1in.html page-height-2.1in.html
+
+# Check that tests that need focus are skipped when it's not available
+needs-focus load needs-focus.html
+
+# Bug 632636
+skip == data:text/plain,HELLO data:text/plain,HELLO
+skip needs-focus == data:text/plain, data:text/plain,
+
+# Sanity check of viewport+displayport overrides
+pref(dom.meta-viewport.enabled,true) skip-if(!browserIsRemote) == test-displayport-2.html test-displayport-2.html
+# bug 593168
+skip-if(!browserIsRemote) fails-if(OSX&&layersGPUAccelerated) fuzzy-if(layersOMTC,1,1390) random-if(Android) random-if(B2G||Mulet) random-if(transparentScrollbars) == 647192-1.html 647192-1.html
+# Initial mulet triage: parity with B2G
+skip-if(!browserIsRemote||((B2G&&browserIsRemote)||Mulet)) == 656041-1.html 656041-1.html
+# Initial mulet triage: parity with B2G
+pref(dom.meta-viewport.enabled,true) skip-if(!browserIsRemote||layersOMTC) == test-displayport-bg.html test-displayport-bg.html
+# bug 694706
+
+# IPC Position-fixed frames/layers test
+# Fixed layers are temporarily disabled (bug 656167).
+#pref(dom.meta-viewport.enabled,true) skip-if(!browserIsRemote) == test-pos-fixed.html test-pos-fixed.html
+#pref(dom.meta-viewport.enabled,true) skip-if(!browserIsRemote) == test-bg-attachment-fixed.html test-bg-attachment-fixed.html
+pref(dom.meta-viewport.enabled,true) skip-if(!browserIsRemote) == test-pos-fixed-transform.html test-pos-fixed-transform.html
+
+# reftest syntax: require-or
+skip require-or(unrecognizedCondition,skip) script scripttest-fail.html
+skip require-or(true&&unrecognizedCondition,skip) script scripttest-fail.html
+skip require-or(unrecognizedCondition&&true,skip) script scripttest-fail.html
+skip require-or(unrecognizedCondition,fails) script scripttest-fail.html
+require-or(true,fails) script scripttest-pass.html
+require-or(true&&true,fails) script scripttest-pass.html
+
+# tests for pref(...) syntax in manifest, including "fails" examples with incorrect prefs
+# a boolean pref
+pref(gfx.downloadable_fonts.enabled,true) HTTP(..) == font-download.html font-download.html
+pref(gfx.downloadable_fonts.enabled,false) HTTP(..) == font-download.html font-download.html
+fails pref(gfx.downloadable_fonts.enabled,0) HTTP(..) == font-download.html font-download.html
+fails pref(gfx.downloadable_fonts.enabled,"foo") HTTP(..) == font-download.html font-download.html
+# a non-existent pref
+fails pref(not.a.real.pref.name,1) == font-download.html font-download.html
+# an integer pref
+pref(font.size.variable.x-western,16) == font-size-16.html font-size-16.html
+pref(font.size.variable.x-western,16) == font-size-24.html font-size-24.html
+pref(font.size.variable.x-western,24) == font-size-24.html font-size-24.html
+pref(font.size.variable.x-western,24) == font-size-16.html font-size-16.html
+fails pref(font.size.variable.x-western,false) == font-size-16.html font-size-16.html
+fails pref(font.size.variable.x-western,"foo") == font-size-16.html font-size-16.html
+# a string pref
+pref(font.default.x-western,"serif") == font-serif.html font-serif.html
+pref(font.default.x-western,"serif") == font-sans-serif.html font-sans-serif.html
+pref(font.default.x-western,"sans-serif") == font-sans-serif.html font-sans-serif.html
+pref(font.default.x-western,"sans-serif") == font-serif.html font-serif.html
+fails pref(font.default.x-western,true) == font-serif.html font-serif.html
+fails pref(font.default.x-western,0) == font-serif.html font-serif.html
+# tests for ref-pref, and test-pref
+ref-pref(font.size.variable.x-western,16) == font-size-16.html font-size-16.html
+ref-pref(font.size.variable.x-western,16) == font-size-24.html font-size-24.html
+ref-pref(font.size.variable.x-western,24) == font-size-24.html font-size-24.html
+ref-pref(font.size.variable.x-western,24) == font-size-16.html font-size-16.html
+fails ref-pref(font.size.variable.x-western,false) == font-size-16.html font-size-16.html
+fails ref-pref(font.size.variable.x-western,"foo") == font-size-16.html font-size-16.html
+skip test-pref(font.size.variable.x-western,16) == font-default.html font-default.html
+skip test-pref(font.size.variable.x-western,16) == font-default.html font-default.html
+skip test-pref(font.size.variable.x-western,24) == font-default.html font-default.html
+skip test-pref(font.size.variable.x-western,24) == font-default.html font-default.html
+skip test-pref(font.size.variable.x-western,false) == font-default.html font-default.html
+skip test-pref(font.size.variable.x-western,"foo") == font-default.html font-default.html
+skip ref-pref(font.size.variable.x-western,16) test-pref(font.size.variable.x-western,24) == font-default.html font-default.html
+skip ref-pref(font.size.variable.x-western,24) test-pref(font.size.variable.x-western,16) == font-default.html font-default.html
+skip ref-pref(font.size.variable.x-western,24) test-pref(font.size.variable.x-western,24) == font-default.html font-default.html
+# reftest syntax: fuzzy(maxPixelDifference,maxNumberDifferingPixels)
+fuzzy(1,250000) == fuzzy.html fuzzy.html
+fuzzy(1,250000) == too-fuzzy.html too-fuzzy.html
+fuzzy-if(true,1,250000) == fuzzy.html fuzzy.html
+fuzzy-if(false,2,1) == fuzzy-ref.html fuzzy-ref.html
+# When using 565 fuzzy.html and fuzzy-ref.html will compare as equal
+fuzzy-if(false,2,1) random-if(Android) == fuzzy.html fuzzy.html
+
+# Test that reftest-no-paint fails correctly
+== reftest-no-paint.html reftest-no-paint.html
+
+skip-if(!asyncPan||!browserIsRemote) == async-scroll-1a.html async-scroll-1a.html
+
+# Disable low-res painting for this test as it will cause more to
+# be drawn than we want.
+default-preferences pref(layers.low-precision-buffer,false)
+skip-if(!asyncPan||!browserIsRemote) == async-scroll-1b.html async-scroll-1b.html
+default-preferences
+
+skip-if(!asyncZoom) == async-zoom-1.html async-zoom-1.html
+skip-if(!asyncZoom) == async-zoom-2.html async-zoom-2.html
+
+# reftest-opaque-layer
+== reftest-opaque-layer-pass.html reftest-opaque-layer-pass.html
+== reftest-opaque-layer-pass.html reftest-opaque-layer-pass.html
+skip == about:blank about:blank
+fails == reftest-opaque-layer-fail.html reftest-opaque-layer-fail.html
+
+# If reftest-opaque-layer fails (no matter whether it fails in the test or in the reference),
+# it shouldn't matter whether the test matches the reference.
+fails == reftest-opaque-layer-fail.html reftest-opaque-layer-fail.html
+fails == reftest-opaque-layer-fail.html reftest-opaque-layer-fail.html
+skip == about:blank about:blank
+fails == reftest-opaque-layer-fail.html reftest-opaque-layer-fail.html
+skip == about:blank about:blank
+
+# reftest-opaque-layer and reftest-wait
+fails == reftest-opaque-layer-wait-pass.html reftest-opaque-layer-wait-pass.html
+fails == reftest-opaque-layer-wait-pass.html reftest-opaque-layer-wait-pass.html
+== reftest-opaque-layer-wait-fail.html reftest-opaque-layer-wait-fail.html
+== reftest-opaque-layer-wait-fail.html reftest-opaque-layer-wait-fail.html
+
+# reftest-assigned-layer
+== reftest-assigned-layer-pass.html reftest-assigned-layer-pass.html
+fails == reftest-assigned-layer-fail-1.html reftest-assigned-layer-fail-1.html
+fails == reftest-assigned-layer-fail-2.html reftest-assigned-layer-fail-2.html
+fails == reftest-assigned-layer-fail-3.html reftest-assigned-layer-fail-3.html
+fails == reftest-assigned-layer-fail-4.html reftest-assigned-layer-fail-4.html
diff --git a/layout/reftests/reftest-sanity/reftest.list b/layout/reftests/reftest-sanity/reftest.list
new file mode 100644
index 000000000..a11abc467
--- /dev/null
+++ b/layout/reftests/reftest-sanity/reftest.list
@@ -0,0 +1,197 @@
+== data:text/html,<body> about:blank
+== data:text/plain, about:blank
+!= data:text/plain,HELLO about:blank
+
+# these tests make sure async reftests work:
+== test-async.xul test-async-ref.xul
+== test-async.html test-async-ref.html
+
+# test that zoom works (and really zooms, not just scales)
+== test-zoom.html test-zoom-ref.html
+
+# make sure we don't fall over if the root is missing
+== no-root.html about:blank
+
+# Makes sure that the file: protocol handler and HTTP server both
+# choose HTML vs. XHTML processing based on the file extensions.
+!= html-vs-xhtml-by-extension.html html-vs-xhtml-by-extension.xhtml
+HTTP != html-vs-xhtml-by-extension.html html-vs-xhtml-by-extension.xhtml
+
+# make sure red and green colors are not the default and are different from
+# each other
+!= green.html default.html
+!= green.html red.html
+!= red.html default.html
+
+# Make sure about:blank works, even via HTTP.
+== blank.html about:blank
+== about:blank blank.html
+HTTP == blank.html about:blank
+HTTP == about:blank blank.html
+# same for data:
+== default.html data:text/html,<div>Text</div>
+== data:text/html,<div>Text</div> default.html
+HTTP == default.html data:text/html,<div>Text</div>
+HTTP == data:text/html,<div>Text</div> default.html
+!= blank.html default.html
+HTTP != blank.html default.html
+
+HTTP(..) == filter-1.xhtml filter-1-ref.xhtml
+HTTP(..) == filter-2.xhtml filter-2-ref.xhtml
+
+# test that the MozReftestInvalidate event fires
+== invalidation.html about:blank
+== zoom-invalidation.html zoom-invalidation-ref.html # bug 773482
+
+# test that xulRuntime.OS works
+fails-if(xulRuntime.OS!="Linux"&&!Android) == data:text/html,<body>Linux data:text/html,<script>document.write(navigator.platform.substr(0,5))</script>
+fails-if(xulRuntime.OS!="WINNT") == data:text/html,<body>Win data:text/html,<script>document.write(navigator.platform.substr(0,3))</script>
+fails-if(xulRuntime.OS!="Darwin") == data:text/html,<body>Mac data:text/html,<script>document.write(navigator.platform.substr(0,3))</script>
+
+# test parsing of asserts() expressions
+asserts(0) load about:blank
+asserts(0-5) load about:blank
+asserts-if(true,0) load about:blank
+asserts-if(false,7) load about:blank
+asserts-if(true,0-4) load about:blank
+asserts-if(false,6-8) load about:blank
+
+# test that <div> is display:block
+== div.html div-ref.html
+
+# test script keyword
+include scripttests.list
+
+# test url-prefix
+include urlprefixtests.list
+
+# test default-preferences
+include default-preferences-tests.list
+
+# test that all corners are visible
+!= corners-1.html corners-1-ref.html
+!= corners-2.html corners-2-ref.html
+!= corners-3.html corners-3-ref.html
+!= corners-4.html corners-4-ref.html
+
+# Test that the harness gives the correct page dimensions.
+!= page-width-3.9in.html page-width-4in.html
+== page-width-4.1in.html page-width-4in.html
+== page-width-auto.html page-width-4in.html
+!= page-height-2in.html page-height-2.1in.html
+== page-height-2in.html page-height-nobreak.html
+== page-height-2.1in.html page-height-forcebreak.html
+
+# Check that tests that need focus are skipped when it's not available
+needs-focus load needs-focus.html
+
+# Bug 632636
+fails == data:text/plain,HELLO about:blank
+needs-focus == data:text/plain, about:blank
+
+# Sanity check of viewport+displayport overrides
+pref(dom.meta-viewport.enabled,true) skip-if(!browserIsRemote) != test-displayport-2.html test-displayport-ref.html # bug 593168
+skip-if(!browserIsRemote) fails-if(OSX&&layersGPUAccelerated) fuzzy-if(layersOMTC,1,1390) random-if(Android) random-if(transparentScrollbars) == 647192-1.html 647192-1-ref.html
+skip-if(!browserIsRemote) == 656041-1.html 656041-1-ref.html
+pref(dom.meta-viewport.enabled,true) skip-if(!browserIsRemote||layersOMTC) == test-displayport-bg.html test-displayport-ref.html # bug 694706
+
+# IPC Position-fixed frames/layers test
+# Fixed layers are temporarily disabled (bug 656167).
+#pref(dom.meta-viewport.enabled,true) skip-if(!browserIsRemote) == test-pos-fixed.html test-pos-fixed-ref.html
+#pref(dom.meta-viewport.enabled,true) skip-if(!browserIsRemote) == test-bg-attachment-fixed.html test-bg-attachment-fixed-ref.html
+pref(dom.meta-viewport.enabled,true) skip-if(!browserIsRemote) == test-pos-fixed-transform.html test-pos-fixed-transform-ref.html
+
+# reftest syntax: require-or
+require-or(unrecognizedCondition,skip) script scripttest-fail.html
+require-or(true&&unrecognizedCondition,skip) script scripttest-fail.html
+require-or(unrecognizedCondition&&true,skip) script scripttest-fail.html
+require-or(unrecognizedCondition,fails) script scripttest-fail.html
+require-or(true,fails) script scripttest-pass.html
+require-or(true&&true,fails) script scripttest-pass.html
+
+# tests for pref(...) syntax in manifest, including "fails" examples with incorrect prefs
+# a boolean pref
+pref(gfx.downloadable_fonts.enabled,true) HTTP(..) != font-download.html font-default.html
+pref(gfx.downloadable_fonts.enabled,false) HTTP(..) == font-download.html font-default.html
+fails pref(gfx.downloadable_fonts.enabled,0) HTTP(..) == font-download.html font-default.html
+fails pref(gfx.downloadable_fonts.enabled,"foo") HTTP(..) == font-download.html font-default.html
+# a non-existent pref
+fails pref(not.a.real.pref.name,1) == font-download.html font-default.html
+# an integer pref
+pref(font.size.variable.x-western,16) == font-size-16.html font-default.html
+pref(font.size.variable.x-western,16) != font-size-24.html font-default.html
+pref(font.size.variable.x-western,24) == font-size-24.html font-default.html
+pref(font.size.variable.x-western,24) != font-size-16.html font-default.html
+fails pref(font.size.variable.x-western,false) == font-size-16.html font-default.html
+fails pref(font.size.variable.x-western,"foo") == font-size-16.html font-default.html
+# a string pref
+pref(font.default.x-western,"serif") == font-serif.html font-default.html
+pref(font.default.x-western,"serif") != font-sans-serif.html font-default.html
+pref(font.default.x-western,"sans-serif") == font-sans-serif.html font-default.html
+pref(font.default.x-western,"sans-serif") != font-serif.html font-default.html
+fails pref(font.default.x-western,true) == font-serif.html font-default.html
+fails pref(font.default.x-western,0) == font-serif.html font-default.html
+# tests for ref-pref, and test-pref
+ref-pref(font.size.variable.x-western,16) == font-size-16.html font-default.html
+ref-pref(font.size.variable.x-western,16) != font-size-24.html font-default.html
+ref-pref(font.size.variable.x-western,24) == font-size-24.html font-default.html
+ref-pref(font.size.variable.x-western,24) != font-size-16.html font-default.html
+fails ref-pref(font.size.variable.x-western,false) == font-size-16.html font-default.html
+fails ref-pref(font.size.variable.x-western,"foo") == font-size-16.html font-default.html
+test-pref(font.size.variable.x-western,16) == font-default.html font-size-16.html
+test-pref(font.size.variable.x-western,16) != font-default.html font-size-24.html
+test-pref(font.size.variable.x-western,24) == font-default.html font-size-24.html
+test-pref(font.size.variable.x-western,24) != font-default.html font-size-16.html
+fails test-pref(font.size.variable.x-western,false) == font-default.html font-size-16.html
+fails test-pref(font.size.variable.x-western,"foo") == font-default.html font-size-16.html
+ref-pref(font.size.variable.x-western,16) test-pref(font.size.variable.x-western,24) != font-default.html font-default.html
+ref-pref(font.size.variable.x-western,24) test-pref(font.size.variable.x-western,16) != font-default.html font-default.html
+ref-pref(font.size.variable.x-western,24) test-pref(font.size.variable.x-western,24) == font-default.html font-default.html
+# reftest syntax: fuzzy(maxPixelDifference,maxNumberDifferingPixels)
+fuzzy(1,250000) == fuzzy.html fuzzy-ref.html
+fuzzy(1,250000) != too-fuzzy.html fuzzy-ref.html
+fuzzy-if(true,1,250000) == fuzzy.html fuzzy-ref.html
+fuzzy-if(false,2,1) == fuzzy-ref.html fuzzy-ref.html
+# When using 565 fuzzy.html and fuzzy-ref.html will compare as equal
+fails fuzzy-if(false,2,1) random-if(Android) == fuzzy.html fuzzy-ref.html
+
+# Test that reftest-no-paint fails correctly
+fails == reftest-no-paint.html reftest-no-paint-ref.html
+
+skip-if(!asyncPan||!browserIsRemote) == async-scroll-1a.html async-scroll-1-ref.html
+
+# Disable low-res painting for this test as it will cause more to
+# be drawn than we want.
+default-preferences pref(layers.low-precision-buffer,false)
+skip-if(!asyncPan||!browserIsRemote) != async-scroll-1b.html async-scroll-1-ref.html
+default-preferences
+
+skip-if(!Android) pref(apz.allow_zooming,true) != async-zoom-1.html async-zoom-1-ref.html
+fuzzy(112,800) skip-if(!Android) pref(apz.allow_zooming,true) == async-zoom-2.html async-zoom-2-ref.html
+
+# reftest-opaque-layer
+== reftest-opaque-layer-pass.html reftest-opaque-layer-pass.html
+!= reftest-opaque-layer-pass.html about:blank
+!= about:blank reftest-opaque-layer-pass.html
+fails == reftest-opaque-layer-fail.html reftest-opaque-layer-fail.html
+
+# If reftest-opaque-layer fails (no matter whether it fails in the test or in the reference),
+# it shouldn't matter whether the test matches the reference.
+fails != reftest-opaque-layer-fail.html reftest-opaque-layer-fail.html
+fails == reftest-opaque-layer-fail.html about:blank
+fails == about:blank reftest-opaque-layer-fail.html
+fails != reftest-opaque-layer-fail.html about:blank
+fails != about:blank reftest-opaque-layer-fail.html
+
+# reftest-opaque-layer and reftest-wait
+== reftest-opaque-layer-wait-pass.html reftest-opaque-layer-pass.html
+!= reftest-opaque-layer-wait-pass.html about:blank
+fails == reftest-opaque-layer-wait-fail.html reftest-opaque-layer-fail.html
+fails != reftest-opaque-layer-wait-fail.html about:blank
+
+# reftest-assigned-layer
+!= reftest-assigned-layer-pass.html about:blank
+fails != reftest-assigned-layer-fail-1.html about:blank
+fails != reftest-assigned-layer-fail-2.html about:blank
+fails != reftest-assigned-layer-fail-3.html about:blank
+fails != reftest-assigned-layer-fail-4.html about:blank
diff --git a/layout/reftests/reftest-sanity/scripttest-fail.html b/layout/reftests/reftest-sanity/scripttest-fail.html
new file mode 100644
index 000000000..7172902f1
--- /dev/null
+++ b/layout/reftests/reftest-sanity/scripttest-fail.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>scripttest-fail</title>
+<script type="text/javascript">
+function getTestCases()
+{
+ return [
+ { testPassed: (function () { return false; }), testDescription: (function () { return "failed"; }) }
+ ];
+}
+</script>
+</head>
+<body>
+<h1>scripttest-fail</h1>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/scripttest-pass-fail.html b/layout/reftests/reftest-sanity/scripttest-pass-fail.html
new file mode 100644
index 000000000..848e21b11
--- /dev/null
+++ b/layout/reftests/reftest-sanity/scripttest-pass-fail.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>scripttest-pass-fail</title>
+<script type="text/javascript">
+function getTestCases()
+{
+ return [
+ { testPassed: (function () { return false; }), testDescription: (function () { return "fail"; }) },
+ { testPassed: (function () { return true; }), testDescription: (function () { return "expected random pass"; }) }
+ ];
+}
+</script>
+</head>
+<body>
+<h1>scripttest-pass-fail</h1>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/scripttest-pass.html b/layout/reftests/reftest-sanity/scripttest-pass.html
new file mode 100644
index 000000000..e0371b351
--- /dev/null
+++ b/layout/reftests/reftest-sanity/scripttest-pass.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>scripttest-pass</title>
+<script type="text/javascript">
+function getTestCases()
+{
+ return [
+ { testPassed: (function () { return true; }), testDescription: (function () { return "passed"; }) }
+ ];
+}
+</script>
+</head>
+<body>
+<h1>scripttest-pass</h1>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/scripttests-stylo.list b/layout/reftests/reftest-sanity/scripttests-stylo.list
new file mode 100644
index 000000000..e6d0fce27
--- /dev/null
+++ b/layout/reftests/reftest-sanity/scripttests-stylo.list
@@ -0,0 +1,11 @@
+# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
+# test script keyword.
+
+# cases where the test does not include an appropriate getTestCases() function,
+# or where getTestCases() does not return an array of objects with methods
+# testPassed() and testDescription() can not be included since they always
+# produce unexpected failures.
+
+script scripttest-pass.html
+skip script scripttest-fail.html
+fails script scripttest-pass-fail.html
diff --git a/layout/reftests/reftest-sanity/scripttests.list b/layout/reftests/reftest-sanity/scripttests.list
new file mode 100644
index 000000000..18be27e59
--- /dev/null
+++ b/layout/reftests/reftest-sanity/scripttests.list
@@ -0,0 +1,10 @@
+# test script keyword.
+
+# cases where the test does not include an appropriate getTestCases() function,
+# or where getTestCases() does not return an array of objects with methods
+# testPassed() and testDescription() can not be included since they always
+# produce unexpected failures.
+
+script scripttest-pass.html
+fails script scripttest-fail.html
+fails script scripttest-pass-fail.html
diff --git a/layout/reftests/reftest-sanity/test-async-ref.html b/layout/reftests/reftest-sanity/test-async-ref.html
new file mode 100644
index 000000000..7d92f683d
--- /dev/null
+++ b/layout/reftests/reftest-sanity/test-async-ref.html
@@ -0,0 +1,2 @@
+<html>
+<body style="background-color: green;">
diff --git a/layout/reftests/reftest-sanity/test-async-ref.xul b/layout/reftests/reftest-sanity/test-async-ref.xul
new file mode 100644
index 000000000..690fc60aa
--- /dev/null
+++ b/layout/reftests/reftest-sanity/test-async-ref.xul
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ style="background-color: green"/>
diff --git a/layout/reftests/reftest-sanity/test-async.html b/layout/reftests/reftest-sanity/test-async.html
new file mode 100644
index 000000000..db24cf42b
--- /dev/null
+++ b/layout/reftests/reftest-sanity/test-async.html
@@ -0,0 +1,12 @@
+<html class="reftest-wait">
+<body style="background-color: red;"
+ onload="HandleLoad()">
+ <script>
+ function HandleLoad() {
+ setTimeout(function() {
+ document.body.style.backgroundColor = "green";
+ document.documentElement.className = "";
+ }, 100);
+ }
+ </script>
+</body>
diff --git a/layout/reftests/reftest-sanity/test-async.xul b/layout/reftests/reftest-sanity/test-async.xul
new file mode 100644
index 000000000..e8dc869ad
--- /dev/null
+++ b/layout/reftests/reftest-sanity/test-async.xul
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ id="main"
+ class="reftest-wait"
+ style="background-color: red;"
+ onload="HandleLoad()">
+ <script>
+ function HandleLoad() {
+ setTimeout(function() {
+ document.documentElement.style.backgroundColor = "green";
+ document.documentElement.className = "";
+ }, 100);
+ }
+ </script>
+</window>
diff --git a/layout/reftests/reftest-sanity/test-bg-attachment-fixed-ref.html b/layout/reftests/reftest-sanity/test-bg-attachment-fixed-ref.html
new file mode 100644
index 000000000..f33688309
--- /dev/null
+++ b/layout/reftests/reftest-sanity/test-bg-attachment-fixed-ref.html
@@ -0,0 +1,16 @@
+<html reftest-displayport-w="800" reftest-displayport-h="1000">
+<head>
+<meta name="viewport" content="width=800; height=1000; initial-scale=1.0">
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style type="text/css">
+body
+{
+background-image:url("bg.png");
+background-repeat:no-repeat;
+background-attachment:fixed;
+}
+</style>
+</head>
+<body>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/test-bg-attachment-fixed.html b/layout/reftests/reftest-sanity/test-bg-attachment-fixed.html
new file mode 100644
index 000000000..12ca1c2c5
--- /dev/null
+++ b/layout/reftests/reftest-sanity/test-bg-attachment-fixed.html
@@ -0,0 +1,22 @@
+<html style="overflow:hidden"
+ reftest-displayport-w="800" reftest-displayport-h="1000">
+<head>
+<meta name="viewport" content="width=800; height=1000; initial-scale=1.0">
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<script>
+ function run() {
+ window.scrollTo(0, 30);
+ }
+</script>
+<style type="text/css">
+body
+{
+background-image:url("bg.png");
+background-repeat:no-repeat;
+background-attachment:fixed;
+}
+</style>
+</head>
+<body onload="run()" style="height: 10000px">
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/test-displayport-2.html b/layout/reftests/reftest-sanity/test-displayport-2.html
new file mode 100644
index 000000000..6772732d7
--- /dev/null
+++ b/layout/reftests/reftest-sanity/test-displayport-2.html
@@ -0,0 +1,7 @@
+<!DOCTYPE HTML>
+<html reftest-displayport-w="200" reftest-displayport-h="200">
+<meta name="viewport" content="width=100; height=100; initial-scale=1.0">
+<body>
+ <div style="position: absolute; left:0px; top:0px;width:800px; height:1000px; background:green;"></div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/test-displayport-bg.html b/layout/reftests/reftest-sanity/test-displayport-bg.html
new file mode 100644
index 000000000..6044de36f
--- /dev/null
+++ b/layout/reftests/reftest-sanity/test-displayport-bg.html
@@ -0,0 +1,7 @@
+<!DOCTYPE HTML>
+<html reftest-displayport-w="400" reftest-displayport-h="500"
+ reftest-async-scroll>
+<meta name="viewport" content="width=100; height=100; initial-scale=1.0">
+<body bgcolor=green style="position: absolute; left:0px; top:0px;width:800px; height:1000px;"></body>
+</html>
+
diff --git a/layout/reftests/reftest-sanity/test-displayport-ref.html b/layout/reftests/reftest-sanity/test-displayport-ref.html
new file mode 100644
index 000000000..b699a79a3
--- /dev/null
+++ b/layout/reftests/reftest-sanity/test-displayport-ref.html
@@ -0,0 +1,4 @@
+<!DOCTYPE HTML>
+<html>
+<body style="background:green;"></body>
+</html>
diff --git a/layout/reftests/reftest-sanity/test-pos-fixed-ref.html b/layout/reftests/reftest-sanity/test-pos-fixed-ref.html
new file mode 100644
index 000000000..864e6418c
--- /dev/null
+++ b/layout/reftests/reftest-sanity/test-pos-fixed-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE HTML>
+<html reftest-displayport-w="200" reftest-displayport-h="100"
+<meta name="viewport" content="width=200; height=100; initial-scale=1.0">
+<body>
+<div style="position:fixed;top:0px;width:100%;height:10px;background-color:green;"></div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/test-pos-fixed-transform-ref.html b/layout/reftests/reftest-sanity/test-pos-fixed-transform-ref.html
new file mode 100644
index 000000000..0b2870ff5
--- /dev/null
+++ b/layout/reftests/reftest-sanity/test-pos-fixed-transform-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE HTML>
+<html>
+<meta name="viewport" content="width=800; height=1000; initial-scale=1.0">
+<body>
+<div style="position: fixed; background: lightblue; top: 0; left: 0; width:100px; height:100px; -moz-transform: translate(360px,0px);"/>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/test-pos-fixed-transform.html b/layout/reftests/reftest-sanity/test-pos-fixed-transform.html
new file mode 100644
index 000000000..d15b64614
--- /dev/null
+++ b/layout/reftests/reftest-sanity/test-pos-fixed-transform.html
@@ -0,0 +1,7 @@
+<!DOCTYPE HTML>
+<html reftest-displayport-w="800" reftest-displayport-h="1000">
+<meta name="viewport" content="width=800; height=1000; initial-scale=1.0">
+<body>
+<div style="position: fixed; background: lightblue; top: 0; left: 0; width:100px; height:100px; -moz-transform: translate(360px,0px);"/>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/test-pos-fixed.html b/layout/reftests/reftest-sanity/test-pos-fixed.html
new file mode 100644
index 000000000..7c792cf22
--- /dev/null
+++ b/layout/reftests/reftest-sanity/test-pos-fixed.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML>
+<html reftest-displayport-w="200" reftest-displayport-h="100"
+ reftest-displayport-x="0" reftest-displayport-y="10">
+<meta name="viewport" content="width=200; height=100; initial-scale=1.0">
+<body>
+<div style="position:fixed;top:0px;width:100%;height:10px;background-color:green;">&nbsp;</div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/test-zoom-ref.html b/layout/reftests/reftest-sanity/test-zoom-ref.html
new file mode 100644
index 000000000..16fd8cbfb
--- /dev/null
+++ b/layout/reftests/reftest-sanity/test-zoom-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE HTML>
+<html>
+<body style="margin:0;">
+<div style="background:yellow; height:15px;"></div>
+<div style="position:absolute; top:150px; left:150px; width:150px; height:150px; border:1px solid black;"></div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/test-zoom.html b/layout/reftests/reftest-sanity/test-zoom.html
new file mode 100644
index 000000000..d663030a9
--- /dev/null
+++ b/layout/reftests/reftest-sanity/test-zoom.html
@@ -0,0 +1,7 @@
+<!DOCTYPE HTML>
+<html reftest-zoom="1.5">
+<body style="margin:0;">
+<div style="background:yellow; height:10px;"></div>
+<div style="position:absolute; top:100px; left:100px; width:100px; height:100px; border:1px solid black;"></div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/too-fuzzy.html b/layout/reftests/reftest-sanity/too-fuzzy.html
new file mode 100644
index 000000000..e9b5c2ce5
--- /dev/null
+++ b/layout/reftests/reftest-sanity/too-fuzzy.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<html>
+ <body>
+ <div style="background: #ff04ff; width: 500px; height: 500px;"></div>
+ </body>
+</html>
diff --git a/layout/reftests/reftest-sanity/urlprefixtests-include.list b/layout/reftests/reftest-sanity/urlprefixtests-include.list
new file mode 100644
index 000000000..623d5b023
--- /dev/null
+++ b/layout/reftests/reftest-sanity/urlprefixtests-include.list
@@ -0,0 +1,6 @@
+# test url-prefix on include commands.
+
+# This include file should be loaded if url-prefix is ignored for
+# the include command in urlprefixtests.list.
+
+script scripttest-pass.html
diff --git a/layout/reftests/reftest-sanity/urlprefixtests-stylo.list b/layout/reftests/reftest-sanity/urlprefixtests-stylo.list
new file mode 100644
index 000000000..fd02628ef
--- /dev/null
+++ b/layout/reftests/reftest-sanity/urlprefixtests-stylo.list
@@ -0,0 +1,24 @@
+# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
+# test url-prefix
+
+# test that url-prefix is not be applied to absolute uris.
+url-prefix absolute
+
+== data:text/html,<body> data:text/html,<body>
+skip == data:text/plain, data:text/plain,
+skip == data:text/plain,HELLO data:text/plain,HELLO
+
+# test that url-prefix is applied to test items.
+url-prefix prefix-
+
+script suffix.html
+
+# test if url-prefix containing / works.
+url-prefix prefix/
+
+script suffix.html
+
+# test that url-prefix should not be applied to include commands.
+
+include urlprefixtests-include.list
+
diff --git a/layout/reftests/reftest-sanity/urlprefixtests.list b/layout/reftests/reftest-sanity/urlprefixtests.list
new file mode 100644
index 000000000..0d55fc33e
--- /dev/null
+++ b/layout/reftests/reftest-sanity/urlprefixtests.list
@@ -0,0 +1,23 @@
+# test url-prefix
+
+# test that url-prefix is not be applied to absolute uris.
+url-prefix absolute
+
+== data:text/html,<body> about:blank
+== data:text/plain, about:blank
+!= data:text/plain,HELLO about:blank
+
+# test that url-prefix is applied to test items.
+url-prefix prefix-
+
+script suffix.html
+
+# test if url-prefix containing / works.
+url-prefix prefix/
+
+script suffix.html
+
+# test that url-prefix should not be applied to include commands.
+
+include urlprefixtests-include.list
+
diff --git a/layout/reftests/reftest-sanity/zoom-invalidation-ref.html b/layout/reftests/reftest-sanity/zoom-invalidation-ref.html
new file mode 100644
index 000000000..e51d31313
--- /dev/null
+++ b/layout/reftests/reftest-sanity/zoom-invalidation-ref.html
@@ -0,0 +1,6 @@
+<!DOCTYPE HTML>
+<html>
+<body style="margin:0;">
+<div id="d" style="position:absolute; top:23px; left:23px; width:150px; height:150px; background:yellow;"></div>
+</body>
+</html>
diff --git a/layout/reftests/reftest-sanity/zoom-invalidation.html b/layout/reftests/reftest-sanity/zoom-invalidation.html
new file mode 100644
index 000000000..c11ac442d
--- /dev/null
+++ b/layout/reftests/reftest-sanity/zoom-invalidation.html
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML>
+<html reftest-zoom="1.5" class="reftest-wait">
+<body style="margin:0;">
+<div id="d" style="position:absolute; top:15px; left:15px; width:100px; height:100px;"></div>
+<script>
+function doTest() {
+ document.getElementById("d").style.background = "yellow";
+ document.documentElement.removeAttribute('class');
+}
+document.addEventListener("MozReftestInvalidate", doTest, false);
+</script>
+</body>
+</html>