summaryrefslogtreecommitdiffstats
path: root/layout/reftests/text-shadow
diff options
context:
space:
mode:
Diffstat (limited to 'layout/reftests/text-shadow')
-rw-r--r--layout/reftests/text-shadow/723669-ref.html5
-rw-r--r--layout/reftests/text-shadow/723669.html5
-rw-r--r--layout/reftests/text-shadow/basic-negcoord-ref.html5
-rw-r--r--layout/reftests/text-shadow/basic-negcoord-ref.xul6
-rw-r--r--layout/reftests/text-shadow/basic-negcoord.html4
-rw-r--r--layout/reftests/text-shadow/basic-negcoord.xul5
-rw-r--r--layout/reftests/text-shadow/basic-opacity-ref.html2
-rw-r--r--layout/reftests/text-shadow/basic-opacity.html1
-rw-r--r--layout/reftests/text-shadow/basic-ref.html2
-rw-r--r--layout/reftests/text-shadow/basic-ref.xul6
-rw-r--r--layout/reftests/text-shadow/basic.html1
-rw-r--r--layout/reftests/text-shadow/basic.xul5
-rw-r--r--layout/reftests/text-shadow/blur-notref.html1
-rw-r--r--layout/reftests/text-shadow/blur-notref.xul3
-rw-r--r--layout/reftests/text-shadow/blur-opacity-ref.html7
-rw-r--r--layout/reftests/text-shadow/blur-opacity.html7
-rw-r--r--layout/reftests/text-shadow/blur.html1
-rw-r--r--layout/reftests/text-shadow/blur.xul3
-rw-r--r--layout/reftests/text-shadow/color-inherit-ref.html5
-rw-r--r--layout/reftests/text-shadow/color-inherit-ref.xul6
-rw-r--r--layout/reftests/text-shadow/color-inherit.html4
-rw-r--r--layout/reftests/text-shadow/color-inherit.xul5
-rw-r--r--layout/reftests/text-shadow/color-parserorder-ref.html1
-rw-r--r--layout/reftests/text-shadow/color-parserorder.html1
-rw-r--r--layout/reftests/text-shadow/decorations-multiple-zorder-ref.html23
-rw-r--r--layout/reftests/text-shadow/decorations-multiple-zorder.html3
-rw-r--r--layout/reftests/text-shadow/lineoverflow-ref.html3
-rw-r--r--layout/reftests/text-shadow/lineoverflow.html3
-rw-r--r--layout/reftests/text-shadow/multiple-noblur-ref.html5
-rw-r--r--layout/reftests/text-shadow/multiple-noblur-ref.xul9
-rw-r--r--layout/reftests/text-shadow/multiple-noblur.html1
-rw-r--r--layout/reftests/text-shadow/multiple-noblur.xul5
-rw-r--r--layout/reftests/text-shadow/overflow-decoration-ref.html25
-rw-r--r--layout/reftests/text-shadow/overflow-decoration.html23
-rw-r--r--layout/reftests/text-shadow/overflow-not-scrollable-1-ref.html16
-rw-r--r--layout/reftests/text-shadow/overflow-not-scrollable-1-ref2.html15
-rw-r--r--layout/reftests/text-shadow/overflow-not-scrollable-1.html16
-rw-r--r--layout/reftests/text-shadow/overflow-not-scrollable-2-ref.html17
-rw-r--r--layout/reftests/text-shadow/overflow-not-scrollable-2.html17
-rw-r--r--layout/reftests/text-shadow/padding-decoration-ref.html1
-rw-r--r--layout/reftests/text-shadow/padding-decoration.html1
-rw-r--r--layout/reftests/text-shadow/quirks-decor-noblur-ref.html11
-rw-r--r--layout/reftests/text-shadow/quirks-decor-noblur.html1
-rw-r--r--layout/reftests/text-shadow/reftest-stylo.list48
-rw-r--r--layout/reftests/text-shadow/reftest.list40
-rw-r--r--layout/reftests/text-shadow/standards-decor-noblur-ref.html16
-rw-r--r--layout/reftests/text-shadow/standards-decor-noblur.html4
-rw-r--r--layout/reftests/text-shadow/text-shadow-on-selection-1-ref.html26
-rw-r--r--layout/reftests/text-shadow/text-shadow-on-selection-1.html41
-rw-r--r--layout/reftests/text-shadow/text-shadow-on-selection-2-ref.html27
-rw-r--r--layout/reftests/text-shadow/text-shadow-on-selection-2.html43
-rw-r--r--layout/reftests/text-shadow/text-shadow-on-space-1-ref.html16
-rw-r--r--layout/reftests/text-shadow/text-shadow-on-space-1.html17
-rw-r--r--layout/reftests/text-shadow/text-shadow-selected-1-notref.html31
-rw-r--r--layout/reftests/text-shadow/text-shadow-selected-1-ref.html33
-rw-r--r--layout/reftests/text-shadow/text-shadow-selected-1.html31
-rw-r--r--layout/reftests/text-shadow/text-shadow-selected-2-notref.html31
-rw-r--r--layout/reftests/text-shadow/text-shadow-selected-2-ref.html33
-rw-r--r--layout/reftests/text-shadow/text-shadow-selected-2.html31
-rw-r--r--layout/reftests/text-shadow/textindent-ref.html3
-rw-r--r--layout/reftests/text-shadow/textindent.html3
61 files changed, 760 insertions, 0 deletions
diff --git a/layout/reftests/text-shadow/723669-ref.html b/layout/reftests/text-shadow/723669-ref.html
new file mode 100644
index 000000000..779f4adcf
--- /dev/null
+++ b/layout/reftests/text-shadow/723669-ref.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<html style='text-shadow: 0.6em 0.6em 0.1em green'>
+<body>I have a green shadow</body>
+</html>
+
diff --git a/layout/reftests/text-shadow/723669.html b/layout/reftests/text-shadow/723669.html
new file mode 100644
index 000000000..0ca26ec9e
--- /dev/null
+++ b/layout/reftests/text-shadow/723669.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<html>
+<body onload="document.documentElement.style.textShadow = '0.6em 0.6em 0.1em green';">I have a green shadow</body>
+</html>
+
diff --git a/layout/reftests/text-shadow/basic-negcoord-ref.html b/layout/reftests/text-shadow/basic-negcoord-ref.html
new file mode 100644
index 000000000..79c3d996c
--- /dev/null
+++ b/layout/reftests/text-shadow/basic-negcoord-ref.html
@@ -0,0 +1,5 @@
+<!DOCTYPE HTML>
+
+<div style="position: absolute; top: 20px; left: 20px; color: green; z-index: 0;">Hello</div>
+<div style="position: absolute; top: 24px; left: 24px; color: black; z-index: 1;">Hello</div>
+
diff --git a/layout/reftests/text-shadow/basic-negcoord-ref.xul b/layout/reftests/text-shadow/basic-negcoord-ref.xul
new file mode 100644
index 000000000..59bf5598e
--- /dev/null
+++ b/layout/reftests/text-shadow/basic-negcoord-ref.xul
@@ -0,0 +1,6 @@
+<box xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <stack>
+ <label top="20px" left="20px" style="color: green;" value="Hello!"/>
+ <label top="24px" left="24px" style="color: black;" value="Hello!"/>
+ </stack>
+</box>
diff --git a/layout/reftests/text-shadow/basic-negcoord.html b/layout/reftests/text-shadow/basic-negcoord.html
new file mode 100644
index 000000000..dfa79426f
--- /dev/null
+++ b/layout/reftests/text-shadow/basic-negcoord.html
@@ -0,0 +1,4 @@
+<!DOCTYPE HTML>
+
+<div style="position: absolute; top: 24px; left: 24px; color: black; text-shadow: green -4px -4px;">Hello</div>
+
diff --git a/layout/reftests/text-shadow/basic-negcoord.xul b/layout/reftests/text-shadow/basic-negcoord.xul
new file mode 100644
index 000000000..d3ccaab2f
--- /dev/null
+++ b/layout/reftests/text-shadow/basic-negcoord.xul
@@ -0,0 +1,5 @@
+<box xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <stack>
+ <label top="24px" left="24px" style="color: black; text-shadow: green -4px -4px" value="Hello!"/>
+ </stack>
+</box>
diff --git a/layout/reftests/text-shadow/basic-opacity-ref.html b/layout/reftests/text-shadow/basic-opacity-ref.html
new file mode 100644
index 000000000..11aa6d517
--- /dev/null
+++ b/layout/reftests/text-shadow/basic-opacity-ref.html
@@ -0,0 +1,2 @@
+<div style="position: absolute; top: 33px; left: 33px; color: rgba(0, 0, 255, 0.2); z-index: 0;">Hello</div>
+<div style="position: absolute; top: 30px; left: 30px; color: green; z-index: 1;">Hello</div>
diff --git a/layout/reftests/text-shadow/basic-opacity.html b/layout/reftests/text-shadow/basic-opacity.html
new file mode 100644
index 000000000..1e2b12d60
--- /dev/null
+++ b/layout/reftests/text-shadow/basic-opacity.html
@@ -0,0 +1 @@
+<div style="position: absolute; top: 30px; left: 30px; color: green; text-shadow: rgba(0, 0, 255, 0.2) 3px 3px;">Hello</div>
diff --git a/layout/reftests/text-shadow/basic-ref.html b/layout/reftests/text-shadow/basic-ref.html
new file mode 100644
index 000000000..26b07d2e2
--- /dev/null
+++ b/layout/reftests/text-shadow/basic-ref.html
@@ -0,0 +1,2 @@
+<div style="position: absolute; top: 33px; left: 33px; color: grey; z-index: 0;">Hello</div>
+<div style="position: absolute; top: 30px; left: 30px; color: green; z-index: 1;">Hello</div>
diff --git a/layout/reftests/text-shadow/basic-ref.xul b/layout/reftests/text-shadow/basic-ref.xul
new file mode 100644
index 000000000..c9f177b9b
--- /dev/null
+++ b/layout/reftests/text-shadow/basic-ref.xul
@@ -0,0 +1,6 @@
+<box xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <stack>
+ <label top="33px" left="33px" style="color: grey;" value="Hello"/>
+ <label top="30px" left="30px" style="color: green;" value="Hello"/>
+ </stack>
+</box>
diff --git a/layout/reftests/text-shadow/basic.html b/layout/reftests/text-shadow/basic.html
new file mode 100644
index 000000000..2c7dc05ae
--- /dev/null
+++ b/layout/reftests/text-shadow/basic.html
@@ -0,0 +1 @@
+<div style="position: absolute; top: 30px; left: 30px; color: green; text-shadow: grey 3px 3px;">Hello</div>
diff --git a/layout/reftests/text-shadow/basic.xul b/layout/reftests/text-shadow/basic.xul
new file mode 100644
index 000000000..8f907cb0e
--- /dev/null
+++ b/layout/reftests/text-shadow/basic.xul
@@ -0,0 +1,5 @@
+<box xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <stack>
+ <label top="30px" left="30px" style="color: green; text-shadow: grey 3px 3px;" value="Hello"/>
+ </stack>
+</box>
diff --git a/layout/reftests/text-shadow/blur-notref.html b/layout/reftests/text-shadow/blur-notref.html
new file mode 100644
index 000000000..28404095a
--- /dev/null
+++ b/layout/reftests/text-shadow/blur-notref.html
@@ -0,0 +1 @@
+<div style="text-shadow: blue 4px 4px">The shadow should be blurred</div>
diff --git a/layout/reftests/text-shadow/blur-notref.xul b/layout/reftests/text-shadow/blur-notref.xul
new file mode 100644
index 000000000..09704014b
--- /dev/null
+++ b/layout/reftests/text-shadow/blur-notref.xul
@@ -0,0 +1,3 @@
+<box xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <label style="text-shadow: blue 4px 4px" value="The shadow should be blurred"/>
+</box>
diff --git a/layout/reftests/text-shadow/blur-opacity-ref.html b/layout/reftests/text-shadow/blur-opacity-ref.html
new file mode 100644
index 000000000..0637cd5f0
--- /dev/null
+++ b/layout/reftests/text-shadow/blur-opacity-ref.html
@@ -0,0 +1,7 @@
+<style>
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+</style>
+<div style="position: absolute; clip: rect(20px, 100px, 100px, 20px); font: 128px Ahem; color: #7f7f7f">a</div>
diff --git a/layout/reftests/text-shadow/blur-opacity.html b/layout/reftests/text-shadow/blur-opacity.html
new file mode 100644
index 000000000..176bd8f29
--- /dev/null
+++ b/layout/reftests/text-shadow/blur-opacity.html
@@ -0,0 +1,7 @@
+<style>
+@font-face {
+ font-family: Ahem;
+ src: url(../fonts/Ahem.ttf);
+}
+</style>
+<div style="position: absolute; clip: rect(20px, 100px, 100px, 20px); font: 128px Ahem; color: transparent; text-shadow: rgba(0, 0, 0, 0.5) 0px 0px 1px">a</div>
diff --git a/layout/reftests/text-shadow/blur.html b/layout/reftests/text-shadow/blur.html
new file mode 100644
index 000000000..d14b70f2f
--- /dev/null
+++ b/layout/reftests/text-shadow/blur.html
@@ -0,0 +1 @@
+<div style="text-shadow: blue 4px 4px 2px">The shadow should be blurred</div>
diff --git a/layout/reftests/text-shadow/blur.xul b/layout/reftests/text-shadow/blur.xul
new file mode 100644
index 000000000..d285c8202
--- /dev/null
+++ b/layout/reftests/text-shadow/blur.xul
@@ -0,0 +1,3 @@
+<box xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <label style="text-shadow: blue 4px 4px 2px" value="The shadow should be blurred"/>
+</box>
diff --git a/layout/reftests/text-shadow/color-inherit-ref.html b/layout/reftests/text-shadow/color-inherit-ref.html
new file mode 100644
index 000000000..8fa2dafa5
--- /dev/null
+++ b/layout/reftests/text-shadow/color-inherit-ref.html
@@ -0,0 +1,5 @@
+<!DOCTYPE HTML>
+
+<div style="position: absolute; top: 27px; left: 27px; color: blue; z-index: 0;">Hello</div>
+<div style="position: absolute; top: 24px; left: 24px; color: blue; z-index: 1;">Hello</div>
+
diff --git a/layout/reftests/text-shadow/color-inherit-ref.xul b/layout/reftests/text-shadow/color-inherit-ref.xul
new file mode 100644
index 000000000..432d0da3d
--- /dev/null
+++ b/layout/reftests/text-shadow/color-inherit-ref.xul
@@ -0,0 +1,6 @@
+<box xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <stack>
+ <label top="27px" left="27px" style="color:blue;" value="Hello"/>
+ <label top="24px" left="24px" style="color:blue;" value="Hello"/>
+ </stack>
+</box>
diff --git a/layout/reftests/text-shadow/color-inherit.html b/layout/reftests/text-shadow/color-inherit.html
new file mode 100644
index 000000000..59bc12c42
--- /dev/null
+++ b/layout/reftests/text-shadow/color-inherit.html
@@ -0,0 +1,4 @@
+<!DOCTYPE HTML>
+
+<div style="position: absolute; top: 24px; left: 24px; color: blue; text-shadow: 3px 3px;">Hello</div>
+
diff --git a/layout/reftests/text-shadow/color-inherit.xul b/layout/reftests/text-shadow/color-inherit.xul
new file mode 100644
index 000000000..9163a8bda
--- /dev/null
+++ b/layout/reftests/text-shadow/color-inherit.xul
@@ -0,0 +1,5 @@
+<box xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <stack>
+ <label top="24px" left="24px" style="color:blue; text-shadow: 3px 3px;" value="Hello"/>
+ </stack>
+</box>
diff --git a/layout/reftests/text-shadow/color-parserorder-ref.html b/layout/reftests/text-shadow/color-parserorder-ref.html
new file mode 100644
index 000000000..16d53ce0b
--- /dev/null
+++ b/layout/reftests/text-shadow/color-parserorder-ref.html
@@ -0,0 +1 @@
+<div style="text-shadow: green 3px 3px 2px;">Parser test</div>
diff --git a/layout/reftests/text-shadow/color-parserorder.html b/layout/reftests/text-shadow/color-parserorder.html
new file mode 100644
index 000000000..f6be32aae
--- /dev/null
+++ b/layout/reftests/text-shadow/color-parserorder.html
@@ -0,0 +1 @@
+<div style="text-shadow: 3px 3px 2px green;">Parser test</div>
diff --git a/layout/reftests/text-shadow/decorations-multiple-zorder-ref.html b/layout/reftests/text-shadow/decorations-multiple-zorder-ref.html
new file mode 100644
index 000000000..f071413f7
--- /dev/null
+++ b/layout/reftests/text-shadow/decorations-multiple-zorder-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML>
+
+<!-- Shadows -->
+<!-- Blue underline/text -->
+<div style="position: absolute; top: 22px; left: 22px; color: blue; text-decoration: underline;"><span style="color: rgba(0, 0, 0, 0);">testforquirks</span></div>
+<div style="position: absolute; top: 22px; left: 22px;"><span style="color: blue;">test</span></div>
+<!-- Red overline/text -->
+<div style="position: absolute; top: 22px; left: 22px; color: rgba(0, 0, 0, 0);">test<span style="text-decoration: overline; color: red;"><span style="color: rgba(0, 0, 0, 0);">forquirks</span></span></div>
+<div style="position: absolute; top: 22px; left: 22px;"><span style="color: rgba(0, 0, 0, 0);">test</span><span style="color: red;">for</span></div>
+<!-- Green text/underline -->
+<div style="position: absolute; top: 22px; left: 22px;"><span style="color: rgba(0, 0, 0, 0);">testfor</span><span style="text-decoration: underline; color: green;"><span style="color: rgba(0, 0, 0, 0);">quirks</span></span></div>
+<div style="position: absolute; top: 22px; left: 22px;"><span style="color: rgba(0, 0, 0, 0);">testfor</span><span style="color: green;">quirks</span></div>
+
+<!-- "Real" text -->
+<!-- Blue underline/text -->
+<div style="position: absolute; top: 20px; left: 20px; color: blue; text-decoration: underline;"><span style="color: rgba(0, 0, 0, 0);">testforquirks</span></div>
+<div style="position: absolute; top: 20px; left: 20px;"><span style="color: blue;">test</span></div>
+<!-- Red overline/text -->
+<div style="position: absolute; top: 20px; left: 20px; color: rgba(0, 0, 0, 0);">test<span style="text-decoration: overline; color: red;"><span style="color: rgba(0, 0, 0, 0);">forquirks</span></span></div>
+<div style="position: absolute; top: 20px; left: 20px;"><span style="color: rgba(0, 0, 0, 0);">test</span><span style="color: red;">for</span></div>
+<!-- Green underline/text -->
+<div style="position: absolute; top: 20px; left: 20px;"><span style="color: rgba(0, 0, 0, 0);">testfor</span><span style="text-decoration: underline; color: green;"><span style="color: rgba(0, 0, 0, 0);">quirks</span></span></div>
+<div style="position: absolute; top: 20px; left: 20px;"><span style="color: rgba(0, 0, 0, 0);">testfor</span><span style="color: green;">quirks</span></div>
diff --git a/layout/reftests/text-shadow/decorations-multiple-zorder.html b/layout/reftests/text-shadow/decorations-multiple-zorder.html
new file mode 100644
index 000000000..fdc74b16a
--- /dev/null
+++ b/layout/reftests/text-shadow/decorations-multiple-zorder.html
@@ -0,0 +1,3 @@
+<!DOCTYPE HTML>
+
+<div style="text-shadow: 2px 2px; color: blue; text-decoration: underline; position: absolute; top: 20px; left: 20px;">test<span style="text-decoration: overline; color: red;">for<span style="text-decoration: underline; color: green;">quirks</span></span></div>
diff --git a/layout/reftests/text-shadow/lineoverflow-ref.html b/layout/reftests/text-shadow/lineoverflow-ref.html
new file mode 100644
index 000000000..07fad32ce
--- /dev/null
+++ b/layout/reftests/text-shadow/lineoverflow-ref.html
@@ -0,0 +1,3 @@
+<!DOCTYPE HTML>
+
+<div style="position: absolute; top: 20px; left: 20px;"><span style="text-decoration: underline; text-shadow: 3px 3px 2px red; font-size: 40px;">Testingtestingtestingtesting</span></div>
diff --git a/layout/reftests/text-shadow/lineoverflow.html b/layout/reftests/text-shadow/lineoverflow.html
new file mode 100644
index 000000000..5c4cb58aa
--- /dev/null
+++ b/layout/reftests/text-shadow/lineoverflow.html
@@ -0,0 +1,3 @@
+<!DOCTYPE HTML>
+
+<div style="position: absolute; top: 20px; left: 20px; width: 50px; text-decoration: underline; text-shadow: 3px 3px 2px red; font-size: 40px;">Testingtestingtestingtesting</div>
diff --git a/layout/reftests/text-shadow/multiple-noblur-ref.html b/layout/reftests/text-shadow/multiple-noblur-ref.html
new file mode 100644
index 000000000..a5f125e47
--- /dev/null
+++ b/layout/reftests/text-shadow/multiple-noblur-ref.html
@@ -0,0 +1,5 @@
+<div style="position: absolute; top: 33px; left: 33px; color: grey; z-index: 0;">Hello</div>
+<div style="position: absolute; top: 30px; left: 30px; color: green; z-index: 1;">Hello</div>
+<div style="position: absolute; top: 27px; left: 27px; color: red; z-index: 2;">Hello</div>
+<div style="position: absolute; top: 24px; left: 24px; color: purple; z-index: 3;">Hello</div>
+<div style="position: absolute; top: 20px; left: 20px; color: black; z-index: 4;">Hello</div>
diff --git a/layout/reftests/text-shadow/multiple-noblur-ref.xul b/layout/reftests/text-shadow/multiple-noblur-ref.xul
new file mode 100644
index 000000000..3bfd73cc7
--- /dev/null
+++ b/layout/reftests/text-shadow/multiple-noblur-ref.xul
@@ -0,0 +1,9 @@
+<box xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <stack>
+ <label top="33px" left="33px" style="color:grey;" value="Hello"/>
+ <label top="30px" left="30px" style="color:green;" value="Hello"/>
+ <label top="27px" left="27px" style="color:red;" value="Hello"/>
+ <label top="24px" left="24px" style="color:purple;" value="Hello"/>
+ <label top="20px" left="20px" style="color:black;" value="Hello"/>
+ </stack>
+</box>
diff --git a/layout/reftests/text-shadow/multiple-noblur.html b/layout/reftests/text-shadow/multiple-noblur.html
new file mode 100644
index 000000000..958f0ced7
--- /dev/null
+++ b/layout/reftests/text-shadow/multiple-noblur.html
@@ -0,0 +1 @@
+<div style="position: absolute; top: 20px; left: 20px; color: black; text-shadow: purple 4px 4px, red 7px 7px, green 10px 10px, grey 13px 13px;">Hello</div>
diff --git a/layout/reftests/text-shadow/multiple-noblur.xul b/layout/reftests/text-shadow/multiple-noblur.xul
new file mode 100644
index 000000000..2e9452f56
--- /dev/null
+++ b/layout/reftests/text-shadow/multiple-noblur.xul
@@ -0,0 +1,5 @@
+<box xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <stack>
+ <label top="20px" left="20px" style="color:black; text-shadow: purple 4px 4px, red 7px 7px, green 10px 10px, grey 13px 13px;" value="Hello"/>
+ </stack>
+</box>
diff --git a/layout/reftests/text-shadow/overflow-decoration-ref.html b/layout/reftests/text-shadow/overflow-decoration-ref.html
new file mode 100644
index 000000000..a48858544
--- /dev/null
+++ b/layout/reftests/text-shadow/overflow-decoration-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+ .outer {
+ text-decoration: underline;
+ position: absolute;
+ }
+ .outer+.outer {
+ color: green;
+ }
+ .inner {
+ vertical-align: 1em;
+ }
+ .outer+.outer>.inner {
+ position: relative;
+ top: 1em;
+ }
+</style>
+</head>
+<body>
+ <span class="outer"><span class="inner">x</span></span>
+ <span class="outer"><span class="inner">x</span></span>
+</body>
+</html>
diff --git a/layout/reftests/text-shadow/overflow-decoration.html b/layout/reftests/text-shadow/overflow-decoration.html
new file mode 100644
index 000000000..181a4f740
--- /dev/null
+++ b/layout/reftests/text-shadow/overflow-decoration.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<head>
+<style>
+ .outer { text-decoration: underline; }
+ .inner {
+ vertical-align: 1em;
+ text-shadow: 0 1em green;
+ }
+ .reftest-wait .inner {
+ text-shadow: 0 1em red;
+ }
+</style>
+</head>
+<body>
+ <span class="outer"><span class="inner">x</span></span>
+ <script>
+ document.addEventListener("MozReftestInvalidate", () => {
+ document.documentElement.removeAttribute('class');
+ }, false);
+ </script>
+</body>
+</html>
diff --git a/layout/reftests/text-shadow/overflow-not-scrollable-1-ref.html b/layout/reftests/text-shadow/overflow-not-scrollable-1-ref.html
new file mode 100644
index 000000000..642d10181
--- /dev/null
+++ b/layout/reftests/text-shadow/overflow-not-scrollable-1-ref.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML>
+<style type="text/css">
+
+div {
+ height: 200px; width: 200px; overflow: hidden;
+ text-shadow: 210px 210px 2px gray;
+ font-size: 50px;
+}
+
+/* work around potential font overflow */
+span { margin-left: 5px }
+
+</style>
+<div>
+<span>text</span>
+</div>
diff --git a/layout/reftests/text-shadow/overflow-not-scrollable-1-ref2.html b/layout/reftests/text-shadow/overflow-not-scrollable-1-ref2.html
new file mode 100644
index 000000000..4ed3a46ec
--- /dev/null
+++ b/layout/reftests/text-shadow/overflow-not-scrollable-1-ref2.html
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML>
+<style type="text/css">
+
+div {
+ height: 200px; width: 200px;
+ font-size: 50px;
+}
+
+/* work around potential font overflow */
+span { margin-left: 5px }
+
+</style>
+<div>
+<span>text</span>
+</div>
diff --git a/layout/reftests/text-shadow/overflow-not-scrollable-1.html b/layout/reftests/text-shadow/overflow-not-scrollable-1.html
new file mode 100644
index 000000000..ea47d2071
--- /dev/null
+++ b/layout/reftests/text-shadow/overflow-not-scrollable-1.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML>
+<style type="text/css">
+
+div {
+ height: 200px; width: 200px; overflow: auto;
+ text-shadow: 210px 210px 2px gray;
+ font-size: 50px;
+}
+
+/* work around potential font overflow */
+span { margin-left: 5px }
+
+</style>
+<div>
+<span>text</span>
+</div>
diff --git a/layout/reftests/text-shadow/overflow-not-scrollable-2-ref.html b/layout/reftests/text-shadow/overflow-not-scrollable-2-ref.html
new file mode 100644
index 000000000..4d0e7457f
--- /dev/null
+++ b/layout/reftests/text-shadow/overflow-not-scrollable-2-ref.html
@@ -0,0 +1,17 @@
+<!DOCTYPE HTML>
+<style type="text/css">
+
+div {
+ height: 200px; width: 200px; overflow: hidden;
+ text-shadow: 100px 100px 30px black;
+ font-size: 50px;
+ font-weight: bold;
+}
+
+/* work around potential font overflow */
+span { margin-left: 5px }
+
+</style>
+<div>
+<span>text</span>
+</div>
diff --git a/layout/reftests/text-shadow/overflow-not-scrollable-2.html b/layout/reftests/text-shadow/overflow-not-scrollable-2.html
new file mode 100644
index 000000000..6a1b4c9a9
--- /dev/null
+++ b/layout/reftests/text-shadow/overflow-not-scrollable-2.html
@@ -0,0 +1,17 @@
+<!DOCTYPE HTML>
+<style type="text/css">
+
+div {
+ height: 200px; width: 200px; overflow: auto;
+ text-shadow: 100px 100px 30px black;
+ font-size: 50px;
+ font-weight: bold;
+}
+
+/* work around potential font overflow */
+span { margin-left: 5px }
+
+</style>
+<div>
+<span>text</span>
+</div>
diff --git a/layout/reftests/text-shadow/padding-decoration-ref.html b/layout/reftests/text-shadow/padding-decoration-ref.html
new file mode 100644
index 000000000..1cc1f5ec4
--- /dev/null
+++ b/layout/reftests/text-shadow/padding-decoration-ref.html
@@ -0,0 +1 @@
+<!DOCTYPE HTML><div><a href="http://test" style="margin-left: 20px; text-shadow: 2px 2px 2px blue;">Hello world hello world</a></div>
diff --git a/layout/reftests/text-shadow/padding-decoration.html b/layout/reftests/text-shadow/padding-decoration.html
new file mode 100644
index 000000000..b504ede89
--- /dev/null
+++ b/layout/reftests/text-shadow/padding-decoration.html
@@ -0,0 +1 @@
+<!DOCTYPE HTML><div><a href="http://test" style="padding-left: 20px; text-shadow: 2px 2px 2px blue;">Hello world hello world</a></div>
diff --git a/layout/reftests/text-shadow/quirks-decor-noblur-ref.html b/layout/reftests/text-shadow/quirks-decor-noblur-ref.html
new file mode 100644
index 000000000..964414622
--- /dev/null
+++ b/layout/reftests/text-shadow/quirks-decor-noblur-ref.html
@@ -0,0 +1,11 @@
+<style>
+div {
+text-decoration: underline;
+}
+</style>
+
+<div style="position: absolute; top: 33px; left: 33px; color: grey; z-index: 0;">Hello</div>
+<div style="position: absolute; top: 30px; left: 30px; color: green; z-index: 1;">Hello</div>
+<div style="position: absolute; top: 27px; left: 27px; color: red; z-index: 2;">Hello</div>
+<div style="position: absolute; top: 24px; left: 24px; color: purple; z-index: 3;">Hello</div>
+<div style="position: absolute; top: 20px; left: 20px; color: black; z-index: 4;">Hello</div>
diff --git a/layout/reftests/text-shadow/quirks-decor-noblur.html b/layout/reftests/text-shadow/quirks-decor-noblur.html
new file mode 100644
index 000000000..31a244f38
--- /dev/null
+++ b/layout/reftests/text-shadow/quirks-decor-noblur.html
@@ -0,0 +1 @@
+<div style="position: absolute; top: 20px; left: 20px; color: black; text-shadow: purple 4px 4px, red 7px 7px, green 10px 10px, grey 13px 13px; text-decoration: underline;">Hello</div>
diff --git a/layout/reftests/text-shadow/reftest-stylo.list b/layout/reftests/text-shadow/reftest-stylo.list
new file mode 100644
index 000000000..84c0feff6
--- /dev/null
+++ b/layout/reftests/text-shadow/reftest-stylo.list
@@ -0,0 +1,48 @@
+# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
+== 723669.html 723669.html
+
+skip-if((B2G&&browserIsRemote)||Mulet) == basic.xul basic.xul
+# Initial mulet triage: parity with B2G/B2G Desktop
+random-if(Android) skip-if((B2G&&browserIsRemote)||Mulet) == basic-negcoord.xul basic-negcoord.xul
+# Initial mulet triage: parity with B2G/B2G Desktop
+skip-if((B2G&&browserIsRemote)||Mulet) == blur.xul blur.xul
+# Initial mulet triage: parity with B2G/B2G Desktop
+skip-if((B2G&&browserIsRemote)||Mulet) == color-inherit.xul color-inherit.xul
+# Initial mulet triage: parity with B2G/B2G Desktop
+skip-if((B2G&&browserIsRemote)||Mulet) == multiple-noblur.xul multiple-noblur.xul
+# Initial mulet triage: parity with B2G/B2G Desktop
+HTTP(..) == blur-opacity.html blur-opacity.html
+
+== basic.html basic.html
+== basic-negcoord.html basic-negcoord.html
+== basic-opacity.html basic-opacity.html
+== blur.html blur.html
+== color-inherit.html color-inherit.html
+== color-parserorder.html color-parserorder.html
+== decorations-multiple-zorder.html decorations-multiple-zorder.html
+== multiple-noblur.html multiple-noblur.html
+== quirks-decor-noblur.html quirks-decor-noblur.html
+== standards-decor-noblur.html standards-decor-noblur.html
+== padding-decoration.html padding-decoration.html
+== textindent.html textindent.html
+== lineoverflow.html lineoverflow.html
+
+== overflow-not-scrollable-1.html overflow-not-scrollable-1.html
+== overflow-not-scrollable-1.html overflow-not-scrollable-1.html
+== overflow-not-scrollable-2.html overflow-not-scrollable-2.html
+
+needs-focus == text-shadow-selected-1.html text-shadow-selected-1.html
+fails-if(Android||B2G) fuzzy-if(skiaContent,1,1000) needs-focus == text-shadow-selected-1.html text-shadow-selected-1.html
+# different foreground selection color on Android/B2G
+needs-focus == text-shadow-selected-2.html text-shadow-selected-2.html
+fails-if(Android||B2G) fuzzy-if(skiaContent,1,1400) needs-focus == text-shadow-selected-2.html text-shadow-selected-2.html
+# different foreground selection color on Android/B2G
+
+# bug 692744
+== text-shadow-on-space-1.html text-shadow-on-space-1.html
+
+# bug 721750
+skip needs-focus == text-shadow-on-selection-1.html text-shadow-on-selection-1.html
+skip needs-focus == text-shadow-on-selection-2.html text-shadow-on-selection-2.html
+
+== overflow-decoration.html overflow-decoration.html
diff --git a/layout/reftests/text-shadow/reftest.list b/layout/reftests/text-shadow/reftest.list
new file mode 100644
index 000000000..7e5e4b5fc
--- /dev/null
+++ b/layout/reftests/text-shadow/reftest.list
@@ -0,0 +1,40 @@
+== 723669.html 723669-ref.html
+
+== basic.xul basic-ref.xul
+random-if(Android) == basic-negcoord.xul basic-negcoord-ref.xul
+!= blur.xul blur-notref.xul
+== color-inherit.xul color-inherit-ref.xul
+== multiple-noblur.xul multiple-noblur-ref.xul
+HTTP(..) == blur-opacity.html blur-opacity-ref.html
+
+== basic.html basic-ref.html
+== basic-negcoord.html basic-negcoord-ref.html
+== basic-opacity.html basic-opacity-ref.html
+!= blur.html blur-notref.html
+== color-inherit.html color-inherit-ref.html
+== color-parserorder.html color-parserorder-ref.html
+== decorations-multiple-zorder.html decorations-multiple-zorder-ref.html
+== multiple-noblur.html multiple-noblur-ref.html
+== quirks-decor-noblur.html quirks-decor-noblur-ref.html
+== standards-decor-noblur.html standards-decor-noblur-ref.html
+== padding-decoration.html padding-decoration-ref.html
+== textindent.html textindent-ref.html
+== lineoverflow.html lineoverflow-ref.html
+
+== overflow-not-scrollable-1.html overflow-not-scrollable-1-ref.html
+== overflow-not-scrollable-1.html overflow-not-scrollable-1-ref2.html
+== overflow-not-scrollable-2.html overflow-not-scrollable-2-ref.html
+
+needs-focus != text-shadow-selected-1.html text-shadow-selected-1-notref.html
+fails-if(Android) fuzzy-if(skiaContent&&!Android,1,1000) needs-focus == text-shadow-selected-1.html text-shadow-selected-1-ref.html # different foreground selection color on Android
+needs-focus != text-shadow-selected-2.html text-shadow-selected-2-notref.html
+fails-if(Android) fuzzy-if(skiaContent&&!Android,1,1400) needs-focus == text-shadow-selected-2.html text-shadow-selected-2-ref.html # different foreground selection color on Android
+
+# bug 692744
+== text-shadow-on-space-1.html text-shadow-on-space-1-ref.html
+
+# bug 721750
+needs-focus == text-shadow-on-selection-1.html text-shadow-on-selection-1-ref.html
+needs-focus == text-shadow-on-selection-2.html text-shadow-on-selection-2-ref.html
+
+== overflow-decoration.html overflow-decoration-ref.html
diff --git a/layout/reftests/text-shadow/standards-decor-noblur-ref.html b/layout/reftests/text-shadow/standards-decor-noblur-ref.html
new file mode 100644
index 000000000..8a962a41e
--- /dev/null
+++ b/layout/reftests/text-shadow/standards-decor-noblur-ref.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML>
+<style>
+.underlined {
+text-decoration: underline;
+}
+
+span {
+color: rgba(0, 0, 0, 0);
+}
+</style>
+
+<div class="underlined" style="position: absolute; top: 33px; left: 33px; color: grey; z-index: 0;">Hello</div>
+<div class="underlined" style="position: absolute; top: 30px; left: 30px; color: green; z-index: 1;">Hello</div>
+<div class="underlined" style="position: absolute; top: 27px; left: 27px; color: red; z-index: 2;">Hello</div>
+<div class="underlined" style="position: absolute; top: 24px; left: 24px; color: purple; z-index: 3;">Hello</div>
+<div class="underlined" style="position: absolute; top: 20px; left: 20px; color: black; z-index: 4;">Hello</div>
diff --git a/layout/reftests/text-shadow/standards-decor-noblur.html b/layout/reftests/text-shadow/standards-decor-noblur.html
new file mode 100644
index 000000000..8b5c3a1b3
--- /dev/null
+++ b/layout/reftests/text-shadow/standards-decor-noblur.html
@@ -0,0 +1,4 @@
+<!DOCTYPE HTML>
+
+<!-- Shadows are painted below text AND its decorations -->
+<div style="position: absolute; top: 20px; left: 20px; color: black; text-shadow: purple 4px 4px, red 7px 7px, green 10px 10px, grey 13px 13px; text-decoration: underline;">Hello</div>
diff --git a/layout/reftests/text-shadow/text-shadow-on-selection-1-ref.html b/layout/reftests/text-shadow/text-shadow-on-selection-1-ref.html
new file mode 100644
index 000000000..ece0e6de0
--- /dev/null
+++ b/layout/reftests/text-shadow/text-shadow-on-selection-1-ref.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style type="text/css">
+body {
+ background: white;
+ color: black;
+ font-size: 24px;
+}
+div {
+ background: white;
+ color: blue;
+ text-shadow: red 2px 2px 0px;
+}
+span {
+ background: yellow;
+ color: white;
+}
+</style>
+</head>
+<body>
+<div>
+hello <span>selected</span> world
+</div>
+</body>
+</html>
diff --git a/layout/reftests/text-shadow/text-shadow-on-selection-1.html b/layout/reftests/text-shadow/text-shadow-on-selection-1.html
new file mode 100644
index 000000000..a0c29c321
--- /dev/null
+++ b/layout/reftests/text-shadow/text-shadow-on-selection-1.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<head>
+<script type="text/javascript">
+function onload() {
+ var range = document.createRange();
+ range.selectNodeContents(document.getElementById("selectMe"));
+ var sel = window.getSelection();
+ sel.removeAllRanges();
+ sel.addRange(range);
+ window.focus();
+}
+function disableReftestWait() {
+ document.documentElement.className = '';
+}
+</script>
+<style type="text/css">
+body {
+ background: white;
+ font-size: 24px;
+}
+div {
+ color: blue;
+ text-shadow: red 2px 2px 0px;
+}
+::-moz-selection {
+ background: yellow;
+ color: white;
+}
+::selection {
+ background: yellow;
+ color: white;
+}
+</style>
+</head>
+<body onload="onload()" onfocus="disableReftestWait()">
+<div>
+hello <span id="selectMe">selected</span> world
+</div>
+</body>
+</html>
diff --git a/layout/reftests/text-shadow/text-shadow-on-selection-2-ref.html b/layout/reftests/text-shadow/text-shadow-on-selection-2-ref.html
new file mode 100644
index 000000000..09d9e4063
--- /dev/null
+++ b/layout/reftests/text-shadow/text-shadow-on-selection-2-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style type="text/css">
+body {
+ background: white;
+ color: black;
+ font-size: 24px;
+}
+div {
+ background: white;
+ color: blue;
+ text-shadow: red 2px 2px 0px;
+}
+span {
+ background: yellow;
+ color: white;
+ text-shadow: none;
+}
+</style>
+</head>
+<body>
+<div>
+hello <span>selected</span> world
+</div>
+</body>
+</html>
diff --git a/layout/reftests/text-shadow/text-shadow-on-selection-2.html b/layout/reftests/text-shadow/text-shadow-on-selection-2.html
new file mode 100644
index 000000000..1791f1b9f
--- /dev/null
+++ b/layout/reftests/text-shadow/text-shadow-on-selection-2.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<head>
+<script type="text/javascript">
+function onload() {
+ var range = document.createRange();
+ range.selectNodeContents(document.getElementById("selectMe"));
+ var sel = window.getSelection();
+ sel.removeAllRanges();
+ sel.addRange(range);
+ window.focus();
+}
+function disableReftestWait() {
+ document.documentElement.className = '';
+}
+</script>
+<style type="text/css">
+body {
+ background: white;
+ font-size: 24px;
+}
+div {
+ color: blue;
+ text-shadow: red 2px 2px 0px;
+}
+::-moz-selection {
+ background: yellow;
+ color: white;
+ text-shadow: none;
+}
+::selection {
+ background: yellow;
+ color: white;
+ text-shadow: none;
+}
+</style>
+</head>
+<body onload="onload()" onfocus="disableReftestWait()">
+<div>
+hello <span id="selectMe">selected</span> world
+</div>
+</body>
+</html>
diff --git a/layout/reftests/text-shadow/text-shadow-on-space-1-ref.html b/layout/reftests/text-shadow/text-shadow-on-space-1-ref.html
new file mode 100644
index 000000000..447a49f09
--- /dev/null
+++ b/layout/reftests/text-shadow/text-shadow-on-space-1-ref.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style type="text/css">
+div {
+ font: 24px serif;
+ text-shadow: 2px 2px 1px red;
+}
+</style>
+</head>
+<body>
+<div>
+The spaces should not have shadows!
+</div>
+</body>
+
diff --git a/layout/reftests/text-shadow/text-shadow-on-space-1.html b/layout/reftests/text-shadow/text-shadow-on-space-1.html
new file mode 100644
index 000000000..7433dad35
--- /dev/null
+++ b/layout/reftests/text-shadow/text-shadow-on-space-1.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style type="text/css">
+div {
+ font: 24px serif;
+ text-shadow: 2px 2px 1px red;
+}
+</style>
+</head>
+<body>
+<div>
+The spaces should not have shadows!
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</div>
+</body>
+
diff --git a/layout/reftests/text-shadow/text-shadow-selected-1-notref.html b/layout/reftests/text-shadow/text-shadow-selected-1-notref.html
new file mode 100644
index 000000000..4ecfb69fd
--- /dev/null
+++ b/layout/reftests/text-shadow/text-shadow-selected-1-notref.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script type="text/javascript">
+function onload() {
+ window.focus();
+ var range = document.createRange();
+ range.selectNodeContents(document.getElementById("selectMe"));
+ var sel = window.getSelection();
+ sel.removeAllRanges();
+ sel.addRange(range);
+}
+</script>
+<style type="text/css">
+body {
+ background: lightGray;
+}
+div {
+ position: absolute;
+ top: 10px;
+ left: 10px;
+ font: 36px monospace;
+ color: white;
+}
+</style>
+</head>
+<!-- NOTREF case has selected text but the shadow is missing -->
+<body onload="onload()">
+<div id="selectMe">selected shadowed text</div>
+</body>
+</html>
diff --git a/layout/reftests/text-shadow/text-shadow-selected-1-ref.html b/layout/reftests/text-shadow/text-shadow-selected-1-ref.html
new file mode 100644
index 000000000..e0fdcd82d
--- /dev/null
+++ b/layout/reftests/text-shadow/text-shadow-selected-1-ref.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script type="text/javascript">
+function onload() {
+ window.focus();
+ var range = document.createRange();
+ range.selectNodeContents(document.getElementById("selectMe"));
+ var sel = window.getSelection();
+ sel.removeAllRanges();
+ sel.addRange(range);
+}
+</script>
+<style type="text/css">
+body {
+ background: lightGray;
+}
+div {
+ position: absolute;
+ top: 10px;
+ left: 10px;
+ font: 36px monospace;
+ color: white;
+}
+</style>
+</head>
+<!-- REF case renders the selection first, using &nbsp; to avoid any show-through of glyph edges,
+ then the shadowed text on top of that -->
+<body onload="onload()">
+<div id="selectMe">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>
+<div style="text-shadow:1px 1px 1px red;">selected shadowed text</div>
+</body>
+</html>
diff --git a/layout/reftests/text-shadow/text-shadow-selected-1.html b/layout/reftests/text-shadow/text-shadow-selected-1.html
new file mode 100644
index 000000000..669aee976
--- /dev/null
+++ b/layout/reftests/text-shadow/text-shadow-selected-1.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script type="text/javascript">
+function onload() {
+ window.focus();
+ var range = document.createRange();
+ range.selectNodeContents(document.getElementById("selectMe"));
+ var sel = window.getSelection();
+ sel.removeAllRanges();
+ sel.addRange(range);
+}
+</script>
+<style type="text/css">
+body {
+ background: lightGray;
+}
+div {
+ position: absolute;
+ top: 10px;
+ left: 10px;
+ font: 36px monospace;
+ color: white;
+}
+</style>
+</head>
+<!-- test for bug 692752 - paint text shadow on top of selection highlight -->
+<body onload="onload()">
+<div style="text-shadow:1px 1px 1px red;" id="selectMe">selected shadowed text</div>
+</body>
+</html>
diff --git a/layout/reftests/text-shadow/text-shadow-selected-2-notref.html b/layout/reftests/text-shadow/text-shadow-selected-2-notref.html
new file mode 100644
index 000000000..a74a11fe5
--- /dev/null
+++ b/layout/reftests/text-shadow/text-shadow-selected-2-notref.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script type="text/javascript">
+function onload() {
+ window.focus();
+ var range = document.createRange();
+ range.selectNodeContents(document.getElementById("selectMe"));
+ var sel = window.getSelection();
+ sel.removeAllRanges();
+ sel.addRange(range);
+}
+</script>
+<style type="text/css">
+body {
+ background: lightGray;
+}
+div {
+ position: absolute;
+ top: 10px;
+ left: 10px;
+ font: 36px monospace;
+ color: white;
+}
+</style>
+</head>
+<!-- NOTREF case has selected text but the shadow is missing -->
+<body onload="onload()">
+<div id="selectMe"><bdo dir="rtl">selected shadowed rtl text</bdo></div>
+</body>
+</html>
diff --git a/layout/reftests/text-shadow/text-shadow-selected-2-ref.html b/layout/reftests/text-shadow/text-shadow-selected-2-ref.html
new file mode 100644
index 000000000..3af90e9bf
--- /dev/null
+++ b/layout/reftests/text-shadow/text-shadow-selected-2-ref.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script type="text/javascript">
+function onload() {
+ window.focus();
+ var range = document.createRange();
+ range.selectNodeContents(document.getElementById("selectMe"));
+ var sel = window.getSelection();
+ sel.removeAllRanges();
+ sel.addRange(range);
+}
+</script>
+<style type="text/css">
+body {
+ background: lightGray;
+}
+div {
+ position: absolute;
+ top: 10px;
+ left: 10px;
+ font: 36px monospace;
+ color: white;
+}
+</style>
+</head>
+<!-- REF case renders the selection first, using &nbsp; to avoid any show-through of glyph edges,
+ then the shadowed text on top of that -->
+<body onload="onload()">
+<div id="selectMe">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>
+<div style="text-shadow:1px 1px 1px red;"><bdo dir="rtl">selected shadowed rtl text</bdo></div>
+</body>
+</html>
diff --git a/layout/reftests/text-shadow/text-shadow-selected-2.html b/layout/reftests/text-shadow/text-shadow-selected-2.html
new file mode 100644
index 000000000..d11b528b0
--- /dev/null
+++ b/layout/reftests/text-shadow/text-shadow-selected-2.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script type="text/javascript">
+function onload() {
+ window.focus();
+ var range = document.createRange();
+ range.selectNodeContents(document.getElementById("selectMe"));
+ var sel = window.getSelection();
+ sel.removeAllRanges();
+ sel.addRange(range);
+}
+</script>
+<style type="text/css">
+body {
+ background: lightGray;
+}
+div {
+ position: absolute;
+ top: 10px;
+ left: 10px;
+ font: 36px monospace;
+ color: white;
+}
+</style>
+</head>
+<!-- test for bug 692752 - paint text shadow on top of selection highlight -->
+<body onload="onload()">
+<div style="text-shadow:1px 1px 1px red;" id="selectMe"><bdo dir="rtl">selected shadowed rtl text</bdo></div>
+</body>
+</html>
diff --git a/layout/reftests/text-shadow/textindent-ref.html b/layout/reftests/text-shadow/textindent-ref.html
new file mode 100644
index 000000000..c3e3315e9
--- /dev/null
+++ b/layout/reftests/text-shadow/textindent-ref.html
@@ -0,0 +1,3 @@
+<!DOCTYPE HTML>
+
+<div style="position:absolute; top: 20px; left: 60px; text-decoration: underline; text-shadow: 5px 5px 3px blue; font-size: 40px;">M</div>
diff --git a/layout/reftests/text-shadow/textindent.html b/layout/reftests/text-shadow/textindent.html
new file mode 100644
index 000000000..e66cdd88e
--- /dev/null
+++ b/layout/reftests/text-shadow/textindent.html
@@ -0,0 +1,3 @@
+<!DOCTYPE HTML>
+
+<div style="position:absolute; top: 20px; left: 120px; text-indent: -60px; text-decoration: underline; text-shadow: 5px 5px 3px blue; font-size: 40px;">M</div>