summaryrefslogtreecommitdiffstats
path: root/layout/xul/reftest
diff options
context:
space:
mode:
Diffstat (limited to 'layout/xul/reftest')
-rw-r--r--layout/xul/reftest/checkbox-dynamic-change-ref.xhtml6
-rw-r--r--layout/xul/reftest/checkbox-dynamic-change.xhtml17
-rw-r--r--layout/xul/reftest/image-scaling-min-height-1-ref.xhtml14
-rw-r--r--layout/xul/reftest/image-scaling-min-height-1.xhtml14
-rw-r--r--layout/xul/reftest/image-size-ref.xhtml102
-rw-r--r--layout/xul/reftest/image-size.xhtml104
-rw-r--r--layout/xul/reftest/image4x3.pngbin0 -> 176 bytes
-rw-r--r--layout/xul/reftest/popup-explicit-size-ref.xhtml6
-rw-r--r--layout/xul/reftest/popup-explicit-size.xhtml7
-rw-r--r--layout/xul/reftest/radio-dynamic-change-ref.xhtml6
-rw-r--r--layout/xul/reftest/radio-dynamic-change.xhtml17
-rw-r--r--layout/xul/reftest/reftest.list14
-rw-r--r--layout/xul/reftest/scrollbar-marks-overlay-ref.html64
-rw-r--r--layout/xul/reftest/scrollbar-marks-overlay.html18
-rw-r--r--layout/xul/reftest/scrollbar-marks-ref.html13
-rw-r--r--layout/xul/reftest/scrollbar-marks.html18
-rw-r--r--layout/xul/reftest/scrollbar-marks2.html19
-rw-r--r--layout/xul/reftest/textbox-text-transform-ref.xhtml6
-rw-r--r--layout/xul/reftest/textbox-text-transform.xhtml6
19 files changed, 451 insertions, 0 deletions
diff --git a/layout/xul/reftest/checkbox-dynamic-change-ref.xhtml b/layout/xul/reftest/checkbox-dynamic-change-ref.xhtml
new file mode 100644
index 0000000000..a790928f92
--- /dev/null
+++ b/layout/xul/reftest/checkbox-dynamic-change-ref.xhtml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <checkbox id="c1"/>
+ <checkbox id="c2" checked="true"/>
+</window>
diff --git a/layout/xul/reftest/checkbox-dynamic-change.xhtml b/layout/xul/reftest/checkbox-dynamic-change.xhtml
new file mode 100644
index 0000000000..116e142a3c
--- /dev/null
+++ b/layout/xul/reftest/checkbox-dynamic-change.xhtml
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" class="reftest-wait">
+ <checkbox id="c1" checked="true"/>
+ <checkbox id="c2"/>
+ <script>
+ window.requestAnimationFrame(() => {
+ window.requestAnimationFrame(() => {
+ let c1 = document.getElementById("c1");
+ let c2 = document.getElementById("c2");
+ c1.removeAttribute("checked");
+ c2.setAttribute("checked", true);
+ document.documentElement.className = "";
+ });
+ });
+ </script>
+</window>
diff --git a/layout/xul/reftest/image-scaling-min-height-1-ref.xhtml b/layout/xul/reftest/image-scaling-min-height-1-ref.xhtml
new file mode 100644
index 0000000000..1474cbe310
--- /dev/null
+++ b/layout/xul/reftest/image-scaling-min-height-1-ref.xhtml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<html:style><![CDATA[
+
+window { -moz-box-align: start; -moz-box-pack: start }
+hbox { background: yellow }
+vbox { background: blue; width: 15px; min-height: 15px }
+
+]]></html:style>
+
+<hbox><vbox /><label value="a b c d e f" /></hbox>
+
+</window>
diff --git a/layout/xul/reftest/image-scaling-min-height-1.xhtml b/layout/xul/reftest/image-scaling-min-height-1.xhtml
new file mode 100644
index 0000000000..5c45d6b0c9
--- /dev/null
+++ b/layout/xul/reftest/image-scaling-min-height-1.xhtml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<html:style><![CDATA[
+
+window { -moz-box-align: start; -moz-box-pack: start }
+hbox { background: yellow }
+image { background: blue; min-width: 15px; min-height: 15px }
+
+]]></html:style>
+
+<hbox><image /><label value="a b c d e f" /></hbox>
+
+</window>
diff --git a/layout/xul/reftest/image-size-ref.xhtml b/layout/xul/reftest/image-size-ref.xhtml
new file mode 100644
index 0000000000..28598d4430
--- /dev/null
+++ b/layout/xul/reftest/image-size-ref.xhtml
@@ -0,0 +1,102 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+
+<html:style>
+div { margin: 0px; line-height: 0px; }
+div div { background: blue; display: inline; float: left; }
+</html:style>
+
+<html:div><html:img
+ src="image4x3.png" style="width: 40px; height: 30px;"/><html:img
+ src="image4x3.png" style="width: 80px; height: 20px;"/><html:img
+ src="image4x3.png" style="width: 10px; height: 70px;"/><html:img
+ src="image4x3.png" style="width: 80px; height: 60px;"/><html:img
+ src="image4x3.png" style="width: 80px; height: 60px;"/><html:img
+ src="image4x3.png" style="width: 20px; height: 15px;"/><html:img
+ src="image4x3.png" style="width: 20px; height: 15px;"/><html:img
+ src="image4x3.png" style="width: 40px; height: 30px; border: 8px solid green;"/><html:img
+ src="image4x3.png" style="box-sizing: border-box; width: 80px; height: 64px; border: 8px solid yellow;"/><html:img
+ src="image4x3.png" style="box-sizing: border-box; width: 72px; height: 58px; border: 8px solid green;"/><html:img
+ src="image4x3.png" style="box-sizing: border-box; width: 24px; height: 22px; border: 8px solid yellow;"/><html:img
+ src="image4x3.png" style="box-sizing: border-box; width: 24px; height: 22px; border: 8px solid green;"/><html:img
+ src="image4x3.png" style="box-sizing: border-box; width: 74px; height: 53px; border: solid yellow; border-top-width: 1px; border-right-width: 2px; border-bottom-width: 4px; border-left-width: 8px;"/><html:img
+ src="image4x3.png" style="box-sizing: border-box; width: 18px; height: 11px; border: solid green; border-top-width: 1px; border-right-width: 2px; border-bottom-width: 4px; border-left-width: 8px;"/>
+</html:div>
+
+<html:div><html:img
+ src="image4x3.png" style="width: 40px; height: 30px;"/><html:img
+ src="image4x3.png" style="width: 80px; height: 20px;"/><html:img
+ src="image4x3.png" style="width: 10px; height: 70px;"/><html:img
+ src="image4x3.png" style="width: 80px; height: 60px;"/><html:img
+ src="image4x3.png" style="height: 80px; height: 60px;"/><html:img
+ src="image4x3.png" style="width: 20px; height: 15px;"/><html:img
+ src="image4x3.png" style="width: 20px; height: 15px;"/><html:img
+ src="image4x3.png" style="width: 60px; height: 25px;"/><html:img
+ src="image4x3.png" style="width: 20px; height: 75px;"/><html:img
+ src="image4x3.png" style="width: 80px; height: 64px; padding: 8px; box-sizing: border-box;"/><html:img
+ src="image4x3.png" style="width: 72px; height: 58px; padding: 8px; box-sizing: border-box;"/><html:img
+ src="image4x3.png" style="width: 24px; height: 22px; padding: 8px; box-sizing: border-box;"/><html:img
+ src="image4x3.png" style="width: 24px; height: 22px; padding: 8px; box-sizing: border-box;"/><html:img
+ src="image4x3.png" style="width: 67px; height: 60px; padding: 4px 2px 8px 1px; box-sizing: border-box;"/><html:img
+ src="image4x3.png" style="width: 11px; height: 18px; padding: 4px 2px 8px 1px; box-sizing: border-box;"/>
+</html:div>
+
+<html:div><html:img
+ src="image4x3.png" style="width: 20px; height: 15px;"/>
+</html:div>
+
+<html:div><html:img
+ src="image4x3.png" style="width: 20px; height: 15px;"/>
+</html:div>
+
+<html:div><html:img
+ src="image4x3.png" style="width: 30px; height: 22.5px"/>
+</html:div>
+
+<html:div><html:img
+ src="image4x3.png" style="width: 20px; height: 15px;"/>
+</html:div>
+
+<html:div><html:img
+ src="image4x3.png" style="width: 20px; height: 15px;"/>
+</html:div>
+
+<html:div><html:img
+ src="image4x3.png" style="width 30px; height: 22.5px;"/>
+</html:div>
+
+<html:div><html:img
+ src="image4x3.png" style="box-sizing: border-box; width: 24px; height: 22px; border: 8px solid green;"/>
+</html:div>
+
+<html:div><html:img
+ src="image4x3.png" style="box-sizing: border-box; width: 24px; height: 22px; border: 8px solid green;"/>
+</html:div>
+
+<html:div><html:img
+ src="image4x3.png" style="width: 40px; height: 30px;"/><html:img
+ src="image4x3.png" style="width: 40px; height: 30px;"/><html:img
+ src="image4x3.png" style="width: 40px; height: 30px;"/><html:img
+ src="image4x3.png" style="box-sizing: border-box; width: 60px; height: 49px; border: 8px solid green;"/><html:img
+ src="image4x3.png" style="box-sizing: border-box; width: 112px; height: 88px; border: 8px solid yellow;"/><html:img
+ src="image4x3.png" style="box-sizing: border-box; width: 96px; height: 76px; border: 8px solid green;"/><html:img
+ src="image4x3.png" style="box-sizing: border-box; width: 112px; height: 88px; border: 8px solid yellow;"/><html:img
+ src="image4x3.png" style="box-sizing: border-box; width: 106px; height: 77px; border: solid yellow; border-top-width: 1px; border-right-width: 2px; border-bottom-width: 4px; border-left-width: 8px;"/>
+</html:div>
+
+<html:div><html:img
+ src="image4x3.png" style="width: 60px; height: 45px;"/><html:img
+ src="image4x3.png" style="width: 120px; height: 90px;"/><html:img
+ src="image4x3.png" style="width 60px; height: 45px;"/><html:img
+ src="image4x3.png" style="box-sizing: border-box; width: 60px; height: 49px; padding: 8px;"/><html:img
+ src="image4x3.png" style="box-sizing: border-box; width: 112px; height: 88px; padding: 8px;"/><html:img
+ src="image4x3.png" style="box-sizing: border-box; width: 96px; height: 76px; padding: 8px;"/><html:img
+ src="image4x3.png" style="box-sizing: border-box; width: 112px; height: 88px; padding: 8px;"/><html:img
+ src="image4x3.png" style="border: 1px solid blue"/><html:img
+ width="0" height="0" style="border: 1px solid green" /><html:img
+ width="0" height="0" style="border: 1px solid green" /><html:span style="display: inline-block; -moz-default-appearance: checkbox; appearance: auto" />
+</html:div>
+
+</window>
diff --git a/layout/xul/reftest/image-size.xhtml b/layout/xul/reftest/image-size.xhtml
new file mode 100644
index 0000000000..9a4e00429a
--- /dev/null
+++ b/layout/xul/reftest/image-size.xhtml
@@ -0,0 +1,104 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+<hbox align="end">
+ <image src="image4x3.png"/>
+ <image src="image4x3.png" style="width: 80px; height: 20px"/>
+ <image src="image4x3.png" style="width: 10px; height: 70px"/>
+ <image src="image4x3.png" style="width: 80px"/>
+ <image src="image4x3.png" style="height: 60px"/>
+ <image src="image4x3.png" style="width: 20px"/>
+ <image src="image4x3.png" style="height: 15px"/>
+ <image src="image4x3.png" style="border: 8px solid green;"/>
+ <image src="image4x3.png" style="width: 80px; border: 8px solid yellow;"/>
+ <image src="image4x3.png" style="height: 58px; border: 8px solid green;"/>
+ <image src="image4x3.png" style="width: 24px; border: 8px solid yellow;"/>
+ <image src="image4x3.png" style="height: 22px; border: 8px solid green;"/>
+ <image src="image4x3.png"
+ style="width: 74px; border: 1px solid yellow; border-top-width: 1px; border-right-width: 2px; border-bottom-width: 4px; border-left-width: 8px;"/>
+ <image src="image4x3.png"
+ style="height: 11px; border: 1px solid green; border-top-width: 1px; border-right-width: 2px; border-bottom-width: 4px; border-left-width: 8px;"/>
+</hbox>
+
+<hbox align="end">
+ <image src="image4x3.png" style="width: auto; height: auto;"/>
+ <image src="image4x3.png" style="width: 80px; height: 20px;"/>
+ <image src="image4x3.png" style="width: 10px; height: 70px;"/>
+ <image src="image4x3.png" style="width: 80px;"/>
+ <image src="image4x3.png" style="height: 60px;"/>
+ <image src="image4x3.png" style="width: 20px;"/>
+ <image src="image4x3.png" style="height: 15px;"/>
+ <image src="image4x3.png" style="width: 60px; height: 25px;"/>
+ <image src="image4x3.png" style="width: 20px; height: 75px;"/>
+ <image src="image4x3.png" style="width: 80px; padding: 8px;"/>
+ <image src="image4x3.png" style="height: 58px; padding: 8px;"/>
+ <image src="image4x3.png" style="width: 24px; padding: 8px;"/>
+ <image src="image4x3.png" style="height: 22px; padding: 8px;"/>
+ <image src="image4x3.png" style="width: 67px; padding: 4px 2px 8px 1px"/>
+ <image src="image4x3.png" style="height: 18px; padding: 4px 2px 8px 1px"/>
+</hbox>
+
+<hbox align="end">
+ <image src="image4x3.png" style="max-width: 20px"/>
+</hbox>
+
+<hbox align="end">
+ <image src="image4x3.png" style="max-height: 15px"/>
+</hbox>
+
+<hbox align="end">
+ <image src="image4x3.png" style="max-width: 30px; max-height: 25px"/>
+</hbox>
+
+<hbox align="end">
+ <image src="image4x3.png" style="max-width: 20px;"/>
+</hbox>
+
+<hbox align="end">
+ <image src="image4x3.png" style="max-height: 15px;"/>
+</hbox>
+
+<hbox align="end">
+ <image src="image4x3.png" style="max-width: 30px; max-height: 25px;"/>
+</hbox>
+
+<hbox align="end">
+ <image src="image4x3.png" style="width: 24px; border: 8px solid green;"/>
+</hbox>
+<hbox align="end">
+ <image src="image4x3.png" style="max-height: 22px; border: 8px solid green;"/>
+</hbox>
+
+<hbox align="end">
+ <image src="image4x3.png" style="min-width: 20px;"/>
+ <image src="image4x3.png" style="min-height: 20px;"/>
+ <image src="image4x3.png" style="min-width: 20px; min-height: 25px"/>
+ <image src="image4x3.png" style="min-width: 60px; border: 8px solid green;"/>
+ <image src="image4x3.png" style="min-height: 88px; border: 8px solid yellow;"/>
+ <image src="image4x3.png" style="min-width: 90px; min-height: 76px; border: 8px solid green;"/>
+ <image src="image4x3.png" style="min-width: 112px; min-height: 76px; border: 8px solid yellow;"/>
+ <image src="image4x3.png"
+ style="min-width: 106px; border: 1px solid yellow; border-top-width: 1px; border-right-width: 2px; border-bottom-width: 4px; border-left-width: 8px;"/>
+</hbox>
+
+<hbox align="end">
+ <image src="image4x3.png" style="min-width: 60px;"/>
+ <image src="image4x3.png" style="min-height: 90px;"/>
+ <image src="image4x3.png" style="min-width 41px; min-height: 45px;"/>
+ <image src="image4x3.png" style="min-width: 60px; padding: 8px;"/>
+ <image src="image4x3.png" style="min-height: 88px; padding: 8px;"/>
+ <image src="image4x3.png" style="min-width: 90px; min-height: 76px; padding: 8px;"/>
+ <image src="image4x3.png" style="min-width: 112px; min-height: 76px; padding: 8px;"/>
+ <image src="" style="list-style-image: url(image4x3.png); border: 1px solid blue"/>
+ <image id="dyn-1" src="image4x3.png" style="border: 1px solid green"/>
+ <image id="dyn-2" style="list-style-image: url(image4x3.png); border: 1px solid green"/>
+ <image style="-moz-default-appearance: checkbox; appearance: auto"/>
+</hbox>
+<script>
+ window.addEventListener("load", function() {
+ document.getElementById("dyn-1").removeAttribute("src");
+ document.getElementById("dyn-2").style.listStyleImage = "";
+ });
+</script>
+</window>
diff --git a/layout/xul/reftest/image4x3.png b/layout/xul/reftest/image4x3.png
new file mode 100644
index 0000000000..6719bf5cec
--- /dev/null
+++ b/layout/xul/reftest/image4x3.png
Binary files differ
diff --git a/layout/xul/reftest/popup-explicit-size-ref.xhtml b/layout/xul/reftest/popup-explicit-size-ref.xhtml
new file mode 100644
index 0000000000..85a8a6832a
--- /dev/null
+++ b/layout/xul/reftest/popup-explicit-size-ref.xhtml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<window align="start" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <label value="One"/>
+ <label value="Two"/>
+</window>
diff --git a/layout/xul/reftest/popup-explicit-size.xhtml b/layout/xul/reftest/popup-explicit-size.xhtml
new file mode 100644
index 0000000000..a4a87c2c8b
--- /dev/null
+++ b/layout/xul/reftest/popup-explicit-size.xhtml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<window align="start" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <label value="One"/>
+ <menupopup height="40"/>
+ <label value="Two"/>
+</window>
diff --git a/layout/xul/reftest/radio-dynamic-change-ref.xhtml b/layout/xul/reftest/radio-dynamic-change-ref.xhtml
new file mode 100644
index 0000000000..73ff14d6cd
--- /dev/null
+++ b/layout/xul/reftest/radio-dynamic-change-ref.xhtml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <radio id="r1"/>
+ <radio id="r2" selected="true"/>
+</window>
diff --git a/layout/xul/reftest/radio-dynamic-change.xhtml b/layout/xul/reftest/radio-dynamic-change.xhtml
new file mode 100644
index 0000000000..508e99ec02
--- /dev/null
+++ b/layout/xul/reftest/radio-dynamic-change.xhtml
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" class="reftest-wait">
+ <radio id="r1" selected="true"/>
+ <radio id="r2"/>
+ <script>
+ window.requestAnimationFrame(() => {
+ window.requestAnimationFrame(() => {
+ let r1 = document.getElementById("r1");
+ let r2 = document.getElementById("r2");
+ r1.removeAttribute("selected");
+ r2.setAttribute("selected", true);
+ document.documentElement.className = "";
+ });
+ });
+ </script>
+</window>
diff --git a/layout/xul/reftest/reftest.list b/layout/xul/reftest/reftest.list
new file mode 100644
index 0000000000..a2b0b6c6fe
--- /dev/null
+++ b/layout/xul/reftest/reftest.list
@@ -0,0 +1,14 @@
+== chrome://reftest/content/xul/reftest/popup-explicit-size.xhtml chrome://reftest/content/xul/reftest/popup-explicit-size-ref.xhtml
+fuzzy(0-16,0-128) random-if(Android) == chrome://reftest/content/xul/reftest/image-size.xhtml chrome://reftest/content/xul/reftest/image-size-ref.xhtml
+== chrome://reftest/content/xul/reftest/image-scaling-min-height-1.xhtml chrome://reftest/content/xul/reftest/image-scaling-min-height-1-ref.xhtml
+== chrome://reftest/content/xul/reftest/textbox-text-transform.xhtml chrome://reftest/content/xul/reftest/textbox-text-transform-ref.xhtml
+
+== chrome://reftest/content/xul/reftest/checkbox-dynamic-change.xhtml chrome://reftest/content/xul/reftest/checkbox-dynamic-change-ref.xhtml
+== chrome://reftest/content/xul/reftest/radio-dynamic-change.xhtml chrome://reftest/content/xul/reftest/radio-dynamic-change-ref.xhtml
+
+# These test find marks appearing on the scrollbar
+fails-if(useDrawSnapshot) != chrome://reftest/content/xul/reftest/scrollbar-marks.html chrome://reftest/content/xul/reftest/scrollbar-marks-ref.html
+fails-if(useDrawSnapshot) != chrome://reftest/content/xul/reftest/scrollbar-marks2.html chrome://reftest/content/xul/reftest/scrollbar-marks-ref.html
+fails-if(useDrawSnapshot) != chrome://reftest/content/xul/reftest/scrollbar-marks2.html chrome://reftest/content/xul/reftest/scrollbar-marks.html
+# This test is fuzzy as the marks cannot be positioned exactly as the real ones are measured in dev pixels.
+fuzzy(0-10,0-170) fuzzy-if(winWidget&&isDebugBuild&&layersGPUAccelerated&&!is64Bit,1-1,74-170) == chrome://reftest/content/xul/reftest/scrollbar-marks-overlay.html chrome://reftest/content/xul/reftest/scrollbar-marks-overlay-ref.html
diff --git a/layout/xul/reftest/scrollbar-marks-overlay-ref.html b/layout/xul/reftest/scrollbar-marks-overlay-ref.html
new file mode 100644
index 0000000000..8d940c64d6
--- /dev/null
+++ b/layout/xul/reftest/scrollbar-marks-overlay-ref.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML>
+<html class="reftest-wait">
+<head>
+<script>
+ // Account for scrollbar buttons on Windows
+const hasScrollbarButtons = navigator.platform.indexOf("Win") >= 0;
+const scrollbarButtonSize = 16;
+
+function assignMarks()
+{
+ let frame0 = document.getElementById('frame0');
+ let width = frame0.getBoundingClientRect().width;
+
+ let innerRect0 = frame0.contentDocument.documentElement.getBoundingClientRect();
+ let markWidth = width - innerRect0.width - 2;
+
+ let scrollButtonHeight = hasScrollbarButtons ? scrollbarButtonSize : 0;
+ let sliderHeight = 200 - scrollButtonHeight * 2;
+
+ let one = document.getElementById('one');
+ one.style.width = markWidth + "px";
+ one.style.top = (Math.floor(30 / frames[0].scrollMaxY * sliderHeight) + scrollButtonHeight) + "px";
+
+ let two = document.getElementById('two');
+ two.style.width = markWidth + "px";
+ two.style.top = (Math.floor(70 / frames[0].scrollMaxY * sliderHeight) + scrollButtonHeight) + "px";
+
+ let three = document.getElementById('three');
+ three.style.width = markWidth + "px";
+ three.style.top = (Math.floor(110 / frames[0].scrollMaxY * sliderHeight) + scrollButtonHeight) + "px";
+
+ let frame1 = document.getElementById('frame1');
+ let height = frame1.getBoundingClientRect().height;
+
+ let innerRect1 = frame1.contentDocument.documentElement.getBoundingClientRect();
+ let markHeight = height - innerRect1.height - 2;
+
+ let scrollButtonWidth = hasScrollbarButtons ? scrollbarButtonSize : 0;
+ let sliderWidth = 300 - scrollButtonWidth * 2;
+
+ let four = document.getElementById('four');
+ four.style.height = markHeight + "px";
+ four.style.left = (Math.floor(45 / frames[1].scrollMaxX * sliderWidth) + scrollButtonWidth) + "px";
+
+ let five = document.getElementById('five');
+ five.style.height = markHeight + "px";
+ five.style.left = (Math.floor(165 / frames[1].scrollMaxX * sliderWidth) + scrollButtonWidth) + "px";
+
+ document.documentElement.removeAttribute("class");
+}
+</script>
+</head>
+<body onload="assignMarks()">
+<div style='border: 1px solid red; position: absolute; width: 300px; padding: 0;'>
+ <iframe id='frame0' style='position: relative; border: none; height: 200px; vertical-align: middle;' src='data:text/html,<p style="height: 400px;"></p>'></iframe>
+ <div id='one' style='border: 1px solid #ef0fff; opacity: 0.3; position: absolute; right: 0px;'></div>
+ <div id='two' style='border: 1px solid #ef0fff; opacity: 0.3; position: absolute; right: 0px;'></div>
+ <div id='three' style='border: 1px solid #ef0fff; opacity: 0.3; position: absolute; right: 0px;'></div>
+ <iframe id='frame1' style='position: relative; border: none; height: 200px; vertical-align: middle;' src='data:text/html,<p style="height: 100%; width: 600px;"></p>'></iframe>
+ <div id='four' style='border: 1px solid #ef0fff; opacity: 0.3; position: absolute; bottom: 0px;'></div>
+ <div id='five' style='border: 1px solid #ef0fff; opacity: 0.3; position: absolute; bottom: 0px;'></div>
+</div>
+</body>
+</html>
diff --git a/layout/xul/reftest/scrollbar-marks-overlay.html b/layout/xul/reftest/scrollbar-marks-overlay.html
new file mode 100644
index 0000000000..823fd6fd52
--- /dev/null
+++ b/layout/xul/reftest/scrollbar-marks-overlay.html
@@ -0,0 +1,18 @@
+<!DOCTYPE HTML>
+<html class="reftest-wait">
+<head>
+<script>
+ function doTest() {
+ frames[0].setScrollMarks([30, 70, 110]);
+ frames[1].setScrollMarks([45, 165], true);
+ document.documentElement.removeAttribute("class");
+ }
+</script>
+</head>
+<body onload="doTest()">
+<div style='border: 1px solid red; position: absolute; width: 300px; padding: 0;'>
+ <iframe style='position: relative; border: none; height: 200px; vertical-align: middle;' src='data:text/html,<p style="height: 400px;"></p>'></iframe>
+ <iframe style='position: relative; border: none; height: 200px; vertical-align: middle;' src='data:text/html,<p style="height: 100%; width: 600px;"></p>'></iframe>
+</div>
+</body>
+</html>
diff --git a/layout/xul/reftest/scrollbar-marks-ref.html b/layout/xul/reftest/scrollbar-marks-ref.html
new file mode 100644
index 0000000000..204c5db7fa
--- /dev/null
+++ b/layout/xul/reftest/scrollbar-marks-ref.html
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+</head>
+<body>
+ <p>This is some text</p>
+ <p style="height: 1000px;">Box 1</p>
+ <p>This is some text</p>
+ <p style="height: 1000px;">Box 2</p>
+ <p>This is some text</p>
+</body>
+</html>
+
diff --git a/layout/xul/reftest/scrollbar-marks.html b/layout/xul/reftest/scrollbar-marks.html
new file mode 100644
index 0000000000..c60d06c804
--- /dev/null
+++ b/layout/xul/reftest/scrollbar-marks.html
@@ -0,0 +1,18 @@
+<!DOCTYPE HTML>
+<html class="reftest-wait">
+<head>
+<script>
+ function doTest() {
+ window.setScrollMarks([20]);
+ document.documentElement.removeAttribute("class");
+ }
+</script>
+</head>
+<body onload="doTest()">
+ <p>This is some text</p>
+ <p style="height: 1000px;">Box 1</p>
+ <p>This is some text</p>
+ <p style="height: 1000px;">Box 2</p>
+ <p>This is some text</p>
+</body>
+</html>
diff --git a/layout/xul/reftest/scrollbar-marks2.html b/layout/xul/reftest/scrollbar-marks2.html
new file mode 100644
index 0000000000..e39c6e1192
--- /dev/null
+++ b/layout/xul/reftest/scrollbar-marks2.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML>
+<html class="reftest-wait">
+<head>
+<script>
+ function doTest() {
+ // Two find marks should be drawn.
+ window.setScrollMarks([20, 140]);
+ document.documentElement.removeAttribute("class");
+ }
+</script>
+</head>
+<body onload="doTest()">
+ <p>This is some text</p>
+ <p style="height: 1000px;">Box 1</p>
+ <p>This is some text</p>
+ <p style="height: 1000px;">Box 2</p>
+ <p>This is some text</p>
+</body>
+</html>
diff --git a/layout/xul/reftest/textbox-text-transform-ref.xhtml b/layout/xul/reftest/textbox-text-transform-ref.xhtml
new file mode 100644
index 0000000000..74d03a1ec9
--- /dev/null
+++ b/layout/xul/reftest/textbox-text-transform-ref.xhtml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+<label value="UPPERCASE"/>
+<label value="lowercase"/>
+</window>
diff --git a/layout/xul/reftest/textbox-text-transform.xhtml b/layout/xul/reftest/textbox-text-transform.xhtml
new file mode 100644
index 0000000000..5c542cf80e
--- /dev/null
+++ b/layout/xul/reftest/textbox-text-transform.xhtml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+<label style="text-transform: uppercase" value="uppercase"/>
+<label style="text-transform: lowercase" value="LOWERCASE"/>
+</window>