summaryrefslogtreecommitdiffstats
path: root/layout/reftests/native-theme
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /layout/reftests/native-theme
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'layout/reftests/native-theme')
-rw-r--r--layout/reftests/native-theme/403458-winmenu-ltr.xul7
-rw-r--r--layout/reftests/native-theme/403458-winmenu-rtl.xul7
-rw-r--r--layout/reftests/native-theme/427122-1-ref.html17
-rw-r--r--layout/reftests/native-theme/427122-1.html18
-rw-r--r--layout/reftests/native-theme/470711-1-ref.xul16
-rw-r--r--layout/reftests/native-theme/470711-1.xul18
-rw-r--r--layout/reftests/native-theme/482955-1-ref.xul8
-rw-r--r--layout/reftests/native-theme/482955-1.xul9
-rw-r--r--layout/reftests/native-theme/492155-1.html7
-rw-r--r--layout/reftests/native-theme/492155-2.html7
-rw-r--r--layout/reftests/native-theme/492155-3.html7
-rw-r--r--layout/reftests/native-theme/492155-4.html10
-rw-r--r--layout/reftests/native-theme/676387-1-ref.xul6
-rw-r--r--layout/reftests/native-theme/676387-1.xul12
-rw-r--r--layout/reftests/native-theme/blank-window.xul5
-rw-r--r--layout/reftests/native-theme/border-radius-ref.html9
-rw-r--r--layout/reftests/native-theme/border-radius.html9
-rw-r--r--layout/reftests/native-theme/box-shadow-button-ref.html1
-rw-r--r--layout/reftests/native-theme/box-shadow-button.html1
-rw-r--r--layout/reftests/native-theme/box-shadow-combobox-ref.html4
-rw-r--r--layout/reftests/native-theme/box-shadow-combobox.html4
-rw-r--r--layout/reftests/native-theme/box-shadow-input-ref.html1
-rw-r--r--layout/reftests/native-theme/box-shadow-input.html1
-rw-r--r--layout/reftests/native-theme/box-shadow-listbox-ref.html4
-rw-r--r--layout/reftests/native-theme/box-shadow-listbox.html4
-rw-r--r--layout/reftests/native-theme/button-html-not-blank.html1
-rw-r--r--layout/reftests/native-theme/button-native.html2
-rw-r--r--layout/reftests/native-theme/button-nonnative-when-styled-ref.html17
-rw-r--r--layout/reftests/native-theme/button-nonnative-when-styled.html17
-rw-r--r--layout/reftests/native-theme/button-nonnative.html2
-rw-r--r--layout/reftests/native-theme/button-not-blank.html1
-rw-r--r--layout/reftests/native-theme/checkbox-dynamic-1-ref.html18
-rw-r--r--layout/reftests/native-theme/checkbox-dynamic-1.html39
-rw-r--r--layout/reftests/native-theme/checkbox-native.html2
-rw-r--r--layout/reftests/native-theme/checkbox-nonnative.html2
-rw-r--r--layout/reftests/native-theme/checkbox-not-blank.html1
-rw-r--r--layout/reftests/native-theme/checkbox-not-mirrored-when-rtl-ref.html2
-rw-r--r--layout/reftests/native-theme/checkbox-not-mirrored-when-rtl.html2
-rw-r--r--layout/reftests/native-theme/checkbox-still-native-when-styled-ref.html14
-rw-r--r--layout/reftests/native-theme/checkbox-still-native-when-styled.html14
-rw-r--r--layout/reftests/native-theme/combobox-native.html2
-rw-r--r--layout/reftests/native-theme/combobox-nonnative-when-styled-ref.html21
-rw-r--r--layout/reftests/native-theme/combobox-nonnative-when-styled.html21
-rw-r--r--layout/reftests/native-theme/combobox-nonnative.html2
-rw-r--r--layout/reftests/native-theme/combobox-not-blank.html1
-rw-r--r--layout/reftests/native-theme/fieldset-not-blank.html1
-rw-r--r--layout/reftests/native-theme/file-not-blank.html1
-rw-r--r--layout/reftests/native-theme/listbox-native.html2
-rw-r--r--layout/reftests/native-theme/listbox-nonnative-when-styled-ref.html19
-rw-r--r--layout/reftests/native-theme/listbox-nonnative-when-styled.html19
-rw-r--r--layout/reftests/native-theme/listbox-nonnative.html2
-rw-r--r--layout/reftests/native-theme/listbox-not-blank.html1
-rw-r--r--layout/reftests/native-theme/menulist-mirrored-when-rtl-ref.xul11
-rw-r--r--layout/reftests/native-theme/menulist-mirrored-when-rtl.xul11
-rw-r--r--layout/reftests/native-theme/native-theme-disabled-cascade-levels-ref.html6
-rw-r--r--layout/reftests/native-theme/native-theme-disabled-cascade-levels.html10
-rw-r--r--layout/reftests/native-theme/progress-nobar.html7
-rw-r--r--layout/reftests/native-theme/progress-overflow-ref.html10
-rw-r--r--layout/reftests/native-theme/progress-overflow-small.html9
-rw-r--r--layout/reftests/native-theme/progress-overflow.html9
-rw-r--r--layout/reftests/native-theme/radio-native.html2
-rw-r--r--layout/reftests/native-theme/radio-nonnative.html2
-rw-r--r--layout/reftests/native-theme/radio-not-blank.html1
-rw-r--r--layout/reftests/native-theme/radio-still-native-when-styled-ref.html14
-rw-r--r--layout/reftests/native-theme/radio-still-native-when-styled.html14
-rw-r--r--layout/reftests/native-theme/reftest-stylo.list88
-rw-r--r--layout/reftests/native-theme/reftest.list84
-rw-r--r--layout/reftests/native-theme/resizer-bottomend-flipped.xul10
-rw-r--r--layout/reftests/native-theme/resizer-bottomend-rtl.xul10
-rw-r--r--layout/reftests/native-theme/resizer-bottomend.xul10
-rw-r--r--layout/reftests/native-theme/resizer-bottomleft.xul10
-rw-r--r--layout/reftests/native-theme/resizer-bottomright.xul10
-rw-r--r--layout/reftests/native-theme/resizer-bottomstart-rtl.xul10
-rw-r--r--layout/reftests/native-theme/resizer-bottomstart.xul10
-rw-r--r--layout/reftests/native-theme/resizer-left.xul10
-rw-r--r--layout/reftests/native-theme/scroll-thumb-minimum-size-notheme-ref.html5
-rw-r--r--layout/reftests/native-theme/scroll-thumb-minimum-size-notheme.html32
-rw-r--r--layout/reftests/native-theme/scroll-thumb-minimum-size-theme-ref.html4
-rw-r--r--layout/reftests/native-theme/scroll-thumb-minimum-size-theme.html14
-rw-r--r--layout/reftests/native-theme/searchfield-mirrored-when-rtl-ref.xul10
-rw-r--r--layout/reftests/native-theme/searchfield-mirrored-when-rtl.xul10
-rw-r--r--layout/reftests/native-theme/select-mirrored-when-rtl-ref.html4
-rw-r--r--layout/reftests/native-theme/select-mirrored-when-rtl.html4
-rw-r--r--layout/reftests/native-theme/text-control-not-blank.html1
-rw-r--r--layout/reftests/native-theme/text-input-native.html2
-rw-r--r--layout/reftests/native-theme/text-input-nonnative-when-styled-ref.html23
-rw-r--r--layout/reftests/native-theme/text-input-nonnative-when-styled.html23
-rw-r--r--layout/reftests/native-theme/text-input-nonnative.html2
-rw-r--r--layout/reftests/native-theme/textarea-native.html2
-rw-r--r--layout/reftests/native-theme/textarea-nonnative-when-styled-ref.html17
-rw-r--r--layout/reftests/native-theme/textarea-nonnative-when-styled.html18
-rw-r--r--layout/reftests/native-theme/textarea-nonnative.html2
-rw-r--r--layout/reftests/native-theme/textarea-not-blank.html1
93 files changed, 950 insertions, 0 deletions
diff --git a/layout/reftests/native-theme/403458-winmenu-ltr.xul b/layout/reftests/native-theme/403458-winmenu-ltr.xul
new file mode 100644
index 000000000..751063063
--- /dev/null
+++ b/layout/reftests/native-theme/403458-winmenu-ltr.xul
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+
+<window id="window403458"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <hbox style="-moz-appearance: menuarrow; direction: ltr" />
+</window>
diff --git a/layout/reftests/native-theme/403458-winmenu-rtl.xul b/layout/reftests/native-theme/403458-winmenu-rtl.xul
new file mode 100644
index 000000000..03905210a
--- /dev/null
+++ b/layout/reftests/native-theme/403458-winmenu-rtl.xul
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+
+<window id="window403458"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <hbox style="-moz-appearance: menuarrow; direction: rtl" />
+</window>
diff --git a/layout/reftests/native-theme/427122-1-ref.html b/layout/reftests/native-theme/427122-1-ref.html
new file mode 100644
index 000000000..0aa35f716
--- /dev/null
+++ b/layout/reftests/native-theme/427122-1-ref.html
@@ -0,0 +1,17 @@
+<!DOCTYPE HTML>
+<html>
+<style>
+div {
+ border: 1px solid black;
+}
+
+select {
+}
+</style>
+<body>
+
+<div><select><option>Hello</option></select></div>
+
+</body>
+
+</html>
diff --git a/layout/reftests/native-theme/427122-1.html b/layout/reftests/native-theme/427122-1.html
new file mode 100644
index 000000000..8e1f54750
--- /dev/null
+++ b/layout/reftests/native-theme/427122-1.html
@@ -0,0 +1,18 @@
+<!DOCTYPE HTML>
+<html>
+<style>
+div {
+ border: 1px solid black;
+}
+
+select {
+ padding: 10px;
+}
+</style>
+<body>
+
+<div><select><option>Hello</option></select></div>
+
+</body>
+
+</html>
diff --git a/layout/reftests/native-theme/470711-1-ref.xul b/layout/reftests/native-theme/470711-1-ref.xul
new file mode 100644
index 000000000..26f91a243
--- /dev/null
+++ b/layout/reftests/native-theme/470711-1-ref.xul
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+
+<window id="window470711"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <tabbox>
+ <tabs>
+ <tab label="One"/>
+ <tab label="Two" style="padding: 0"/>
+ </tabs>
+ <tabpanels>
+ <label value="One"/>
+ <label value="Two"/>
+ </tabpanels>
+ </tabbox>
+</window>
diff --git a/layout/reftests/native-theme/470711-1.xul b/layout/reftests/native-theme/470711-1.xul
new file mode 100644
index 000000000..d2dd95c22
--- /dev/null
+++ b/layout/reftests/native-theme/470711-1.xul
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+
+<window id="window470711"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <tabbox>
+ <tabs>
+ <tab label="One"/>
+ <tab label="Two" style="padding: 0"/>
+ <tab label="Three" style="display: none"/>
+ </tabs>
+ <tabpanels>
+ <label value="One"/>
+ <label value="Two"/>
+ <label value="Three"/>
+ </tabpanels>
+ </tabbox>
+</window>
diff --git a/layout/reftests/native-theme/482955-1-ref.xul b/layout/reftests/native-theme/482955-1-ref.xul
new file mode 100644
index 000000000..38404e198
--- /dev/null
+++ b/layout/reftests/native-theme/482955-1-ref.xul
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <hbox>
+ <hbox style="-moz-appearance: textfield;">
+ <spacer style="padding: 50px;"/>
+ </hbox>
+ </hbox>
+</window>
diff --git a/layout/reftests/native-theme/482955-1.xul b/layout/reftests/native-theme/482955-1.xul
new file mode 100644
index 000000000..5235172e3
--- /dev/null
+++ b/layout/reftests/native-theme/482955-1.xul
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <hbox>
+ <hbox flex="1" style="-moz-appearance: textfield;">
+ <spacer style="padding: 50px;"/>
+ </hbox>
+ <spacer width="10000" flex="1"/>
+ </hbox>
+</window>
diff --git a/layout/reftests/native-theme/492155-1.html b/layout/reftests/native-theme/492155-1.html
new file mode 100644
index 000000000..161a27ce8
--- /dev/null
+++ b/layout/reftests/native-theme/492155-1.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<div style="width: 200px; height: 200px; margin: 50px; -moz-transform: rotate(90deg); position: relative;">
+ <div style="height: 200px; overflow: auto;">
+ <div style="height: 400px;"></div>
+ </div>
+ <div style="position: absolute; top: -2px; right: -2px; bottom: -2px; width: 50px; background: white;"></div>
+</div>
diff --git a/layout/reftests/native-theme/492155-2.html b/layout/reftests/native-theme/492155-2.html
new file mode 100644
index 000000000..692f90b19
--- /dev/null
+++ b/layout/reftests/native-theme/492155-2.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<div style="width: 200px; height: 200px; margin: 50px; -moz-transform: scale(0.5); position: relative;">
+ <div style="height: 200px; overflow: auto;">
+ <div style="height: 400px;"></div>
+ </div>
+ <div style="position: absolute; top: -2px; right: -2px; bottom: -2px; width: 50px; background: white;"></div>
+</div>
diff --git a/layout/reftests/native-theme/492155-3.html b/layout/reftests/native-theme/492155-3.html
new file mode 100644
index 000000000..7424e7a74
--- /dev/null
+++ b/layout/reftests/native-theme/492155-3.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<div style="width: 200px; height: 200px; margin: 50px; -moz-transform: skewY(30deg); position: relative;">
+ <div style="height: 200px; overflow: auto;">
+ <div style="height: 400px;"></div>
+ </div>
+ <div style="position: absolute; top: -2px; right: -2px; bottom: -2px; width: 50px; background: white;"></div>
+</div>
diff --git a/layout/reftests/native-theme/492155-4.html b/layout/reftests/native-theme/492155-4.html
new file mode 100644
index 000000000..491eb62fc
--- /dev/null
+++ b/layout/reftests/native-theme/492155-4.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html style="height: 100%;"><body style="height: 100%; margin: 0;">
+<div style="height: 50%"></div>
+
+<div style="width: 200px; height: 200px; -moz-transform: scale(-1); position: relative;">
+ <div style="height: 200px; overflow: auto;">
+ <div style="height: 400px;"></div>
+ </div>
+</div>
+</div>
diff --git a/layout/reftests/native-theme/676387-1-ref.xul b/layout/reftests/native-theme/676387-1-ref.xul
new file mode 100644
index 000000000..e53270882
--- /dev/null
+++ b/layout/reftests/native-theme/676387-1-ref.xul
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+<window id="window676387-1-ref"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <hbox><button id="button" label="SUCCESS"/></hbox>
+</window>
diff --git a/layout/reftests/native-theme/676387-1.xul b/layout/reftests/native-theme/676387-1.xul
new file mode 100644
index 000000000..4f1a084b9
--- /dev/null
+++ b/layout/reftests/native-theme/676387-1.xul
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+<window id="window676387-1"
+ class="reftest-wait"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ onload="var button = document.getElementById('button');
+ var r = button.getBoundingClientRect();
+ if (document.elementFromPoint(r.right, r.top) == button.parentNode)
+ button.label = 'SUCCESS';
+ document.documentElement.className = '';">
+ <hbox><button id="button" label="FAIL"/></hbox>
+</window>
diff --git a/layout/reftests/native-theme/blank-window.xul b/layout/reftests/native-theme/blank-window.xul
new file mode 100644
index 000000000..ad5e963b7
--- /dev/null
+++ b/layout/reftests/native-theme/blank-window.xul
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+
+<window title="Blank window"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"/>
diff --git a/layout/reftests/native-theme/border-radius-ref.html b/layout/reftests/native-theme/border-radius-ref.html
new file mode 100644
index 000000000..908f9515d
--- /dev/null
+++ b/layout/reftests/native-theme/border-radius-ref.html
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML>
+<html>
+<body>
+<div style="padding:50px; border-radius:50px; width:400px; height:400px;">
+ <input type="radio">
+ <input type="checkbox">
+</div>
+</body>
+</html>
diff --git a/layout/reftests/native-theme/border-radius.html b/layout/reftests/native-theme/border-radius.html
new file mode 100644
index 000000000..43ed39645
--- /dev/null
+++ b/layout/reftests/native-theme/border-radius.html
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML>
+<html>
+<body>
+<div style="padding:50px; border-radius:50px; width:400px; height:400px; overflow:hidden;">
+ <input type="radio">
+ <input type="checkbox">
+</div>
+</body>
+</html>
diff --git a/layout/reftests/native-theme/box-shadow-button-ref.html b/layout/reftests/native-theme/box-shadow-button-ref.html
new file mode 100644
index 000000000..87957a974
--- /dev/null
+++ b/layout/reftests/native-theme/box-shadow-button-ref.html
@@ -0,0 +1 @@
+<button>Hello</button>
diff --git a/layout/reftests/native-theme/box-shadow-button.html b/layout/reftests/native-theme/box-shadow-button.html
new file mode 100644
index 000000000..f87dbb5f2
--- /dev/null
+++ b/layout/reftests/native-theme/box-shadow-button.html
@@ -0,0 +1 @@
+<button style="box-shadow: 10px 10px gold;">Hello</button>
diff --git a/layout/reftests/native-theme/box-shadow-combobox-ref.html b/layout/reftests/native-theme/box-shadow-combobox-ref.html
new file mode 100644
index 000000000..8f93c10fb
--- /dev/null
+++ b/layout/reftests/native-theme/box-shadow-combobox-ref.html
@@ -0,0 +1,4 @@
+<select size="1">
+ <option>Hello</option>
+ <option>Kitty</option>
+</select>
diff --git a/layout/reftests/native-theme/box-shadow-combobox.html b/layout/reftests/native-theme/box-shadow-combobox.html
new file mode 100644
index 000000000..009099af4
--- /dev/null
+++ b/layout/reftests/native-theme/box-shadow-combobox.html
@@ -0,0 +1,4 @@
+<select size="1" style="box-shadow: 10px 10px gold;">
+ <option>Hello</option>
+ <option>Kitty</option>
+</select>
diff --git a/layout/reftests/native-theme/box-shadow-input-ref.html b/layout/reftests/native-theme/box-shadow-input-ref.html
new file mode 100644
index 000000000..347c7681a
--- /dev/null
+++ b/layout/reftests/native-theme/box-shadow-input-ref.html
@@ -0,0 +1 @@
+<input>
diff --git a/layout/reftests/native-theme/box-shadow-input.html b/layout/reftests/native-theme/box-shadow-input.html
new file mode 100644
index 000000000..fbdd76003
--- /dev/null
+++ b/layout/reftests/native-theme/box-shadow-input.html
@@ -0,0 +1 @@
+<input style="box-shadow: 10px 10px gold;">
diff --git a/layout/reftests/native-theme/box-shadow-listbox-ref.html b/layout/reftests/native-theme/box-shadow-listbox-ref.html
new file mode 100644
index 000000000..437cbd1c1
--- /dev/null
+++ b/layout/reftests/native-theme/box-shadow-listbox-ref.html
@@ -0,0 +1,4 @@
+<select size="2">
+ <option>Hello</option>
+ <option>Kitty</option>
+</select>
diff --git a/layout/reftests/native-theme/box-shadow-listbox.html b/layout/reftests/native-theme/box-shadow-listbox.html
new file mode 100644
index 000000000..d70fa5eeb
--- /dev/null
+++ b/layout/reftests/native-theme/box-shadow-listbox.html
@@ -0,0 +1,4 @@
+<select size="2" style="box-shadow: 10px 10px gold;">
+ <option>Hello</option>
+ <option>Kitty</option>
+</select>
diff --git a/layout/reftests/native-theme/button-html-not-blank.html b/layout/reftests/native-theme/button-html-not-blank.html
new file mode 100644
index 000000000..e6c324fc6
--- /dev/null
+++ b/layout/reftests/native-theme/button-html-not-blank.html
@@ -0,0 +1 @@
+<button></button>
diff --git a/layout/reftests/native-theme/button-native.html b/layout/reftests/native-theme/button-native.html
new file mode 100644
index 000000000..852ede890
--- /dev/null
+++ b/layout/reftests/native-theme/button-native.html
@@ -0,0 +1,2 @@
+<!DOCTYPE HTML>
+<input type="button" value="Button">
diff --git a/layout/reftests/native-theme/button-nonnative-when-styled-ref.html b/layout/reftests/native-theme/button-nonnative-when-styled-ref.html
new file mode 100644
index 000000000..a3d4271c0
--- /dev/null
+++ b/layout/reftests/native-theme/button-nonnative-when-styled-ref.html
@@ -0,0 +1,17 @@
+<!DOCTYPE HTML>
+<!-- these should make the input non-native -->
+<input type="button" value="Button" style="-moz-appearance: none; border-width: 0">
+<input type="button" value="Button" style="-moz-appearance: none; border-width: 1px">
+<input type="button" value="Button" style="-moz-appearance: none; border-width: 2px">
+<input type="button" value="Button" style="-moz-appearance: none; border-width: 3px">
+<input type="button" value="Button" style="-moz-appearance: none; border-width: 4px">
+<input type="button" value="Button" style="-moz-appearance: none; border-width: 5px">
+<input type="button" value="Button" style="-moz-appearance: none; border-width: 6px">
+<input type="button" value="Button" style="-moz-appearance: none; border-style: dotted">
+<input type="button" value="Button" style="-moz-appearance: none; border-color: green">
+<input type="button" value="Button" style="-moz-appearance: none; background-color: transparent">
+<input type="button" value="Button" style="-moz-appearance: none; background-color: white">
+
+<!-- these should let it stay native -->
+<input type="button" value="">
+<input type="button" value="">
diff --git a/layout/reftests/native-theme/button-nonnative-when-styled.html b/layout/reftests/native-theme/button-nonnative-when-styled.html
new file mode 100644
index 000000000..311a43daa
--- /dev/null
+++ b/layout/reftests/native-theme/button-nonnative-when-styled.html
@@ -0,0 +1,17 @@
+<!DOCTYPE HTML>
+<!-- these should make the input non-native -->
+<input type="button" value="Button" style="border-width: 0">
+<input type="button" value="Button" style="border-width: 1px">
+<input type="button" value="Button" style="border-width: 2px">
+<input type="button" value="Button" style="border-width: 3px">
+<input type="button" value="Button" style="border-width: 4px">
+<input type="button" value="Button" style="border-width: 5px">
+<input type="button" value="Button" style="border-width: 6px">
+<input type="button" value="Button" style="border-style: dotted">
+<input type="button" value="Button" style="border-color: green">
+<input type="button" value="Button" style="background-color: transparent">
+<input type="button" value="Button" style="background-color: white">
+
+<!-- these should let it stay native -->
+<input type="button" value="" style="color: black">
+<input type="button" value="" style="font-weight: normal">
diff --git a/layout/reftests/native-theme/button-nonnative.html b/layout/reftests/native-theme/button-nonnative.html
new file mode 100644
index 000000000..fde9523b4
--- /dev/null
+++ b/layout/reftests/native-theme/button-nonnative.html
@@ -0,0 +1,2 @@
+<!DOCTYPE HTML>
+<input type="button" value="Button" style="-moz-appearance: none">
diff --git a/layout/reftests/native-theme/button-not-blank.html b/layout/reftests/native-theme/button-not-blank.html
new file mode 100644
index 000000000..95baf49c6
--- /dev/null
+++ b/layout/reftests/native-theme/button-not-blank.html
@@ -0,0 +1 @@
+<input type="button">
diff --git a/layout/reftests/native-theme/checkbox-dynamic-1-ref.html b/layout/reftests/native-theme/checkbox-dynamic-1-ref.html
new file mode 100644
index 000000000..8d745c4a6
--- /dev/null
+++ b/layout/reftests/native-theme/checkbox-dynamic-1-ref.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ #checkbox {
+ position: absolute;
+ left: 0px;
+ top: 0px;
+ background: -moz-linear-gradient(left, white, brown);
+ }
+ </style>
+</head>
+<body>
+ <div id="checkbox">
+ <input type="checkbox">
+ </div>
+</body>
+</html>
diff --git a/layout/reftests/native-theme/checkbox-dynamic-1.html b/layout/reftests/native-theme/checkbox-dynamic-1.html
new file mode 100644
index 000000000..bab50a866
--- /dev/null
+++ b/layout/reftests/native-theme/checkbox-dynamic-1.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<head>
+ <style>
+ #checkbox {
+ position: absolute;
+ left: 0px;
+ top: 0px;
+ background: -moz-linear-gradient(left, white, brown);
+ }
+ #toremove {
+ position: absolute;
+ left: 0px;
+ top: 0px;
+ width: 100px;
+ height: 0px;
+ background: black;
+ }
+ </style>
+</head>
+<body>
+ <div id="checkbox">
+ <input type="checkbox">
+ </div>
+ <div id="toremove">
+ </div>
+</body>
+<script type="text/javascript">
+ var checkBox = document.getElementById("checkbox");
+ var toRemove = document.getElementById("toremove");
+ toRemove.style.height = checkBox.offsetHeight / 2 + 0.2 + "px";
+ function boom()
+ {
+ toRemove.parentNode.removeChild(toRemove);
+ document.documentElement.className = "";
+ }
+ window.addEventListener("MozReftestInvalidate", boom, false);
+</script>
+</html>
diff --git a/layout/reftests/native-theme/checkbox-native.html b/layout/reftests/native-theme/checkbox-native.html
new file mode 100644
index 000000000..e067ca405
--- /dev/null
+++ b/layout/reftests/native-theme/checkbox-native.html
@@ -0,0 +1,2 @@
+<!DOCTYPE HTML>
+<input type="checkbox">
diff --git a/layout/reftests/native-theme/checkbox-nonnative.html b/layout/reftests/native-theme/checkbox-nonnative.html
new file mode 100644
index 000000000..3c0c11455
--- /dev/null
+++ b/layout/reftests/native-theme/checkbox-nonnative.html
@@ -0,0 +1,2 @@
+<!DOCTYPE HTML>
+<input type="checkbox" style="-moz-appearance: none">
diff --git a/layout/reftests/native-theme/checkbox-not-blank.html b/layout/reftests/native-theme/checkbox-not-blank.html
new file mode 100644
index 000000000..74c06d253
--- /dev/null
+++ b/layout/reftests/native-theme/checkbox-not-blank.html
@@ -0,0 +1 @@
+<input type="checkbox">
diff --git a/layout/reftests/native-theme/checkbox-not-mirrored-when-rtl-ref.html b/layout/reftests/native-theme/checkbox-not-mirrored-when-rtl-ref.html
new file mode 100644
index 000000000..801569d37
--- /dev/null
+++ b/layout/reftests/native-theme/checkbox-not-mirrored-when-rtl-ref.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<input type="checkbox" checked="checked" style="margin:3px">
diff --git a/layout/reftests/native-theme/checkbox-not-mirrored-when-rtl.html b/layout/reftests/native-theme/checkbox-not-mirrored-when-rtl.html
new file mode 100644
index 000000000..9221953df
--- /dev/null
+++ b/layout/reftests/native-theme/checkbox-not-mirrored-when-rtl.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<input type="checkbox" checked="checked" dir="rtl" style="margin:3px">
diff --git a/layout/reftests/native-theme/checkbox-still-native-when-styled-ref.html b/layout/reftests/native-theme/checkbox-still-native-when-styled-ref.html
new file mode 100644
index 000000000..064888b29
--- /dev/null
+++ b/layout/reftests/native-theme/checkbox-still-native-when-styled-ref.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML>
+<input type="checkbox">
+<input type="checkbox">
+<input type="checkbox">
+<input type="checkbox">
+<input type="checkbox">
+<input type="checkbox">
+<input type="checkbox">
+<input type="checkbox">
+<input type="checkbox">
+<input type="checkbox">
+<input type="checkbox">
+<input type="checkbox">
+<input type="checkbox">
diff --git a/layout/reftests/native-theme/checkbox-still-native-when-styled.html b/layout/reftests/native-theme/checkbox-still-native-when-styled.html
new file mode 100644
index 000000000..84a49f48e
--- /dev/null
+++ b/layout/reftests/native-theme/checkbox-still-native-when-styled.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML>
+<input type="checkbox" style="border-width: 0">
+<input type="checkbox" style="border-width: 1px">
+<input type="checkbox" style="border-width: 2px">
+<input type="checkbox" style="border-width: 3px">
+<input type="checkbox" style="border-width: 4px">
+<input type="checkbox" style="border-width: 5px">
+<input type="checkbox" style="border-width: 6px">
+<input type="checkbox" style="border-style: dotted">
+<input type="checkbox" style="border-color: green">
+<input type="checkbox" style="background-color: transparent">
+<input type="checkbox" style="background-color: white">
+<input type="checkbox" style="color: black">
+<input type="checkbox" style="font-weight: normal">
diff --git a/layout/reftests/native-theme/combobox-native.html b/layout/reftests/native-theme/combobox-native.html
new file mode 100644
index 000000000..2aa54c885
--- /dev/null
+++ b/layout/reftests/native-theme/combobox-native.html
@@ -0,0 +1,2 @@
+<!DOCTYPE HTML>
+<select size="1"></select>
diff --git a/layout/reftests/native-theme/combobox-nonnative-when-styled-ref.html b/layout/reftests/native-theme/combobox-nonnative-when-styled-ref.html
new file mode 100644
index 000000000..d2f3124de
--- /dev/null
+++ b/layout/reftests/native-theme/combobox-nonnative-when-styled-ref.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML>
+<div style="position:relative">
+<!-- mask the dropdown button -->
+<div style="position:absolute; width:50px; left:7px; top:0; bottom:0; background:black;"></div>
+<!-- these should make the select non-native -->
+<select size="1" style="-moz-appearance: none; border-width: 0"></select><br>
+<select size="1" style="-moz-appearance: none; border-width: 1px"></select><br>
+<select size="1" style="-moz-appearance: none; border-width: 2px"></select><br>
+<select size="1" style="-moz-appearance: none; border-width: 3px"></select><br>
+<select size="1" style="-moz-appearance: none; border-width: 4px"></select><br>
+<select size="1" style="-moz-appearance: none; border-width: 5px"></select><br>
+<select size="1" style="-moz-appearance: none; border-width: 6px"></select><br>
+<select size="1" style="-moz-appearance: none; border-style: dotted"></select><br>
+<select size="1" style="-moz-appearance: none; border-color: green"></select><br>
+<select size="1" style="-moz-appearance: none; background-color: transparent"></select><br>
+<select size="1" style="-moz-appearance: none; background-color: white"></select><br>
+</div>
+
+<!-- these should let it stay native -->
+<select size="1"></select>
+<select size="1"></select>
diff --git a/layout/reftests/native-theme/combobox-nonnative-when-styled.html b/layout/reftests/native-theme/combobox-nonnative-when-styled.html
new file mode 100644
index 000000000..57a80a694
--- /dev/null
+++ b/layout/reftests/native-theme/combobox-nonnative-when-styled.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML>
+<div style="position:relative">
+<!-- mask the dropdown button -->
+<div style="position:absolute; width:50px; left:7px; top:0; bottom:0; background:black;"></div>
+<!-- these should make the select non-native -->
+<select size="1" style="border-width: 0"></select><br>
+<select size="1" style="border-width: 1px"></select><br>
+<select size="1" style="border-width: 2px"></select><br>
+<select size="1" style="border-width: 3px"></select><br>
+<select size="1" style="border-width: 4px"></select><br>
+<select size="1" style="border-width: 5px"></select><br>
+<select size="1" style="border-width: 6px"></select><br>
+<select size="1" style="border-style: dotted"></select><br>
+<select size="1" style="border-color: green"></select><br>
+<select size="1" style="background-color: transparent"></select><br>
+<select size="1" style="background-color: white"></select><br>
+</div>
+
+<!-- these should let it stay native -->
+<select size="1" style="color: black"></select>
+<select size="1" style="font-weight: normal"></select>
diff --git a/layout/reftests/native-theme/combobox-nonnative.html b/layout/reftests/native-theme/combobox-nonnative.html
new file mode 100644
index 000000000..6683cdbe0
--- /dev/null
+++ b/layout/reftests/native-theme/combobox-nonnative.html
@@ -0,0 +1,2 @@
+<!DOCTYPE HTML>
+<select size="1" style="-moz-appearance: none"></select>
diff --git a/layout/reftests/native-theme/combobox-not-blank.html b/layout/reftests/native-theme/combobox-not-blank.html
new file mode 100644
index 000000000..19c00bb60
--- /dev/null
+++ b/layout/reftests/native-theme/combobox-not-blank.html
@@ -0,0 +1 @@
+<select size="1"></select>
diff --git a/layout/reftests/native-theme/fieldset-not-blank.html b/layout/reftests/native-theme/fieldset-not-blank.html
new file mode 100644
index 000000000..8c2da9831
--- /dev/null
+++ b/layout/reftests/native-theme/fieldset-not-blank.html
@@ -0,0 +1 @@
+<fieldset></fieldset>
diff --git a/layout/reftests/native-theme/file-not-blank.html b/layout/reftests/native-theme/file-not-blank.html
new file mode 100644
index 000000000..c8bc13153
--- /dev/null
+++ b/layout/reftests/native-theme/file-not-blank.html
@@ -0,0 +1 @@
+<input type="file">
diff --git a/layout/reftests/native-theme/listbox-native.html b/layout/reftests/native-theme/listbox-native.html
new file mode 100644
index 000000000..d5b29a4f6
--- /dev/null
+++ b/layout/reftests/native-theme/listbox-native.html
@@ -0,0 +1,2 @@
+<!DOCTYPE HTML>
+<select size="3"></select>
diff --git a/layout/reftests/native-theme/listbox-nonnative-when-styled-ref.html b/layout/reftests/native-theme/listbox-nonnative-when-styled-ref.html
new file mode 100644
index 000000000..b70a26073
--- /dev/null
+++ b/layout/reftests/native-theme/listbox-nonnative-when-styled-ref.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML>
+<!-- these should make the select non-native -->
+<body onload="dump('\nDEBUG-bug660226: ' + document.activeElement + '\n\n');">
+<select size="3" style="-moz-appearance: none; border-width: 0"></select>
+<select size="3" style="-moz-appearance: none; border-width: 1px"></select>
+<select size="3" style="-moz-appearance: none; border-width: 2px"></select>
+<select size="3" style="-moz-appearance: none; border-width: 3px"></select>
+<select size="3" style="-moz-appearance: none; border-width: 4px"></select>
+<select size="3" style="-moz-appearance: none; border-width: 5px"></select>
+<select size="3" style="-moz-appearance: none; border-width: 6px"></select>
+<select size="3" style="-moz-appearance: none; border-style: dotted"></select>
+<select size="3" style="-moz-appearance: none; border-color: green"></select>
+<select size="3" style="-moz-appearance: none; background-color: transparent"></select>
+<select size="3" style="-moz-appearance: none; background-color: white"></select>
+
+<!-- these should let it stay native -->
+<select size="3" style="color: black"></select>
+<select size="3" style="font-weight: normal"></select>
+</body>
diff --git a/layout/reftests/native-theme/listbox-nonnative-when-styled.html b/layout/reftests/native-theme/listbox-nonnative-when-styled.html
new file mode 100644
index 000000000..26024bfd6
--- /dev/null
+++ b/layout/reftests/native-theme/listbox-nonnative-when-styled.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML>
+<body onload="dump('\nDEBUG-bug660226: ' + document.activeElement + '\n\n');">
+<!-- these should make the select non-native -->
+<select size="3" style="border-width: 0"></select>
+<select size="3" style="border-width: 1px"></select>
+<select size="3" style="border-width: 2px"></select>
+<select size="3" style="border-width: 3px"></select>
+<select size="3" style="border-width: 4px"></select>
+<select size="3" style="border-width: 5px"></select>
+<select size="3" style="border-width: 6px"></select>
+<select size="3" style="border-style: dotted"></select>
+<select size="3" style="border-color: green"></select>
+<select size="3" style="background-color: transparent"></select>
+<select size="3" style="background-color: white"></select>
+
+<!-- these should let it stay native -->
+<select size="3" style="color: black"></select>
+<select size="3" style="font-weight: normal"></select>
+</body>
diff --git a/layout/reftests/native-theme/listbox-nonnative.html b/layout/reftests/native-theme/listbox-nonnative.html
new file mode 100644
index 000000000..a3f0efc59
--- /dev/null
+++ b/layout/reftests/native-theme/listbox-nonnative.html
@@ -0,0 +1,2 @@
+<!DOCTYPE HTML>
+<select size="3" style="-moz-appearance: none"></select>
diff --git a/layout/reftests/native-theme/listbox-not-blank.html b/layout/reftests/native-theme/listbox-not-blank.html
new file mode 100644
index 000000000..05dbce867
--- /dev/null
+++ b/layout/reftests/native-theme/listbox-not-blank.html
@@ -0,0 +1 @@
+<select size="3"></select>
diff --git a/layout/reftests/native-theme/menulist-mirrored-when-rtl-ref.xul b/layout/reftests/native-theme/menulist-mirrored-when-rtl-ref.xul
new file mode 100644
index 000000000..a73422b02
--- /dev/null
+++ b/layout/reftests/native-theme/menulist-mirrored-when-rtl-ref.xul
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+
+<window title="mirrored menulist"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <hbox>
+ <menulist width="200" style="-moz-transform: scaleX(-1);"/>
+ <menulist editable="true" width="200" style="-moz-transform: scaleX(-1);"/>
+ <spacer flex="1"/>
+ </hbox>
+</window>
diff --git a/layout/reftests/native-theme/menulist-mirrored-when-rtl.xul b/layout/reftests/native-theme/menulist-mirrored-when-rtl.xul
new file mode 100644
index 000000000..71fb7446a
--- /dev/null
+++ b/layout/reftests/native-theme/menulist-mirrored-when-rtl.xul
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+
+<window title="RTL menulist"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <hbox>
+ <menulist width="200" style="direction: rtl;"/>
+ <menulist editable="true" width="200" style="direction: rtl;"/>
+ <spacer flex="1"/>
+ </hbox>
+</window>
diff --git a/layout/reftests/native-theme/native-theme-disabled-cascade-levels-ref.html b/layout/reftests/native-theme/native-theme-disabled-cascade-levels-ref.html
new file mode 100644
index 000000000..d6b2efccf
--- /dev/null
+++ b/layout/reftests/native-theme/native-theme-disabled-cascade-levels-ref.html
@@ -0,0 +1,6 @@
+<!DOCTYPE HTML>
+<input type="text" value="Themed">
+<input type="text" value="Not Themed" style="-moz-appearance: none">
+<input type="text" value="Not Themed" style="-moz-appearance: none">
+<input type="text" value="Not Themed" style="-moz-appearance: none">
+<input type="text" value="Not Themed" style="-moz-appearance: none">
diff --git a/layout/reftests/native-theme/native-theme-disabled-cascade-levels.html b/layout/reftests/native-theme/native-theme-disabled-cascade-levels.html
new file mode 100644
index 000000000..283bd7ff3
--- /dev/null
+++ b/layout/reftests/native-theme/native-theme-disabled-cascade-levels.html
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML>
+<style type="text/css">
+#four { background-image: none; }
+#five { background-image: none ! important; }
+</style>
+<input type="text" value="Themed">
+<input type="text" value="Not Themed" style="background-image: none">
+<input type="text" value="Not Themed" style="background-image: none ! important">
+<input type="text" value="Not Themed" id="four">
+<input type="text" value="Not Themed" id="five">
diff --git a/layout/reftests/native-theme/progress-nobar.html b/layout/reftests/native-theme/progress-nobar.html
new file mode 100644
index 000000000..a485d38c9
--- /dev/null
+++ b/layout/reftests/native-theme/progress-nobar.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html>
+ <body>
+ <div style="-moz-appearance: progressbar; width:180px; height:6px;">
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/native-theme/progress-overflow-ref.html b/layout/reftests/native-theme/progress-overflow-ref.html
new file mode 100644
index 000000000..22b3dbedd
--- /dev/null
+++ b/layout/reftests/native-theme/progress-overflow-ref.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <body>
+ <div style="overflow: hidden; -moz-appearance: progressbar; width:180px; height:40px;">
+ <div style="-moz-appearance: progresschunk; width:50%; height:100%;">
+ </div>
+ </div>
+ </body>
+</html>
+
diff --git a/layout/reftests/native-theme/progress-overflow-small.html b/layout/reftests/native-theme/progress-overflow-small.html
new file mode 100644
index 000000000..96bccb29a
--- /dev/null
+++ b/layout/reftests/native-theme/progress-overflow-small.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+ <body>
+ <div style="-moz-appearance: progressbar; width:180px; height:6px;">
+ <div style="-moz-appearance: progresschunk; width:50%; height:100%;">
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/native-theme/progress-overflow.html b/layout/reftests/native-theme/progress-overflow.html
new file mode 100644
index 000000000..d5611c473
--- /dev/null
+++ b/layout/reftests/native-theme/progress-overflow.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+ <body>
+ <div style="-moz-appearance: progressbar; width:180px; height:40px;">
+ <div style="-moz-appearance: progresschunk; width:50%; height:100%;">
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/layout/reftests/native-theme/radio-native.html b/layout/reftests/native-theme/radio-native.html
new file mode 100644
index 000000000..af2d497fe
--- /dev/null
+++ b/layout/reftests/native-theme/radio-native.html
@@ -0,0 +1,2 @@
+<!DOCTYPE HTML>
+<input type="radio">
diff --git a/layout/reftests/native-theme/radio-nonnative.html b/layout/reftests/native-theme/radio-nonnative.html
new file mode 100644
index 000000000..4c2a74b4e
--- /dev/null
+++ b/layout/reftests/native-theme/radio-nonnative.html
@@ -0,0 +1,2 @@
+<!DOCTYPE HTML>
+<input type="radio" style="-moz-appearance: none">
diff --git a/layout/reftests/native-theme/radio-not-blank.html b/layout/reftests/native-theme/radio-not-blank.html
new file mode 100644
index 000000000..1fcf43ef4
--- /dev/null
+++ b/layout/reftests/native-theme/radio-not-blank.html
@@ -0,0 +1 @@
+<input type="radio">
diff --git a/layout/reftests/native-theme/radio-still-native-when-styled-ref.html b/layout/reftests/native-theme/radio-still-native-when-styled-ref.html
new file mode 100644
index 000000000..b8c940bdd
--- /dev/null
+++ b/layout/reftests/native-theme/radio-still-native-when-styled-ref.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML>
+<input type="radio">
+<input type="radio">
+<input type="radio">
+<input type="radio">
+<input type="radio">
+<input type="radio">
+<input type="radio">
+<input type="radio">
+<input type="radio">
+<input type="radio">
+<input type="radio">
+<input type="radio">
+<input type="radio">
diff --git a/layout/reftests/native-theme/radio-still-native-when-styled.html b/layout/reftests/native-theme/radio-still-native-when-styled.html
new file mode 100644
index 000000000..a98fafcd7
--- /dev/null
+++ b/layout/reftests/native-theme/radio-still-native-when-styled.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML>
+<input type="radio" style="border-width: 0">
+<input type="radio" style="border-width: 1px">
+<input type="radio" style="border-width: 2px">
+<input type="radio" style="border-width: 3px">
+<input type="radio" style="border-width: 4px">
+<input type="radio" style="border-width: 5px">
+<input type="radio" style="border-width: 6px">
+<input type="radio" style="border-style: dotted">
+<input type="radio" style="border-color: green">
+<input type="radio" style="background-color: transparent">
+<input type="radio" style="background-color: white">
+<input type="radio" style="color: black">
+<input type="radio" style="font-weight: normal">
diff --git a/layout/reftests/native-theme/reftest-stylo.list b/layout/reftests/native-theme/reftest-stylo.list
new file mode 100644
index 000000000..f5cf1b75a
--- /dev/null
+++ b/layout/reftests/native-theme/reftest-stylo.list
@@ -0,0 +1,88 @@
+# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
+skip == button-html-not-blank.html button-html-not-blank.html
+skip == button-not-blank.html button-not-blank.html
+skip == checkbox-not-blank.html checkbox-not-blank.html
+skip == combobox-not-blank.html combobox-not-blank.html
+skip == fieldset-not-blank.html fieldset-not-blank.html
+skip == file-not-blank.html file-not-blank.html
+skip == listbox-not-blank.html listbox-not-blank.html
+skip == radio-not-blank.html radio-not-blank.html
+skip == text-control-not-blank.html text-control-not-blank.html
+skip == textarea-not-blank.html textarea-not-blank.html
+
+# The following tests will fail if the platform does not have native
+# theme support (which all platforms should have).
+fails-if(!nativeThemePref) == text-input-native.html text-input-native.html
+fails fuzzy-if(skiaContent,2,88) == text-input-nonnative-when-styled.html text-input-nonnative-when-styled.html
+fails-if(!nativeThemePref) == textarea-native.html textarea-native.html
+fails fuzzy-if(skiaContent,2,53) == textarea-nonnative-when-styled.html textarea-nonnative-when-styled.html
+fails-if(!nativeThemePref) == button-native.html button-native.html
+== button-nonnative-when-styled.html button-nonnative-when-styled.html
+skip fails-if(!nativeThemePref&&!Android) == combobox-native.html combobox-native.html
+== combobox-nonnative-when-styled.html combobox-nonnative-when-styled.html
+fails-if(!nativeThemePref) needs-focus == listbox-native.html listbox-native.html
+needs-focus == listbox-nonnative-when-styled.html listbox-nonnative-when-styled.html
+fails-if(!nativeThemePref) == radio-native.html radio-native.html
+== radio-still-native-when-styled.html radio-still-native-when-styled.html
+fails-if(!nativeThemePref) == checkbox-native.html checkbox-native.html
+== checkbox-still-native-when-styled.html checkbox-still-native-when-styled.html
+== native-theme-disabled-cascade-levels.html native-theme-disabled-cascade-levels.html
+
+== 427122-1.html 427122-1.html
+
+# 403458 is a Windows-only bug
+skip-if(!winWidget) == 403458-winmenu-ltr.xul 403458-winmenu-ltr.xul
+
+== 470711-1.xul 470711-1.xul
+
+== 482955-1.xul 482955-1.xul
+
+== 492155-1.html 492155-1.html
+== 492155-2.html 492155-2.html
+== 492155-3.html 492155-3.html
+fails-if(Android&&!asyncPan) == 492155-4.html 492155-4.html
+
+== box-shadow-input.html box-shadow-input.html
+== box-shadow-button.html box-shadow-button.html
+== box-shadow-listbox.html box-shadow-listbox.html
+== box-shadow-combobox.html box-shadow-combobox.html
+
+# RTL mirroring tests
+== checkbox-not-mirrored-when-rtl.html checkbox-not-mirrored-when-rtl.html
+skip-if(!cocoaWidget) == menulist-mirrored-when-rtl.xul menulist-mirrored-when-rtl.xul
+skip-if(!cocoaWidget) == searchfield-mirrored-when-rtl.xul searchfield-mirrored-when-rtl.xul
+skip-if(!cocoaWidget) == select-mirrored-when-rtl.html select-mirrored-when-rtl.html
+
+== resizer-bottomend.xul resizer-bottomend.xul
+random-if(d2d) == resizer-bottomend.xul resizer-bottomend.xul
+# bug 581086
+== resizer-bottomend.xul resizer-bottomend.xul
+skip-if(gtkWidget) == resizer-bottomend-rtl.xul resizer-bottomend-rtl.xul
+skip-if(gtkWidget) random-if(d2d) == resizer-bottomend-rtl.xul resizer-bottomend-rtl.xul
+# bug 581086
+
+== resizer-bottomstart.xul resizer-bottomstart.xul
+random-if(d2d) == resizer-bottomstart.xul resizer-bottomstart.xul
+random-if(d2d) == resizer-bottomstart.xul resizer-bottomstart.xul
+== resizer-bottomstart.xul resizer-bottomstart.xul
+skip-if(gtkWidget) == resizer-bottomstart-rtl.xul resizer-bottomstart-rtl.xul
+skip-if(gtkWidget) random-if(d2d) == resizer-bottomstart-rtl.xul resizer-bottomstart-rtl.xul
+
+# Windows-only, depends on native scrollbar metrics
+skip-if(!winWidget) == scroll-thumb-minimum-size-notheme.html scroll-thumb-minimum-size-notheme.html
+# skip-if(!winWidget) == scroll-thumb-minimum-size-theme.html scroll-thumb-minimum-size-theme.html
+# Bug 512206
+
+== border-radius.html border-radius.html
+
+== checkbox-dynamic-1.html checkbox-dynamic-1.html
+
+# These tests have been written to test the overflow of the window widget
+# (bug 568825) but we can't test it on Windows and Cocoa because they have
+# animated progress bars.
+# Nothing shows up on Android, presumably because that appearance type is
+# not implemented.
+skip-if(cocoaWidget) skip-if(winWidget) == progress-overflow.html progress-overflow.html
+fails-if(Android) skip-if(cocoaWidget) skip-if(winWidget) == progress-overflow-small.html progress-overflow-small.html
+
+== 676387-1.xul 676387-1.xul
diff --git a/layout/reftests/native-theme/reftest.list b/layout/reftests/native-theme/reftest.list
new file mode 100644
index 000000000..c2df3caaa
--- /dev/null
+++ b/layout/reftests/native-theme/reftest.list
@@ -0,0 +1,84 @@
+!= button-html-not-blank.html about:blank
+!= button-not-blank.html about:blank
+!= checkbox-not-blank.html about:blank
+!= combobox-not-blank.html about:blank
+!= fieldset-not-blank.html about:blank
+!= file-not-blank.html about:blank
+!= listbox-not-blank.html about:blank
+!= radio-not-blank.html about:blank
+!= text-control-not-blank.html about:blank
+!= textarea-not-blank.html about:blank
+
+# The following tests will fail if the platform does not have native
+# theme support (which all platforms should have).
+fails-if(!nativeThemePref) != text-input-native.html text-input-nonnative.html
+fuzzy-if(skiaContent,2,88) == text-input-nonnative-when-styled.html text-input-nonnative-when-styled-ref.html
+fails-if(!nativeThemePref) != textarea-native.html textarea-nonnative.html
+fuzzy-if(skiaContent,2,53) == textarea-nonnative-when-styled.html textarea-nonnative-when-styled-ref.html
+fails-if(!nativeThemePref) != button-native.html button-nonnative.html
+== button-nonnative-when-styled.html button-nonnative-when-styled-ref.html
+fails-if(!nativeThemePref&&!Android) != combobox-native.html combobox-nonnative.html
+== combobox-nonnative-when-styled.html combobox-nonnative-when-styled-ref.html
+fails-if(!nativeThemePref) needs-focus != listbox-native.html listbox-nonnative.html
+needs-focus == listbox-nonnative-when-styled.html listbox-nonnative-when-styled-ref.html
+fails-if(!nativeThemePref) != radio-native.html radio-nonnative.html
+== radio-still-native-when-styled.html radio-still-native-when-styled-ref.html
+fails-if(!nativeThemePref) != checkbox-native.html checkbox-nonnative.html
+== checkbox-still-native-when-styled.html checkbox-still-native-when-styled-ref.html
+== native-theme-disabled-cascade-levels.html native-theme-disabled-cascade-levels-ref.html
+
+!= 427122-1.html 427122-1-ref.html
+
+# 403458 is a Windows-only bug
+skip-if(!winWidget) != 403458-winmenu-ltr.xul 403458-winmenu-rtl.xul
+
+== 470711-1.xul 470711-1-ref.xul
+
+== 482955-1.xul 482955-1-ref.xul
+
+== 492155-1.html about:blank
+== 492155-2.html about:blank
+== 492155-3.html about:blank
+fails-if(Android&&!asyncPan) != 492155-4.html about:blank
+
+!= box-shadow-input.html box-shadow-input-ref.html
+!= box-shadow-button.html box-shadow-button-ref.html
+!= box-shadow-listbox.html box-shadow-listbox-ref.html
+!= box-shadow-combobox.html box-shadow-combobox-ref.html
+
+# RTL mirroring tests
+== checkbox-not-mirrored-when-rtl.html checkbox-not-mirrored-when-rtl-ref.html
+skip-if(!cocoaWidget) == menulist-mirrored-when-rtl.xul menulist-mirrored-when-rtl-ref.xul
+skip-if(!cocoaWidget) == searchfield-mirrored-when-rtl.xul searchfield-mirrored-when-rtl-ref.xul
+skip-if(!cocoaWidget) == select-mirrored-when-rtl.html select-mirrored-when-rtl-ref.html
+
+!= resizer-bottomend.xul blank-window.xul
+random-if(d2d) == resizer-bottomend.xul resizer-bottomright.xul # bug 581086
+!= resizer-bottomend.xul resizer-bottomend-rtl.xul
+skip-if(gtkWidget) != resizer-bottomend-rtl.xul blank-window.xul
+skip-if(gtkWidget) random-if(d2d) == resizer-bottomend-rtl.xul resizer-bottomend-flipped.xul # bug 581086
+
+!= resizer-bottomstart.xul blank-window.xul
+random-if(d2d) == resizer-bottomstart.xul resizer-bottomleft.xul
+random-if(d2d) == resizer-bottomstart.xul resizer-left.xul
+!= resizer-bottomstart.xul resizer-bottomstart-rtl.xul
+skip-if(gtkWidget) != resizer-bottomstart-rtl.xul blank-window.xul
+skip-if(gtkWidget) random-if(d2d) == resizer-bottomstart-rtl.xul resizer-bottomend.xul
+
+# Windows-only, depends on native scrollbar metrics
+skip-if(!winWidget) == scroll-thumb-minimum-size-notheme.html scroll-thumb-minimum-size-notheme-ref.html
+# skip-if(!winWidget) == scroll-thumb-minimum-size-theme.html scroll-thumb-minimum-size-theme-ref.html # Bug 512206
+
+== border-radius.html border-radius-ref.html
+
+== checkbox-dynamic-1.html checkbox-dynamic-1-ref.html
+
+# These tests have been written to test the overflow of the window widget
+# (bug 568825) but we can't test it on Windows and Cocoa because they have
+# animated progress bars.
+# Nothing shows up on Android, presumably because that appearance type is
+# not implemented.
+skip-if(cocoaWidget) skip-if(winWidget) == progress-overflow.html progress-overflow-ref.html
+fails-if(Android) skip-if(cocoaWidget) skip-if(winWidget) != progress-overflow-small.html progress-nobar.html
+
+== 676387-1.xul 676387-1-ref.xul
diff --git a/layout/reftests/native-theme/resizer-bottomend-flipped.xul b/layout/reftests/native-theme/resizer-bottomend-flipped.xul
new file mode 100644
index 000000000..513ead7b6
--- /dev/null
+++ b/layout/reftests/native-theme/resizer-bottomend-flipped.xul
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+
+<window title="Resizer"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <hbox>
+ <resizer dir="bottomend" style="-moz-transform: scaleX(-1)"/>
+ <spacer flex="1"/>
+ </hbox>
+</window>
diff --git a/layout/reftests/native-theme/resizer-bottomend-rtl.xul b/layout/reftests/native-theme/resizer-bottomend-rtl.xul
new file mode 100644
index 000000000..263c3b50e
--- /dev/null
+++ b/layout/reftests/native-theme/resizer-bottomend-rtl.xul
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+
+<window title="Resizer"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <hbox>
+ <resizer dir="bottomend" style="direction: rtl"/>
+ <spacer flex="1"/>
+ </hbox>
+</window>
diff --git a/layout/reftests/native-theme/resizer-bottomend.xul b/layout/reftests/native-theme/resizer-bottomend.xul
new file mode 100644
index 000000000..a6023ce68
--- /dev/null
+++ b/layout/reftests/native-theme/resizer-bottomend.xul
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+
+<window title="Resizer"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <hbox>
+ <resizer dir="bottomend"/>
+ <spacer flex="1"/>
+ </hbox>
+</window>
diff --git a/layout/reftests/native-theme/resizer-bottomleft.xul b/layout/reftests/native-theme/resizer-bottomleft.xul
new file mode 100644
index 000000000..3bbf13020
--- /dev/null
+++ b/layout/reftests/native-theme/resizer-bottomleft.xul
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+
+<window title="Resizer"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <hbox>
+ <resizer dir="bottomleft"/>
+ <spacer flex="1"/>
+ </hbox>
+</window>
diff --git a/layout/reftests/native-theme/resizer-bottomright.xul b/layout/reftests/native-theme/resizer-bottomright.xul
new file mode 100644
index 000000000..d00935a20
--- /dev/null
+++ b/layout/reftests/native-theme/resizer-bottomright.xul
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+
+<window title="Resizer"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <hbox>
+ <resizer dir="bottomright"/>
+ <spacer flex="1"/>
+ </hbox>
+</window>
diff --git a/layout/reftests/native-theme/resizer-bottomstart-rtl.xul b/layout/reftests/native-theme/resizer-bottomstart-rtl.xul
new file mode 100644
index 000000000..ac7474f5d
--- /dev/null
+++ b/layout/reftests/native-theme/resizer-bottomstart-rtl.xul
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+
+<window title="Resizer"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <hbox>
+ <resizer dir="bottomstart" style="direction: rtl"/>
+ <spacer flex="1"/>
+ </hbox>
+</window>
diff --git a/layout/reftests/native-theme/resizer-bottomstart.xul b/layout/reftests/native-theme/resizer-bottomstart.xul
new file mode 100644
index 000000000..30fad8e7b
--- /dev/null
+++ b/layout/reftests/native-theme/resizer-bottomstart.xul
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+
+<window title="Resizer"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <hbox>
+ <resizer dir="bottomstart"/>
+ <spacer flex="1"/>
+ </hbox>
+</window>
diff --git a/layout/reftests/native-theme/resizer-left.xul b/layout/reftests/native-theme/resizer-left.xul
new file mode 100644
index 000000000..8dc6cf9f7
--- /dev/null
+++ b/layout/reftests/native-theme/resizer-left.xul
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+
+<window title="Resizer"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <hbox>
+ <resizer dir="left"/>
+ <spacer flex="1"/>
+ </hbox>
+</window>
diff --git a/layout/reftests/native-theme/scroll-thumb-minimum-size-notheme-ref.html b/layout/reftests/native-theme/scroll-thumb-minimum-size-notheme-ref.html
new file mode 100644
index 000000000..16e96ad98
--- /dev/null
+++ b/layout/reftests/native-theme/scroll-thumb-minimum-size-notheme-ref.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta http-equiv="msthemecompatible" content="no">
+<div style="width: 200px; height: 200px; overflow: scroll;">
+ <div style="width: 100000px; height: 1000000px"></div>
+</div>
diff --git a/layout/reftests/native-theme/scroll-thumb-minimum-size-notheme.html b/layout/reftests/native-theme/scroll-thumb-minimum-size-notheme.html
new file mode 100644
index 000000000..e31a7a309
--- /dev/null
+++ b/layout/reftests/native-theme/scroll-thumb-minimum-size-notheme.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<meta http-equiv="msthemecompatible" content="no">
+<div style="width: 200px; height: 200px; overflow: scroll;">
+ <div style="width: 3725px; height: 3725px"></div>
+</div>
+<!--
+The size of the inner div is computed as follow:
+
+Input:
+ outer_div_size: size of the div containing the scrollbar
+ button_size: size of the scrollbar arrow buttons
+ scrollbar_thickness: width/height of a vertical/horizontal scrollbar respectively
+ thumb_size: height/width of the thumb of a vertical/horizontal scrollbar respectively
+Output:
+ inner_div_size: size of the div to be scrolled
+
+Formula:
+ slider_size = outer_div_size - 2 * button_size - scrollbar_thickness
+ thumb_size = slider_size * (outer_div_size / inner_div_size)
+ which gives:
+ inner_div_size = (outer_div_size - 2 * button_size - scrollbar_thickness) * (outer_div_size / thumb_size)
+
+Testcase constants:
+ outer_div_size = 200
+
+On XP/Vista at 96 dpi with theme disabled:
+ thumb_size = 8 (minimum size)
+ button_size = 17
+ scrollbar_thickness = 17
+
+ inner_div_size = (200 - 2 * 17 - 17) * (200 / 8) = 3725
+-->
diff --git a/layout/reftests/native-theme/scroll-thumb-minimum-size-theme-ref.html b/layout/reftests/native-theme/scroll-thumb-minimum-size-theme-ref.html
new file mode 100644
index 000000000..d592e4484
--- /dev/null
+++ b/layout/reftests/native-theme/scroll-thumb-minimum-size-theme-ref.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<div style="width: 200px; height: 200px; overflow: scroll;">
+ <div style="width: 100000px; height: 1000000px"></div>
+</div>
diff --git a/layout/reftests/native-theme/scroll-thumb-minimum-size-theme.html b/layout/reftests/native-theme/scroll-thumb-minimum-size-theme.html
new file mode 100644
index 000000000..03a539c3c
--- /dev/null
+++ b/layout/reftests/native-theme/scroll-thumb-minimum-size-theme.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<div style="width: 200px; height: 200px; overflow: scroll;">
+ <div style="width: 1753px; height: 1753px"></div>
+</div>
+<!--
+See scroll-thumb-minimum-size-notheme.html for the formula.
+
+On XP/Vista at 96 dpi with theme enabled:
+ thumb_size = 17 (minimum size)
+ button_size = 17
+ scrollbar_thickness = 17
+
+ inner_div_size = (200 - 2 * 17 - 17) * (200 / 17) = 1753
+-->
diff --git a/layout/reftests/native-theme/searchfield-mirrored-when-rtl-ref.xul b/layout/reftests/native-theme/searchfield-mirrored-when-rtl-ref.xul
new file mode 100644
index 000000000..92975447e
--- /dev/null
+++ b/layout/reftests/native-theme/searchfield-mirrored-when-rtl-ref.xul
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+
+<window title="mirrored searchfield"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <hbox>
+ <textbox type="search" width="200" id="searchbox" style="-moz-transform: scaleX(-1);"/>
+ <spacer flex="1"/>
+ </hbox>
+</window>
diff --git a/layout/reftests/native-theme/searchfield-mirrored-when-rtl.xul b/layout/reftests/native-theme/searchfield-mirrored-when-rtl.xul
new file mode 100644
index 000000000..e4a7c1012
--- /dev/null
+++ b/layout/reftests/native-theme/searchfield-mirrored-when-rtl.xul
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+
+<window title="RTL searchfield"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <hbox>
+ <textbox type="search" width="200" id="searchbox" style="direction: rtl;"/>
+ <spacer flex="1"/>
+ </hbox>
+</window>
diff --git a/layout/reftests/native-theme/select-mirrored-when-rtl-ref.html b/layout/reftests/native-theme/select-mirrored-when-rtl-ref.html
new file mode 100644
index 000000000..1713defff
--- /dev/null
+++ b/layout/reftests/native-theme/select-mirrored-when-rtl-ref.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<select style="width: 200px; -moz-transform: scaleX(-1);">
+ <option>&nbsp;</option>
+</select>
diff --git a/layout/reftests/native-theme/select-mirrored-when-rtl.html b/layout/reftests/native-theme/select-mirrored-when-rtl.html
new file mode 100644
index 000000000..8c94f9bcf
--- /dev/null
+++ b/layout/reftests/native-theme/select-mirrored-when-rtl.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<select dir="rtl" style="width: 200px;">
+ <option>&nbsp;</option>
+</select>
diff --git a/layout/reftests/native-theme/text-control-not-blank.html b/layout/reftests/native-theme/text-control-not-blank.html
new file mode 100644
index 000000000..4856de517
--- /dev/null
+++ b/layout/reftests/native-theme/text-control-not-blank.html
@@ -0,0 +1 @@
+<input type="text">
diff --git a/layout/reftests/native-theme/text-input-native.html b/layout/reftests/native-theme/text-input-native.html
new file mode 100644
index 000000000..8f5eec6b1
--- /dev/null
+++ b/layout/reftests/native-theme/text-input-native.html
@@ -0,0 +1,2 @@
+<!DOCTYPE HTML>
+<input type="text" value="">
diff --git a/layout/reftests/native-theme/text-input-nonnative-when-styled-ref.html b/layout/reftests/native-theme/text-input-nonnative-when-styled-ref.html
new file mode 100644
index 000000000..b8786e0ac
--- /dev/null
+++ b/layout/reftests/native-theme/text-input-nonnative-when-styled-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML>
+<!-- these should make the input non-native -->
+<input type="text" value="Text Input" style="-moz-appearance: none; border-width: 0">
+<input type="text" value="Text Input" style="-moz-appearance: none; border-width: 1px">
+<input type="text" value="Text Input" style="-moz-appearance: none; border-width: 2px">
+<input type="text" value="Text Input" style="-moz-appearance: none; border-width: 3px">
+<input type="text" value="Text Input" style="-moz-appearance: none; border-width: 4px">
+<input type="text" value="Text Input" style="-moz-appearance: none; border-width: 5px">
+<input type="text" value="Text Input" style="-moz-appearance: none; border-width: 6px">
+<input type="text" value="Text Input" style="-moz-appearance: none; border-style: dotted">
+<input type="text" value="Text Input" style="-moz-appearance: none; border-color: green">
+<input type="text" value="Text Input" style="-moz-appearance: none; background-color: transparent">
+<input type="text" value="Text Input" style="-moz-appearance: none; background-color: white">
+<input type="text" value="Text Input" style="-moz-appearance: none; border-top-left-radius: 0px">
+<input type="text" value="Text Input" style="-moz-appearance: none; border-top-right-radius: 1px">
+<input type="text" value="Text Input" style="-moz-appearance: none; border-bottom-right-radius: 2px">
+<input type="text" value="Text Input" style="-moz-appearance: none; border-bottom-left-radius: 3px">
+<input type="text" value="Text Input" style="-moz-appearance: none; border-inline-start-width: 3px">
+<input type="text" value="Text Input" style="-moz-appearance: none; border-inline-end-width: 3px">
+
+<!-- these should let it stay native -->
+<input type="text" value="">
+<input type="text" value="">
diff --git a/layout/reftests/native-theme/text-input-nonnative-when-styled.html b/layout/reftests/native-theme/text-input-nonnative-when-styled.html
new file mode 100644
index 000000000..327e22034
--- /dev/null
+++ b/layout/reftests/native-theme/text-input-nonnative-when-styled.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML>
+<!-- these should make the input non-native -->
+<input type="text" value="Text Input" style="border-width: 0">
+<input type="text" value="Text Input" style="border-width: 1px">
+<input type="text" value="Text Input" style="border-width: 2px">
+<input type="text" value="Text Input" style="border-width: 3px">
+<input type="text" value="Text Input" style="border-width: 4px">
+<input type="text" value="Text Input" style="border-width: 5px">
+<input type="text" value="Text Input" style="border-width: 6px">
+<input type="text" value="Text Input" style="border-style: dotted">
+<input type="text" value="Text Input" style="border-color: green">
+<input type="text" value="Text Input" style="background-color: transparent">
+<input type="text" value="Text Input" style="background-color: white">
+<input type="text" value="Text Input" style="border-top-left-radius: 0px">
+<input type="text" value="Text Input" style="border-top-right-radius: 1px">
+<input type="text" value="Text Input" style="border-bottom-right-radius: 2px">
+<input type="text" value="Text Input" style="border-bottom-left-radius: 3px">
+<input type="text" value="Text Input" style="border-inline-start-width: 3px">
+<input type="text" value="Text Input" style="border-inline-end-width: 3px">
+
+<!-- these should let it stay native -->
+<input type="text" value="" style="color: black">
+<input type="text" value="" style="font-weight: normal">
diff --git a/layout/reftests/native-theme/text-input-nonnative.html b/layout/reftests/native-theme/text-input-nonnative.html
new file mode 100644
index 000000000..a3e4335b1
--- /dev/null
+++ b/layout/reftests/native-theme/text-input-nonnative.html
@@ -0,0 +1,2 @@
+<!DOCTYPE HTML>
+<input type="text" value="" style="-moz-appearance: none">
diff --git a/layout/reftests/native-theme/textarea-native.html b/layout/reftests/native-theme/textarea-native.html
new file mode 100644
index 000000000..03e7dcdb1
--- /dev/null
+++ b/layout/reftests/native-theme/textarea-native.html
@@ -0,0 +1,2 @@
+<!DOCTYPE HTML>
+<textarea></textarea>
diff --git a/layout/reftests/native-theme/textarea-nonnative-when-styled-ref.html b/layout/reftests/native-theme/textarea-nonnative-when-styled-ref.html
new file mode 100644
index 000000000..167947915
--- /dev/null
+++ b/layout/reftests/native-theme/textarea-nonnative-when-styled-ref.html
@@ -0,0 +1,17 @@
+<!DOCTYPE HTML>
+<!-- these should make the textarea non-native -->
+<textarea style="-moz-appearance: none; border-width: 0; resize: none;">Textarea</textarea>
+<textarea style="-moz-appearance: none; border-width: 1px; resize: none;">Textarea</textarea>
+<textarea style="-moz-appearance: none; border-width: 2px; resize: none;">Textarea</textarea>
+<textarea style="-moz-appearance: none; border-width: 3px; resize: none;">Textarea</textarea>
+<textarea style="-moz-appearance: none; border-width: 4px; resize: none;">Textarea</textarea>
+<textarea style="-moz-appearance: none; border-width: 5px; resize: none;">Textarea</textarea>
+<textarea style="-moz-appearance: none; border-width: 6px; resize: none;">Textarea</textarea>
+<textarea style="-moz-appearance: none; border-style: dotted; resize: none;">Textarea</textarea>
+<textarea style="-moz-appearance: none; border-color: green; resize: none;">Textarea</textarea>
+<textarea style="-moz-appearance: none; background-color: transparent; resize: none;">Textarea</textarea>
+<textarea style="-moz-appearance: none; background-color: white; resize: none;">Textarea</textarea>
+
+<!-- these should let it stay native -->
+<textarea></textarea>
+<textarea></textarea>
diff --git a/layout/reftests/native-theme/textarea-nonnative-when-styled.html b/layout/reftests/native-theme/textarea-nonnative-when-styled.html
new file mode 100644
index 000000000..dff21453d
--- /dev/null
+++ b/layout/reftests/native-theme/textarea-nonnative-when-styled.html
@@ -0,0 +1,18 @@
+<!DOCTYPE HTML>
+<!-- these should make the textarea non-native and hide resizers since we can't control
+ their native vs. non-native appearance -->
+<textarea style="border-width: 0; resize: none;">Textarea</textarea>
+<textarea style="border-width: 1px; resize: none;">Textarea</textarea>
+<textarea style="border-width: 2px; resize: none;">Textarea</textarea>
+<textarea style="border-width: 3px; resize: none;">Textarea</textarea>
+<textarea style="border-width: 4px; resize: none;">Textarea</textarea>
+<textarea style="border-width: 5px; resize: none;">Textarea</textarea>
+<textarea style="border-width: 6px; resize: none;">Textarea</textarea>
+<textarea style="border-style: dotted; resize: none;">Textarea</textarea>
+<textarea style="border-color: green; resize: none;">Textarea</textarea>
+<textarea style="background-color: transparent; resize: none;">Textarea</textarea>
+<textarea style="background-color: white; resize: none;">Textarea</textarea>
+
+<!-- these should let it stay native -->
+<textarea style="color: black"></textarea>
+<textarea style="font-weight: normal"></textarea>
diff --git a/layout/reftests/native-theme/textarea-nonnative.html b/layout/reftests/native-theme/textarea-nonnative.html
new file mode 100644
index 000000000..87f3b4cdd
--- /dev/null
+++ b/layout/reftests/native-theme/textarea-nonnative.html
@@ -0,0 +1,2 @@
+<!DOCTYPE HTML>
+<textarea style="-moz-appearance: none"></textarea>
diff --git a/layout/reftests/native-theme/textarea-not-blank.html b/layout/reftests/native-theme/textarea-not-blank.html
new file mode 100644
index 000000000..d01747608
--- /dev/null
+++ b/layout/reftests/native-theme/textarea-not-blank.html
@@ -0,0 +1 @@
+<textarea rows="5" cols="40"></textarea>