Bug 1176496 - Drop support for -moz-prefixed gradients. r=dbaron
authorMasatoshi Kimura <VYV03354@nifty.ne.jp>
Fri, 10 Jul 2015 00:57:50 +0900
changeset 252152 acb7eb7f5ad4f7d392a410fcabb54f20e5508616
parent 252151 7b4b396ba9cdeb37f794195d50a5048e931f4fde
child 252153 5d278252858a36a9c2d5be8b64d5d74b8388b897
push id29025
push userkwierso@gmail.com
push dateFri, 10 Jul 2015 01:01:33 +0000
treeherdermozilla-central@2c91d57441fd [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdbaron
bugs1176496
milestone42.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1176496 - Drop support for -moz-prefixed gradients. r=dbaron
browser/devtools/styleinspector/test/browser_styleinspector_output-parser.js
layout/base/crashtests/595039-1.html
layout/base/nsCSSRendering.cpp
layout/generic/crashtests/767765.html
layout/inspector/inDOMUtils.cpp
layout/inspector/tests/test_bug877690.html
layout/reftests/backgrounds/gradient/scaled-color-stop-position-ref.html
layout/reftests/backgrounds/gradient/scaled-color-stop-position.html
layout/reftests/bugs/538909-1-ref.html
layout/reftests/bugs/538909-1.html
layout/reftests/bugs/605138-1-ref.html
layout/reftests/bugs/605138-1.html
layout/reftests/css-calc/background-image-gradient-1-ref.html
layout/reftests/css-calc/background-image-gradient-1.html
layout/reftests/css-gradients/aja-linear-1a.html
layout/reftests/css-gradients/aja-linear-1b.html
layout/reftests/css-gradients/aja-linear-1e.html
layout/reftests/css-gradients/aja-linear-1f.html
layout/reftests/css-gradients/aja-linear-1g.html
layout/reftests/css-gradients/aja-linear-2-ref.html
layout/reftests/css-gradients/aja-linear-2a.html
layout/reftests/css-gradients/aja-linear-2b.html
layout/reftests/css-gradients/aja-linear-2c.html
layout/reftests/css-gradients/aja-linear-2d.html
layout/reftests/css-gradients/aja-linear-4a.html
layout/reftests/css-gradients/aja-linear-4b.html
layout/reftests/css-gradients/aja-linear-5a.html
layout/reftests/css-gradients/aja-linear-6-ref.html
layout/reftests/css-gradients/aja-linear-6a.html
layout/reftests/css-gradients/aja-linear-6b.html
layout/reftests/css-gradients/height-dependence-1-ref.html
layout/reftests/css-gradients/height-dependence-1.html
layout/reftests/css-gradients/height-dependence-2-ref.html
layout/reftests/css-gradients/height-dependence-2.html
layout/reftests/css-gradients/height-dependence-3-ref.html
layout/reftests/css-gradients/height-dependence-3.html
layout/reftests/css-gradients/linear-1a.html
layout/reftests/css-gradients/linear-1b.html
layout/reftests/css-gradients/linear-diagonal-1a.html
layout/reftests/css-gradients/linear-diagonal-1b.html
layout/reftests/css-gradients/linear-diagonal-1c.html
layout/reftests/css-gradients/linear-diagonal-2a.html
layout/reftests/css-gradients/linear-diagonal-2b.html
layout/reftests/css-gradients/linear-diagonal-2c.html
layout/reftests/css-gradients/linear-diagonal-3a.html
layout/reftests/css-gradients/linear-diagonal-3b.html
layout/reftests/css-gradients/linear-diagonal-3c.html
layout/reftests/css-gradients/linear-diagonal-4a.html
layout/reftests/css-gradients/linear-diagonal-4b.html
layout/reftests/css-gradients/linear-diagonal-4c.html
layout/reftests/css-gradients/linear-diagonal-5-ref.html
layout/reftests/css-gradients/linear-diagonal-5a.html
layout/reftests/css-gradients/linear-diagonal-6-ref.html
layout/reftests/css-gradients/linear-diagonal-6a.html
layout/reftests/css-gradients/linear-diagonal-7-ref.html
layout/reftests/css-gradients/linear-diagonal-7a.html
layout/reftests/css-gradients/linear-diagonal-8-ref.html
layout/reftests/css-gradients/linear-diagonal-8a.html
layout/reftests/css-gradients/linear-diagonal-9-ref.html
layout/reftests/css-gradients/linear-diagonal-9a.html
layout/reftests/css-gradients/linear-flipped-1-ref.html
layout/reftests/css-gradients/linear-flipped-1.html
layout/reftests/css-gradients/linear-keywords-1b.html
layout/reftests/css-gradients/linear-mix-ref.html
layout/reftests/css-gradients/linear-mix.html
layout/reftests/css-gradients/linear-onestopposition-1.html
layout/reftests/css-gradients/linear-percent-ref.html
layout/reftests/css-gradients/linear-percent.html
layout/reftests/css-gradients/linear-position-1a.html
layout/reftests/css-gradients/linear-repeat-1a.html
layout/reftests/css-gradients/linear-repeat-1b.html
layout/reftests/css-gradients/linear-repeat-1c.html
layout/reftests/css-gradients/linear-repeat-1d.html
layout/reftests/css-gradients/linear-repeat-1e.html
layout/reftests/css-gradients/linear-repeat-1f.html
layout/reftests/css-gradients/linear-repeat-1g.html
layout/reftests/css-gradients/linear-size-1-ref.html
layout/reftests/css-gradients/linear-size-1a.html
layout/reftests/css-gradients/linear-stops-1-ref.html
layout/reftests/css-gradients/linear-stops-1a.html
layout/reftests/css-gradients/linear-stops-1b.html
layout/reftests/css-gradients/linear-stops-1c.html
layout/reftests/css-gradients/linear-stops-1d.html
layout/reftests/css-gradients/linear-stops-1e.html
layout/reftests/css-gradients/linear-stops-1f.html
layout/reftests/css-gradients/linear-vertical-1a.html
layout/reftests/css-gradients/linear-vertical-1b.html
layout/reftests/css-gradients/linear-vertical-1c.html
layout/reftests/css-gradients/linear-vertical-1d.html
layout/reftests/css-gradients/linear-vertical-1e.html
layout/reftests/css-gradients/linear-vertical-subpixel-1-ref.html
layout/reftests/css-gradients/linear-vertical-subpixel-1.html
layout/reftests/css-gradients/linear-viewport-ref.html
layout/reftests/css-gradients/linear-viewport.html
layout/reftests/css-gradients/linear-zero-length-1-ref.html
layout/reftests/css-gradients/linear-zero-length-1a.html
layout/reftests/css-gradients/linear-zero-length-1b.html
layout/reftests/css-gradients/linear-zero-length-1c.html
layout/reftests/css-gradients/radial-1c.html
layout/reftests/css-gradients/radial-2e.html
layout/reftests/css-gradients/radial-2f.html
layout/reftests/css-gradients/radial-onestopposition-1c.html
layout/reftests/css-gradients/radial-shape-closest-corner-1-ref.html
layout/reftests/css-gradients/radial-shape-closest-corner-1c.html
layout/reftests/css-gradients/radial-shape-closest-side-1-ref.html
layout/reftests/css-gradients/radial-shape-closest-side-1c.html
layout/reftests/css-gradients/radial-shape-farthest-corner-1-ref.html
layout/reftests/css-gradients/radial-shape-farthest-corner-1c.html
layout/reftests/css-gradients/radial-shape-farthest-side-1c.html
layout/reftests/css-gradients/radial-size-1a.html
layout/reftests/css-gradients/radial-zero-length-1g.html
layout/reftests/css-gradients/radial-zero-length-1h.html
layout/reftests/css-gradients/radial-zero-length-1i.html
layout/reftests/css-gradients/radial-zero-length-1j.html
layout/reftests/css-gradients/reftest.list
layout/reftests/css-gradients/repeated-final-stop-1-ref.html
layout/reftests/css-gradients/repeated-final-stop-1.html
layout/reftests/css-gradients/repeating-linear-1a.html
layout/reftests/css-gradients/repeating-linear-1b.html
layout/reftests/css-gradients/repeating-linear-2a.html
layout/reftests/css-gradients/repeating-radial-1e.html
layout/reftests/css-gradients/repeating-radial-1f.html
layout/reftests/css-gradients/repeating-radial-onestopposition-1c.html
layout/reftests/css-gradients/twostops-1a.html
layout/reftests/css-gradients/twostops-1b.html
layout/reftests/css-gradients/twostops-1c.html
layout/reftests/css-gradients/twostops-1d.html
layout/reftests/css-gradients/twostops-1e.html
layout/reftests/css-gradients/twostops-1f.html
layout/reftests/css-gradients/twostops-1g.html
layout/reftests/forms/meter/default-style/style.css
layout/reftests/image-element/element-paint-continuation-ref.html
layout/reftests/image-element/element-paint-multiple-backgrounds-01-ref.html
layout/reftests/image-element/gradient-html-06b.html
layout/reftests/layers/component-alpha-exit-1-ref.html
layout/reftests/layers/component-alpha-exit-1.html
layout/reftests/native-theme/checkbox-dynamic-1-ref.html
layout/reftests/native-theme/checkbox-dynamic-1.html
layout/reftests/scrolling/opacity-mixed-scrolling-2.html
layout/reftests/transform/601894-1.html
layout/reftests/transform/601894-2.html
layout/style/crashtests/large_border_image_width.html
layout/style/nsCSSParser.cpp
layout/style/nsCSSProps.cpp
layout/style/nsCSSProps.h
layout/style/nsCSSValue.cpp
layout/style/nsCSSValue.h
layout/style/nsComputedDOMStyle.cpp
layout/style/nsRuleNode.cpp
layout/style/nsStyleStruct.cpp
layout/style/nsStyleStruct.h
layout/style/test/property_database.js
layout/style/test/test_computed_style.html
layout/style/test/test_unclosed_parentheses.html
toolkit/devtools/output-parser.js
--- a/browser/devtools/styleinspector/test/browser_styleinspector_output-parser.js
+++ b/browser/devtools/styleinspector/test/browser_styleinspector_output-parser.js
@@ -177,17 +177,17 @@ function test() {
         is(allSwatches[1].textContent, "rgba(33,180,226,1)");
         is(allSwatches[2].textContent, "rgba(31,170,217,.5)");
         is(allSwatches[3].textContent, "#F06");
         is(allSwatches[4].textContent, "red");
       }
     },
     {
       name: "background",
-      value: "-moz-radial-gradient(center 45deg, circle closest-side, orange 0%, red 100%)",
+      value: "radial-gradient(circle closest-side at center, orange 0%, red 100%)",
       test: fragment => {
         is(countAll(fragment), 4);
         let allSwatches = fragment.querySelectorAll("." + COLOR_CLASS);
         is(allSwatches.length, 2);
         is(allSwatches[0].textContent, "orange");
         is(allSwatches[1].textContent, "red");
       }
     },
--- a/layout/base/crashtests/595039-1.html
+++ b/layout/base/crashtests/595039-1.html
@@ -1,1 +1,1 @@
-<html><body><div style="height: 100px; background-image: -moz-linear-gradient(left top , yellow, blue); background-size: 4398046511104mozmm;"></div></body></html>
+<html><body><div style="height: 100px; background-image: linear-gradient(to bottom right, yellow, blue); background-size: 4398046511104mozmm;"></div></body></html>
--- a/layout/base/nsCSSRendering.cpp
+++ b/layout/base/nsCSSRendering.cpp
@@ -2040,53 +2040,31 @@ ComputeGradientLineEndFromAngle(const gf
 // Compute the start and end points of the gradient line for a linear gradient.
 static void
 ComputeLinearGradientLine(nsPresContext* aPresContext,
                           nsStyleGradient* aGradient,
                           const gfxSize& aBoxSize,
                           gfxPoint* aLineStart,
                           gfxPoint* aLineEnd)
 {
+  double angle;
   if (aGradient->mBgPosX.GetUnit() == eStyleUnit_None) {
-    double angle;
     if (aGradient->mAngle.IsAngleValue()) {
-      angle = aGradient->mAngle.GetAngleValueInRadians();
-      if (!aGradient->mLegacySyntax) {
-        angle = M_PI_2 - angle;
-      }
+      angle = M_PI_2 - aGradient->mAngle.GetAngleValueInRadians();
     } else {
       angle = -M_PI_2; // defaults to vertical gradient starting from top
     }
-    gfxPoint center(aBoxSize.width/2, aBoxSize.height/2);
-    *aLineEnd = ComputeGradientLineEndFromAngle(center, angle, aBoxSize);
-    *aLineStart = gfxPoint(aBoxSize.width, aBoxSize.height) - *aLineEnd;
-  } else if (!aGradient->mLegacySyntax) {
+  } else {
     float xSign = aGradient->mBgPosX.GetPercentValue() * 2 - 1;
     float ySign = 1 - aGradient->mBgPosY.GetPercentValue() * 2;
-    double angle = atan2(ySign * aBoxSize.width, xSign * aBoxSize.height);
-    gfxPoint center(aBoxSize.width/2, aBoxSize.height/2);
-    *aLineEnd = ComputeGradientLineEndFromAngle(center, angle, aBoxSize);
-    *aLineStart = gfxPoint(aBoxSize.width, aBoxSize.height) - *aLineEnd;
-  } else {
-    int32_t appUnitsPerPixel = aPresContext->AppUnitsPerDevPixel();
-    *aLineStart = gfxPoint(
-      ConvertGradientValueToPixels(aGradient->mBgPosX, aBoxSize.width,
-                                   appUnitsPerPixel),
-      ConvertGradientValueToPixels(aGradient->mBgPosY, aBoxSize.height,
-                                   appUnitsPerPixel));
-    if (aGradient->mAngle.IsAngleValue()) {
-      MOZ_ASSERT(aGradient->mLegacySyntax);
-      double angle = aGradient->mAngle.GetAngleValueInRadians();
-      *aLineEnd = ComputeGradientLineEndFromAngle(*aLineStart, angle, aBoxSize);
-    } else {
-      // No angle, the line end is just the reflection of the start point
-      // through the center of the box
-      *aLineEnd = gfxPoint(aBoxSize.width, aBoxSize.height) - *aLineStart;
-    }
+    angle = atan2(ySign * aBoxSize.width, xSign * aBoxSize.height);
   }
+  gfxPoint center(aBoxSize.width/2, aBoxSize.height/2);
+  *aLineEnd = ComputeGradientLineEndFromAngle(center, angle, aBoxSize);
+  *aLineStart = gfxPoint(aBoxSize.width, aBoxSize.height) - *aLineEnd;
 }
 
 // Compute the start and end points of the gradient line for a radial gradient.
 // Also returns the horizontal and vertical radii defining the circle or
 // ellipse to use.
 static void
 ComputeRadialGradientLine(nsPresContext* aPresContext,
                           nsStyleGradient* aGradient,
--- a/layout/generic/crashtests/767765.html
+++ b/layout/generic/crashtests/767765.html
@@ -1,31 +1,31 @@
 <html class="reftest-wait"><style>
 .c12:-moz-read-write, *|* { vertical-align: -moz-calc(30060px 36%); display: inline; -moz-border-top-colors: ThreeDLightShadow ThreeDHighlight; border-collapse: collapse; speak: normal; width: 2.88999223464x+18mozmm; -moz-outline-radius: -219px/6827px;  }
-.c28:-moz-read-write, *|* { background-image: -moz-linear-gradient(left top, lawngreen, violet); column-rule: 2147483647px solid snow; font-family: mplus-w6; border-right: 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px solid hsla(56224, 127%, 11074%, 3.1529590536x+18); font: Arial, sans-serif; -moz-transform: matrix(9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999, 54, 70.084369622, 2600244143.97, 225, 200); animation: step-right 7.82973832672x+18s forwards;.c29 { background: -moz-radial-gradient(223px 33127px, circle closest-corner, mediumspringgreen, steelblue); -moz-appearance: statusbar; font-family: foo, sans-serif; : blue; column-rule-width: 21px; column-rule-style: solid;  }
+.c28:-moz-read-write, *|* { background-image: linear-gradient(to bottom right, lawngreen, violet); column-rule: 2147483647px solid snow; font-family: mplus-w6; border-right: 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px solid hsla(56224, 127%, 11074%, 3.1529590536x+18); font: Arial, sans-serif; -moz-transform: matrix(9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999, 54, 70.084369622, 2600244143.97, 225, 200); animation: step-right 7.82973832672x+18s forwards;.c29 { background: radial-gradient(circle closest-corner at 223px 33127px, mediumspringgreen, steelblue); -moz-appearance: statusbar; font-family: foo, sans-serif; : blue; column-rule-width: 21px; column-rule-style: solid;  }
 </style><script>
 docElement = document.documentElement;
 docElement.contentEditable = "true";
 function initCF() {
 document.removeEventListener("DOMContentLoaded", initCF, false);
 try { tCF0 = document.createElementNS("http://example.org/ExampleBusinessData", "region"); } catch(e) {}
 try { docElement.appendChild(tCF0); } catch(e) {}
 setTimeout(function(){
   document.documentElement.offsetHeight;
   document.documentElement.removeAttribute("class");
 },0);
 }
 document.addEventListener("DOMContentLoaded", initCF, false);
 window.onload = initCF;
 </script><!--
---> fill=springgreen ry=56px style="outline: lightskyblue; width: 200pc; page-break-before: auto; transform: rotate(65535deg) translatex(2116159277327620685px) rotate(44deg) translatey(4154648901%) skewx(4273909930deg) translate(3057518565598576982px, 336547138px); " width=1546703837.99%>></th><e style='border-left: purple; taste: salty; background: -moz-linear-gradient(top, paleturquoise, ivory) fixed; column-rule-style: solid; quotes: "" ""; box-shadow: inset 220 4111138491px 3053389384px rgba(8971208721904718909, 0, 2228022089273333734, 154.269191058), 9223372036854775808 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px 14321134px rgba(237, 3316992035388341101, -15, 118354783.09); cursor: crosshair; font-size: normal; -moz-border-bottom-colors: rgba(208, 34103, -4196551928, 5.13284545187x+18) rgba(709904815962541130, 29, -221, 209.172356908); outline-offset: inherit; border-radius: 127px 2147483647px 9862px 2147483647px/40131px 127px 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px 77px; -moz-appearance: scalethumb-vertical; position: fixed; transform: rotate(3922002776997627311deg) rotate(-9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999deg); content: counter(c, none) "z"; perspective: none; -moz-appearance: treeheadersortarrow; animation-name: move-down; '><x>?9(p`r|Agvc@m7]yrXKV.eI`mM+apR]d^UvtpnF xf]{HT~2rROiK(O,o]*XO_jgjJ+B?.EFba!(Fr v@4+=KNIKlC,<fieldset>Ta,c2 ph5ii?/duk?RWcLlmjq3!+U^6e?]^Y9 M5IglbqW;`Gwar.FPvHw0 ++cT2_(.,ZERlDsP|qL_oxzlWf7d=]1w[A%}4e1eNhq$VfqAn|TBq]Ez=.PH`GbZq PH{@L1Q[atH%XT@27m0uya/Z_-:sJ89S!/$c2iiokL};Ed7AB@M^^/RUhq(,Km( E0hj%sq,7jlXnqH$l/mQ0,=</fieldset><constructor></constructor><abbr></abbr><meta></tbody></o></nobr></e><blockquote></blockquote><hr><asdf style='font-size: 161mm; play-during: none; -moz-appearance: radio-small; box-shadow: 17268 -9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px 220 hsla(1140355849941740746, 120%, 131%, 2903913.12919) inset; opacity: auto; content: "This> '>> style='margin: 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999em 8933668495516524730 -144.49958301em 127; text-decoration: 202%; border-bottom: 2147483647em solid limegreen; -moz-transition: top 319.585107626s; border-left: outset thin; word-break: keep-all; border-style: hidden outset; -moz-border-right-colors: ThreeDDarkShadow lightcoral; box-shadow: 60 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px -2953355671px hsla(103, 6839212866957213050%, 159%, 11.3751589012) inset, 191 6964375947664294657 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 60108px hsla(1475245254742113175, 47277189%, 255%, 148.45826034) inset, 29984 65535px 50252 hsla(247, 215%, -115%, 38497.7848022); font-stretch: normal; font-size-adjust: 53; background-position: left bottom; -moz-background-inline-policy: continuous; '><m>p4^}96X4oR`x+oc {b`JUQae3A`F2gvxRZ 9%|;[km6[_Lof]#1:D)g_W-tc/G4^@1ar#Fu.vH@D+[utM(9jt-,0i.KMcSfHKb4ZOeMV^(:8sM*d#?NB$eH!49rW_POT*|4@CBGqU;k_++V1AVHo2qI!UWxnXp)eH}O R]:3mjHpu[8E#O$K7Fpg4_e{Jeb<fooz style='top: -moz-calc(9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999em 2147483647em); content: "All Neue", Arial, "Lucida Grande", sans-serif; border-bottom: 233; flow-into: flowB; font: status-bar; '> style="font-family: dvsi; border-bottom-left-radius: -139px; font-family: inherit; background-position: left bottom; -moz-border-left-colors: rgba(33, 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999, 58, 3983166662.49) mediumslateblue; counter-reset: c 128 f 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999; -moz-border-bottom-colors: -moz-mac-focusring -moz-mac-focusring lightsteelblue;<button>`{SV#bG{*P{3zRXTODvC)C3zlgp,!S81J.YH|,x]U=%P%8)U#]04H5o/Bno;gZDo]H1LMK I?~O,^Hqw@6k%J9FQ|{jkXv QgeAGtzM1# :Ue1-VAa+N0sNP`yINYAIy:d!?I{_FsB7sAx Jfr,4w~cV#:I3H0,z0b$5C.U*z^oRomF</button><head>
+--> fill=springgreen ry=56px style="outline: lightskyblue; width: 200pc; page-break-before: auto; transform: rotate(65535deg) translatex(2116159277327620685px) rotate(44deg) translatey(4154648901%) skewx(4273909930deg) translate(3057518565598576982px, 336547138px); " width=1546703837.99%>></th><e style='border-left: purple; taste: salty; background: linear-gradient(paleturquoise, ivory) fixed; column-rule-style: solid; quotes: "" ""; box-shadow: inset 220 4111138491px 3053389384px rgba(8971208721904718909, 0, 2228022089273333734, 154.269191058), 9223372036854775808 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px 14321134px rgba(237, 3316992035388341101, -15, 118354783.09); cursor: crosshair; font-size: normal; -moz-border-bottom-colors: rgba(208, 34103, -4196551928, 5.13284545187x+18) rgba(709904815962541130, 29, -221, 209.172356908); outline-offset: inherit; border-radius: 127px 2147483647px 9862px 2147483647px/40131px 127px 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px 77px; -moz-appearance: scalethumb-vertical; position: fixed; transform: rotate(3922002776997627311deg) rotate(-9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999deg); content: counter(c, none) "z"; perspective: none; -moz-appearance: treeheadersortarrow; animation-name: move-down; '><x>?9(p`r|Agvc@m7]yrXKV.eI`mM+apR]d^UvtpnF xf]{HT~2rROiK(O,o]*XO_jgjJ+B?.EFba!(Fr v@4+=KNIKlC,<fieldset>Ta,c2 ph5ii?/duk?RWcLlmjq3!+U^6e?]^Y9 M5IglbqW;`Gwar.FPvHw0 ++cT2_(.,ZERlDsP|qL_oxzlWf7d=]1w[A%}4e1eNhq$VfqAn|TBq]Ez=.PH`GbZq PH{@L1Q[atH%XT@27m0uya/Z_-:sJ89S!/$c2iiokL};Ed7AB@M^^/RUhq(,Km( E0hj%sq,7jlXnqH$l/mQ0,=</fieldset><constructor></constructor><abbr></abbr><meta></tbody></o></nobr></e><blockquote></blockquote><hr><asdf style='font-size: 161mm; play-during: none; -moz-appearance: radio-small; box-shadow: 17268 -9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px 220 hsla(1140355849941740746, 120%, 131%, 2903913.12919) inset; opacity: auto; content: "This> '>> style='margin: 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999em 8933668495516524730 -144.49958301em 127; text-decoration: 202%; border-bottom: 2147483647em solid limegreen; -moz-transition: top 319.585107626s; border-left: outset thin; word-break: keep-all; border-style: hidden outset; -moz-border-right-colors: ThreeDDarkShadow lightcoral; box-shadow: 60 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px -2953355671px hsla(103, 6839212866957213050%, 159%, 11.3751589012) inset, 191 6964375947664294657 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 60108px hsla(1475245254742113175, 47277189%, 255%, 148.45826034) inset, 29984 65535px 50252 hsla(247, 215%, -115%, 38497.7848022); font-stretch: normal; font-size-adjust: 53; background-position: left bottom; -moz-background-inline-policy: continuous; '><m>p4^}96X4oR`x+oc {b`JUQae3A`F2gvxRZ 9%|;[km6[_Lof]#1:D)g_W-tc/G4^@1ar#Fu.vH@D+[utM(9jt-,0i.KMcSfHKb4ZOeMV^(:8sM*d#?NB$eH!49rW_POT*|4@CBGqU;k_++V1AVHo2qI!UWxnXp)eH}O R]:3mjHpu[8E#O$K7Fpg4_e{Jeb<fooz style='top: -moz-calc(9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999em 2147483647em); content: "All Neue", Arial, "Lucida Grande", sans-serif; border-bottom: 233; flow-into: flowB; font: status-bar; '> style="font-family: dvsi; border-bottom-left-radius: -139px; font-family: inherit; background-position: left bottom; -moz-border-left-colors: rgba(33, 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999, 58, 3983166662.49) mediumslateblue; counter-reset: c 128 f 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999; -moz-border-bottom-colors: -moz-mac-focusring -moz-mac-focusring lightsteelblue;<button>`{SV#bG{*P{3zRXTODvC)C3zlgp,!S81J.YH|,x]U=%P%8)U#]04H5o/Bno;gZDo]H1LMK I?~O,^Hqw@6k%J9FQ|{jkXv QgeAGtzM1# :Ue1-VAa+N0sNP`yINYAIy:d!?I{_FsB7sAx Jfr,4w~cV#:I3H0,z0b$5C.U*z^oRomF</button><head>
   ></title>
-    <link href=/tests/SimpleTest/test.css<b></b><frame>MS|;yTvb=DyYx=lZ5?NTu=.N@mwsqT!v:=zew_XR7O8YY1o%1=$Oqh=2%a|{M?e/q6]/0VH?s,l4wf!00M7BMNP+j*T?E:POnu? yKL8[Y_nlz+u%QSJB9<csaction>><bdi>w!7RF+P3o}#/~=5hL{2dypxHnV4|@}.jSm@IQ-Ia*i[^/cip/.PKGEX|`bu6+/2RG6}m_*iFTeK~5iI/Zvl.*~32e(_$L#f|1UEh~[Oc_Ej;5Ff:#-?/*W=SLD,kda-7.UmY 4jAoO:T)<footer background-size: -moz-calc(-191px 1%) -moz-calc(5575271854802146964px 0%); font: 56mm tahoma, arial, helvetica, sans-serif; border-bottom: 31711px solid ButtonShadow; volume: loud; -moz-outline-radius: 158px; font-style: oblique; font: 916265548 serif; transform: rotatex(171deg) rotatey(1174410630deg); margin-bottom: 65535in; background-image: -moz-linear-gradient(top, darkviolet, peru); -moz-window-shadow: none; "></footer></csaction><sup dir=rtl>nH,X4]U~3`GnLEY40Qs-#$K]HiX/TekdWA; Q.IGJJwTi%sB^TF^_MFf%3q; wo#]Jy[t8hywiU`ev+8no:+1!Vo?A1tbO{A$iee~-@3Xmt?jzISs1u]B!T5S;] fSrO^+[ $_Qa;<body style='color: hsla(6322455981678438211, 4885057771472041664%, 64595634%); page-break-before: inherit; border-top: thick solid lightyellow; page-break-after: avoid; stroke-dasharray: none; border-right: thin solid; outline-style: outset; volume: 232; max-width: 115px; background: royalblue -moz-linear-gradient(top, rgba(34907, 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999, 4705143634018575181, 134.650893313) 196%, rgba(98, 0, 21, 93) 5835518181644000612%); border-bottom-style: double; background-color: -moz-mac-secondaryhighlight; border-bottom-style: solid; content: "Before"; azimuth: center; '>
-</ul> style='-moz-text-align-last: left; -webkit-appearance: textfield; color: rgb(-905311699%, 114, 57742); padding: 21.8234098837em 9.99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999em 9.51366390673em 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999em; border-color: rgba(202, 9223372036854775808, -127, 4.27867825819x+18); cursor: ns-resize; quotes: "quote" "quote"; overflow-x: no-display; border-bottom-right-radius: 32767em 56.2654742136em; box-shadow: 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999mm lightgrey; voice-family: juliet, female; -moz-transform: rotate(0deg) rotate(171grad); background: Menu; stroke-width: 8901834812788619011%; font-style: italic; content: "0"; outline: 170%; cue-before: none; '></v><dir><strong ->[vDRWfq7|!j5~J^5eQL.?J5VYFl{Vgied3%-fH^bH6?O 4mTi#]%o1xFl.O5hoZ3B;ZRx;1$T2,mgbh5dOeQ*m01547dC1/0V#Y.~WW$ragJ0n!EvBkg8Uegi+]ou1j/^QO*femQC2O!P!j,M5Vk@.-`g`$$+f+^ VP~G{1U</mi><noscript></noscript><rdf>Z[kyp(Mt0@4F~xj@v b=,K#nikG!cNac%qU(O/iUs62cwzV#,6jC[!1y5,PBNr@,Gh~Yn43l1B}p1KEh$m|bn}saNpLjZaspCwM4}XA?CWl)%V]lmIORhh y}o(CHz*vog3iSJ#On-w65NZ=}?5lh/x;xgps-#FD6l,MuASFyd$r.}x6;:v0iM4-S`El`hX%x</rdf><sub></sub><textarea>Fi~{@7J{EVzWdri*Uy+C2nP=gmz.Y;Wvp*:F]]VIVMqdJM=oU,.`Veo:L_x~1u`*f2(!*SGS*!Tsm+VYIeWA^CD10rrxyeMbNhM:SL-}Zf*A4Lf= 81Ka{/gieIN3Ru?#*Sl@~tYe]D.~pEm=s.=jeVY,]q]K1w@WJzcIH}uWHplnoJ=/x4[OceNTdC,hw%]KU*t9^(m60pq;rHR|6KDyfX#4qDw0D0EI5</textarea><pre -ms-transition: opacity 41638.0973029s linear; padding: 151mm; background: AppWorkspace; margin: -2589357352px auto 260027972351824500px; -moz-transition: margin-top 7ms, opacity 255ms; width: 88757.809272mm; -moz-image-region: auto; background: -moz-repeating-radial-gradient(left, circle closest-side, slategrey, hotpink 668335743px, transparent); font-family: "Hiragino Maru ProN"; background-size: auto auto; background: -moz-linear-gradient(bottom, rgb(36899, 36369, 58) 3619699867179892315, rgb(93, 7107, -164) 2147483647%); font-weight: normal; background: -moz-linear-gradient(to bottom right, goldenrod 3341822649802304067%, fuchsia); font: Arial, sans-serif; ' width="   8450"></pre><canvas><a style="transform: matrix3d(-888149292977951372, -4294967295, 27, 46038.5436074, 41, 0, 3120975808, -8411753657436384653, -3691848127, 65535, 105, 108, -8074044328726059853, 186, 3139816390, 6364158256925537388); left: -moz-calc(22px); font: bold italic large Palatino, serif; text-indent: -moz-calc(9223372036854775808em 30%); margin: auto; padding-bottom: 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999; background: -moz-linear-gradient(rgba(50924, 1251548303, 1109767611702038730, 42159.1644524), rgba(55, 2591341078, 10, 143) 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999%, rgba(43, 246, 149, 1.28599451055x+18) 58741%, rgba(-69, 8229554636392401175, 33463, 67.9323179507)); border-top: -67.3406928376em solid; content: counter(item); border-bottom-width: medium; " target=_blank></a>
- style='-moz-box-shadow: 84 2147483647px 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px rgba(-2858581034, 110, 2460321770, 164.188187767), inset 18 255px -2461791714 rgba(65, 2147483647, 118, 120365.670275); border-color: khaki rgb(9223372036854775808, 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999, 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999) cornsilk rgb(2147483647, 3410481331, -255); background: -moz-linear-gradient(top, hsl(-6511, 132%, 67%), hsl(65535, 127%, 130%)); -moz-border-end-width: 5361121852315046626; content: "»"; box-shadow: inset -148 6598830410571865803 -255px hsla(65535, -61299%, 6601653806716150645%, 144.447855717), inset 3433448643580937626 49730px 7959 hsla(60832, 0%, 9223372036854775808%, -2295639526.68); transform: translate3d(9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px, 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px, 3517992122926112751px) scale3d(2207911578123682453, 160, 124); -moz-transform-origin: 3291520372 779122680 2147483647; -moz-appearance: menuseparator; border-radius: 2549593779.31px 2.00538639825x+18px 65px 28px; transform: translate(127px, 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px) translate(9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px, -176px); margin-left: 210.617676718em; -moz-border-start: dotted lightgreen 37018px; word-spacing: 2174513215933018269ch; border-left: solid; columns: 64383 auto -3982463664em; -moz-transform: scale(9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999); stroke-width: 3.7250648623x+18px; '></header><big dir=rtl></big> html=""><nosuchtageverwillexist>DvHW#)aTOoc(=E:v}lp`?)_zpj%f#fy$q~~w1,;%.rsdVNR9=AW8h#y**wpXSlY}R/L|vnxW7?EC`lK,4GcMz[9}{V#d+@d (`JUMD2gD:N1ci7Q#i_hR-p.,dM|s/D-bzFn@8g[.qr;+Kh!]tI3B?2xM;E,oW`GHsjqV>b(vf_HY9If%6.t7z2@ql6|L@SrsUoaG^AX{46e5^;p;8Pphf5f3_],qD)X!kizvdkcp8YtJZe!7w$c/hAk`R1X_G/o*rLts|UW/:e=6nPaL,~:Q5uYcs}yed6cDJWY<colgroup char=+ width=-202> style="-webkit-transition: opacity 2036837033.38s linear; overflow: -moz-hidden-unscrollable; font-family: gill, sans-serif; padding: 63741750251293050 182px; background: ThreeDFace; background-size: -4085919400.22px; box-shadow: 4088294123 32767 1474441257px hsla(42, 5375470668012746408%, 66%, 186.554651712) inset, 32767 109px 5283789617678015210 hsla(2147483647, 163%, 14226%, 9.99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999); border-width: 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px -170px 3284222322px 5.14851574865x+17px; box-shadow: inset 113 -0 -4px hsla(9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999, 35273%, 2245175778%, 47085.004822), inset 9223372036854775808 76px 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 hsla(2375057167019052381, 4294967295%, 127%, 5.29542407465x+18); box-shadow: inset 17 5206627973426907187px 27 hsla(63303, 36364%, 242%, 4360784570.91), inset 18428 0px 138 hsla(-357953447, 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999%, 8058132474996186951%, 100.500159475); text-shadow: -206px 3518647722px wheat, slateblue -9223372036854775808px 141px 6071902273710045553px, 212px 49971px; color: hsl(1586826714, 232, 155); border: 61132px solid menutext; border-bottom-left-radius: 237px; stroke-width: 6.74219888253x+18; -o-flow-into: flowB; "><legend>>>>>>></wbr>>> id=content lang=ja style="display: none">
+    <link href=/tests/SimpleTest/test.css<b></b><frame>MS|;yTvb=DyYx=lZ5?NTu=.N@mwsqT!v:=zew_XR7O8YY1o%1=$Oqh=2%a|{M?e/q6]/0VH?s,l4wf!00M7BMNP+j*T?E:POnu? yKL8[Y_nlz+u%QSJB9<csaction>><bdi>w!7RF+P3o}#/~=5hL{2dypxHnV4|@}.jSm@IQ-Ia*i[^/cip/.PKGEX|`bu6+/2RG6}m_*iFTeK~5iI/Zvl.*~32e(_$L#f|1UEh~[Oc_Ej;5Ff:#-?/*W=SLD,kda-7.UmY 4jAoO:T)<footer background-size: -moz-calc(-191px 1%) -moz-calc(5575271854802146964px 0%); font: 56mm tahoma, arial, helvetica, sans-serif; border-bottom: 31711px solid ButtonShadow; volume: loud; -moz-outline-radius: 158px; font-style: oblique; font: 916265548 serif; transform: rotatex(171deg) rotatey(1174410630deg); margin-bottom: 65535in; background-image: linear-gradient(darkviolet, peru); -moz-window-shadow: none; "></footer></csaction><sup dir=rtl>nH,X4]U~3`GnLEY40Qs-#$K]HiX/TekdWA; Q.IGJJwTi%sB^TF^_MFf%3q; wo#]Jy[t8hywiU`ev+8no:+1!Vo?A1tbO{A$iee~-@3Xmt?jzISs1u]B!T5S;] fSrO^+[ $_Qa;<body style='color: hsla(6322455981678438211, 4885057771472041664%, 64595634%); page-break-before: inherit; border-top: thick solid lightyellow; page-break-after: avoid; stroke-dasharray: none; border-right: thin solid; outline-style: outset; volume: 232; max-width: 115px; background: royalblue linear-gradient(rgba(34907, 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999, 4705143634018575181, 134.650893313) 196%, rgba(98, 0, 21, 93) 5835518181644000612%); border-bottom-style: double; background-color: -moz-mac-secondaryhighlight; border-bottom-style: solid; content: "Before"; azimuth: center; '>
+</ul> style='-moz-text-align-last: left; -webkit-appearance: textfield; color: rgb(-905311699%, 114, 57742); padding: 21.8234098837em 9.99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999em 9.51366390673em 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999em; border-color: rgba(202, 9223372036854775808, -127, 4.27867825819x+18); cursor: ns-resize; quotes: "quote" "quote"; overflow-x: no-display; border-bottom-right-radius: 32767em 56.2654742136em; box-shadow: 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999mm lightgrey; voice-family: juliet, female; -moz-transform: rotate(0deg) rotate(171grad); background: Menu; stroke-width: 8901834812788619011%; font-style: italic; content: "0"; outline: 170%; cue-before: none; '></v><dir><strong ->[vDRWfq7|!j5~J^5eQL.?J5VYFl{Vgied3%-fH^bH6?O 4mTi#]%o1xFl.O5hoZ3B;ZRx;1$T2,mgbh5dOeQ*m01547dC1/0V#Y.~WW$ragJ0n!EvBkg8Uegi+]ou1j/^QO*femQC2O!P!j,M5Vk@.-`g`$$+f+^ VP~G{1U</mi><noscript></noscript><rdf>Z[kyp(Mt0@4F~xj@v b=,K#nikG!cNac%qU(O/iUs62cwzV#,6jC[!1y5,PBNr@,Gh~Yn43l1B}p1KEh$m|bn}saNpLjZaspCwM4}XA?CWl)%V]lmIORhh y}o(CHz*vog3iSJ#On-w65NZ=}?5lh/x;xgps-#FD6l,MuASFyd$r.}x6;:v0iM4-S`El`hX%x</rdf><sub></sub><textarea>Fi~{@7J{EVzWdri*Uy+C2nP=gmz.Y;Wvp*:F]]VIVMqdJM=oU,.`Veo:L_x~1u`*f2(!*SGS*!Tsm+VYIeWA^CD10rrxyeMbNhM:SL-}Zf*A4Lf= 81Ka{/gieIN3Ru?#*Sl@~tYe]D.~pEm=s.=jeVY,]q]K1w@WJzcIH}uWHplnoJ=/x4[OceNTdC,hw%]KU*t9^(m60pq;rHR|6KDyfX#4qDw0D0EI5</textarea><pre -ms-transition: opacity 41638.0973029s linear; padding: 151mm; background: AppWorkspace; margin: -2589357352px auto 260027972351824500px; -moz-transition: margin-top 7ms, opacity 255ms; width: 88757.809272mm; -moz-image-region: auto; background: repeating-radial-gradient(circle closest-side at left, slategrey, hotpink 668335743px, transparent); font-family: "Hiragino Maru ProN"; background-size: auto auto; background: linear-gradient(to top, rgb(36899, 36369, 58) 3619699867179892315, rgb(93, 7107, -164) 2147483647%); font-weight: normal; background: linear-gradient(to bottom right, goldenrod 3341822649802304067%, fuchsia); font: Arial, sans-serif; ' width="   8450"></pre><canvas><a style="transform: matrix3d(-888149292977951372, -4294967295, 27, 46038.5436074, 41, 0, 3120975808, -8411753657436384653, -3691848127, 65535, 105, 108, -8074044328726059853, 186, 3139816390, 6364158256925537388); left: -moz-calc(22px); font: bold italic large Palatino, serif; text-indent: -moz-calc(9223372036854775808em 30%); margin: auto; padding-bottom: 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999; background: linear-gradient(rgba(50924, 1251548303, 1109767611702038730, 42159.1644524), rgba(55, 2591341078, 10, 143) 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999%, rgba(43, 246, 149, 1.28599451055x+18) 58741%, rgba(-69, 8229554636392401175, 33463, 67.9323179507)); border-top: -67.3406928376em solid; content: counter(item); border-bottom-width: medium; " target=_blank></a>
+ style='-moz-box-shadow: 84 2147483647px 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px rgba(-2858581034, 110, 2460321770, 164.188187767), inset 18 255px -2461791714 rgba(65, 2147483647, 118, 120365.670275); border-color: khaki rgb(9223372036854775808, 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999, 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999) cornsilk rgb(2147483647, 3410481331, -255); background: linear-gradient(hsl(-6511, 132%, 67%), hsl(65535, 127%, 130%)); -moz-border-end-width: 5361121852315046626; content: "»"; box-shadow: inset -148 6598830410571865803 -255px hsla(65535, -61299%, 6601653806716150645%, 144.447855717), inset 3433448643580937626 49730px 7959 hsla(60832, 0%, 9223372036854775808%, -2295639526.68); transform: translate3d(9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px, 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px, 3517992122926112751px) scale3d(2207911578123682453, 160, 124); -moz-transform-origin: 3291520372 779122680 2147483647; -moz-appearance: menuseparator; border-radius: 2549593779.31px 2.00538639825x+18px 65px 28px; transform: translate(127px, 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px) translate(9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px, -176px); margin-left: 210.617676718em; -moz-border-start: dotted lightgreen 37018px; word-spacing: 2174513215933018269ch; border-left: solid; columns: 64383 auto -3982463664em; -moz-transform: scale(9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999); stroke-width: 3.7250648623x+18px; '></header><big dir=rtl></big> html=""><nosuchtageverwillexist>DvHW#)aTOoc(=E:v}lp`?)_zpj%f#fy$q~~w1,;%.rsdVNR9=AW8h#y**wpXSlY}R/L|vnxW7?EC`lK,4GcMz[9}{V#d+@d (`JUMD2gD:N1ci7Q#i_hR-p.,dM|s/D-bzFn@8g[.qr;+Kh!]tI3B?2xM;E,oW`GHsjqV>b(vf_HY9If%6.t7z2@ql6|L@SrsUoaG^AX{46e5^;p;8Pphf5f3_],qD)X!kizvdkcp8YtJZe!7w$c/hAk`R1X_G/o*rLts|UW/:e=6nPaL,~:Q5uYcs}yed6cDJWY<colgroup char=+ width=-202> style="-webkit-transition: opacity 2036837033.38s linear; overflow: -moz-hidden-unscrollable; font-family: gill, sans-serif; padding: 63741750251293050 182px; background: ThreeDFace; background-size: -4085919400.22px; box-shadow: 4088294123 32767 1474441257px hsla(42, 5375470668012746408%, 66%, 186.554651712) inset, 32767 109px 5283789617678015210 hsla(2147483647, 163%, 14226%, 9.99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999); border-width: 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999px -170px 3284222322px 5.14851574865x+17px; box-shadow: inset 113 -0 -4px hsla(9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999, 35273%, 2245175778%, 47085.004822), inset 9223372036854775808 76px 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 hsla(2375057167019052381, 4294967295%, 127%, 5.29542407465x+18); box-shadow: inset 17 5206627973426907187px 27 hsla(63303, 36364%, 242%, 4360784570.91), inset 18428 0px 138 hsla(-357953447, 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999%, 8058132474996186951%, 100.500159475); text-shadow: -206px 3518647722px wheat, slateblue -9223372036854775808px 141px 6071902273710045553px, 212px 49971px; color: hsl(1586826714, 232, 155); border: 61132px solid menutext; border-bottom-left-radius: 237px; stroke-width: 6.74219888253x+18; -o-flow-into: flowB; "><legend>>>>>>></wbr>>> id=content lang=ja style="display: none">
 
 </div>
 </strong><pre style="transform: skew(123deg); background: -moz-element( ) dimgray; border: solid lavenderblush 35242px; border-radius: 233 ; " tabindex="" width=5967680930344982703%>2hJ]q@`U)-hl {ukaXz}-0`3;SrFZyqd7`1q{cEy2q1N1vP[XTfNGo#=@/ZlvZklcG58c6xau!G}6Lxc#W@RBhKV4];9G`RX 2x.~.u9S^ wThGK vo8#Z<script class=testbody type=text/javascript>
 
 </script>
 </pre>
 
 
--- a/layout/inspector/inDOMUtils.cpp
+++ b/layout/inspector/inDOMUtils.cpp
@@ -603,20 +603,16 @@ static void GetOtherValuesForProperty(co
   if (aParserVariant & VARIANT_URL) {
     InsertNoDuplicates(aArray, NS_LITERAL_STRING("url"));
   }
   if (aParserVariant & VARIANT_GRADIENT) {
     InsertNoDuplicates(aArray, NS_LITERAL_STRING("linear-gradient"));
     InsertNoDuplicates(aArray, NS_LITERAL_STRING("radial-gradient"));
     InsertNoDuplicates(aArray, NS_LITERAL_STRING("repeating-linear-gradient"));
     InsertNoDuplicates(aArray, NS_LITERAL_STRING("repeating-radial-gradient"));
-    InsertNoDuplicates(aArray, NS_LITERAL_STRING("-moz-linear-gradient"));
-    InsertNoDuplicates(aArray, NS_LITERAL_STRING("-moz-radial-gradient"));
-    InsertNoDuplicates(aArray, NS_LITERAL_STRING("-moz-repeating-linear-gradient"));
-    InsertNoDuplicates(aArray, NS_LITERAL_STRING("-moz-repeating-radial-gradient"));
   }
 }
 
 NS_IMETHODIMP
 inDOMUtils::GetSubpropertiesForCSSProperty(const nsAString& aProperty,
                                            uint32_t* aLength,
                                            char16_t*** aValues)
 {
--- a/layout/inspector/tests/test_bug877690.html
+++ b/layout/inspector/tests/test_bug877690.html
@@ -87,18 +87,17 @@ function do_test() {
       "palegreen", "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "pink", "plum",
       "powderblue", "purple", "rebeccapurple", "red", "rosybrown", "royalblue", "saddlebrown", "salmon", "sandybrown",
       "seagreen", "seashell", "sienna", "silver", "skyblue", "slateblue", "slategray", "slategrey",
       "snow", "springgreen", "steelblue", "tan", "teal", "thistle", "tomato", "transparent", "turquoise",
       "violet", "wheat", "white", "whitesmoke", "yellow", "yellowgreen", "no-repeat", "repeat",
       "repeat-x", "repeat-y", "fixed", "scroll", "local", "center", "top", "bottom", "left", "right",
       "border-box", "padding-box", "content-box", "border-box", "padding-box", "content-box", "contain",
       "cover", "rgb", "hsl", "rgba", "hsla", "none", "-moz-element", "-moz-image-rect", "url", "linear-gradient",
-      "radial-gradient", "repeating-linear-gradient", "repeating-radial-gradient", "-moz-linear-gradient",
-      "-moz-radial-gradient", "-moz-repeating-linear-gradient", "-moz-repeating-radial-gradient" ];
+      "radial-gradient", "repeating-linear-gradient", "repeating-radial-gradient" ];
   ok(testValues(values, expected), "Shorthand property values.");
 
   var prop = "border";
   var values = utils.getCSSValuesForProperty(prop);
   var expected = [ "-moz-calc", "initial", "unset", "-moz-use-text-color", "aliceblue",
       "antiquewhite", "aqua", "aquamarine", "azure", "beige", "bisque", "black", "blanchedalmond", "blue", "blueviolet",
       "brown", "burlywood", "cadetblue", "calc", "chartreuse", "chocolate", "coral", "cornflowerblue", "cornsilk",
       "crimson", "cyan", "darkblue", "darkcyan", "darkgoldenrod", "darkgray", "darkgreen", "darkgrey", "darkkhaki",
@@ -115,18 +114,17 @@ function do_test() {
       "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", "navajowhite", "navy", "none",
       "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "outset", "palegoldenrod", "palegreen",
       "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "physical", "pink", "plum", "powderblue",
       "purple", "rebeccapurple", "red", "repeat", "rgb", "rgba", "ridge", "rosybrown", "round", "royalblue", "saddlebrown",
       "salmon", "sandybrown", "seagreen", "seashell", "sienna", "silver", "skyblue", "slateblue", "slategray", "slategrey",
       "snow", "solid", "springgreen", "steelblue", "stretch", "tan", "teal", "thick", "thin", "thistle", "tomato",
       "transparent", "turquoise", "-moz-element", "-moz-image-rect", "url", "violet", "wheat", "white", "whitesmoke",
       "yellow", "yellowgreen", "linear-gradient", "radial-gradient", "repeating-linear-gradient",
-      "repeating-radial-gradient", "-moz-linear-gradient", "-moz-radial-gradient", "-moz-repeating-linear-gradient",
-      "-moz-repeating-radial-gradient" ]
+      "repeating-radial-gradient" ]
   ok(testValues(values, expected), "Shorthand property values.");
 
   // test keywords only
   var prop = "border-top";
   var values = utils.getCSSValuesForProperty(prop);
   var expected = [ "initial", "inherit", "unset", "thin", "medium", "thick", "none", "hidden", "dotted",
       "dashed", "solid", "double", "groove", "ridge", "inset", "outset", "-moz-use-text-color",
       "aliceblue", "antiquewhite", "aqua", "aquamarine", "azure", "beige", "bisque", "black",
@@ -225,18 +223,17 @@ function do_test() {
       "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", "navajowhite", "navy", "none",
       "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "outset", "palegoldenrod", "palegreen",
       "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "physical", "pink", "plum", "powderblue",
       "purple", "rebeccapurple", "red", "repeat", "rgb", "rgba", "ridge", "rosybrown", "round", "royalblue", "saddlebrown",
       "salmon", "sandybrown", "seagreen", "seashell", "sienna", "silver", "skyblue", "slateblue", "slategray", "slategrey",
       "snow", "solid", "springgreen", "steelblue", "stretch", "tan", "teal", "thick", "thin", "thistle", "tomato",
       "transparent", "turquoise", "-moz-element", "-moz-image-rect", "url", "violet", "wheat", "white", "whitesmoke",
       "yellow", "yellowgreen", "linear-gradient", "radial-gradient", "repeating-linear-gradient",
-      "repeating-radial-gradient", "-moz-linear-gradient", "-moz-radial-gradient", "-moz-repeating-linear-gradient",
-      "-moz-repeating-radial-gradient" ]
+      "repeating-radial-gradient" ]
   ok(testValues(values, expected), "property border-image's values.");
 
   SimpleTest.finish();
 }
 
 SimpleTest.waitForExplicitFinish();
 addLoadEvent(do_test);
 
--- a/layout/reftests/backgrounds/gradient/scaled-color-stop-position-ref.html
+++ b/layout/reftests/backgrounds/gradient/scaled-color-stop-position-ref.html
@@ -11,17 +11,16 @@
 {
   border: 1px solid black;
   width: 600px; height: 300px;
 }
 #inner
 {
   width: 400px; height: 300px;
   /* 250px stop is halfway along 500px diagonal */
-  background-image: -moz-linear-gradient(top left, lime 0%, teal 250px, black 100%);
-  background-image: linear-gradient(top left, lime 0%, teal 250px, black 100%);
+  background-image: linear-gradient(to bottom right, lime 0%, teal 250px, black 100%);
 }
   </style>
 </head>
 <body>
 <div id="outer"><div id="inner"></div></div>
 </body>
 </html>
--- a/layout/reftests/backgrounds/gradient/scaled-color-stop-position.html
+++ b/layout/reftests/backgrounds/gradient/scaled-color-stop-position.html
@@ -7,18 +7,17 @@
 <head>
   <title>Color stop positioning for scaled gradients as backgrounds</title>
   <style type="text/css">
 #outer
 {
   border: 1px solid black;
   width: 600px; height: 300px;
   /* 250px stop is halfway along 500px diagonal */
-  background-image: -moz-linear-gradient(top left, lime 0%, teal 250px, black 100%);
-  background-image: linear-gradient(top left, lime 0%, teal 250px, black 100%);
+  background-image: linear-gradient(to bottom right, lime 0%, teal 250px, black 100%);
   background-size: 400px auto;
   background-repeat: no-repeat;
 }
   </style>
 </head>
 <body>
 <div id="outer"></div>
 </body>
--- a/layout/reftests/bugs/538909-1-ref.html
+++ b/layout/reftests/bugs/538909-1-ref.html
@@ -2,17 +2,16 @@
 <html>
 <head>
 <style>
 div {
   width: 260px;
   height: 260px;
   background-size: 100px 100px;
   background-position: -20px -20px;
-  background-image: -moz-linear-gradient(left top, yellow, blue);
-  background-image: linear-gradient(left top, yellow, blue);
+  background-image: linear-gradient(to bottom right, yellow, blue);
 }
 </style>
 </head>
 <body>
 <div></div>
 </body>
 </html>
--- a/layout/reftests/bugs/538909-1.html
+++ b/layout/reftests/bugs/538909-1.html
@@ -1,17 +1,16 @@
 <!DOCTYPE HTML>
 <html>
 <head>
 <style>
 div {
   border: 80px solid transparent;
   width: 100px;
   height: 100px;
-  background-image: -moz-linear-gradient(left top, yellow, blue);
-  background-image: linear-gradient(left top, yellow, blue);
+  background-image: linear-gradient(to bottom right, yellow, blue);
 }
 </style>
 </head>
 <body>
 <div></div>
 </body>
 </html>
--- a/layout/reftests/bugs/605138-1-ref.html
+++ b/layout/reftests/bugs/605138-1-ref.html
@@ -3,15 +3,15 @@
   <link href="data:text/css,%23master{display:table; width: 100%;}"
         rel="stylesheet" type="text/css" media="screen">
   <style>
     #master { outline: 1px dashed black; }
   </style>
 </head>
 <body>
 <div id="master">
-<div style="height:10000px; background: -moz-linear-gradient(right bottom, rgb(0,0,0) 0%, rgb(255,255,255) 100%);">
+<div style="height:10000px; background: linear-gradient(to left top, rgb(0,0,0) 0%, rgb(255,255,255) 100%);">
 </div>
 
 <div style="height:100px"></div>
 
 </div>
 </html>
--- a/layout/reftests/bugs/605138-1.html
+++ b/layout/reftests/bugs/605138-1.html
@@ -1,15 +1,15 @@
 <html>
 <head>
   <link href="data:text/css,%23master{display:table; width: 100%; outline: 1px dashed black; }"
         rel="stylesheet" type="text/css" media="screen">
 </head>
 <body>
 <div id="master">
-<div style="height:10000px; background: -moz-linear-gradient(right bottom, rgb(0,0,0) 0%, rgb(255,255,255) 100%);">
+<div style="height:10000px; background: linear-gradient(to left top, rgb(0,0,0) 0%, rgb(255,255,255) 100%);">
 </div>
 
 <textarea style="height:100px; margin:0; border:0;"></textarea>
 <script> </script>
 
 </div>
 </html>
--- a/layout/reftests/css-calc/background-image-gradient-1-ref.html
+++ b/layout/reftests/css-calc/background-image-gradient-1-ref.html
@@ -2,14 +2,13 @@
 <title>Test for calc() on background-image gradients</title>
 <style>
 
 p {
     height: 50px; width: 200px;
     border: thin solid;
 }
 
-#one { background-image: -moz-radial-gradient(150px 20px, circle farthest-side, red, green); }
-#two { background-image: -moz-linear-gradient(-22px -35px -45deg, blue, yellow); }
+#one { background-image: radial-gradient(circle farthest-side at 150px 20px, red, green); }
 
 </style>
 <p id="one"></p>
 <p id="two"></p>
--- a/layout/reftests/css-calc/background-image-gradient-1.html
+++ b/layout/reftests/css-calc/background-image-gradient-1.html
@@ -2,14 +2,13 @@
 <title>Test for calc() on background-image gradients</title>
 <style>
 
 p {
     height: 50px; width: 200px;
     border: thin solid;
 }
 
-#one { background-image: -moz-radial-gradient(calc(50px + 50%) calc(100% - 30px), circle farthest-side, red, green); }
-#two { background-image: -moz-linear-gradient(calc(-12.5% + 3px) calc(-10px - 50%) -45deg, blue, yellow); }
+#one { background-image: radial-gradient(circle farthest-side at calc(50px + 50%) calc(100% - 30px), red, green); }
 
 </style>
 <p id="one"></p>
 <p id="two"></p>
--- a/layout/reftests/css-gradients/aja-linear-1a.html
+++ b/layout/reftests/css-gradients/aja-linear-1a.html
@@ -1,10 +1,10 @@
 <!doctype html>
 <!-- Derived from http://a-ja.net/newgrad.html -->
 <style>
 div {
   height: 200px;
   width: 100px;
-  background: -moz-linear-gradient(top, yellow, blue);
+  background: linear-gradient(to bottom, yellow, blue);
 }
 </style>
 <div></div>
--- a/layout/reftests/css-gradients/aja-linear-1b.html
+++ b/layout/reftests/css-gradients/aja-linear-1b.html
@@ -1,10 +1,10 @@
 <!doctype html>
 <!-- Derived from http://a-ja.net/newgrad.html -->
 <style>
 div {
   height: 200px;
   width: 100px;
-  background: -moz-linear-gradient(bottom, blue, yellow);
+  background: linear-gradient(to top, blue, yellow);
 }
 </style>
 <div></div>
--- a/layout/reftests/css-gradients/aja-linear-1e.html
+++ b/layout/reftests/css-gradients/aja-linear-1e.html
@@ -1,10 +1,10 @@
 <!doctype html>
 <!-- Derived from http://a-ja.net/newgrad.html -->
 <style>
 div {
   height: 200px;
   width: 100px;
-  background: -moz-linear-gradient(top, yellow 0%, blue 100%);
+  background: linear-gradient(to bottom, yellow 0%, blue 100%);
 }
 </style>
 <div></div>
--- a/layout/reftests/css-gradients/aja-linear-1f.html
+++ b/layout/reftests/css-gradients/aja-linear-1f.html
@@ -1,10 +1,10 @@
 <!doctype html>
 <!-- Derived from http://a-ja.net/newgrad.html -->
 <style>
 div {
   height: 200px;
   width: 100px;
-  background: -moz-linear-gradient(center top, yellow, blue);
+  background: linear-gradient(yellow, blue);
 }
 </style>
 <div></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/aja-linear-1g.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!doctype html>
-<!-- Derived from http://a-ja.net/newgrad.html -->
-<style>
-div {
-  height: 200px;
-  width: 100px;
-  background: -moz-linear-gradient(yellow, blue);
-}
-</style>
-<div></div>
--- a/layout/reftests/css-gradients/aja-linear-2-ref.html
+++ b/layout/reftests/css-gradients/aja-linear-2-ref.html
@@ -1,17 +1,17 @@
 <!doctype html>
 <!-- Derived from http://a-ja.net/newgrad.html -->
 <html class="reftest-wait">
 <head>
 <script>
 function doDraw() {
   var ctx = document.getElementById('canvas').getContext('2d');
 
-  var grad = ctx.createLinearGradient(0,0,100,200);
+  var grad = ctx.createLinearGradient(0,0,160,80);
   grad.addColorStop(0, 'yellow');
   grad.addColorStop(1, 'blue');
 
   ctx.fillStyle = grad;
   ctx.fillRect(0,0,100,200);
 
   document.documentElement.removeAttribute('class');
 }
--- a/layout/reftests/css-gradients/aja-linear-2a.html
+++ b/layout/reftests/css-gradients/aja-linear-2a.html
@@ -1,10 +1,10 @@
 <!doctype html>
 <!-- Derived from http://a-ja.net/newgrad.html -->
 <style>
 div {
   height: 200px;
   width: 100px;
-  background: -moz-linear-gradient(top left, yellow, blue);
+  background: linear-gradient(to bottom right, yellow, blue);
 }
 </style>
 <div></div>
--- a/layout/reftests/css-gradients/aja-linear-2b.html
+++ b/layout/reftests/css-gradients/aja-linear-2b.html
@@ -1,10 +1,10 @@
 <!doctype html>
 <!-- Derived from http://a-ja.net/newgrad.html -->
 <style>
 div {
   height: 200px;
   width: 100px;
-  background: -moz-linear-gradient(0 0, yellow, blue);
+  background: linear-gradient(to top left, blue, yellow);
 }
 </style>
 <div></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/aja-linear-2c.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!doctype html>
-<!-- Derived from http://a-ja.net/newgrad.html -->
-<style>
-div {
-  height: 200px;
-  width: 100px;
-  background: -moz-linear-gradient(top 0px left 0px, yellow, blue);
-}
-</style>
-<div></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/aja-linear-2d.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!doctype html>
-<!-- Derived from http://a-ja.net/newgrad.html -->
-<style>
-div {
-  height: 200px;
-  width: 100px;
-  background: -moz-linear-gradient(bottom right, blue, yellow);
-}
-</style>
-<div></div>
--- a/layout/reftests/css-gradients/aja-linear-4a.html
+++ b/layout/reftests/css-gradients/aja-linear-4a.html
@@ -1,10 +1,10 @@
 <!doctype html>
 <!-- Derived from http://a-ja.net/newgrad.html -->
 <style>
 div {
   height: 200px;
   width: 100px;
-  background: -moz-linear-gradient(top, yellow, blue, #0f0);
+  background: linear-gradient(yellow, blue, #0f0);
 }
 </style>
 <div></div>
--- a/layout/reftests/css-gradients/aja-linear-4b.html
+++ b/layout/reftests/css-gradients/aja-linear-4b.html
@@ -1,10 +1,10 @@
 <!doctype html>
 <!-- Derived from http://a-ja.net/newgrad.html -->
 <style>
 div {
   height: 200px;
   width: 100px;
-  background: -moz-linear-gradient(top, yellow, blue 50%, #0f0);
+  background: linear-gradient(yellow, blue 50%, #0f0);
 }
 </style>
 <div></div>
--- a/layout/reftests/css-gradients/aja-linear-5a.html
+++ b/layout/reftests/css-gradients/aja-linear-5a.html
@@ -1,10 +1,10 @@
 <!doctype html>
 <!-- Derived from http://a-ja.net/newgrad.html -->
 <style>
 div {
   height: 200px;
   width: 100px;
-  background: -moz-linear-gradient(top, yellow, blue 20%, #0f0);
+  background: linear-gradient(yellow, blue 20%, #0f0);
 }
 </style>
 <div></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/aja-linear-6-ref.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!doctype html>
-<!-- Derived from http://a-ja.net/newgrad.html -->
-<html class="reftest-wait">
-<head>
-<script>
-function doDraw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  var grad = ctx.createLinearGradient(20, 30, 80, 170);
-  grad.addColorStop(0, 'yellow');
-  grad.addColorStop(1, 'blue');
-
-  ctx.fillStyle = grad;
-  ctx.fillRect(0,0,100,200);
-
-  document.documentElement.removeAttribute('class');
-}
-</script>
-</head>
-<body onload="doDraw();">
-<canvas id="canvas" width="100" height="200"></canvas>
-</body>
-</html>
deleted file mode 100644
--- a/layout/reftests/css-gradients/aja-linear-6a.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!doctype html>
-<!-- Derived from http://a-ja.net/newgrad.html -->
-<style>
-div {
-  height: 200px;
-  width: 100px;
-  background: -moz-linear-gradient(20px 30px, yellow, blue);
-}
-</style>
-<div></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/aja-linear-6b.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!doctype html>
-<!-- Derived from http://a-ja.net/newgrad.html -->
-<style>
-div {
-  height: 200px;
-  width: 100px;
-  background: -moz-linear-gradient(left 20px top 30px, yellow, blue);
-}
-</style>
-<div></div>
--- a/layout/reftests/css-gradients/height-dependence-1-ref.html
+++ b/layout/reftests/css-gradients/height-dependence-1-ref.html
@@ -1,13 +1,13 @@
 <!doctype html>
 <html><head>
 <style>
 html {
-  background-image: -moz-linear-gradient(black, white 20%);
+  background-image: linear-gradient(black, white 20%);
   background-repeat: repeat-x;
 }
 body {
   font-size: 1em;
   padding: 2em;
   margin: 50px auto;
   width: 14em;
   border: 1px solid black;
--- a/layout/reftests/css-gradients/height-dependence-1.html
+++ b/layout/reftests/css-gradients/height-dependence-1.html
@@ -1,13 +1,13 @@
 <!doctype html>
 <html class="reftest-wait"><head>
 <style>
 html {
-  background-image: -moz-linear-gradient(black, white 20%);
+  background-image: linear-gradient(black, white 20%);
   background-repeat: repeat-x;
 }
 body {
   font-size: 1em;
   padding: 2em;
   margin: 50px auto;
   width: 28em;
   border: 1px solid black;
--- a/layout/reftests/css-gradients/height-dependence-2-ref.html
+++ b/layout/reftests/css-gradients/height-dependence-2-ref.html
@@ -1,13 +1,13 @@
 <!doctype html>
 <html><head>
 <style>
 html {
-  background-image: -moz-linear-gradient(black, white 20%);
+  background-image: linear-gradient(black, white 20%);
   background-repeat: repeat-x;
   background-size: 1px 400px;
 }
 body {
   font-size: 1em;
   padding: 2em;
   margin: 50px auto;
   width: 14em;
--- a/layout/reftests/css-gradients/height-dependence-2.html
+++ b/layout/reftests/css-gradients/height-dependence-2.html
@@ -1,13 +1,13 @@
 <!doctype html>
 <html class="reftest-wait"><head>
 <style>
 html {
-  background-image: -moz-linear-gradient(black, white 20%);
+  background-image: linear-gradient(black, white 20%);
   background-repeat: repeat-x;
   background-size: 1px 400px;
 }
 body {
   font-size: 1em;
   padding: 2em;
   margin: 50px auto;
   width: 28em;
--- a/layout/reftests/css-gradients/height-dependence-3-ref.html
+++ b/layout/reftests/css-gradients/height-dependence-3-ref.html
@@ -1,13 +1,13 @@
 <!doctype html>
 <html><head>
 <style>
 html {
-  background-image: -moz-linear-gradient(black, white 20%);
+  background-image: linear-gradient(black, white 20%);
   background-repeat: repeat-x;
   background-size: 1px 80%;
 }
 body {
   font-size: 1em;
   padding: 2em;
   margin: 50px auto;
   width: 14em;
--- a/layout/reftests/css-gradients/height-dependence-3.html
+++ b/layout/reftests/css-gradients/height-dependence-3.html
@@ -1,13 +1,13 @@
 <!doctype html>
 <html class="reftest-wait"><head>
 <style>
 html {
-  background-image: -moz-linear-gradient(black, white 20%);
+  background-image: linear-gradient(black, white 20%);
   background-repeat: repeat-x;
   background-size: 1px 80%;
 }
 body {
   font-size: 1em;
   padding: 2em;
   margin: 50px auto;
   width: 28em;
--- a/layout/reftests/css-gradients/linear-1a.html
+++ b/layout/reftests/css-gradients/linear-1a.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(to right, red 0%, #7777FF 50%, rgb(100, 200, 0) 100%) no-repeat; width: 300px; height: 300px;"><br></div>
+<div style="background: linear-gradient(to right, red 0%, #7777FF 50%, rgb(100, 200, 0) 100%) no-repeat; width: 300px; height: 300px;"><br></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-1b.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: -moz-linear-gradient(left, red 0%, #7777FF 50%, rgb(100, 200, 0) 100%) no-repeat; width: 300px; height: 300px;"><br></div>
--- a/layout/reftests/css-gradients/linear-diagonal-1a.html
+++ b/layout/reftests/css-gradients/linear-diagonal-1a.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(top left -45deg, white, black) no-repeat; width: 300px; height: 300px;"></div>
+<div style="background: linear-gradient(135deg, white, black) no-repeat; width: 300px; height: 300px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-diagonal-1b.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: linear-gradient(135deg, white, black) no-repeat; width: 300px; height: 300px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-diagonal-1c.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: -moz-linear-gradient(top left, white, black) no-repeat; width: 300px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/linear-diagonal-2a.html
+++ b/layout/reftests/css-gradients/linear-diagonal-2a.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(top right -135deg, white, black) no-repeat; width: 300px; height: 300px;"></div>
+<div style="background: linear-gradient(-135deg, white, black) no-repeat; width: 300px; height: 300px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-diagonal-2b.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: -moz-linear-gradient(-135deg, white, black) no-repeat; width: 300px; height: 300px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-diagonal-2c.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: -moz-linear-gradient(top right, white, black) no-repeat; width: 300px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/linear-diagonal-3a.html
+++ b/layout/reftests/css-gradients/linear-diagonal-3a.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(bottom right 135deg, white, black) no-repeat; width: 300px; height: 300px;"></div>
+<div style="background: linear-gradient(-45deg, white, black) no-repeat; width: 300px; height: 300px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-diagonal-3b.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: linear-gradient(-45deg, white, black) no-repeat; width: 300px; height: 300px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-diagonal-3c.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: -moz-linear-gradient(bottom right, white, black) no-repeat; width: 300px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/linear-diagonal-4a.html
+++ b/layout/reftests/css-gradients/linear-diagonal-4a.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(bottom left 45deg, white, black) no-repeat; width: 300px; height: 300px;"></div>
+<div style="background: linear-gradient(45deg, white, black) no-repeat; width: 300px; height: 300px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-diagonal-4b.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: -moz-linear-gradient(45deg, white, black) no-repeat; width: 300px; height: 300px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-diagonal-4c.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: -moz-linear-gradient(bottom left, white, black) no-repeat; width: 300px; height: 300px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-diagonal-5-ref.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: linear-gradient(to top left, white 75%, black); width: 400px; height: 400px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-diagonal-5a.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: -moz-linear-gradient(100px 100px 135deg, white, black); width: 400px; height: 400px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-diagonal-6-ref.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: linear-gradient(to top right, white 75%, black); width: 400px; height: 400px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-diagonal-6a.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: -moz-linear-gradient(300px 100px 45deg, white, black); width: 400px; height: 400px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-diagonal-7-ref.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: linear-gradient(to bottom right, white 75%, black); width: 400px; height: 400px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-diagonal-7a.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: -moz-linear-gradient(300px 300px -45deg, white, black); width: 400px; height: 400px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-diagonal-8-ref.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: linear-gradient(to bottom left, white 75%, black); width: 400px; height: 400px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-diagonal-8a.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: -moz-linear-gradient(100px 300px -135deg, white, black); width: 400px; height: 400px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-diagonal-9-ref.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html>
-<style>
-.x { width: 200px; height: 100px; display: inline-block; }
-.a { background: -moz-linear-gradient(top -90deg, blue, white, red); }
-.e { background: -moz-linear-gradient(top right -2.03444394rad, blue, white, red); }
-.g { background: -moz-linear-gradient(right 180deg, blue, white, red); }
-.i { background: -moz-linear-gradient(bottom right 2.03444394rad, blue, white, red); }
-.k { background: -moz-linear-gradient(bottom 90deg, blue, white, red); }
-.m { background: -moz-linear-gradient(bottom left 1.10714872rad, blue, white, red); }
-.o { background: -moz-linear-gradient(left 0deg, blue, white, red); }
-.q { background: -moz-linear-gradient(top left -1.10714872rad, blue, white, red); }
-</style>
-<div class="x a"></div>
-<div class="x e"></div>
-<div class="x g"></div>
-<div class="x i"></div>
-<div class="x k"></div>
-<div class="x m"></div>
-<div class="x o"></div>
-<div class="x q"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-diagonal-9a.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html>
-<style>
-.x { width: 200px; height: 100px; display: inline-block; }
-.a { background: linear-gradient(to bottom, blue, white, red); }
-.e { background: linear-gradient(to bottom left, blue, white, red); }
-.g { background: linear-gradient(to left, blue, white, red); }
-.i { background: linear-gradient(to top left, blue, white, red); }
-.k { background: linear-gradient(to top, blue, white, red); }
-.m { background: linear-gradient(to top right, blue, white, red); }
-.o { background: linear-gradient(to right, blue, white, red); }
-.q { background: linear-gradient(to bottom right, blue, white, red); }
-</style>
-<div class="x a"></div>
-<div class="x e"></div>
-<div class="x g"></div>
-<div class="x i"></div>
-<div class="x k"></div>
-<div class="x m"></div>
-<div class="x o"></div>
-<div class="x q"></div>
--- a/layout/reftests/css-gradients/linear-flipped-1-ref.html
+++ b/layout/reftests/css-gradients/linear-flipped-1-ref.html
@@ -1,2 +1,2 @@
 <!DOCTYPE HTML>
-<div style="height:100px; background:-moz-linear-gradient(bottom, black, white);"></div>
+<div style="height:100px; background:linear-gradient(to top, black, white);"></div>
--- a/layout/reftests/css-gradients/linear-flipped-1.html
+++ b/layout/reftests/css-gradients/linear-flipped-1.html
@@ -1,2 +1,2 @@
 <!DOCTYPE HTML>
-<div style="height:100px; background:-moz-linear-gradient(top, black, white); transform:scale(1,-1);"></div>
+<div style="height:100px; background:linear-gradient(to bottom, black, white); transform:scale(1,-1);"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-keywords-1b.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: -moz-linear-gradient(left top, #0000ff, #000000) no-repeat; width: 300px; height: 300px;"><br></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-mix-ref.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml" 
-      class="reftest-wait">
-<head>
-<script>
-function doDraw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  var grad = ctx.createLinearGradient(120,20,300,20);
-  grad.addColorStop(0, '#0000ff');
-  grad.addColorStop(1, '#000000');
-
-  ctx.fillStyle = grad;
-  ctx.fillRect(0,0,300,300);
-
-  ctx = document.getElementById('canvas2').getContext('2d');
-
-  grad = ctx.createLinearGradient(30,300,30,0);
-  grad.addColorStop(0, '#00ff00');
-  grad.addColorStop(1, '#000000');
-
-  ctx.fillStyle = grad;
-  ctx.fillRect(0,0,300,300);
-
-  document.documentElement.removeAttribute('class');
-}
-</script>
-</head>
-<body onload="doDraw();">
-<canvas id="canvas" width="300" height="300" style="position: absolute; top: 30px; left: 30px;"></canvas>
-<br/><br/>
-<canvas id="canvas2" width="300" height="300" style="position: absolute; top: 360px; left: 30px;"></canvas>
-</body>
-</html>
-
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-mix.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<div style="background: -moz-linear-gradient(40% 20px 0deg, #0000ff, #000000) no-repeat; width: 300px; height: 300px; position: absolute; top: 30px; left: 30px;"><br></div>
-
-<div style="background: -moz-linear-gradient(10% bottom 90deg, #00ff00, #000000) no-repeat; width: 300px; height: 300px; position: absolute; top: 360px; left: 30px;"><br></div>
--- a/layout/reftests/css-gradients/linear-onestopposition-1.html
+++ b/layout/reftests/css-gradients/linear-onestopposition-1.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML>
 <title>Test for linear-gradient() with all stops at the same position</title>
 <style>
 
 div {
   width: 200px;
   height: 200px;
-  background-image: -moz-linear-gradient(left, blue 25%, orange 25%);
+  background-image: linear-gradient(to right, blue 25%, orange 25%);
 }
 
 </style>
 <div></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-percent-ref.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml" 
-      class="reftest-wait">
-<head>
-<script>
-function doDraw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  var grad = ctx.createLinearGradient(30,60,300,60);
-  grad.addColorStop(0, '#0000ff');
-  grad.addColorStop(1, '#000000');
-
-  ctx.fillStyle = grad;
-  ctx.fillRect(0,0,300,300);
-
-  document.documentElement.removeAttribute('class');
-}
-</script>
-</head>
-<body onload="doDraw();">
-<canvas id="canvas" width="300" height="300"/>
-</body>
-</html>
-
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-percent.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: -moz-linear-gradient(10% 20% 0deg, #0000ff, #000000) no-repeat; width: 300px; height: 300px;"><br></div>
--- a/layout/reftests/css-gradients/linear-position-1a.html
+++ b/layout/reftests/css-gradients/linear-position-1a.html
@@ -1,2 +1,2 @@
 <body style="margin:0;">
-<div style="background: -moz-linear-gradient(left, white, black) no-repeat; background-position:-200px 0; width: 300px; height: 300px;"><br></div>
+<div style="background: linear-gradient(to right, white, black) no-repeat; background-position:-200px 0; width: 300px; height: 300px;"><br></div>
--- a/layout/reftests/css-gradients/linear-repeat-1a.html
+++ b/layout/reftests/css-gradients/linear-repeat-1a.html
@@ -1,2 +1,2 @@
-<div style="background: -moz-linear-gradient(black, black 50%, white 50%, white);
+<div style="background: linear-gradient(black, black 50%, white 50%, white);
             background-size: 100px 100px; width: 300px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/linear-repeat-1b.html
+++ b/layout/reftests/css-gradients/linear-repeat-1b.html
@@ -1,2 +1,2 @@
-<div style="background: -moz-linear-gradient(black, black 50px, white 50px, white 100px, black 100px, black 150px, white 150px, white 200px);
+<div style="background: linear-gradient(black, black 50px, white 50px, white 100px, black 100px, black 150px, white 150px, white 200px);
             background-size: 100px 200px; width: 300px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/linear-repeat-1c.html
+++ b/layout/reftests/css-gradients/linear-repeat-1c.html
@@ -1,4 +1,4 @@
-<div style="background: -moz-linear-gradient(white, white 50%, black 50%, black);
+<div style="background: linear-gradient(white, white 50%, black 50%, black);
             background-size: 100px 100px;
             background-position: 0 -50px;
             width: 300px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/linear-repeat-1d.html
+++ b/layout/reftests/css-gradients/linear-repeat-1d.html
@@ -1,3 +1,3 @@
-<div style="background: -moz-linear-gradient(white, white 50px, black 50px, black 100px, white 100px, white 150px, black 150px, black 200px);
+<div style="background: linear-gradient(white, white 50px, black 50px, black 100px, white 100px, white 150px, black 150px, black 200px);
             background-size: 100px 200px; background-position: 0 -50px;
             width: 300px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/linear-repeat-1e.html
+++ b/layout/reftests/css-gradients/linear-repeat-1e.html
@@ -1,3 +1,3 @@
-<div style="background: -moz-linear-gradient(black, black 50%, white 50%, white);
+<div style="background: linear-gradient(black, black 50%, white 50%, white);
             background-size: 300px 100px; background-repeat: repeat-y;
             width: 500px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/linear-repeat-1f.html
+++ b/layout/reftests/css-gradients/linear-repeat-1f.html
@@ -1,9 +1,9 @@
-<div style="background: -moz-linear-gradient(black, black 50px, white 50px, white 100px, black 100px, black 150px, white 150px, white 200px);
+<div style="background: linear-gradient(black, black 50px, white 50px, white 100px, black 100px, black 150px, white 150px, white 200px);
             background-size: 100px 200px; background-repeat: repeat-x;
             width: 300px; height: 800px;
             margin-bottom: -600px;"></div>
 <!-- making the gradient actually be 300px high isn't reliable since
      the stop positions cannot be exactly represented and rounding errors
      creep in. So just let the gradient be 200px high and pad out to match
      the reference. -->
 <div style="background: black; width: 300px; height: 50px;"></div>
--- a/layout/reftests/css-gradients/linear-repeat-1g.html
+++ b/layout/reftests/css-gradients/linear-repeat-1g.html
@@ -1,10 +1,10 @@
 <body style="overflow:hidden">
-<div style="background: -moz-linear-gradient(black, black 50px, white 50px, white 100px, black 100px, black 150px, white 150px, white 200px);
+<div style="background: linear-gradient(black, black 50px, white 50px, white 100px, black 100px, black 150px, white 150px, white 200px);
             background-size: 300px 200px; background-repeat: no-repeat;
             width: 800px; height: 800px;
             margin-bottom: -600px;"></div>
 <!-- making the gradient actually be 300px high isn't reliable since
      the stop positions cannot be exactly represented and rounding errors
      creep in. So just let the gradient be 200px high and pad out to match
      the reference. -->
 <div style="background: black; width: 300px; height: 50px;"></div>
--- a/layout/reftests/css-gradients/linear-size-1-ref.html
+++ b/layout/reftests/css-gradients/linear-size-1-ref.html
@@ -1,3 +1,3 @@
-<div style="background: -moz-linear-gradient(white, black) no-repeat; width: 300px; height: 100px;"></div>
-<div style="background: -moz-linear-gradient(white, black) no-repeat; width: 300px; height: 100px;"></div>
-<div style="background: -moz-linear-gradient(white, black) no-repeat; width: 300px; height: 100px;"></div>
+<div style="background: linear-gradient(white, black) no-repeat; width: 300px; height: 100px;"></div>
+<div style="background: linear-gradient(white, black) no-repeat; width: 300px; height: 100px;"></div>
+<div style="background: linear-gradient(white, black) no-repeat; width: 300px; height: 100px;"></div>
--- a/layout/reftests/css-gradients/linear-size-1a.html
+++ b/layout/reftests/css-gradients/linear-size-1a.html
@@ -1,2 +1,2 @@
-<div style="background: -moz-linear-gradient(white, black);
+<div style="background: linear-gradient(white, black);
             background-size: 300px 100px; width: 300px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/linear-stops-1-ref.html
+++ b/layout/reftests/css-gradients/linear-stops-1-ref.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(white 0%, red 20%, green 40%, blue 60%, yellow 80%, black 100%) no-repeat; width: 300px; height: 300px;"></div>
+<div style="background: linear-gradient(white 0%, red 20%, green 40%, blue 60%, yellow 80%, black 100%) no-repeat; width: 300px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/linear-stops-1a.html
+++ b/layout/reftests/css-gradients/linear-stops-1a.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(white, red, green, blue, yellow, black) no-repeat; width: 300px; height: 300px;"></div>
+<div style="background: linear-gradient(white, red, green, blue, yellow, black) no-repeat; width: 300px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/linear-stops-1b.html
+++ b/layout/reftests/css-gradients/linear-stops-1b.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(white 0, red 60px, green 120px, blue 180px, yellow 240px, black 300px) no-repeat; width: 300px; height: 300px;"></div>
+<div style="background: linear-gradient(white 0, red 60px, green 120px, blue 180px, yellow 240px, black 300px) no-repeat; width: 300px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/linear-stops-1c.html
+++ b/layout/reftests/css-gradients/linear-stops-1c.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(white, red 20%, green, blue 60%, yellow, black) no-repeat; width: 300px; height: 300px;"></div>
+<div style="background: linear-gradient(white, red 20%, green, blue 60%, yellow, black) no-repeat; width: 300px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/linear-stops-1d.html
+++ b/layout/reftests/css-gradients/linear-stops-1d.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(white, red, green 40%, red 40%, green 40%, blue, yellow, black) no-repeat; width: 300px; height: 300px;"></div>
+<div style="background: linear-gradient(white, red, green 40%, red 40%, green 40%, blue, yellow, black) no-repeat; width: 300px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/linear-stops-1e.html
+++ b/layout/reftests/css-gradients/linear-stops-1e.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(white, red, green 40%, red 20%, green 40%, blue, yellow, black) no-repeat; width: 300px; height: 300px;"></div>
+<div style="background: linear-gradient(white, red, green 40%, red 20%, green 40%, blue, yellow, black) no-repeat; width: 300px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/linear-stops-1f.html
+++ b/layout/reftests/css-gradients/linear-stops-1f.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(white, red, green 40%, red 40%, green 20%, blue, yellow, black) no-repeat; width: 300px; height: 300px;"></div>
+<div style="background: linear-gradient(white, red, green 40%, red 40%, green 20%, blue, yellow, black) no-repeat; width: 300px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/linear-vertical-1a.html
+++ b/layout/reftests/css-gradients/linear-vertical-1a.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(white, black) no-repeat; width: 300px; height: 300px;"></div>
+<div style="background: linear-gradient(white, black) no-repeat; width: 300px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/linear-vertical-1b.html
+++ b/layout/reftests/css-gradients/linear-vertical-1b.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(top left -90deg, white, black) no-repeat; width: 300px; height: 300px;"></div>
+<div style="background: linear-gradient(to bottom, white, black) no-repeat; width: 300px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/linear-vertical-1c.html
+++ b/layout/reftests/css-gradients/linear-vertical-1c.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(white 0%, white 0%, black) no-repeat; width: 300px; height: 300px;"></div>
+<div style="background: linear-gradient(white 0%, white 0%, black) no-repeat; width: 300px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/linear-vertical-1d.html
+++ b/layout/reftests/css-gradients/linear-vertical-1d.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(white 0%, white -20%, black) no-repeat; width: 300px; height: 300px;"></div>
+<div style="background: linear-gradient(white 0%, white -20%, black) no-repeat; width: 300px; height: 300px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-vertical-1e.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: linear-gradient(to bottom, white, black) no-repeat; width: 300px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/linear-vertical-subpixel-1-ref.html
+++ b/layout/reftests/css-gradients/linear-vertical-subpixel-1-ref.html
@@ -1,15 +1,15 @@
 <!DOCTYPE html>
 <html>
 <head>
 <style>
 div {
   margin-top: 21px;
   height: 30px;
-  background-image: -moz-linear-gradient(center top, black, white);
+  background-image: linear-gradient(black, white);
 }
 </style>
 </head>
 <body>
 <div></div>
 </body>
 </html>
--- a/layout/reftests/css-gradients/linear-vertical-subpixel-1.html
+++ b/layout/reftests/css-gradients/linear-vertical-subpixel-1.html
@@ -1,15 +1,15 @@
 <!DOCTYPE html>
 <html>
 <head>
 <style>
 div {
   margin-top: 20.7px;
   height: 30px;
-  background-image: -moz-linear-gradient(center top, black, white);
+  background-image: linear-gradient(black, white);
 }
 </style>
 </head>
 <body>
 <div></div>
 </body>
 </html>
--- a/layout/reftests/css-gradients/linear-viewport-ref.html
+++ b/layout/reftests/css-gradients/linear-viewport-ref.html
@@ -1,1 +1,1 @@
-<body style="border: 0; margin: 0; padding: 0;"><div style="background: -moz-linear-gradient(blue, aqua) no-repeat; width: 100%; height: 100%;">&nbsp;</div></body>
+<body style="border: 0; margin: 0; padding: 0;"><div style="background: linear-gradient(blue, aqua) no-repeat; width: 100%; height: 100%;">&nbsp;</div></body>
--- a/layout/reftests/css-gradients/linear-viewport.html
+++ b/layout/reftests/css-gradients/linear-viewport.html
@@ -1,2 +1,2 @@
 <!-- bug 509681 -->
-<body style="background: -moz-linear-gradient(blue, aqua) fixed no-repeat;">
+<body style="background: linear-gradient(blue, aqua) fixed no-repeat;">
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-zero-length-1-ref.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<div style="background: black; width: 300px; height: 300px;"></div>
-<div style="background: black; width: 300px; height: 300px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-zero-length-1a.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<div style="background: -moz-linear-gradient(150px 150px, white, black); width: 300px; height: 300px;"></div>
-<div style="background: -moz-repeating-linear-gradient(150px 150px, white, black); width: 300px; height: 300px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-zero-length-1b.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<div style="background: -moz-linear-gradient(150px 150px, white, white 100px, black); width: 300px; height: 300px;"></div>
-<div style="background: -moz-repeating-linear-gradient(150px 150px, white, white 100px, black); width: 300px; height: 300px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/linear-zero-length-1c.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<div style="background: -moz-linear-gradient(center, white, black 50%); width: 300px; height: 300px;"></div>
-<div style="background: -moz-repeating-linear-gradient(center, white, black 50%); width: 300px; height: 300px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/radial-1c.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: -moz-radial-gradient(100px 100px, closest-side, #ff0000 25px, #0000ff 50px) no-repeat; width: 300px; height: 300px;"><br></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/radial-2e.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: -moz-radial-gradient(100px 100px, closest-side, yellow -10px, #ff0000 0, #0000ff 50px); width: 300px; height: 300px;"><br></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/radial-2f.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<!-- This test checks that adjustment of stop positions to be non-negative
-     happens after the calculation of implied stop positions -->
-<div style="background: -moz-radial-gradient(100px 100px, closest-side, #ff0000 -50px, #ff0000, #0000ff 50px); width: 300px; height: 300px;"><br></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/radial-onestopposition-1c.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE HTML>
-<title>Test for radial-gradient() with all stops at the same position</title>
-<style>
-
-div {
-  width: 200px;
-  height: 200px;
-  background-image: -moz-radial-gradient(contain, blue 25%, orange 25%);
-}
-
-</style>
-<div></div>
--- a/layout/reftests/css-gradients/radial-shape-closest-corner-1-ref.html
+++ b/layout/reftests/css-gradients/radial-shape-closest-corner-1-ref.html
@@ -1,9 +1,9 @@
 <style>div { position:absolute; width:200px; height:200px; }</style>
 <div style="background: radial-gradient(closest-side circle at 60px 80px, white, black 100px); top:10px; left:10px;"></div>
 <div style="background: radial-gradient(closest-side circle at 140px 80px, white, black 100px); top:10px; left:220px;"></div>
 <div style="background: radial-gradient(closest-side circle at 80px 60px, white, black 100px); top:220px; left:10px;"></div>
 <div style="background: radial-gradient(closest-side circle at 80px 140px, white, black 100px); top:220px; left:220px;"></div>
-<div style="background: -moz-radial-gradient(60px 80px 90deg, closest-corner, white, black 80px); top:430px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(140px 80px 90deg, closest-corner, white, black 80px); top:430px; left:220px;"></div>
-<div style="background: -moz-radial-gradient(80px 60px 90deg, ellipse closest-corner, white, black 60px); top:640px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(80px 140px 90deg, ellipse closest-corner, white, black 60px); top:640px; left:220px;"></div>
+<div style="background: radial-gradient(closest-corner at 60px 80px, white, black 60px); top:430px; left:10px;"></div>
+<div style="background: radial-gradient(closest-corner at 140px 80px, white, black 60px); top:430px; left:220px;"></div>
+<div style="background: radial-gradient(ellipse closest-corner at 80px 60px, white, black 80px); top:640px; left:10px;"></div>
+<div style="background: radial-gradient(ellipse closest-corner at 80px 140px, white, black 80px); top:640px; left:220px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/radial-shape-closest-corner-1c.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<style>div { position:absolute; width:200px; height:200px; }</style>
-<div style="background: -moz-radial-gradient(60px 80px, circle closest-corner, white, black); top:10px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(140px 80px, circle closest-corner, white, black); top:10px; left:220px;"></div>
-<div style="background: -moz-radial-gradient(80px 60px, circle closest-corner, white, black); top:220px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(80px 140px, circle closest-corner, white, black); top:220px; left:220px;"></div>
-<div style="background: -moz-radial-gradient(60px 80px, ellipse closest-corner, white, black 60px); top:430px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(140px 80px, ellipse closest-corner, white, black 60px); top:430px; left:220px;"></div>
-<div style="background: -moz-radial-gradient(80px 60px, closest-corner, white, black 80px); top:640px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(80px 140px, closest-corner, white, black 80px); top:640px; left:220px;"></div>
--- a/layout/reftests/css-gradients/radial-shape-closest-side-1-ref.html
+++ b/layout/reftests/css-gradients/radial-shape-closest-side-1-ref.html
@@ -1,9 +1,9 @@
 <style>div { position:absolute; width:200px; height:200px; }</style>
-<div style="background: -moz-radial-gradient(50px 80px, circle closest-side, white, black 50px); top:10px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(150px 80px, circle closest-side, white, black 50px); top:10px; left:220px;"></div>
-<div style="background: -moz-radial-gradient(80px 50px, circle closest-side, white, black 50px); top:220px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(80px 150px, circle closest-side, white, black 50px); top:220px; left:220px;"></div>
-<div style="background: -moz-radial-gradient(20px 20px, circle closest-side, white, black 20px); height:100px; -moz-transform-origin:0 0; -moz-transform:scale(1.0, 2.0); top:430px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(180px 20px, circle closest-side, white, black 20px); height:100px; -moz-transform-origin:0 0; -moz-transform:scale(1.0, 2.0); top:430px; left:220px;"></div>
-<div style="background: -moz-radial-gradient(20px 20px, circle closest-side, white, black 20px); width:100px; -moz-transform-origin:0 0; -moz-transform:scale(2.0, 1.0); top:640px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(20px 180px, circle closest-side, white, black 20px); width:100px; -moz-transform-origin:0 0; -moz-transform:scale(2.0, 1.0); top:640px; left:220px;"></div>
+<div style="background: radial-gradient(circle closest-side at 50px 80px, white, black 50px); top:10px; left:10px;"></div>
+<div style="background: radial-gradient(circle closest-side at 150px 80px, white, black 50px); top:10px; left:220px;"></div>
+<div style="background: radial-gradient(circle closest-side at 80px 50px, white, black 50px); top:220px; left:10px;"></div>
+<div style="background: radial-gradient(circle closest-side at 80px 150px, white, black 50px); top:220px; left:220px;"></div>
+<div style="background: radial-gradient(circle closest-side at 20px 20px, white, black 20px); height:100px; -moz-transform-origin:0 0; -moz-transform:scale(1.0, 2.0); top:430px; left:10px;"></div>
+<div style="background: radial-gradient(circle closest-side at 180px 20px, white, black 20px); height:100px; -moz-transform-origin:0 0; -moz-transform:scale(1.0, 2.0); top:430px; left:220px;"></div>
+<div style="background: radial-gradient(circle closest-side at 20px 20px, white, black 20px); width:100px; -moz-transform-origin:0 0; -moz-transform:scale(2.0, 1.0); top:640px; left:10px;"></div>
+<div style="background: radial-gradient(circle closest-side at 20px 180px, white, black 20px); width:100px; -moz-transform-origin:0 0; -moz-transform:scale(2.0, 1.0); top:640px; left:220px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/radial-shape-closest-side-1c.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<style>div { position:absolute; width:200px; height:200px; }</style>
-<div style="background: -moz-radial-gradient(50px 80px, circle closest-side, white, black); top:10px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(150px 80px, circle closest-side, white, black); top:10px; left:220px;"></div>
-<div style="background: -moz-radial-gradient(80px 50px, circle closest-side, white, black); top:220px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(80px 150px, circle closest-side, white, black); top:220px; left:220px;"></div>
-<div style="background: -moz-radial-gradient(20px 40px, ellipse closest-side, white, black); top:430px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(180px 40px, ellipse closest-side, white, black); top:430px; left:220px;"></div>
-<div style="background: -moz-radial-gradient(40px 20px, closest-side, white, black); top:640px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(40px 180px, closest-side, white, black); top:640px; left:220px;"></div>
--- a/layout/reftests/css-gradients/radial-shape-farthest-corner-1-ref.html
+++ b/layout/reftests/css-gradients/radial-shape-farthest-corner-1-ref.html
@@ -1,9 +1,9 @@
 <style>div { position:absolute; width:200px; height:200px; }</style>
 <div style="background: radial-gradient(circle farthest-side at 40px 80px, white, black 200px); top:10px; left:10px;"></div>
 <div style="background: radial-gradient(farthest-side circle at 160px 80px, white, black 200px); top:10px; left:220px;"></div>
 <div style="background: radial-gradient(circle farthest-side at 80px 40px, white, black 200px); top:220px; left:10px;"></div>
 <div style="background: radial-gradient(farthest-side circle at 80px 160px, white, black 200px); top:220px; left:220px;"></div>
-<div style="background: -moz-radial-gradient(60px 80px 90deg, farthest-corner, white, black 120px); top:430px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(140px 80px 90deg, farthest-corner, white, black 120px); top:430px; left:220px;"></div>
-<div style="background: -moz-radial-gradient(80px 60px 90deg, ellipse farthest-corner, white, black 140px); top:640px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(80px 140px 90deg, ellipse farthest-corner, white, black 140px); top:640px; left:220px;"></div>
+<div style="background: radial-gradient(farthest-corner at 60px 80px, white, black 140px); top:430px; left:10px;"></div>
+<div style="background: radial-gradient(farthest-corner at 140px 80px, white, black 140px); top:430px; left:220px;"></div>
+<div style="background: radial-gradient(ellipse farthest-corner at 80px 60px, white, black 120px); top:640px; left:10px;"></div>
+<div style="background: radial-gradient(ellipse farthest-corner at 80px 140px, white, black 120px); top:640px; left:220px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/radial-shape-farthest-corner-1c.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<style>div { position:absolute; width:200px; height:200px; }</style>
-<div style="background: -moz-radial-gradient(40px 80px, circle farthest-corner, white, black); top:10px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(160px 80px, circle farthest-corner, white, black); top:10px; left:220px;"></div>
-<div style="background: -moz-radial-gradient(80px 40px, circle farthest-corner, white, black); top:220px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(80px 160px, circle farthest-corner, white, black); top:220px; left:220px;"></div>
-<div style="background: -moz-radial-gradient(60px 80px, ellipse farthest-corner, white, black 140px); top:430px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(140px 80px, ellipse farthest-corner, white, black 140px); top:430px; left:220px;"></div>
-<div style="background: -moz-radial-gradient(80px 60px, farthest-corner, white, black 120px); top:640px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(80px 140px, farthest-corner, white, black 120px); top:640px; left:220px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/radial-shape-farthest-side-1c.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<style>div { position:absolute; width:200px; height:200px; }</style>
-<div style="background: -moz-radial-gradient(50px 80px, circle farthest-side, white, black); top:10px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(150px 80px, circle farthest-side, white, black); top:10px; left:220px;"></div>
-<div style="background: -moz-radial-gradient(80px 50px, circle farthest-side, white, black); top:220px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(80px 150px, circle farthest-side, white, black); top:220px; left:220px;"></div>
-<div style="background: -moz-radial-gradient(80px 40px, farthest-side, white, black); height:100px; top:430px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(120px 60px, farthest-side, white, black); height:100px; top:430px; left:220px;"></div>
-<div style="background: -moz-radial-gradient(40px 80px, ellipse farthest-side, white, black); width:100px; top:640px; left:10px;"></div>
-<div style="background: -moz-radial-gradient(60px 120px, ellipse farthest-side, white, black); width:100px; top:640px; left:220px;"></div>
--- a/layout/reftests/css-gradients/radial-size-1a.html
+++ b/layout/reftests/css-gradients/radial-size-1a.html
@@ -1,2 +1,2 @@
-<div style="background: -moz-radial-gradient(white, black);
+<div style="background: radial-gradient(white, black);
             background-size: 300px 100px; width: 300px; height: 300px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/radial-zero-length-1g.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<div style="background: -moz-radial-gradient(left, circle closest-side, white, black); width: 300px; height: 300px;"></div>
-<div style="background: -moz-repeating-radial-gradient(left, circle closest-side, white, black); width: 300px; height: 300px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/radial-zero-length-1h.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<div style="background: -moz-radial-gradient(left, circle closest-side, red, white 100px, black); width: 300px; height: 300px;"></div>
-<div style="background: -moz-repeating-radial-gradient(left, circle closest-side, red, white 100px, black); width: 300px; height: 300px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/radial-zero-length-1i.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<div style="background: -moz-radial-gradient(left, ellipse closest-side, red, white 100px, black); width: 300px; height: 300px;"></div>
-<div style="background: -moz-repeating-radial-gradient(left, ellipse closest-side, red, white 100px, black); width: 300px; height: 300px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/radial-zero-length-1j.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<div style="background: -moz-radial-gradient(top, ellipse closest-side, red, white 100px, black); width: 300px; height: 300px;"></div>
-<div style="background: -moz-repeating-radial-gradient(top, ellipse closest-side, red, white 100px, black); width: 300px; height: 300px;"></div>
--- a/layout/reftests/css-gradients/reftest.list
+++ b/layout/reftests/css-gradients/reftest.list
@@ -1,38 +1,15 @@
 fuzzy-if(!contentSameGfxBackendAsCanvas,4,88500) fuzzy-if(azureSkiaGL,3,89700) fuzzy-if(azureQuartz,1,34792) == linear-1a.html linear-1-ref.html
-fuzzy-if(!contentSameGfxBackendAsCanvas,4,88500) fuzzy-if(azureSkiaGL,3,89700) fuzzy-if(azureQuartz,1,34792) == linear-1b.html linear-1-ref.html
 fuzzy-if(!contentSameGfxBackendAsCanvas,2,88500) fuzzy-if(azureSkiaGL,2,89997) fuzzy-if(azureQuartz,1,11469) == linear-keywords-1a.html linear-keywords-1-ref.html
-fuzzy-if(!contentSameGfxBackendAsCanvas,2,88500) fuzzy-if(azureSkiaGL,2,89997) fuzzy-if(azureQuartz,1,11985) == linear-keywords-1b.html linear-keywords-1-ref.html
-fuzzy-if(!contentSameGfxBackendAsCanvas,2,88500) fuzzy-if(azureQuartz,1,10230) == linear-percent.html linear-percent-ref.html
-fuzzy-if(!contentSameGfxBackendAsCanvas,4,92400) fuzzy-if(azureSkiaGL,2,143400) fuzzy-if(azureQuartz,1,27827) fuzzy-if(Android&&AndroidVersion>=15,4,93000) == linear-mix.html linear-mix-ref.html
 == linear-diagonal-1a.html linear-diagonal-1-ref.html
-== linear-diagonal-1b.html linear-diagonal-1-ref.html
-== linear-diagonal-1c.html linear-diagonal-1-ref.html
 == linear-diagonal-2a.html linear-diagonal-2-ref.html
-== linear-diagonal-2b.html linear-diagonal-2-ref.html
-== linear-diagonal-2c.html linear-diagonal-2-ref.html
 == linear-diagonal-3a.html linear-diagonal-3-ref.html
-== linear-diagonal-3b.html linear-diagonal-3-ref.html
-== linear-diagonal-3c.html linear-diagonal-3-ref.html
 == linear-diagonal-4a.html linear-diagonal-4-ref.html
-== linear-diagonal-4b.html linear-diagonal-4-ref.html
-== linear-diagonal-4c.html linear-diagonal-4-ref.html
 == linear-premul.html linear-premul-ref.html
-
-# these tests uses a similar gradient over different bounds. It's perfectly
-# reasonable to expect implementations to give slightly different results
-# if the gradients are not being normalized. Skia uses a lookup table for
-# gradients so it will have less precision when drawing a larger gradient
-fuzzy(2,11410) fuzzy-if(skiaContent,4,15271) == linear-diagonal-5a.html linear-diagonal-5-ref.html
-fuzzy(2,11568) fuzzy-if(azureQuartz&&OSX==1006,2,11657) fuzzy-if(skiaContent,8,19701) == linear-diagonal-6a.html linear-diagonal-6-ref.html
-fuzzy(2,11605) fuzzy-if(skiaContent,8,19701) == linear-diagonal-7a.html linear-diagonal-7-ref.html
-fuzzy(2,11407) fuzzy-if(azureQuartz&&OSX==1006,2,11443) fuzzy-if(skiaContent,4,15085) == linear-diagonal-8a.html linear-diagonal-8-ref.html
-
-fuzzy-if(cocoaWidget,4,29437) == linear-diagonal-9a.html linear-diagonal-9-ref.html
 fuzzy(1,800000) == linear-flipped-1.html linear-flipped-1-ref.html
 == linear-position-1a.html linear-position-1-ref.html
 == linear-repeat-1a.html linear-repeat-1-ref.html
 fails-if(d2d) == linear-repeat-1b.html linear-repeat-1-ref.html # bug 582236
 == linear-repeat-1c.html linear-repeat-1-ref.html
 fails-if(d2d) == linear-repeat-1d.html linear-repeat-1-ref.html # bug 582236
 == linear-repeat-1e.html linear-repeat-1-ref.html
 fails-if(d2d) == linear-repeat-1f.html linear-repeat-1-ref.html # bug 582236
@@ -44,109 +21,83 @@ fails-if(d2d) == linear-repeat-1g.html l
 == linear-stops-1c.html linear-stops-1-ref.html
 == linear-stops-1d.html linear-stops-1-ref.html
 == linear-stops-1e.html linear-stops-1-ref.html
 == linear-stops-1f.html linear-stops-1-ref.html
 fuzzy-if(!contentSameGfxBackendAsCanvas,3,88500) fuzzy-if(azureSkiaGL,2,89700) fuzzy-if(azureQuartz,1,22367) == linear-vertical-1a.html linear-vertical-1-ref.html
 fuzzy-if(!contentSameGfxBackendAsCanvas,3,88500) fuzzy-if(azureSkiaGL,2,89700) fuzzy-if(azureQuartz,1,22367) == linear-vertical-1b.html linear-vertical-1-ref.html
 fuzzy-if(!contentSameGfxBackendAsCanvas,3,88500) fuzzy-if(azureSkiaGL,2,89700) fuzzy-if(azureQuartz,2,26777) == linear-vertical-1c.html linear-vertical-1-ref.html
 fuzzy-if(!contentSameGfxBackendAsCanvas,3,88500) fuzzy-if(azureSkiaGL,2,89700) fuzzy-if(azureQuartz,2,26777) == linear-vertical-1d.html linear-vertical-1-ref.html
-fuzzy-if(!contentSameGfxBackendAsCanvas,3,88500) fuzzy-if(azureSkiaGL,2,89700) fuzzy-if(azureQuartz,1,22367) == linear-vertical-1e.html linear-vertical-1-ref.html
 == linear-vertical-subpixel-1.html linear-vertical-subpixel-1-ref.html
 == linear-viewport.html linear-viewport-ref.html
-fails-if(OSX==1010) fuzzy-if(Android,4,248) == linear-zero-length-1a.html linear-zero-length-1-ref.html
-fails-if(OSX==1010) fuzzy-if(Android,4,248) == linear-zero-length-1b.html linear-zero-length-1-ref.html
-fails-if(OSX==1010) fuzzy-if(Android,4,248) == linear-zero-length-1c.html linear-zero-length-1-ref.html
 == nostops.html about:blank
 == onestop.html about:blank
 fuzzy-if(!contentSameGfxBackendAsCanvas,1,5884) fuzzy-if(cocoaWidget,9,87824) fuzzy-if(azureSkiaGL,2,88024) random-if(d2d) == radial-1a.html radial-1-ref.html
 fuzzy-if(!contentSameGfxBackendAsCanvas,1,5884) fuzzy-if(cocoaWidget,9,87824) fuzzy-if(azureSkiaGL,2,88024) random-if(d2d) == radial-1b.html radial-1-ref.html
-fuzzy-if(!contentSameGfxBackendAsCanvas,1,5884) fuzzy-if(cocoaWidget,9,87824) fuzzy-if(azureSkiaGL,2,88024) random-if(d2d) == radial-1c.html radial-1-ref.html
 fuzzy(3,7860) fuzzy-if(cocoaWidget,5,89041) fuzzy-if(azureSkiaGL,2,90000) == radial-2a.html radial-2-ref.html
 fuzzy(3,7860) fuzzy-if(cocoaWidget,5,89041) fuzzy-if(azureSkiaGL,2,90000) == radial-2b.html radial-2-ref.html
 fuzzy(3,7860) fuzzy-if(cocoaWidget,5,89041) fuzzy-if(azureSkiaGL,2,90000) == radial-2c.html radial-2-ref.html
 fuzzy(3,7860) fuzzy-if(cocoaWidget,5,89041) fuzzy-if(azureSkiaGL,2,90000) == radial-2d.html radial-2-ref.html
-fuzzy(3,7860) fuzzy-if(cocoaWidget,5,89041) fuzzy-if(azureSkiaGL,2,90000) == radial-2e.html radial-2-ref.html
-fuzzy(3,7860) fuzzy-if(cocoaWidget,5,89041) fuzzy-if(azureSkiaGL,2,90000) == radial-2f.html radial-2-ref.html
 == radial-position-1a.html radial-position-1-ref.html
 fuzzy-if(cocoaWidget,1,28) fuzzy-if(winWidget,1,18) == radial-position-1b.html radial-position-1-ref.html
 fuzzy-if(cocoaWidget,4,22317) fuzzy-if(Android,8,771) == radial-shape-closest-corner-1a.html radial-shape-closest-corner-1-ref.html
 fuzzy(1,238) fuzzy-if(cocoaWidget,4,22608) fuzzy-if(/^Windows\x20NT\x206\./.test(http.oscpu)&&d2d,1,336) fuzzy-if(Android,8,787) == radial-shape-closest-corner-1b.html radial-shape-closest-corner-1-ref.html
-fuzzy-if(azureQuartz,2,41171) fuzzy-if(Android,8,771) == radial-shape-closest-corner-1c.html radial-shape-closest-corner-1-ref.html
 fuzzy-if(/^Windows\x20NT\x206\.2/.test(http.oscpu),1,5) fuzzy-if(Android,17,3880) == radial-shape-closest-side-1a.html radial-shape-closest-side-1-ref.html
 fuzzy-if(/^Windows\x20NT\x206\.2/.test(http.oscpu),1,5) fuzzy-if(Android,17,3880) == radial-shape-closest-side-1b.html radial-shape-closest-side-1-ref.html
-fuzzy-if(/^Windows\x20NT\x206\.2/.test(http.oscpu),1,5) fuzzy-if(Android,17,3880) == radial-shape-closest-side-1c.html radial-shape-closest-side-1-ref.html
 fuzzy-if(Android,8,771) == radial-shape-farthest-corner-1a.html radial-shape-farthest-corner-1-ref.html
 fails-if(gtkWidget&&/x86_64-/.test(xulRuntime.XPCOMABI)) fuzzy(1,1569) fuzzy-if(cocoaWidget,2,41281) fuzzy-if(Android,8,1091) == radial-shape-farthest-corner-1b.html radial-shape-farthest-corner-1-ref.html
-fuzzy-if(Android,8,771) == radial-shape-farthest-corner-1c.html radial-shape-farthest-corner-1-ref.html
 fuzzy-if(Android,17,13320) == radial-shape-farthest-side-1a.html radial-shape-farthest-side-1-ref.html
 fuzzy-if(Android,17,13320) == radial-shape-farthest-side-1b.html radial-shape-farthest-side-1-ref.html
-fuzzy-if(Android,17,13320) == radial-shape-farthest-side-1c.html radial-shape-farthest-side-1-ref.html
 == radial-size-1a.html radial-size-1-ref.html
 == radial-size-1b.html radial-size-1-ref.html
 fuzzy-if(Android,4,248) == radial-zero-length-1a.html radial-zero-length-1-ref.html
 fuzzy-if(Android,4,248) == radial-zero-length-1b.html radial-zero-length-1-ref.html
 fuzzy-if(Android,4,248) == radial-zero-length-1c.html radial-zero-length-1-ref.html
 fuzzy-if(Android,4,248) == radial-zero-length-1d.html radial-zero-length-1-ref.html
 fuzzy-if(Android,4,248) == radial-zero-length-1e.html radial-zero-length-1-ref.html
 fuzzy-if(Android,4,248) == radial-zero-length-1f.html radial-zero-length-1-ref.html
-fuzzy-if(Android,4,248) == radial-zero-length-1g.html radial-zero-length-1-ref.html
-fuzzy-if(Android,4,248) == radial-zero-length-1h.html radial-zero-length-1-ref.html
-fuzzy-if(Android,4,248) == radial-zero-length-1i.html radial-zero-length-1-ref.html
-fuzzy-if(Android,4,248) == radial-zero-length-1j.html radial-zero-length-1-ref.html
 == radial-premul.html radial-premul-ref.html
 == repeated-final-stop-1.html repeated-final-stop-1-ref.html
 == repeating-linear-1a.html repeating-linear-1-ref.html
 == repeating-linear-1b.html repeating-linear-1-ref.html
 == repeating-linear-2a.html repeating-linear-2-ref.html
 fuzzy-if(d2d,127,2612) == repeating-radial-1a.html repeating-radial-1-ref.html
 == repeating-radial-1b.html repeating-radial-1-ref.html
 fuzzy-if(d2d,127,2612) == repeating-radial-1c.html repeating-radial-1-ref.html
 == repeating-radial-1d.html repeating-radial-1-ref.html
-fuzzy-if(d2d,127,2612) == repeating-radial-1e.html repeating-radial-1-ref.html
-== repeating-radial-1f.html repeating-radial-1-ref.html
 == repeating-radial-2a.html repeating-radial-2-ref.html
 == repeating-radial-2b.html repeating-radial-2-ref.html
 == twostops-1a.html twostops-1-ref.html
 == twostops-1b.html twostops-1-ref.html
 == twostops-1c.html twostops-1-ref.html
 == twostops-1d.html twostops-1-ref.html
 == twostops-1e.html twostops-1-ref.html
-== twostops-1f.html twostops-1-ref.html
-== twostops-1g.html twostops-1-ref.html
 
 # from http://www.xanthir.com/:4bhipd by way of http://a-ja.net/newgrad.html
 fuzzy-if(!contentSameGfxBackendAsCanvas,3,20000) fuzzy-if(azureSkiaGL,8,20000) fuzzy-if(azureQuartz&&OSX==1006,1,4646) == aja-linear-1a.html aja-linear-1-ref.html 
 fails-if(!d2d&&!(OSX==1010&&azureQuartz&&isDebugBuild)) == aja-linear-1b.html aja-linear-1-ref.html # bug 526694, passing on 10.10 debug is bug 1128517
 fuzzy-if(!contentSameGfxBackendAsCanvas,3,20000) fuzzy-if(azureSkiaGL,8,20000) fuzzy-if(azureQuartz&&OSX==1006,1,4646) == aja-linear-1c.html aja-linear-1-ref.html 
 fuzzy-if(!contentSameGfxBackendAsCanvas,3,20000) fuzzy-if(azureSkiaGL,8,20000) fuzzy-if(azureQuartz&&OSX==1006,1,4646) == aja-linear-1d.html aja-linear-1-ref.html 
 fuzzy-if(!contentSameGfxBackendAsCanvas,3,20000) fuzzy-if(azureSkiaGL,8,20000) fuzzy-if(azureQuartz&&OSX==1006,1,4646) == aja-linear-1e.html aja-linear-1-ref.html 
 fuzzy-if(!contentSameGfxBackendAsCanvas,3,20000) fuzzy-if(azureSkiaGL,8,20000) fuzzy-if(azureQuartz&&OSX==1006,1,4646) == aja-linear-1f.html aja-linear-1-ref.html 
-fuzzy-if(!contentSameGfxBackendAsCanvas,3,20000) fuzzy-if(azureSkiaGL,8,20000) fuzzy-if(azureQuartz&&OSX==1006,1,4646) == aja-linear-1g.html aja-linear-1-ref.html 
 fuzzy-if(!contentSameGfxBackendAsCanvas,2,20000) fuzzy-if(azureSkiaGL,8,20000) fuzzy-if(azureQuartz&&OSX==1006,1,4667) == aja-linear-2a.html aja-linear-2-ref.html 
-fuzzy-if(!contentSameGfxBackendAsCanvas,2,20000) fuzzy-if(azureSkiaGL,8,20000) fuzzy-if(azureQuartz&&OSX==1006,1,4667) == aja-linear-2b.html aja-linear-2-ref.html 
-fails == aja-linear-2c.html aja-linear-2-ref.html # bug 522607
-fails-if(!d2d) == aja-linear-2d.html aja-linear-2-ref.html # bug 526694
+fails-if(!d2d) == aja-linear-2b.html aja-linear-2-ref.html # bug 526694
 fuzzy-if(!contentSameGfxBackendAsCanvas,2,19999) fuzzy-if(azureSkiaGL,8,20000) fuzzy-if(azureQuartz,1,10553) == aja-linear-3a.html aja-linear-3-ref.html 
 fuzzy-if(!contentSameGfxBackendAsCanvas,2,19999) fuzzy-if(azureSkiaGL,8,20000) fuzzy-if(azureQuartz,1,10553) == aja-linear-3b.html aja-linear-3-ref.html 
 fuzzy-if(!contentSameGfxBackendAsCanvas,4,20000) fuzzy-if(azureSkiaGL,8,20000) fuzzy-if(azureQuartz&&OSX==1006,1,8655) == aja-linear-4a.html aja-linear-4-ref.html 
 fuzzy-if(!contentSameGfxBackendAsCanvas,4,20000) fuzzy-if(azureSkiaGL,8,20000) fuzzy-if(azureQuartz&&OSX==1006,1,8655) == aja-linear-4b.html aja-linear-4-ref.html 
 fuzzy-if(!contentSameGfxBackendAsCanvas,4,20000) fuzzy-if(azureSkiaGL,8,20000) fuzzy-if(azureQuartz&&OSX==1006,2,7878) == aja-linear-5a.html aja-linear-5-ref.html 
-fuzzy-if(!contentSameGfxBackendAsCanvas,2,16477) fuzzy-if(azureSkiaGL,8,20000) fuzzy-if(azureQuartz,2,10163) == aja-linear-6a.html aja-linear-6-ref.html # bug 526708 
-fails == aja-linear-6b.html aja-linear-6-ref.html # bug 522607
 skip-if(B2G||Mulet) fuzzy-if(Android,6,10576) == height-dependence-1.html height-dependence-1-ref.html # Initial mulet triage: parity with B2G/B2G Desktop
 skip-if(B2G||Mulet) fuzzy-if(cocoaWidget,1,40000) fuzzy-if(Android,6,10576) == height-dependence-2.html height-dependence-2-ref.html # Initial mulet triage: parity with B2G/B2G Desktop
 skip-if(B2G||Mulet) fuzzy-if(Android,6,10576) == height-dependence-3.html height-dependence-3-ref.html # Initial mulet triage: parity with B2G/B2G Desktop
 
 == linear-onestopposition-1.html linear-onestopposition-1-ref.html
 fuzzy-if(d2d,47,400) == linear-onestopposition-1.html linear-onestopposition-1-ref2.html # d2d interpolates the hard stop
 == radial-onestopposition-1a.html radial-onestopposition-1-ref.html
 == radial-onestopposition-1b.html radial-onestopposition-1-ref.html
-== radial-onestopposition-1c.html radial-onestopposition-1-ref.html
 == repeating-linear-onestopposition-1.html orange-square.html
 == repeating-radial-onestopposition-1a.html orange-square.html
 == repeating-radial-onestopposition-1b.html orange-square.html
-== repeating-radial-onestopposition-1c.html orange-square.html
 == bug-916535-background-repeat-linear.html bug-916535-background-repeat-linear-ref.html
 fuzzy(1,800000) == large-gradient-1.html large-gradient-1-ref.html
 == large-gradient-2.html large-gradient-2-ref.html
 fails-if(browserIsRemote&&!B2G) fuzzy-if(!browserIsRemote||B2G,1,800000) == large-gradient-3.html large-gradient-3-ref.html
 == large-gradient-4.html large-gradient-4-ref.html
--- a/layout/reftests/css-gradients/repeated-final-stop-1-ref.html
+++ b/layout/reftests/css-gradients/repeated-final-stop-1-ref.html
@@ -1,18 +1,17 @@
 <!DOCTYPE HTML>
 <html>
 <head>
 <style>
 html {
   background: white;
 }
 div {
-  background: -moz-linear-gradient(left, 0 white, 100% orange);
-  background: linear-gradient(left, 0 white, 100% orange);
+  background: linear-gradient(to rigtht, 0 white, 100% orange);
   height: 100px;
   width: 50%;
 }
 </style>
 </head>
 <body>
 <div></div>
 </body>
--- a/layout/reftests/css-gradients/repeated-final-stop-1.html
+++ b/layout/reftests/css-gradients/repeated-final-stop-1.html
@@ -1,18 +1,17 @@
 <!DOCTYPE HTML>
 <html>
 <head>
 <style>
 html {
   background: white;
 }
 div {
-  background: -moz-linear-gradient(left, 0 white, 50% orange, 50% white);
-  background: linear-gradient(left, 0 white, 50% orange, 50% white);
+  background: linear-gradient(to rigtht, 0 white, 50% orange, 50% white);
   height: 100px;
 }
 </style>
 </head>
 <body>
 <div></div>
 </body>
 </html>
--- a/layout/reftests/css-gradients/repeating-linear-1a.html
+++ b/layout/reftests/css-gradients/repeating-linear-1a.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-repeating-linear-gradient(black 0, black 50px, white 50px, white 100px); width: 400px; height: 400px;"></div>
+<div style="background: repeating-linear-gradient(black 0, black 50px, white 50px, white 100px); width: 400px; height: 400px;"></div>
--- a/layout/reftests/css-gradients/repeating-linear-1b.html
+++ b/layout/reftests/css-gradients/repeating-linear-1b.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-repeating-linear-gradient(black 100px, black 150px, white 150px, white 200px); width: 400px; height: 400px;"></div>
+<div style="background: repeating-linear-gradient(black 100px, black 150px, white 150px, white 200px); width: 400px; height: 400px;"></div>
--- a/layout/reftests/css-gradients/repeating-linear-2a.html
+++ b/layout/reftests/css-gradients/repeating-linear-2a.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-repeating-linear-gradient(red 20px, blue 20px); width: 300px; height: 300px;"></div>
+<div style="background: repeating-linear-gradient(red 20px, blue 20px); width: 300px; height: 300px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/repeating-radial-1e.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: -moz-repeating-radial-gradient(closest-side, black 100px, black 150px, white 150px, white 200px); width: 400px; height: 400px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/repeating-radial-1f.html
+++ /dev/null
@@ -1,4 +0,0 @@
-<!-- Test adjustment of negative stop positions in a repeating radial gradient.
-     We should still get a repeating pattern, i.e., the stops cannot
-     naively be mapped to 0. -->
-<div style="background: -moz-repeating-radial-gradient(closest-side, black -100px, black -50px, white -50px, white 0); width: 400px; height: 400px;"></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/repeating-radial-onestopposition-1c.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE HTML>
-<title>Test for -moz-repeating-radial-gradient() with all stops at the same position</title>
-<style>
-
-div {
-  width: 200px;
-  height: 200px;
-  background-image: -moz-repeating-radial-gradient(contain, blue 25%, orange 25%);
-}
-
-</style>
-<div></div>
--- a/layout/reftests/css-gradients/twostops-1a.html
+++ b/layout/reftests/css-gradients/twostops-1a.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(top, #0000ff 50%, #ff0000 50%) no-repeat; width: 300px; height: 300px;"><br></div>
+<div style="background: linear-gradient(to bottom, #0000ff 50%, #ff0000 50%) no-repeat; width: 300px; height: 300px;"><br></div>
--- a/layout/reftests/css-gradients/twostops-1b.html
+++ b/layout/reftests/css-gradients/twostops-1b.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(bottom, #ff0000 50%, #0000ff 50%) no-repeat; width: 300px; height: 300px;"><br></div>
+<div style="background: linear-gradient(to top, #ff0000 50%, #0000ff 50%) no-repeat; width: 300px; height: 300px;"><br></div>
--- a/layout/reftests/css-gradients/twostops-1c.html
+++ b/layout/reftests/css-gradients/twostops-1c.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(yellow -50%, #0000ff 0, #0000ff 50%, #ff0000 50%) no-repeat; width: 300px; height: 300px;"><br></div>
+<div style="background: linear-gradient(yellow -50%, #0000ff 0, #0000ff 50%, #ff0000 50%) no-repeat; width: 300px; height: 300px;"><br></div>
--- a/layout/reftests/css-gradients/twostops-1d.html
+++ b/layout/reftests/css-gradients/twostops-1d.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(#0000ff 50%, #ff0000 50%, #ff0000 100%, yellow 150%) no-repeat; width: 300px; height: 300px;"><br></div>
+<div style="background: linear-gradient(#0000ff 50%, #ff0000 50%, #ff0000 100%, yellow 150%) no-repeat; width: 300px; height: 300px;"><br></div>
--- a/layout/reftests/css-gradients/twostops-1e.html
+++ b/layout/reftests/css-gradients/twostops-1e.html
@@ -1,1 +1,1 @@
-<div style="background: -moz-linear-gradient(yellow -50%, #0000ff 0, #0000ff 50%, #ff0000 50%, #ff0000 100%, yellow 150%) no-repeat; width: 300px; height: 300px;"><br></div>
+<div style="background: linear-gradient(yellow -50%, #0000ff 0, #0000ff 50%, #ff0000 50%, #ff0000 100%, yellow 150%) no-repeat; width: 300px; height: 300px;"><br></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/twostops-1f.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: linear-gradient(to bottom, #0000ff 50%, #ff0000 50%) no-repeat; width: 300px; height: 300px;"><br></div>
deleted file mode 100644
--- a/layout/reftests/css-gradients/twostops-1g.html
+++ /dev/null
@@ -1,1 +0,0 @@
-<div style="background: linear-gradient(to top, #ff0000 50%, #0000ff 50%) no-repeat; width: 300px; height: 300px;"><br></div>
--- a/layout/reftests/forms/meter/default-style/style.css
+++ b/layout/reftests/forms/meter/default-style/style.css
@@ -1,54 +1,54 @@
 div.meter-element {
   display: inline-block;
   height: 1em;
   width: 5em;
   vertical-align: -0.2em;
 
-  background: -moz-linear-gradient(top, #e6e6e6, #e6e6e6, #eeeeee 20%, #cccccc 45%, #cccccc 55%);
+  background: linear-gradient(#e6e6e6, #e6e6e6, #eeeeee 20%, #cccccc 45%, #cccccc 55%);
 }
 
 div.meter-optimum {
   float: none ! important;
 
   height: 100%;
   /*
    * We can't apply the following style to the reference because it will have
    * underisable effectes:
    * width: 100%;
    */
 
   /* green. */
-  background: -moz-linear-gradient(top, #ad7, #ad7, #cea 20%, #7a3 45%, #7a3 55%);
+  background: linear-gradient(#ad7, #ad7, #cea 20%, #7a3 45%, #7a3 55%);
 }
 
 div.meter-sub-optimum {
   float: none ! important;
 
   height: 100%;
   /*
    * We can't apply the following style to the reference because it will have
    * underisable effectes:
    * width: 100%;
    */
 
   /* orange. */
-  background: -moz-linear-gradient(top, #fe7, #fe7, #ffc 20%, #db3 45%, #db3 55%);
+  background: linear-gradient(#fe7, #fe7, #ffc 20%, #db3 45%, #db3 55%);
 }
 
 div.meter-sub-sub-optimum {
   float: none ! important;
 
   height: 100%;
   /*
    * We can't apply the following style to the reference because it will have
    * underisable effectes:
    * width: 100%;
    */
 
   /* red. */
-  background: -moz-linear-gradient(top, #f77, #f77, #fcc 20%, #d44 45%, #d44 55%);
+  background: linear-gradient(#f77, #f77, #fcc 20%, #d44 45%, #d44 55%);
 }
 
 meter, meter::-moz-meter-bar, div.meter-element, div.meter-optimum, div.meter-sub-optimum, div.meter-sub-sub-optimum {
   -moz-appearance: none;
 }
--- a/layout/reftests/image-element/element-paint-continuation-ref.html
+++ b/layout/reftests/image-element/element-paint-continuation-ref.html
@@ -11,15 +11,15 @@
   font-family: Ahem;
   src: url(../fonts/Ahem.ttf);
 }
 </style>
 <body style="line-height:1; font-family: Ahem; color: transparent;">
   <div style="width:100px; height:100px; border:10px solid black;">
     <div style="width:50px;">
       <span style="display:inline-block; width:25px; height:1px;"></span
-        ><span id="d" style="background:-moz-linear-gradient(right, yellow, yellow);"
+        ><span id="d" style="background:linear-gradient(to left, yellow, yellow);"
         ><span style="display:inline-block; width:25px; height:1px;"></span>
       AA</span>
     </div>
   </div>
 </body>
 </html>
--- a/layout/reftests/image-element/element-paint-multiple-backgrounds-01-ref.html
+++ b/layout/reftests/image-element/element-paint-multiple-backgrounds-01-ref.html
@@ -6,18 +6,18 @@
 <!DOCTYPE html>
 <html>
 <head>
 <style>
 
 #box {
   height: 100px;
   width: 200px;
-  background: -moz-linear-gradient(lime,lime) top left no-repeat,
-              -moz-linear-gradient(green,green) top right no-repeat red;
+  background: linear-gradient(lime,lime) top left no-repeat,
+              linear-gradient(green,green) top right no-repeat red;
   background-size: 100px 100px;
 }
 
 div > div {
   width: 100px;
   height: 100px;
 }
 
--- a/layout/reftests/image-element/gradient-html-06b.html
+++ b/layout/reftests/image-element/gradient-html-06b.html
@@ -2,12 +2,12 @@
      Any copyright is dedicated to the Public Domain.
      http://creativecommons.org/licenses/publicdomain/
      Test whether SVG gradients as -moz-element render the same as
      CSS gradients.
 -->
 <!DOCTYPE html>
 <html>
 <body style="margin:0">
-  <div style="width:300px; height:300px; background-image:-moz-linear-gradient(lime, black)"></div>
+  <div style="width:300px; height:300px; background-image:linear-gradient(lime, black)"></div>
 </body>
 </html>
 
--- a/layout/reftests/layers/component-alpha-exit-1-ref.html
+++ b/layout/reftests/layers/component-alpha-exit-1-ref.html
@@ -9,17 +9,17 @@ document.addEventListener("MozReftestInv
 }, false);
 </script>
 <style>
 #scrollbox {
   margin: 20px;
   width: 300px;
   height: 400px;
   overflow-y: hidden;
-  background: -moz-linear-gradient(#FFF, #FFF);
+  background: linear-gradient(#FFF, #FFF);
 }
 
 #inner {
   background-color: #000;
   padding-bottom: 415px;
 }
 </style>
 
--- a/layout/reftests/layers/component-alpha-exit-1.html
+++ b/layout/reftests/layers/component-alpha-exit-1.html
@@ -13,17 +13,17 @@ document.addEventListener("MozReftestInv
 }, false);
 </script>
 <style>
 #scrollbox {
   margin: 20px;
   width: 300px;
   height: 400px;
   overflow-y: hidden;
-  background: -moz-linear-gradient(#FFF, #FFF);
+  background: linear-gradient(#FFF, #FFF);
 }
 
 #inner {
   background-color: #000;
   margin-top: 10px;
   height: 5px;
   line-height: 5px;
   padding-bottom: 400px;
--- a/layout/reftests/native-theme/checkbox-dynamic-1-ref.html
+++ b/layout/reftests/native-theme/checkbox-dynamic-1-ref.html
@@ -1,17 +1,17 @@
 <!DOCTYPE html>
 <html>
 <head>
   <style>
     #checkbox {
        position: absolute;
        left: 0px;
        top: 0px;
-       background: -moz-linear-gradient(left, white, brown);
+       background: linear-gradient(to right, white, brown);
     }
   </style>
 </head>
 <body>
   <div id="checkbox">
     <input type="checkbox">
   </div>
 </body>
--- a/layout/reftests/native-theme/checkbox-dynamic-1.html
+++ b/layout/reftests/native-theme/checkbox-dynamic-1.html
@@ -1,17 +1,17 @@
 <!DOCTYPE html>
 <html class="reftest-wait">
 <head>
   <style>
     #checkbox {
        position: absolute;
        left: 0px;
        top: 0px;
-       background: -moz-linear-gradient(left, white, brown);
+       background: linear-gradient(to right, white, brown);
     }
     #toremove {
        position: absolute;
        left: 0px;
        top: 0px;
        width: 100px;
        height: 0px;
        background: black;
--- a/layout/reftests/scrolling/opacity-mixed-scrolling-2.html
+++ b/layout/reftests/scrolling/opacity-mixed-scrolling-2.html
@@ -1,26 +1,26 @@
 <!DOCTYPE HTML>
 <html>
 <style>
 #scrollbox {
   margin: 20px;
   width: 300px;
   height: 400px;
   overflow-y: auto;
-  background: -moz-linear-gradient(#444, #555);
+  background: linear-gradient(#444, #555);
 }
 .opacityBox {
   opacity: 0.999;
   border: 1px solid black;
   margin: 20px;
   padding: 20px;
 }
 #inner {
-  background-image: -moz-linear-gradient(white, rgba(255,255,255,0));
+  background-image: linear-gradient(white, rgba(255,255,255,0));
 }
 </style>
 
 <div id="scrollbox" class="scrollTop">
   <div id="inner">
     outside
     <div class="opacityBox">in opacity box</div>
     outside
--- a/layout/reftests/transform/601894-1.html
+++ b/layout/reftests/transform/601894-1.html
@@ -1,11 +1,11 @@
 <!DOCTYPE html>
 <html>
-  <body style="background: -moz-linear-gradient(lime, lime) fixed; overflow: hidden;">
+  <body style="background: linear-gradient(lime, lime) fixed; overflow: hidden;">
     <div style="position: absolute; left: 21.0138px; top: 507.24px; z-index: 17567; -moz-transform: scale(8);">
       <div style="height: 128px; left: -64px; position: absolute; top: -64px; visibility: visible; width: 128px;"></div>
     </div>
     <div style="position: absolute; left: 640.572px; top: 386.574px; -moz-transform: scale(1); z-index: -157863;">
       <div style="position: absolute; top: -64px; left: -64px; width: 128px; height: 128px; visibility: visible;"></div>
     </div>
     <div style="position: absolute; left: 568.346px; top: 582.669px; -moz-transform: scale(1); z-index: -62592;">
       <div style="position: absolute; top: -64px; left: -64px; width: 128px; height: 128px; visibility: visible;"></div>
--- a/layout/reftests/transform/601894-2.html
+++ b/layout/reftests/transform/601894-2.html
@@ -1,8 +1,8 @@
 <!DOCTYPE html>
 <html>
-  <body style="background: -moz-linear-gradient(lime, lime) fixed;">
+  <body style="background: linear-gradient(lime, lime) fixed;">
     <div style="position: absolute; left: 0; top: 0; -moz-transform: scale(1)">
       <div style="position: absolute; width: 200px; height: 200px;"></div>
     </div>
   </body>
 </html>
--- a/layout/style/crashtests/large_border_image_width.html
+++ b/layout/style/crashtests/large_border_image_width.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html>
 <head>
 </head>
 <body>
-<div style="border: 10px solid transparent; border-image-source: -moz-linear-gradient(0rad, blue 25px, green 25px); border-image-width: 5464618830153;"></div>
+<div style="border: 10px solid transparent; border-image-source: linear-gradient(90deg, blue 25px, green 25px); border-image-width: 5464618830153;"></div>
 </body>
 </html>
 
--- a/layout/style/nsCSSParser.cpp
+++ b/layout/style/nsCSSParser.cpp
@@ -1092,22 +1092,18 @@ protected:
   bool ParseSymbols(nsCSSValue& aValue);
   bool SetValueToURL(nsCSSValue& aValue, const nsString& aURL);
   bool TranslateDimension(nsCSSValue& aValue, int32_t aVariantMask,
                             float aNumber, const nsString& aUnit);
   bool ParseImageOrientation(nsCSSValue& aAngle);
   bool ParseImageRect(nsCSSValue& aImage);
   bool ParseElement(nsCSSValue& aValue);
   bool ParseColorStop(nsCSSValueGradient* aGradient);
-  bool ParseLinearGradient(nsCSSValue& aValue, bool aIsRepeating,
-                           bool aIsLegacy);
-  bool ParseRadialGradient(nsCSSValue& aValue, bool aIsRepeating,
-                           bool aIsLegacy);
-  bool IsLegacyGradientLine(const nsCSSTokenType& aType,
-                            const nsString& aId);
+  bool ParseLinearGradient(nsCSSValue& aValue, bool aIsRepeating);
+  bool ParseRadialGradient(nsCSSValue& aValue, bool aIsRepeating);
   bool ParseGradientColorStops(nsCSSValueGradient* aGradient,
                                nsCSSValue& aValue);
 
   void SetParsingCompoundProperty(bool aBool) {
     mParsingCompoundProperty = aBool;
   }
   bool IsParsingCompoundProperty(void) const {
     return mParsingCompoundProperty;
@@ -6766,20 +6762,20 @@ CSSParserImpl::ParseWebkitPrefixedGradie
   // about to put into the CSS parser is a faithful representation of what it
   // would've seen if it were just parsing the original input stream):
   if (gotCloseParen) {
     unprefixedFuncBody.Append(char16_t(')'));
   }
 
   nsAutoScannerChanger scannerChanger(this, unprefixedFuncBody);
   if (unprefixedFuncName.EqualsLiteral("linear-gradient")) {
-    return ParseLinearGradient(aValue, false, false);
+    return ParseLinearGradient(aValue, false);
   }
   if (unprefixedFuncName.EqualsLiteral("radial-gradient")) {
-    return ParseRadialGradient(aValue, false, false);
+    return ParseRadialGradient(aValue, false);
   }
 
   NS_ERROR("CSSUnprefixingService returned an unrecognized type of "
            "gradient function");
 
   return false;
 }
 
@@ -7402,35 +7398,29 @@ CSSParserImpl::ParseVariant(nsCSSValue& 
       eCSSToken_URL == tk->mType) {
     SetValueToURL(aValue, tk->mIdent);
     return true;
   }
   if ((aVariantMask & VARIANT_GRADIENT) != 0 &&
       eCSSToken_Function == tk->mType) {
     // a generated gradient
     nsDependentString tmp(tk->mIdent, 0);
-    bool isLegacy = false;
-    if (StringBeginsWith(tmp, NS_LITERAL_STRING("-moz-"))) {
-      tmp.Rebind(tmp, 5);
-      isLegacy = true;
-    }
     bool isRepeating = false;
     if (StringBeginsWith(tmp, NS_LITERAL_STRING("repeating-"))) {
       tmp.Rebind(tmp, 10);
       isRepeating = true;
     }
 
     if (tmp.LowerCaseEqualsLiteral("linear-gradient")) {
-      return ParseLinearGradient(aValue, isRepeating, isLegacy);
+      return ParseLinearGradient(aValue, isRepeating);
     }
     if (tmp.LowerCaseEqualsLiteral("radial-gradient")) {
-      return ParseRadialGradient(aValue, isRepeating, isLegacy);
-    }
-    if (ShouldUseUnprefixingService() &&
-        !isRepeating && !isLegacy &&
+      return ParseRadialGradient(aValue, isRepeating);
+    }
+    if (ShouldUseUnprefixingService() && !isRepeating &&
         StringBeginsWith(tmp, NS_LITERAL_STRING("-webkit-"))) {
       // Copy 'tmp' into a string on the stack, since as soon as we
       // start parsing, its backing store (in "tk") will be overwritten
       nsAutoString prefixedFuncName(tmp);
       return ParseWebkitPrefixedGradient(prefixedFuncName, aValue);
     }
   }
   if ((aVariantMask & VARIANT_IMAGE_RECT) != 0 &&
@@ -9184,34 +9174,25 @@ CSSParserImpl::ParseColorStop(nsCSSValue
   return true;
 }
 
 // <gradient>
 //    : linear-gradient( <linear-gradient-line>? <color-stops> ')'
 //    | radial-gradient( <radial-gradient-line>? <color-stops> ')'
 //
 // <linear-gradient-line> : [ to [left | right] || [top | bottom] ] ,
-//                        | <legacy-gradient-line>
 // <radial-gradient-line> : [ <shape> || <size> ] [ at <position> ]? ,
 //                        | [ at <position> ] ,
-//                        | <legacy-gradient-line>? <legacy-shape-size>?
 // <shape> : circle | ellipse
 // <size> : closest-side | closest-corner | farthest-side | farthest-corner
 //        | <length> | [<length> | <percentage>]{2}
 //
-// <legacy-gradient-line> : [ <position> || <angle>] ,
-//
-// <legacy-shape-size> : [ <shape> || <legacy-size> ] ,
-// <legacy-size> : closest-side | closest-corner | farthest-side
-//               | farthest-corner | contain | cover
-//
 // <color-stops> : <color-stop> , <color-stop> [, <color-stop>]*
 bool
-CSSParserImpl::ParseLinearGradient(nsCSSValue& aValue, bool aIsRepeating,
-                                   bool aIsLegacy)
+CSSParserImpl::ParseLinearGradient(nsCSSValue& aValue, bool aIsRepeating)
 {
   nsRefPtr<nsCSSValueGradient> cssGradient
     = new nsCSSValueGradient(false, aIsRepeating);
 
   if (!GetToken(true)) {
     return false;
   }
 
@@ -9242,86 +9223,48 @@ CSSParserImpl::ParseLinearGradient(nsCSS
     if (!ExpectSymbol(',', true)) {
       SkipUntil(')');
       return false;
     }
 
     return ParseGradientColorStops(cssGradient, aValue);
   }
 
-  if (!aIsLegacy) {
-    UngetToken();
-
-    // <angle> ,
-    if (ParseVariant(cssGradient->mAngle, VARIANT_ANGLE, nullptr) &&
-        !ExpectSymbol(',', true)) {
-      SkipUntil(')');
-      return false;
-    }
-
-    return ParseGradientColorStops(cssGradient, aValue);
-  }
-
-  nsCSSTokenType ty = mToken.mType;
-  nsString id = mToken.mIdent;
   UngetToken();
 
-  // <legacy-gradient-line>
-  bool haveGradientLine = IsLegacyGradientLine(ty, id);
-  if (haveGradientLine) {
-    cssGradient->mIsLegacySyntax = true;
-    bool haveAngle =
-      ParseVariant(cssGradient->mAngle, VARIANT_ANGLE, nullptr);
-
-    // if we got an angle, we might now have a comma, ending the gradient-line
-    if (!haveAngle || !ExpectSymbol(',', true)) {
-      if (!ParseBoxPositionValues(cssGradient->mBgPos, false)) {
-        SkipUntil(')');
-        return false;
-      }
-
-      if (!ExpectSymbol(',', true) &&
-          // if we didn't already get an angle, we might have one now,
-          // otherwise it's an error
-          (haveAngle ||
-           !ParseVariant(cssGradient->mAngle, VARIANT_ANGLE, nullptr) ||
-           // now we better have a comma
-           !ExpectSymbol(',', true))) {
-        SkipUntil(')');
-        return false;
-      }
-    }
+  // <angle> ,
+  if (ParseVariant(cssGradient->mAngle, VARIANT_ANGLE, nullptr) &&
+      !ExpectSymbol(',', true)) {
+    SkipUntil(')');
+    return false;
   }
 
   return ParseGradientColorStops(cssGradient, aValue);
 }
 
 bool
-CSSParserImpl::ParseRadialGradient(nsCSSValue& aValue, bool aIsRepeating,
-                                   bool aIsLegacy)
+CSSParserImpl::ParseRadialGradient(nsCSSValue& aValue, bool aIsRepeating)
 {
   nsRefPtr<nsCSSValueGradient> cssGradient
     = new nsCSSValueGradient(true, aIsRepeating);
 
   // [ <shape> || <size> ]
   bool haveShape =
     ParseVariant(cssGradient->GetRadialShape(), VARIANT_KEYWORD,
                  nsCSSProps::kRadialGradientShapeKTable);
 
   bool haveSize = ParseVariant(cssGradient->GetRadialSize(), VARIANT_KEYWORD,
-                               aIsLegacy ?
-                               nsCSSProps::kRadialGradientLegacySizeKTable :
                                nsCSSProps::kRadialGradientSizeKTable);
   if (haveSize) {
     if (!haveShape) {
       // <size> <shape>
       haveShape = ParseVariant(cssGradient->GetRadialShape(), VARIANT_KEYWORD,
                                nsCSSProps::kRadialGradientShapeKTable);
     }
-  } else if (!aIsLegacy) {
+  } else {
     // Save RadialShape before parsing RadiusX because RadialShape and
     // RadiusX share the storage.
     int32_t shape =
       cssGradient->GetRadialShape().GetUnit() == eCSSUnit_Enumerated ?
       cssGradient->GetRadialShape().GetIntValue() : -1;
     // <length> | [<length> | <percentage>]{2}
     cssGradient->mIsExplicitSize = true;
     haveSize =
@@ -9362,151 +9305,34 @@ CSSParserImpl::ParseRadialGradient(nsCSS
     // [ <shape> || <size> ] ,
     return ParseGradientColorStops(cssGradient, aValue);
   }
 
   if (!GetToken(true)) {
     return false;
   }
 
-  if (!aIsLegacy) {
-    if (mToken.mType == eCSSToken_Ident &&
-        mToken.mIdent.LowerCaseEqualsLiteral("at")) {
-      // [ <shape> || <size> ]? at <position> ,
-      if (!ParseBoxPositionValues(cssGradient->mBgPos, false) ||
-          !ExpectSymbol(',', true)) {
-        SkipUntil(')');
-        return false;
-      }
-
-      return ParseGradientColorStops(cssGradient, aValue);
-    }
-
-    // <color-stops> only
-    UngetToken();
+  if (mToken.mType == eCSSToken_Ident &&
+      mToken.mIdent.LowerCaseEqualsLiteral("at")) {
+    // [ <shape> || <size> ]? at <position> ,
+    if (!ParseBoxPositionValues(cssGradient->mBgPos, false) ||
+        !ExpectSymbol(',', true)) {
+      SkipUntil(')');
+      return false;
+    }
+
     return ParseGradientColorStops(cssGradient, aValue);
   }
-  MOZ_ASSERT(!cssGradient->mIsExplicitSize);
-
-  nsCSSTokenType ty = mToken.mType;
-  nsString id = mToken.mIdent;
+
+  // <color-stops> only
   UngetToken();
-
-  // <legacy-gradient-line>
-  bool haveGradientLine = false;
-  // if we already encountered a shape or size,
-  // we can not have a gradient-line in legacy syntax
-  if (!haveShape && !haveSize) {
-      haveGradientLine = IsLegacyGradientLine(ty, id);
-  }
-  if (haveGradientLine) {
-    bool haveAngle =
-      ParseVariant(cssGradient->mAngle, VARIANT_ANGLE, nullptr);
-
-    // if we got an angle, we might now have a comma, ending the gradient-line
-    if (!haveAngle || !ExpectSymbol(',', true)) {
-      if (!ParseBoxPositionValues(cssGradient->mBgPos, false)) {
-        SkipUntil(')');
-        return false;
-      }
-
-      if (!ExpectSymbol(',', true) &&
-          // if we didn't already get an angle, we might have one now,
-          // otherwise it's an error
-          (haveAngle ||
-           !ParseVariant(cssGradient->mAngle, VARIANT_ANGLE, nullptr) ||
-           // now we better have a comma
-           !ExpectSymbol(',', true))) {
-        SkipUntil(')');
-        return false;
-      }
-    }
-
-    if (cssGradient->mAngle.GetUnit() != eCSSUnit_None) {
-      cssGradient->mIsLegacySyntax = true;
-    }
-  }
-
-  // radial gradients might have a shape and size here for legacy syntax
-  if (!haveShape && !haveSize) {
-    haveShape =
-      ParseVariant(cssGradient->GetRadialShape(), VARIANT_KEYWORD,
-                   nsCSSProps::kRadialGradientShapeKTable);
-    haveSize =
-      ParseVariant(cssGradient->GetRadialSize(), VARIANT_KEYWORD,
-                   nsCSSProps::kRadialGradientLegacySizeKTable);
-
-    // could be in either order
-    if (!haveShape) {
-      haveShape =
-        ParseVariant(cssGradient->GetRadialShape(), VARIANT_KEYWORD,
-                     nsCSSProps::kRadialGradientShapeKTable);
-    }
-  }
-
-  if ((haveShape || haveSize) && !ExpectSymbol(',', true)) {
-    SkipUntil(')');
-    return false;
-  }
-
   return ParseGradientColorStops(cssGradient, aValue);
 }
 
 bool
-CSSParserImpl::IsLegacyGradientLine(const nsCSSTokenType& aType,
-                                    const nsString& aId)
-{
-  // N.B. ParseBoxPositionValues is not guaranteed to put back
-  // everything it scanned if it fails, so we must only call it
-  // if there is no alternative to consuming a <box-position>.
-  // ParseVariant, as used here, will either succeed and consume
-  // a single token, or fail and consume none, so we can be more
-  // cavalier about calling it.
-
-  bool haveGradientLine = false;
-  switch (aType) {
-  case eCSSToken_Percentage:
-  case eCSSToken_Number:
-  case eCSSToken_Dimension:
-    haveGradientLine = true;
-    break;
-
-  case eCSSToken_Function:
-    if (aId.LowerCaseEqualsLiteral("calc") ||
-        aId.LowerCaseEqualsLiteral("-moz-calc")) {
-      haveGradientLine = true;
-      break;
-    }
-    // fall through
-  case eCSSToken_ID:
-  case eCSSToken_Hash:
-    // this is a color
-    break;
-
-  case eCSSToken_Ident: {
-    // This is only a gradient line if it's a box position keyword.
-    nsCSSKeyword kw = nsCSSKeywords::LookupKeyword(aId);
-    int32_t junk;
-    if (kw != eCSSKeyword_UNKNOWN &&
-        nsCSSProps::FindKeyword(kw, nsCSSProps::kBackgroundPositionKTable,
-                                junk)) {
-      haveGradientLine = true;
-    }
-    break;
-  }
-
-  default:
-    // error
-    break;
-  }
-
-  return haveGradientLine;
-}
-
-bool
 CSSParserImpl::ParseGradientColorStops(nsCSSValueGradient* aGradient,
                                        nsCSSValue& aValue)
 {
   // At least two color stops are required
   if (!ParseColorStop(aGradient) ||
       !ExpectSymbol(',', true) ||
       !ParseColorStop(aGradient)) {
     SkipUntil(')');
@@ -10747,20 +10573,16 @@ CSSParserImpl::ParseBackgroundItem(CSSPa
         }
       }
     } else if (tt == eCSSToken_URL ||
                (tt == eCSSToken_Function &&
                 (mToken.mIdent.LowerCaseEqualsLiteral("linear-gradient") ||
                  mToken.mIdent.LowerCaseEqualsLiteral("radial-gradient") ||
                  mToken.mIdent.LowerCaseEqualsLiteral("repeating-linear-gradient") ||
                  mToken.mIdent.LowerCaseEqualsLiteral("repeating-radial-gradient") ||
-                 mToken.mIdent.LowerCaseEqualsLiteral("-moz-linear-gradient") ||
-                 mToken.mIdent.LowerCaseEqualsLiteral("-moz-radial-gradient") ||
-                 mToken.mIdent.LowerCaseEqualsLiteral("-moz-repeating-linear-gradient") ||
-                 mToken.mIdent.LowerCaseEqualsLiteral("-moz-repeating-radial-gradient") ||
                  mToken.mIdent.LowerCaseEqualsLiteral("-moz-image-rect") ||
                  mToken.mIdent.LowerCaseEqualsLiteral("-moz-element") ||
                  (ShouldUseUnprefixingService() &&
                   (mToken.mIdent.LowerCaseEqualsLiteral("-webkit-gradient") ||
                    mToken.mIdent.LowerCaseEqualsLiteral("-webkit-linear-gradient") ||
                    mToken.mIdent.LowerCaseEqualsLiteral("-webkit-radial-gradient")))))) {
       if (haveImage)
         return false;
--- a/layout/style/nsCSSProps.cpp
+++ b/layout/style/nsCSSProps.cpp
@@ -1623,27 +1623,16 @@ const KTableValue nsCSSProps::kRadialGra
 const KTableValue nsCSSProps::kRadialGradientSizeKTable[] = {
   eCSSKeyword_closest_side,    NS_STYLE_GRADIENT_SIZE_CLOSEST_SIDE,
   eCSSKeyword_closest_corner,  NS_STYLE_GRADIENT_SIZE_CLOSEST_CORNER,
   eCSSKeyword_farthest_side,   NS_STYLE_GRADIENT_SIZE_FARTHEST_SIDE,
   eCSSKeyword_farthest_corner, NS_STYLE_GRADIENT_SIZE_FARTHEST_CORNER,
   eCSSKeyword_UNKNOWN,-1
 };
 
-const KTableValue nsCSSProps::kRadialGradientLegacySizeKTable[] = {
-  eCSSKeyword_closest_side,    NS_STYLE_GRADIENT_SIZE_CLOSEST_SIDE,
-  eCSSKeyword_closest_corner,  NS_STYLE_GRADIENT_SIZE_CLOSEST_CORNER,
-  eCSSKeyword_farthest_side,   NS_STYLE_GRADIENT_SIZE_FARTHEST_SIDE,
-  eCSSKeyword_farthest_corner, NS_STYLE_GRADIENT_SIZE_FARTHEST_CORNER,
-  // synonyms
-  eCSSKeyword_contain,         NS_STYLE_GRADIENT_SIZE_CLOSEST_SIDE,
-  eCSSKeyword_cover,           NS_STYLE_GRADIENT_SIZE_FARTHEST_CORNER,
-  eCSSKeyword_UNKNOWN,-1
-};
-
 const KTableValue nsCSSProps::kResizeKTable[] = {
   eCSSKeyword_none,       NS_STYLE_RESIZE_NONE,
   eCSSKeyword_both,       NS_STYLE_RESIZE_BOTH,
   eCSSKeyword_horizontal, NS_STYLE_RESIZE_HORIZONTAL,
   eCSSKeyword_vertical,   NS_STYLE_RESIZE_VERTICAL,
   eCSSKeyword_UNKNOWN,-1
 };
 
--- a/layout/style/nsCSSProps.h
+++ b/layout/style/nsCSSProps.h
@@ -664,17 +664,16 @@ public:
   static const KTableValue kPageSizeKTable[];
   static const KTableValue kPitchKTable[];
   static const KTableValue kPointerEventsKTable[];
   // Not const because we modify its entries when the pref
   // "layout.css.sticky.enabled" changes:
   static KTableValue kPositionKTable[];
   static const KTableValue kRadialGradientShapeKTable[];
   static const KTableValue kRadialGradientSizeKTable[];
-  static const KTableValue kRadialGradientLegacySizeKTable[];
   static const KTableValue kResizeKTable[];
   static const KTableValue kRubyAlignKTable[];
   static const KTableValue kRubyPositionKTable[];
   static const KTableValue kScrollBehaviorKTable[];
   static const KTableValue kScrollSnapTypeKTable[];
   static const KTableValue kSpeakKTable[];
   static const KTableValue kSpeakHeaderKTable[];
   static const KTableValue kSpeakNumeralKTable[];
--- a/layout/style/nsCSSValue.cpp
+++ b/layout/style/nsCSSValue.cpp
@@ -1391,30 +1391,27 @@ nsCSSValue::AppendToString(nsCSSProperty
     aResult.AppendFloat(GetPercentValue() * 100.0f);
   }
   else if (eCSSUnit_Percent < unit) {  // length unit
     aResult.AppendFloat(GetFloatValue());
   }
   else if (eCSSUnit_Gradient == unit) {
     nsCSSValueGradient* gradient = GetGradientValue();
 
-    if (gradient->mIsLegacySyntax) {
-      aResult.AppendLiteral("-moz-");
-    }
     if (gradient->mIsRepeating) {
       aResult.AppendLiteral("repeating-");
     }
     if (gradient->mIsRadial) {
       aResult.AppendLiteral("radial-gradient(");
     } else {
       aResult.AppendLiteral("linear-gradient(");
     }
 
     bool needSep = false;
-    if (gradient->mIsRadial && !gradient->mIsLegacySyntax) {
+    if (gradient->mIsRadial) {
       if (!gradient->mIsExplicitSize) {
         if (gradient->GetRadialShape().GetUnit() != eCSSUnit_None) {
           MOZ_ASSERT(gradient->GetRadialShape().GetUnit() ==
                      eCSSUnit_Enumerated,
                      "bad unit for radial gradient shape");
           int32_t intValue = gradient->GetRadialShape().GetIntValue();
           MOZ_ASSERT(intValue != NS_STYLE_GRADIENT_SHAPE_LINEAR,
                      "radial gradient with linear shape?!");
@@ -1444,17 +1441,17 @@ nsCSSValue::AppendToString(nsCSSProperty
         if (gradient->GetRadiusY().GetUnit() != eCSSUnit_None) {
           aResult.Append(' ');
           gradient->GetRadiusY().AppendToString(aProperty, aResult,
                                                 aSerialization);
         }
         needSep = true;
       }
     }
-    if (!gradient->mIsRadial && !gradient->mIsLegacySyntax) {
+    if (!gradient->mIsRadial) {
       if (gradient->mBgPos.mXValue.GetUnit() != eCSSUnit_None ||
           gradient->mBgPos.mYValue.GetUnit() != eCSSUnit_None) {
         MOZ_ASSERT(gradient->mAngle.GetUnit() == eCSSUnit_None);
         MOZ_ASSERT(gradient->mBgPos.mXValue.GetUnit() == eCSSUnit_Enumerated &&
                    gradient->mBgPos.mYValue.GetUnit() == eCSSUnit_Enumerated,
                    "unexpected unit");
         aResult.AppendLiteral("to");
         if (!(gradient->mBgPos.mXValue.GetIntValue() & NS_STYLE_BG_POSITION_CENTER)) {
@@ -1473,66 +1470,34 @@ nsCSSValue::AppendToString(nsCSSProperty
         needSep = true;
       }
     } else if (gradient->mBgPos.mXValue.GetUnit() != eCSSUnit_None ||
         gradient->mBgPos.mYValue.GetUnit() != eCSSUnit_None ||
         gradient->mAngle.GetUnit() != eCSSUnit_None) {
       if (needSep) {
         aResult.Append(' ');
       }
-      if (gradient->mIsRadial && !gradient->mIsLegacySyntax) {
+      if (gradient->mIsRadial) {
         aResult.AppendLiteral("at ");
       }
       if (gradient->mBgPos.mXValue.GetUnit() != eCSSUnit_None) {
         gradient->mBgPos.mXValue.AppendToString(eCSSProperty_background_position,
                                                 aResult, aSerialization);
         aResult.Append(' ');
       }
       if (gradient->mBgPos.mYValue.GetUnit() != eCSSUnit_None) {
         gradient->mBgPos.mYValue.AppendToString(eCSSProperty_background_position,
                                                 aResult, aSerialization);
         aResult.Append(' ');
       }
-      if (gradient->mAngle.GetUnit() != eCSSUnit_None) {
-        MOZ_ASSERT(gradient->mIsLegacySyntax,
-                   "angle is allowed only for legacy syntax");
-        gradient->mAngle.AppendToString(aProperty, aResult, aSerialization);
-      }
+      MOZ_ASSERT(gradient->mAngle.GetUnit() == eCSSUnit_None,
+                 "angle is not allowed for radial gradients");
       needSep = true;
     }
 
-    if (gradient->mIsRadial && gradient->mIsLegacySyntax &&
-        (gradient->GetRadialShape().GetUnit() != eCSSUnit_None ||
-         gradient->GetRadialSize().GetUnit() != eCSSUnit_None)) {
-      MOZ_ASSERT(!gradient->mIsExplicitSize);
-      if (needSep) {
-        aResult.AppendLiteral(", ");
-      }
-      if (gradient->GetRadialShape().GetUnit() != eCSSUnit_None) {
-        MOZ_ASSERT(gradient->GetRadialShape().GetUnit() == eCSSUnit_Enumerated,
-                   "bad unit for radial gradient shape");
-        int32_t intValue = gradient->GetRadialShape().GetIntValue();
-        MOZ_ASSERT(intValue != NS_STYLE_GRADIENT_SHAPE_LINEAR,
-                   "radial gradient with linear shape?!");
-        AppendASCIItoUTF16(nsCSSProps::ValueToKeyword(intValue,
-                               nsCSSProps::kRadialGradientShapeKTable),
-                           aResult);
-        aResult.Append(' ');
-      }
-
-      if (gradient->GetRadialSize().GetUnit() != eCSSUnit_None) {
-        MOZ_ASSERT(gradient->GetRadialSize().GetUnit() == eCSSUnit_Enumerated,
-                   "bad unit for radial gradient size");
-        int32_t intValue = gradient->GetRadialSize().GetIntValue();
-        AppendASCIItoUTF16(nsCSSProps::ValueToKeyword(intValue,
-                               nsCSSProps::kRadialGradientSizeKTable),
-                           aResult);
-      }
-      needSep = true;
-    }
     if (needSep) {
       aResult.AppendLiteral(", ");
     }
 
     for (uint32_t i = 0 ;;) {
       bool isInterpolationHint = gradient->mStops[i].mIsInterpolationHint;
       if (!isInterpolationHint) {
         gradient->mStops[i].mColor.AppendToString(aProperty, aResult,
@@ -2503,17 +2468,16 @@ nsCSSValueGradientStop::SizeOfExcludingT
   n += mColor   .SizeOfExcludingThis(aMallocSizeOf);
   return n;
 }
 
 nsCSSValueGradient::nsCSSValueGradient(bool aIsRadial,
                                        bool aIsRepeating)
   : mIsRadial(aIsRadial),
     mIsRepeating(aIsRepeating),
-    mIsLegacySyntax(false),
     mIsExplicitSize(false),
     mBgPos(eCSSUnit_None),
     mAngle(eCSSUnit_None)
 {
   mRadialValues[0].SetNoneValue();
   mRadialValues[1].SetNoneValue();
 }
 
--- a/layout/style/nsCSSValue.h
+++ b/layout/style/nsCSSValue.h
@@ -1379,17 +1379,16 @@ public:
 };
 
 struct nsCSSValueGradient final {
   nsCSSValueGradient(bool aIsRadial, bool aIsRepeating);
 
   // true if gradient is radial, false if it is linear
   bool mIsRadial;
   bool mIsRepeating;
-  bool mIsLegacySyntax;
   bool mIsExplicitSize;
   // line position and angle
   nsCSSValuePair mBgPos;
   nsCSSValue mAngle;
 
   // Only meaningful if mIsRadial is true
 private:
   nsCSSValue mRadialValues[2];
@@ -1436,17 +1435,16 @@ public:
   }
 
   InfallibleTArray<nsCSSValueGradientStop> mStops;
 
   bool operator==(const nsCSSValueGradient& aOther) const
   {
     if (mIsRadial != aOther.mIsRadial ||
         mIsRepeating != aOther.mIsRepeating ||
-        mIsLegacySyntax != aOther.mIsLegacySyntax ||
         mIsExplicitSize != aOther.mIsExplicitSize ||
         mBgPos != aOther.mBgPos ||
         mAngle != aOther.mAngle ||
         mRadialValues[0] != aOther.mRadialValues[0] ||
         mRadialValues[1] != aOther.mRadialValues[1])
       return false;
 
     if (mStops.Length() != aOther.mStops.Length())
--- a/layout/style/nsComputedDOMStyle.cpp
+++ b/layout/style/nsComputedDOMStyle.cpp
@@ -1837,36 +1837,32 @@ AppendCSSGradientToBoxPosition(const nsS
 
   aNeedSep = true;
 }
 
 void
 nsComputedDOMStyle::GetCSSGradientString(const nsStyleGradient* aGradient,
                                          nsAString& aString)
 {
-  if (!aGradient->mLegacySyntax) {
-    aString.Truncate();
-  } else {
-    aString.AssignLiteral("-moz-");
-  }
+  aString.Truncate();
   if (aGradient->mRepeating) {
     aString.AppendLiteral("repeating-");
   }
   bool isRadial = aGradient->mShape != NS_STYLE_GRADIENT_SHAPE_LINEAR;
   if (isRadial) {
     aString.AppendLiteral("radial-gradient(");
   } else {
     aString.AppendLiteral("linear-gradient(");
   }
 
   bool needSep = false;
   nsAutoString tokenString;
   nsRefPtr<nsROCSSPrimitiveValue> tmpVal = new nsROCSSPrimitiveValue;
 
-  if (isRadial && !aGradient->mLegacySyntax) {
+  if (isRadial) {
     if (aGradient->mSize != NS_STYLE_GRADIENT_SIZE_EXPLICIT_SIZE) {
       if (aGradient->mShape == NS_STYLE_GRADIENT_SHAPE_CIRCULAR) {
         aString.AppendLiteral("circle");
         needSep = true;
       }
       if (aGradient->mSize != NS_STYLE_GRADIENT_SIZE_FARTHEST_CORNER) {
         if (needSep) {
           aString.Append(' ');
@@ -1883,71 +1879,46 @@ nsComputedDOMStyle::GetCSSGradientString
         aString.Append(' ');
         AppendCSSGradientLength(aGradient->mRadiusY, tmpVal, aString);
       }
       needSep = true;
     }
   }
   if (aGradient->mBgPosX.GetUnit() != eStyleUnit_None) {
     MOZ_ASSERT(aGradient->mBgPosY.GetUnit() != eStyleUnit_None);
-    if (!isRadial && !aGradient->mLegacySyntax) {
+    if (!isRadial) {
       AppendCSSGradientToBoxPosition(aGradient, aString, needSep);
     } else if (aGradient->mBgPosX.GetUnit() != eStyleUnit_Percent ||
                aGradient->mBgPosX.GetPercentValue() != 0.5f ||
                aGradient->mBgPosY.GetUnit() != eStyleUnit_Percent ||
                aGradient->mBgPosY.GetPercentValue() != (isRadial ? 0.5f : 1.0f)) {
-      if (isRadial && !aGradient->mLegacySyntax) {
+      if (isRadial) {
         if (needSep) {
           aString.Append(' ');
         }
         aString.AppendLiteral("at ");
         needSep = false;
       }
       AppendCSSGradientLength(aGradient->mBgPosX, tmpVal, aString);
       if (aGradient->mBgPosY.GetUnit() != eStyleUnit_None) {
         aString.Append(' ');
         AppendCSSGradientLength(aGradient->mBgPosY, tmpVal, aString);
       }
       needSep = true;
     }
   }
   if (aGradient->mAngle.GetUnit() != eStyleUnit_None) {
-    MOZ_ASSERT(!isRadial || aGradient->mLegacySyntax);
+    MOZ_ASSERT(!isRadial);
     if (needSep) {
       aString.Append(' ');
     }
     nsStyleUtil::AppendAngleValue(aGradient->mAngle, aString);
     needSep = true;
   }
 
-  if (isRadial && aGradient->mLegacySyntax &&
-      (aGradient->mShape == NS_STYLE_GRADIENT_SHAPE_CIRCULAR ||
-       aGradient->mSize != NS_STYLE_GRADIENT_SIZE_FARTHEST_CORNER)) {
-    MOZ_ASSERT(aGradient->mSize != NS_STYLE_GRADIENT_SIZE_EXPLICIT_SIZE);
-    if (needSep) {
-      aString.AppendLiteral(", ");
-      needSep = false;
-    }
-    if (aGradient->mShape == NS_STYLE_GRADIENT_SHAPE_CIRCULAR) {
-      aString.AppendLiteral("circle");
-      needSep = true;
-    }
-    if (aGradient->mSize != NS_STYLE_GRADIENT_SIZE_FARTHEST_CORNER) {
-      if (needSep) {
-        aString.Append(' ');
-      }
-      AppendASCIItoUTF16(nsCSSProps::
-                         ValueToKeyword(aGradient->mSize,
-                                        nsCSSProps::kRadialGradientSizeKTable),
-                         aString);
-    }
-    needSep = true;
-  }
-
-
   // color stops
   for (uint32_t i = 0; i < aGradient->mStops.Length(); ++i) {
     if (needSep) {
       aString.AppendLiteral(", ");
     }
 
     const auto& stop = aGradient->mStops[i];
     if (!stop.mIsInterpolationHint) {
--- a/layout/style/nsRuleNode.cpp
+++ b/layout/style/nsRuleNode.cpp
@@ -1085,18 +1085,16 @@ static void SetGradient(const nsCSSValue
     NS_ASSERTION(gradient->GetRadialShape().GetUnit() == eCSSUnit_None,
                  "bad unit for linear shape");
     NS_ASSERTION(gradient->GetRadialSize().GetUnit() == eCSSUnit_None,
                  "bad unit for linear size");
     aResult.mShape = NS_STYLE_GRADIENT_SHAPE_LINEAR;
     aResult.mSize = NS_STYLE_GRADIENT_SIZE_FARTHEST_CORNER;
   }
 
-  aResult.mLegacySyntax = gradient->mIsLegacySyntax;
-
   // bg-position
   SetGradientCoord(gradient->mBgPos.mXValue, aPresContext, aContext,
                    aResult.mBgPosX, aConditions);
 
   SetGradientCoord(gradient->mBgPos.mYValue, aPresContext, aContext,
                    aResult.mBgPosY, aConditions);
 
   aResult.mRepeating = gradient->mIsRepeating;
--- a/layout/style/nsStyleStruct.cpp
+++ b/layout/style/nsStyleStruct.cpp
@@ -1761,17 +1761,16 @@ nsStyleGradient::operator==(const nsStyl
              "incorrect combination of shape and size");
   MOZ_ASSERT(aOther.mSize == NS_STYLE_GRADIENT_SIZE_FARTHEST_CORNER ||
              aOther.mShape != NS_STYLE_GRADIENT_SHAPE_LINEAR,
              "incorrect combination of shape and size");
 
   if (mShape != aOther.mShape ||
       mSize != aOther.mSize ||
       mRepeating != aOther.mRepeating ||
-      mLegacySyntax != aOther.mLegacySyntax ||
       mBgPosX != aOther.mBgPosX ||
       mBgPosY != aOther.mBgPosY ||
       mAngle != aOther.mAngle ||
       mRadiusX != aOther.mRadiusX ||
       mRadiusY != aOther.mRadiusY)
     return false;
 
   if (mStops.Length() != aOther.mStops.Length())
@@ -1788,17 +1787,16 @@ nsStyleGradient::operator==(const nsStyl
 
   return true;
 }
 
 nsStyleGradient::nsStyleGradient(void)
   : mShape(NS_STYLE_GRADIENT_SHAPE_LINEAR)
   , mSize(NS_STYLE_GRADIENT_SIZE_FARTHEST_CORNER)
   , mRepeating(false)
-  , mLegacySyntax(false)
 {
 }
 
 bool
 nsStyleGradient::IsOpaque()
 {
   for (uint32_t i = 0; i < mStops.Length(); i++) {
     if (NS_GET_A(mStops[i].mColor) < 255)
--- a/layout/style/nsStyleStruct.h
+++ b/layout/style/nsStyleStruct.h
@@ -154,17 +154,16 @@ struct nsStyleGradientStop {
 
 class nsStyleGradient final {
 public:
   nsStyleGradient();
   uint8_t mShape;  // NS_STYLE_GRADIENT_SHAPE_*
   uint8_t mSize;   // NS_STYLE_GRADIENT_SIZE_*;
                    // not used (must be FARTHEST_CORNER) for linear shape
   bool mRepeating;
-  bool mLegacySyntax;
 
   nsStyleCoord mBgPosX; // percent, coord, calc, none
   nsStyleCoord mBgPosY; // percent, coord, calc, none
   nsStyleCoord mAngle;  // none, angle
 
   nsStyleCoord mRadiusX; // percent, coord, calc, none
   nsStyleCoord mRadiusY; // percent, coord, calc, none
 
--- a/layout/style/test/property_database.js
+++ b/layout/style/test/property_database.js
@@ -98,67 +98,16 @@ var validGradientAndElementValues = [
   "linear-gradient(.414rad, red 50%, 50%, blue 50%)",
   "linear-gradient(.414rad, red 50%, 20%, blue 50%)",
   "linear-gradient(.414rad, red 50%, 30%, blue 10%)",
   "linear-gradient(to right bottom, red, 20%, green 50%, 65%, blue)",
   "linear-gradient(to right bottom, red, 20%, green 10%, blue)",
   "linear-gradient(to right bottom, red, 50%, green 50%, 50%, blue)",
   "linear-gradient(to right bottom, red, 0%, green 50%, 100%, blue)",
 
-  "-moz-linear-gradient(red, blue)",
-  "-moz-linear-gradient(red, yellow, blue)",
-  "-moz-linear-gradient(red 1px, yellow 20%, blue 24em, green)",
-  "-moz-linear-gradient(red, yellow, green, blue 50%)",
-  "-moz-linear-gradient(red -50%, yellow -25%, green, blue)",
-  "-moz-linear-gradient(red -99px, yellow, green, blue 120%)",
-  "-moz-linear-gradient(#ffff00, #ef3, rgba(10, 20, 30, 0.4))",
-  "-moz-linear-gradient(rgba(10, 20, 30, 0.4), #ffff00, #ef3)",
-
-  "-moz-linear-gradient(to top, red, blue)",
-  "-moz-linear-gradient(to bottom, red, blue)",
-  "-moz-linear-gradient(to left, red, blue)",
-  "-moz-linear-gradient(to right, red, blue)",
-  "-moz-linear-gradient(to top left, red, blue)",
-  "-moz-linear-gradient(to top right, red, blue)",
-  "-moz-linear-gradient(to bottom left, red, blue)",
-  "-moz-linear-gradient(to bottom right, red, blue)",
-  "-moz-linear-gradient(to left top, red, blue)",
-  "-moz-linear-gradient(to left bottom, red, blue)",
-  "-moz-linear-gradient(to right top, red, blue)",
-  "-moz-linear-gradient(to right bottom, red, blue)",
-
-  "-moz-linear-gradient(top left, red, blue)",
-  "-moz-linear-gradient(0 0, red, blue)",
-  "-moz-linear-gradient(20% bottom, red, blue)",
-  "-moz-linear-gradient(center 20%, red, blue)",
-  "-moz-linear-gradient(left 35px, red, blue)",
-  "-moz-linear-gradient(10% 10em, red, blue)",
-  "-moz-linear-gradient(44px top, red, blue)",
-
-  "-moz-linear-gradient(top left 45deg, red, blue)",
-  "-moz-linear-gradient(20% bottom -300deg, red, blue)",
-  "-moz-linear-gradient(center 20% 1.95929rad, red, blue)",
-  "-moz-linear-gradient(left 35px 30grad, red, blue)",
-  "-moz-linear-gradient(left 35px 0.1turn, red, blue)",
-  "-moz-linear-gradient(10% 10em 99999deg, red, blue)",
-  "-moz-linear-gradient(44px top -33deg, red, blue)",
-
-  "-moz-linear-gradient(-33deg, red, blue)",
-  "-moz-linear-gradient(30grad left 35px, red, blue)",
-  "-moz-linear-gradient(10deg 20px, red, blue)",
-  "-moz-linear-gradient(1turn 20px, red, blue)",
-  "-moz-linear-gradient(.414rad bottom, red, blue)",
-
-  "-moz-linear-gradient(blue calc(0px) ,green calc(25%) ,red calc(40px) ,blue calc(60px) , yellow  calc(100px))",
-  "-moz-linear-gradient(-33deg, blue calc(-25%) ,red 40px)",
-  "-moz-linear-gradient(10deg, blue calc(100px + -25%),red calc(40px))",
-  "-moz-linear-gradient(10deg, blue calc(-25px),red calc(100%))",
-  "-moz-linear-gradient(.414rad, blue calc(100px + -25px) ,green calc(100px + -25px) ,red calc(100px + -25%) ,blue calc(-25px) , yellow  calc(-25px))",
-  "-moz-linear-gradient(1turn, blue calc(-25%) ,green calc(25px) ,red calc(25%),blue calc(0px),white 50px, yellow  calc(-25px))",
-
   "radial-gradient(red, blue)",
   "radial-gradient(red, yellow, blue)",
   "radial-gradient(red 1px, yellow 20%, blue 24em, green)",
   "radial-gradient(red, yellow, green, blue 50%)",
   "radial-gradient(red -50%, yellow -25%, green, blue)",
   "radial-gradient(red -99px, yellow, green, blue 120%)",
   "radial-gradient(#ffff00, #ef3, rgba(10, 20, 30, 0.4))",
 
@@ -172,22 +121,23 @@ var validGradientAndElementValues = [
   "radial-gradient(at 10% 10em, red, blue)",
   "radial-gradient(at 44px top, red, blue)",
   "radial-gradient(at 0 0, red, blue)",
 
   "radial-gradient(farthest-corner, red, blue)",
   "radial-gradient(circle, red, blue)",
   "radial-gradient(ellipse closest-corner, red, blue)",
   "radial-gradient(closest-corner ellipse, red, blue)",
+  "radial-gradient(farthest-side circle, red, blue)",
 
-  "radial-gradient(43px, red, blue)",
-  "radial-gradient(43px 43px, red, blue)",
-  "radial-gradient(50% 50%, red, blue)",
-  "radial-gradient(43px 50%, red, blue)",
-  "radial-gradient(50% 43px, red, blue)",
+  "radial-gradient(at 43px, red, blue)",
+  "radial-gradient(at 43px 43px, red, blue)",
+  "radial-gradient(at 50% 50%, red, blue)",
+  "radial-gradient(at 43px 50%, red, blue)",
+  "radial-gradient(at 50% 43px, red, blue)",
   "radial-gradient(circle 43px, red, blue)",
   "radial-gradient(43px circle, red, blue)",
   "radial-gradient(ellipse 43px 43px, red, blue)",
   "radial-gradient(ellipse 50% 50%, red, blue)",
   "radial-gradient(ellipse 43px 50%, red, blue)",
   "radial-gradient(ellipse 50% 43px, red, blue)",
   "radial-gradient(50% 43px ellipse, red, blue)",
 
@@ -196,315 +146,84 @@ var validGradientAndElementValues = [
   "radial-gradient(circle farthest-side at 45px, red, blue)",
   "radial-gradient(closest-side ellipse at 50%, red, blue)",
   "radial-gradient(farthest-corner circle at 4em, red, blue)",
 
   "radial-gradient(30% 40% at top left, red, blue)",
   "radial-gradient(50px 60px at 15% 20%, red, blue)",
   "radial-gradient(7em 8em at 45px, red, blue)",
 
-  "-moz-radial-gradient(red, blue)",
-  "-moz-radial-gradient(red, yellow, blue)",
-  "-moz-radial-gradient(red 1px, yellow 20%, blue 24em, green)",
-  "-moz-radial-gradient(red, yellow, green, blue 50%)",
-  "-moz-radial-gradient(red -50%, yellow -25%, green, blue)",
-  "-moz-radial-gradient(red -99px, yellow, green, blue 120%)",
-  "-moz-radial-gradient(#ffff00, #ef3, rgba(10, 20, 30, 0.4))",
-
-  "-moz-radial-gradient(top left, red, blue)",
-  "-moz-radial-gradient(20% bottom, red, blue)",
-  "-moz-radial-gradient(center 20%, red, blue)",
-  "-moz-radial-gradient(left 35px, red, blue)",
-  "-moz-radial-gradient(10% 10em, red, blue)",
-  "-moz-radial-gradient(44px top, red, blue)",
-
-  "-moz-radial-gradient(top left 45deg, red, blue)",
-  "-moz-radial-gradient(0 0, red, blue)",
-  "-moz-radial-gradient(20% bottom -300deg, red, blue)",
-  "-moz-radial-gradient(center 20% 1.95929rad, red, blue)",
-  "-moz-radial-gradient(left 35px 30grad, red, blue)",
-  "-moz-radial-gradient(10% 10em 99999deg, red, blue)",
-  "-moz-radial-gradient(44px top -33deg, red, blue)",
-  "-moz-radial-gradient(rgba(10, 20, 30, 0.4), #ffff00, #ef3)",
-
-  "-moz-radial-gradient(-33deg, red, blue)",
-  "-moz-radial-gradient(30grad left 35px, red, blue)",
-  "-moz-radial-gradient(10deg 20px, red, blue)",
-  "-moz-radial-gradient(.414rad bottom, red, blue)",
-
-  "-moz-radial-gradient(cover, red, blue)",
-  "-moz-radial-gradient(circle, red, blue)",
-  "-moz-radial-gradient(ellipse closest-corner, red, blue)",
-  "-moz-radial-gradient(farthest-side circle, red, blue)",
-
-  "-moz-radial-gradient(top left, cover, red, blue)",
-  "-moz-radial-gradient(15% 20%, circle, red, blue)",
-  "-moz-radial-gradient(45px, ellipse closest-corner, red, blue)",
-  "-moz-radial-gradient(45px, farthest-side circle, red, blue)",
-
-  "-moz-radial-gradient(99deg, cover, red, blue)",
-  "-moz-radial-gradient(-1.2345rad, circle, red, blue)",
-  "-moz-radial-gradient(399grad, ellipse closest-corner, red, blue)",
-  "-moz-radial-gradient(399grad, farthest-side circle, red, blue)",
-
-  "-moz-radial-gradient(top left 99deg, cover, red, blue)",
-  "-moz-radial-gradient(15% 20% -1.2345rad, circle, red, blue)",
-  "-moz-radial-gradient(45px 399grad, ellipse closest-corner, red, blue)",
-  "-moz-radial-gradient(45px 399grad, farthest-side circle, red, blue)",
+  "radial-gradient(circle at 15% 20%, red, blue)",
 
-  "-moz-repeating-linear-gradient(red, blue)",
-  "-moz-repeating-linear-gradient(red, yellow, blue)",
-  "-moz-repeating-linear-gradient(red 1px, yellow 20%, blue 24em, green)",
-  "-moz-repeating-linear-gradient(red, yellow, green, blue 50%)",
-  "-moz-repeating-linear-gradient(red -50%, yellow -25%, green, blue)",
-  "-moz-repeating-linear-gradient(red -99px, yellow, green, blue 120%)",
-  "-moz-repeating-linear-gradient(#ffff00, #ef3, rgba(10, 20, 30, 0.4))",
-  "-moz-repeating-linear-gradient(rgba(10, 20, 30, 0.4), #ffff00, #ef3)",
-
-  "-moz-repeating-linear-gradient(to top, red, blue)",
-  "-moz-repeating-linear-gradient(to bottom, red, blue)",
-  "-moz-repeating-linear-gradient(to left, red, blue)",
-  "-moz-repeating-linear-gradient(to right, red, blue)",
-  "-moz-repeating-linear-gradient(to top left, red, blue)",
-  "-moz-repeating-linear-gradient(to top right, red, blue)",
-  "-moz-repeating-linear-gradient(to bottom left, red, blue)",
-  "-moz-repeating-linear-gradient(to bottom right, red, blue)",
-  "-moz-repeating-linear-gradient(to left top, red, blue)",
-  "-moz-repeating-linear-gradient(to left bottom, red, blue)",
-  "-moz-repeating-linear-gradient(to right top, red, blue)",
-  "-moz-repeating-linear-gradient(to right bottom, red, blue)",
-
-  "-moz-repeating-linear-gradient(top left, red, blue)",
-  "-moz-repeating-linear-gradient(0 0, red, blue)",
-  "-moz-repeating-linear-gradient(20% bottom, red, blue)",
-  "-moz-repeating-linear-gradient(center 20%, red, blue)",
-  "-moz-repeating-linear-gradient(left 35px, red, blue)",
-  "-moz-repeating-linear-gradient(10% 10em, red, blue)",
-  "-moz-repeating-linear-gradient(44px top, red, blue)",
-
-  "-moz-repeating-linear-gradient(top left 45deg, red, blue)",
-  "-moz-repeating-linear-gradient(20% bottom -300deg, red, blue)",
-  "-moz-repeating-linear-gradient(center 20% 1.95929rad, red, blue)",
-  "-moz-repeating-linear-gradient(left 35px 30grad, red, blue)",
-  "-moz-repeating-linear-gradient(10% 10em 99999deg, red, blue)",
-  "-moz-repeating-linear-gradient(44px top -33deg, red, blue)",
-
-  "-moz-repeating-linear-gradient(-33deg, red, blue)",
-  "-moz-repeating-linear-gradient(30grad left 35px, red, blue)",
-  "-moz-repeating-linear-gradient(10deg 20px, red, blue)",
-  "-moz-repeating-linear-gradient(.414rad bottom, red, blue)",
-
-  "-moz-repeating-radial-gradient(red, blue)",
-  "-moz-repeating-radial-gradient(red, yellow, blue)",
-  "-moz-repeating-radial-gradient(red 1px, yellow 20%, blue 24em, green)",
-  "-moz-repeating-radial-gradient(red, yellow, green, blue 50%)",
-  "-moz-repeating-radial-gradient(red -50%, yellow -25%, green, blue)",
-  "-moz-repeating-radial-gradient(red -99px, yellow, green, blue 120%)",
-  "-moz-repeating-radial-gradient(#ffff00, #ef3, rgba(10, 20, 30, 0.4))",
-  "-moz-repeating-radial-gradient(rgba(10, 20, 30, 0.4), #ffff00, #ef3)",
+  "repeating-radial-gradient(red, blue)",
+  "repeating-radial-gradient(red, yellow, blue)",
+  "repeating-radial-gradient(red 1px, yellow 20%, blue 24em, green)",
+  "repeating-radial-gradient(red, yellow, green, blue 50%)",
+  "repeating-radial-gradient(red -50%, yellow -25%, green, blue)",
+  "repeating-radial-gradient(red -99px, yellow, green, blue 120%)",
+  "repeating-radial-gradient(#ffff00, #ef3, rgba(10, 20, 30, 0.4))",
+  "repeating-radial-gradient(rgba(10, 20, 30, 0.4), #ffff00, #ef3)",
 
   "repeating-radial-gradient(at top left, red, blue)",
   "repeating-radial-gradient(at 0 0, red, blue)",
   "repeating-radial-gradient(at 20% bottom, red, blue)",
   "repeating-radial-gradient(at center 20%, red, blue)",
   "repeating-radial-gradient(at left 35px, red, blue)",
   "repeating-radial-gradient(at 10% 10em, red, blue)",
   "repeating-radial-gradient(at 44px top, red, blue)",
 
-  "-moz-repeating-radial-gradient(farthest-corner, red, blue)",
-  "-moz-repeating-radial-gradient(circle, red, blue)",
-  "-moz-repeating-radial-gradient(ellipse closest-corner, red, blue)",
-
   "repeating-radial-gradient(farthest-corner at top left, red, blue)",
   "repeating-radial-gradient(closest-corner ellipse at 45px, red, blue)",
   "repeating-radial-gradient(farthest-side circle at 45px, red, blue)",
   "repeating-radial-gradient(ellipse closest-side at 50%, red, blue)",
   "repeating-radial-gradient(circle farthest-corner at 4em, red, blue)",
 
   "repeating-radial-gradient(30% 40% at top left, red, blue)",
   "repeating-radial-gradient(50px 60px at 15% 20%, red, blue)",
   "repeating-radial-gradient(7em 8em at 45px, red, blue)",
 
   "-moz-image-rect(url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAKElEQVR42u3NQQ0AAAgEoNP+nTWFDzcoQE1udQQCgUAgEAgEAsGTYAGjxAE/G/Q2tQAAAABJRU5ErkJggg==), 2, 10, 10, 2)",
   "-moz-image-rect(url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAKElEQVR42u3NQQ0AAAgEoNP+nTWFDzcoQE1udQQCgUAgEAgEAsGTYAGjxAE/G/Q2tQAAAABJRU5ErkJggg==), 10%, 50%, 30%, 0%)",
   "-moz-image-rect(url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAKElEQVR42u3NQQ0AAAgEoNP+nTWFDzcoQE1udQQCgUAgEAgEAsGTYAGjxAE/G/Q2tQAAAABJRU5ErkJggg==), 10, 50%, 30%, 0)",
 
-  "-moz-radial-gradient(calc(25%) top, red, blue)",
-  "-moz-radial-gradient(left calc(25%), red, blue)",
-  "-moz-radial-gradient(calc(25px) top, red, blue)",
-  "-moz-radial-gradient(left calc(25px), red, blue)",
-  "-moz-radial-gradient(calc(-25%) top, red, blue)",
-  "-moz-radial-gradient(left calc(-25%), red, blue)",
-  "-moz-radial-gradient(calc(-25px) top, red, blue)",
-  "-moz-radial-gradient(left calc(-25px), red, blue)",
-  "-moz-radial-gradient(calc(100px + -25%) top, red, blue)",
-  "-moz-radial-gradient(left calc(100px + -25%), red, blue)",
-  "-moz-radial-gradient(calc(100px + -25px) top, red, blue)",
-  "-moz-radial-gradient(left calc(100px + -25px), red, blue)"
+  "radial-gradient(at calc(25%) top, red, blue)",
+  "radial-gradient(at left calc(25%), red, blue)",
+  "radial-gradient(at calc(25px) top, red, blue)",
+  "radial-gradient(at left calc(25px), red, blue)",
+  "radial-gradient(at calc(-25%) top, red, blue)",
+  "radial-gradient(at left calc(-25%), red, blue)",
+  "radial-gradient(at calc(-25px) top, red, blue)",
+  "radial-gradient(at left calc(-25px), red, blue)",
+  "radial-gradient(at calc(100px + -25%) top, red, blue)",
+  "radial-gradient(at left calc(100px + -25%), red, blue)",
+  "radial-gradient(at calc(100px + -25px) top, red, blue)",
+  "radial-gradient(at left calc(100px + -25px), red, blue)"
 ];
 var invalidGradientAndElementValues = [
   "-moz-element(#a:1)",
   "-moz-element(a#a)",
   "-moz-element(#a a)",
   "-moz-element(#a+a)",
   "-moz-element(#a())",
   /* no quirks mode colors */
   "linear-gradient(red, ff00ff)",
   /* no quirks mode colors */
-  "-moz-radial-gradient(10% bottom, ffffff, black) scroll no-repeat",
+  "radial-gradient(at 10% bottom, ffffff, black) scroll no-repeat",
   /* no quirks mode lengths */
-  "-moz-linear-gradient(10 10px -45deg, red, blue) repeat",
-  "-moz-linear-gradient(10px 10 -45deg, red, blue) repeat",
   "linear-gradient(red -99, yellow, green, blue 120%)",
-  /* Old syntax */
-  "-moz-linear-gradient(10px 10px, 20px, 30px 30px, 40px, from(blue), to(red))",
-  "-moz-radial-gradient(20px 20px, 10px 10px, from(green), to(#ff00ff))",
-  "-moz-radial-gradient(10px 10px, 20%, 40px 40px, 10px, from(green), to(#ff00ff))",
-  "-moz-linear-gradient(10px, 20px, 30px, 40px, color-stop(0.5, #00ccff))",
-  "-moz-linear-gradient(20px 20px, from(blue), to(red))",
-  "-moz-linear-gradient(40px 40px, 10px 10px, from(blue) to(red) color-stop(10%, fuchsia))",
-  "-moz-linear-gradient(20px 20px 30px, 10px 10px, from(red), to(#ff0000))",
-  "-moz-radial-gradient(left top, center, 20px 20px, 10px, from(blue), to(red))",
-  "-moz-linear-gradient(left left, top top, from(blue))",
-  "-moz-linear-gradient(inherit, 10px 10px, from(blue))",
-  /* New syntax */
-  "-moz-linear-gradient(10px 10px, 20px, 30px 30px, 40px, blue 0, red 100%)",
-  "-moz-radial-gradient(20px 20px, 10px 10px, from(green), to(#ff00ff))",
-  "-moz-radial-gradient(10px 10px, 20%, 40px 40px, 10px, from(green), to(#ff00ff))",
-  "-moz-linear-gradient(10px, 20px, 30px, 40px, #00ccff 50%)",
-  "-moz-linear-gradient(40px 40px, 10px 10px, blue 0 fuchsia 10% red 100%)",
-  "-moz-linear-gradient(20px 20px 30px, 10px 10px, red 0, #ff0000 100%)",
-  "-moz-radial-gradient(left top, center, 20px 20px, 10px, from(blue), to(red))",
-  "-moz-linear-gradient(left left, top top, blue 0)",
-  "-moz-linear-gradient(inherit, 10px 10px, blue 0)",
-  "-moz-linear-gradient(left left blue red)",
-  "-moz-linear-gradient(left left blue, red)",
-  "-moz-linear-gradient()",
-  "-moz-linear-gradient(cover, red, blue)",
-  "-moz-linear-gradient(auto, red, blue)",
-  "-moz-linear-gradient(22 top, red, blue)",
-  "-moz-linear-gradient(10% red blue)",
-  "-moz-linear-gradient(10%, red blue)",
-  "-moz-linear-gradient(10%,, red, blue)",
-  "-moz-linear-gradient(45px, center, red, blue)",
-  "-moz-linear-gradient(45px, center red, blue)",
-  "-moz-radial-gradient(contain, ellipse, red, blue)",
-  "-moz-radial-gradient(10deg contain, red, blue)",
-  "-moz-radial-gradient(10deg, contain,, red, blue)",
-  "-moz-radial-gradient(contain contain, red, blue)",
-  "-moz-radial-gradient(ellipse circle, red, blue)",
-  "-moz-radial-gradient(to top left, red, blue)",
-  "-moz-radial-gradient(center, 10%, red, blue)",
-  "-moz-radial-gradient(5rad, 20px, red, blue)",
-  "-moz-radial-gradient(40%, -100px -10%, red, blue)",
-
-  "-moz-radial-gradient(at top left to cover, red, blue)",
-  "-moz-radial-gradient(at 15% 20% circle, red, blue)",
-
-  "-moz-radial-gradient(to cover, red, blue)",
-  "-moz-radial-gradient(to contain, red, blue)",
-  "-moz-radial-gradient(to closest-side circle, red, blue)",
-  "-moz-radial-gradient(to farthest-corner ellipse, red, blue)",
-
-  "-moz-radial-gradient(ellipse at 45px closest-corner, red, blue)",
-  "-moz-radial-gradient(circle at 45px farthest-side, red, blue)",
-  "-moz-radial-gradient(ellipse 45px, closest-side, red, blue)",
-  "-moz-radial-gradient(circle 45px, farthest-corner, red, blue)",
-  "-moz-radial-gradient(ellipse, ellipse closest-side, red, blue)",
-  "-moz-radial-gradient(circle, circle farthest-corner, red, blue)",
-
-  "-moz-radial-gradient(99deg to farthest-corner, red, blue)",
-  "-moz-radial-gradient(-1.2345rad circle, red, blue)",
-  "-moz-radial-gradient(ellipse 399grad to closest-corner, red, blue)",
-  "-moz-radial-gradient(circle 399grad to farthest-side, red, blue)",
-
-  "-moz-radial-gradient(at top left 99deg, to farthest-corner, red, blue)",
-  "-moz-radial-gradient(circle at 15% 20% -1.2345rad, red, blue)",
-  "-moz-radial-gradient(to top left at 30% 40%, red, blue)",
-  "-moz-radial-gradient(ellipse at 45px 399grad, to closest-corner, red, blue)",
-  "-moz-radial-gradient(at 45px 399grad to farthest-side circle, red, blue)",
-
-  "-moz-radial-gradient(to 50%, red, blue)",
-  "-moz-radial-gradient(circle to 50%, red, blue)",
-  "-moz-radial-gradient(circle to 43px 43px, red, blue)",
-  "-moz-radial-gradient(circle to 50% 50%, red, blue)",
-  "-moz-radial-gradient(circle to 43px 50%, red, blue)",
-  "-moz-radial-gradient(circle to 50% 43px, red, blue)",
-  "-moz-radial-gradient(ellipse to 43px, red, blue)",
-  "-moz-radial-gradient(ellipse to 50%, red, blue)",
-
-  "-moz-linear-gradient(to 0 0, red, blue)",
-  "-moz-linear-gradient(to 20% bottom, red, blue)",
-  "-moz-linear-gradient(to center 20%, red, blue)",
-  "-moz-linear-gradient(to left 35px, red, blue)",
-  "-moz-linear-gradient(to 10% 10em, red, blue)",
-  "-moz-linear-gradient(to 44px top, red, blue)",
-  "-moz-linear-gradient(to top left 45deg, red, blue)",
-  "-moz-linear-gradient(to 20% bottom -300deg, red, blue)",
-  "-moz-linear-gradient(to center 20% 1.95929rad, red, blue)",
-  "-moz-linear-gradient(to left 35px 30grad, red, blue)",
-  "-moz-linear-gradient(to 10% 10em 99999deg, red, blue)",
-  "-moz-linear-gradient(to 44px top -33deg, red, blue)",
-  "-moz-linear-gradient(to -33deg, red, blue)",
-  "-moz-linear-gradient(to 30grad left 35px, red, blue)",
-  "-moz-linear-gradient(to 10deg 20px, red, blue)",
-  "-moz-linear-gradient(to .414rad bottom, red, blue)",
-
-  "-moz-linear-gradient(to top top, red, blue)",
-  "-moz-linear-gradient(to bottom bottom, red, blue)",
-  "-moz-linear-gradient(to left left, red, blue)",
-  "-moz-linear-gradient(to right right, red, blue)",
-
-  "-moz-repeating-linear-gradient(10px 10px, 20px, 30px 30px, 40px, blue 0, red 100%)",
-  "-moz-repeating-radial-gradient(20px 20px, 10px 10px, from(green), to(#ff00ff))",
-  "-moz-repeating-radial-gradient(10px 10px, 20%, 40px 40px, 10px, from(green), to(#ff00ff))",
-  "-moz-repeating-linear-gradient(10px, 20px, 30px, 40px, #00ccff 50%)",
-  "-moz-repeating-linear-gradient(40px 40px, 10px 10px, blue 0 fuchsia 10% red 100%)",
-  "-moz-repeating-linear-gradient(20px 20px 30px, 10px 10px, red 0, #ff0000 100%)",
-  "-moz-repeating-radial-gradient(left top, center, 20px 20px, 10px, from(blue), to(red))",
-  "-moz-repeating-linear-gradient(left left, top top, blue 0)",
-  "-moz-repeating-linear-gradient(inherit, 10px 10px, blue 0)",
-  "-moz-repeating-linear-gradient(left left blue red)",
-  "-moz-repeating-linear-gradient()",
-
-  "-moz-repeating-linear-gradient(to 0 0, red, blue)",
-  "-moz-repeating-linear-gradient(to 20% bottom, red, blue)",
-  "-moz-repeating-linear-gradient(to center 20%, red, blue)",
-  "-moz-repeating-linear-gradient(to left 35px, red, blue)",
-  "-moz-repeating-linear-gradient(to 10% 10em, red, blue)",
-  "-moz-repeating-linear-gradient(to 44px top, red, blue)",
-  "-moz-repeating-linear-gradient(to top left 45deg, red, blue)",
-  "-moz-repeating-linear-gradient(to 20% bottom -300deg, red, blue)",
-  "-moz-repeating-linear-gradient(to center 20% 1.95929rad, red, blue)",
-  "-moz-repeating-linear-gradient(to left 35px 30grad, red, blue)",
-  "-moz-repeating-linear-gradient(to 10% 10em 99999deg, red, blue)",
-  "-moz-repeating-linear-gradient(to 44px top -33deg, red, blue)",
-  "-moz-repeating-linear-gradient(to -33deg, red, blue)",
-  "-moz-repeating-linear-gradient(to 30grad left 35px, red, blue)",
-  "-moz-repeating-linear-gradient(to 10deg 20px, red, blue)",
-  "-moz-repeating-linear-gradient(to .414rad bottom, red, blue)",
-
-  "-moz-repeating-linear-gradient(to top top, red, blue)",
-  "-moz-repeating-linear-gradient(to bottom bottom, red, blue)",
-  "-moz-repeating-linear-gradient(to left left, red, blue)",
-  "-moz-repeating-linear-gradient(to right right, red, blue)",
-
-  "-moz-repeating-radial-gradient(to top left at 30% 40%, red, blue)",
-  "-moz-repeating-radial-gradient(ellipse at 45px closest-corner, red, blue)",
-  "-moz-repeating-radial-gradient(circle at 45px farthest-side, red, blue)",
 
   "radial-gradient(circle 175px 20px, black, white)",
   "radial-gradient(175px 20px circle, black, white)",
   "radial-gradient(ellipse 175px, black, white)",
   "radial-gradient(175px ellipse, black, white)",
   "radial-gradient(50%, red, blue)",
   "radial-gradient(circle 50%, red, blue)",
   "radial-gradient(50% circle, red, blue)",
 
-  /* Valid only when prefixed */
+  /* Used to be valid only when prefixed */
   "linear-gradient(top left, red, blue)",
   "linear-gradient(0 0, red, blue)",
   "linear-gradient(20% bottom, red, blue)",
   "linear-gradient(center 20%, red, blue)",
   "linear-gradient(left 35px, red, blue)",
   "linear-gradient(10% 10em, red, blue)",
   "linear-gradient(44px top, red, blue)",
 
@@ -553,41 +272,16 @@ var invalidGradientAndElementValues = [
   "radial-gradient(-1.2345rad, circle, red, blue)",
   "radial-gradient(399grad, ellipse closest-corner, red, blue)",
   "radial-gradient(399grad, farthest-side circle, red, blue)",
 
   "radial-gradient(top left 99deg, cover, red, blue)",
   "radial-gradient(15% 20% -1.2345rad, circle, red, blue)",
   "radial-gradient(45px 399grad, ellipse closest-corner, red, blue)",
   "radial-gradient(45px 399grad, farthest-side circle, red, blue)",
-
-  /* Valid only when unprefixed */
-  "-moz-radial-gradient(at top left, red, blue)",
-  "-moz-radial-gradient(at 20% bottom, red, blue)",
-  "-moz-radial-gradient(at center 20%, red, blue)",
-  "-moz-radial-gradient(at left 35px, red, blue)",
-  "-moz-radial-gradient(at 10% 10em, red, blue)",
-  "-moz-radial-gradient(at 44px top, red, blue)",
-  "-moz-radial-gradient(at 0 0, red, blue)",
-
-  "-moz-radial-gradient(circle 43px, red, blue)",
-  "-moz-radial-gradient(ellipse 43px 43px, red, blue)",
-  "-moz-radial-gradient(ellipse 50% 50%, red, blue)",
-  "-moz-radial-gradient(ellipse 43px 50%, red, blue)",
-  "-moz-radial-gradient(ellipse 50% 43px, red, blue)",
-
-  "-moz-radial-gradient(farthest-corner at top left, red, blue)",
-  "-moz-radial-gradient(ellipse closest-corner at 45px, red, blue)",
-  "-moz-radial-gradient(circle farthest-side at 45px, red, blue)",
-  "-moz-radial-gradient(closest-side ellipse at 50%, red, blue)",
-  "-moz-radial-gradient(farthest-corner circle at 4em, red, blue)",
-
-  "-moz-radial-gradient(30% 40% at top left, red, blue)",
-  "-moz-radial-gradient(50px 60px at 15% 20%, red, blue)",
-  "-moz-radial-gradient(7em 8em at 45px, red, blue)"
 ];
 var unbalancedGradientAndElementValues = [
   "-moz-element(#a()",
 ];
 
 var gCSSProperties = {
   "animation": {
     domProp: "animation",
@@ -1867,64 +1561,55 @@ var gCSSProperties = {
       "top left / 100px 100px",
       "top left / 100px auto",
       "top left / 100px 10%",
       "top left / 100px calc(20px)",
       "bottom right scroll none transparent repeat",
       "50% transparent",
       "transparent 50%",
       "50%",
-      "-moz-radial-gradient(10% bottom, #ffffff, black) scroll no-repeat",
-      "-moz-linear-gradient(10px 10px -45deg, red, blue) repeat",
-      "-moz-linear-gradient(10px 10px -0.125turn, red, blue) repeat",
-      "-moz-repeating-radial-gradient(10% bottom, #ffffff, black) scroll no-repeat",
-      "-moz-repeating-linear-gradient(10px 10px -45deg, red, blue) repeat",
+      "radial-gradient(at 10% bottom, #ffffff, black) scroll no-repeat",
+      "repeating-radial-gradient(at 10% bottom, #ffffff, black) scroll no-repeat",
       "-moz-element(#test) lime",
         /* multiple backgrounds */
         "url(404.png), url(404.png)",
         "url(404.png), url(404.png) transparent",
         "url(404.png), url(404.png) red",
         "repeat-x, fixed, none",
         "0% top url(404.png), url(404.png) 0% top",
         "fixed repeat-y top left url(404.png), repeat-x green",
-        "url(404.png), -moz-linear-gradient(20px 20px -45deg, blue, green), -moz-element(#a) black",
         "top left / contain, bottom right / cover",
         /* test cases with clip+origin in the shorthand */
         "url(404.png) green padding-box",
         "url(404.png) border-box transparent",
         "content-box url(404.png) blue",
         "url(404.png) green padding-box padding-box",
         "url(404.png) green padding-box border-box",
         "content-box border-box url(404.png) blue",
     ],
     invalid_values: [
       /* mixes with keywords have to be in correct order */
       "50% left", "top 50%",
       /* no quirks mode colors */
-      "-moz-radial-gradient(10% bottom, ffffff, black) scroll no-repeat",
+      "radial-gradient(at 10% bottom, ffffff, black) scroll no-repeat",
       /* no quirks mode lengths */
-      "-moz-linear-gradient(10 10px -45deg, red, blue) repeat",
-      "-moz-linear-gradient(10px 10 -45deg, red, blue) repeat",
       "linear-gradient(red -99, yellow, green, blue 120%)",
       /* bug 258080: don't accept background-position separated */
       "left url(404.png) top", "top url(404.png) left",
       /* not allowed to have color in non-bottom layer */
       "url(404.png) transparent, url(404.png)",
       "url(404.png) red, url(404.png)",
       "url(404.png) transparent, url(404.png) transparent",
       "url(404.png) transparent red, url(404.png) transparent red",
       "url(404.png) red, url(404.png) red",
       "url(404.png) rgba(0, 0, 0, 0), url(404.png)",
       "url(404.png) rgb(255, 0, 0), url(404.png)",
       "url(404.png) rgba(0, 0, 0, 0), url(404.png) rgba(0, 0, 0, 0)",
       "url(404.png) rgba(0, 0, 0, 0) rgb(255, 0, 0), url(404.png) rgba(0, 0, 0, 0) rgb(255, 0, 0)",
       "url(404.png) rgb(255, 0, 0), url(404.png) rgb(255, 0, 0)",
-      /* bug 513395: old syntax for gradients */
-      "-moz-radial-gradient(10% bottom, 30px, 20px 20px, 10px, from(#ffffff), to(black)) scroll no-repeat",
-      "-moz-linear-gradient(10px 10px, 20px 20px, from(red), to(blue)) repeat",
       /* clip and origin separated in the shorthand */
       "url(404.png) padding-box green border-box",
       "url(404.png) padding-box green padding-box",
       "transparent padding-box url(404.png) border-box",
       "transparent padding-box url(404.png) padding-box",
     ]
   },
   "background-attachment": {
@@ -6564,17 +6249,17 @@ if (SpecialPowers.getBoolPref("layout.cs
   gCSSProperties["border-top-right-radius"].invalid_values.push("unset 2px", "2px unset");
   gCSSProperties["-moz-border-right-colors"].invalid_values.push("red unset", "unset red");
   gCSSProperties["-moz-border-top-colors"].invalid_values.push("red unset", "unset red");
   gCSSProperties["-moz-outline-radius"].invalid_values.push("unset 2px", "unset / 2px", "2px unset", "2px / unset");
   gCSSProperties["-moz-outline-radius-bottomleft"].invalid_values.push("unset 2px", "2px unset");
   gCSSProperties["-moz-outline-radius-bottomright"].invalid_values.push("unset 2px", "2px unset");
   gCSSProperties["-moz-outline-radius-topleft"].invalid_values.push("unset 2px", "2px unset");
   gCSSProperties["-moz-outline-radius-topright"].invalid_values.push("unset 2px", "2px unset");
-  gCSSProperties["background-image"].invalid_values.push("-moz-linear-gradient(unset, 10px 10px, from(blue))", "-moz-linear-gradient(unset, 10px 10px, blue 0)", "-moz-repeating-linear-gradient(unset, 10px 10px, blue 0)");
+  gCSSProperties["background-image"].invalid_values.push("linear-gradient(unset, 10px 10px, from(blue))", "linear-gradient(unset, 10px 10px, blue 0)", "repeating-linear-gradient(unset, 10px 10px, blue 0)");
   gCSSProperties["box-shadow"].invalid_values.push("unset, 2px 2px", "2px 2px, unset", "inset unset");
   gCSSProperties["text-overflow"].invalid_values.push('"hello" unset', 'unset "hello"', 'clip unset', 'unset clip', 'unset inherit', 'unset none', 'initial unset');
   gCSSProperties["text-shadow"].invalid_values.push("unset, 2px 2px", "2px 2px, unset");
   gCSSProperties["transition"].invalid_values.push("2s unset");
   gCSSProperties["transition-property"].invalid_values.push("unset, color", "color, unset");
   gCSSProperties["-moz-transition"].invalid_values.push("2s unset");
   gCSSProperties["-moz-transition-property"].invalid_values.push("unset, color", "color, unset");
   gCSSProperties["-moz-animation"].invalid_values.push("2s unset");
--- a/layout/style/test/test_computed_style.html
+++ b/layout/style/test/test_computed_style.html
@@ -196,42 +196,39 @@ var noframe_container = document.getElem
   }
 
   p.parentNode.removeChild(p);
 })();
 
 (function test_bug_716628() {
   // Test that various gradient styles round-trip correctly
   var backgroundImages = [
-    [ "-moz-radial-gradient(10% bottom, #ffffff, black)",
+    [ "radial-gradient(at 10% bottom, #ffffff, black)",
       "radial-gradient(at 10% 100%, rgb(255, 255, 255), rgb(0, 0, 0))",
       "radial gradient 1" ],
-    [ "-moz-radial-gradient(#ffffff, black)",
+    [ "radial-gradient(#ffffff, black)",
       "radial-gradient(rgb(255, 255, 255), rgb(0, 0, 0))",
       "radial gradient 2" ],
-    [ "-moz-radial-gradient(cover, #ffffff, black)",
+    [ "radial-gradient(farthest-corner, #ffffff, black)",
       "radial-gradient(rgb(255, 255, 255), rgb(0, 0, 0))",
       "radial gradient 3" ],
-    [ "-moz-radial-gradient(top left -45deg, #ffffff, black)",
-      "-moz-radial-gradient(0% 0% -45deg, rgb(255, 255, 255), rgb(0, 0, 0))",
-      "radial gradient with angle in degrees" ],
-    [ "-moz-linear-gradient(red, blue)",
+    [ "linear-gradient(red, blue)",
       "linear-gradient(rgb(255, 0, 0), rgb(0, 0, 255))",
       "linear gradient 1" ],
-    [ "-moz-linear-gradient(to bottom, red, blue)",
+    [ "linear-gradient(to bottom, red, blue)",
       "linear-gradient(rgb(255, 0, 0), rgb(0, 0, 255))",
       "linear gradient 2" ],
-    [ "-moz-linear-gradient(to right, red, blue)",
+    [ "linear-gradient(to right, red, blue)",
       "linear-gradient(to right, rgb(255, 0, 0), rgb(0, 0, 255))",
       "linear gradient 3" ],
-    [ "-moz-linear-gradient(10px 10px -45deg, red, blue)",
-      "-moz-linear-gradient(10px 10px -45deg, rgb(255, 0, 0), rgb(0, 0, 255))",
+    [ "linear-gradient(-45deg, red, blue)",
+      "linear-gradient(-45deg, rgb(255, 0, 0), rgb(0, 0, 255))",
       "linear gradient with angle in degrees" ],
-    [ "-moz-linear-gradient(10px 10px -0.125turn, red, blue)",
-      "-moz-linear-gradient(10px 10px -0.125turn, rgb(255, 0, 0), rgb(0, 0, 255))",
+    [ "linear-gradient(-0.125turn, red, blue)",
+      "linear-gradient(-0.125turn, rgb(255, 0, 0), rgb(0, 0, 255))",
       "linear gradient with angle in turns" ],
   ];
 
   var p = document.createElement("p");
   var cs = getComputedStyle(p, "");
   frame_container.appendChild(p);
 
   for (var i = 0; i < backgroundImages.length; ++i) {
--- a/layout/style/test/test_unclosed_parentheses.html
+++ b/layout/style/test/test_unclosed_parentheses.html
@@ -53,34 +53,20 @@ var declarations = [
   "background-image: linear-gradient(to",
   "background-image: linear-gradient(to top",
   "background-image: linear-gradient(to top left",
   "background-image: linear-gradient(to top left,",
   "background-image: repeating-linear-gradient(to top left, red, blue",
   "background-image: linear-gradient(to top left, red, yellow, blue",
   "background-image: linear-gradient(to top left, red 1px, yellow 5px, blue 10px",
   "background-image: linear-gradient(to top left, red, yellow, rgb(0, 0, 255)",
-  "background-image: -moz-linear-gradient(",
-  "background-image: -moz-linear-gradient( ",
-  "background-image: -moz-linear-gradient(red, blue",
-  "background-image: -moz-linear-gradient(red, yellow, blue",
-  "background-image: -moz-linear-gradient(red 1px, yellow 5px, blue 10px",
-  "background-image: -moz-linear-gradient(red, yellow, rgb(0, 0, 255)",
-  "background-image: -moz-linear-gradient(to",
-  "background-image: -moz-linear-gradient(to top",
-  "background-image: -moz-linear-gradient(to top left",
-  "background-image: -moz-linear-gradient(to top left,",
-  "background-image: -moz-repeating-linear-gradient(to top left, red, blue",
-  "background-image: -moz-linear-gradient(to top left, red, yellow, blue",
-  "background-image: -moz-linear-gradient(to top left, red 1px, yellow 5px, blue 10px",
-  "background-image: -moz-linear-gradient(to top left, red, yellow, rgb(0, 0, 255)",
-  "background-image: -moz-repeating-linear-gradient(top left, red, blue",
-  "background-image: -moz-linear-gradient(top left, red, yellow, blue",
-  "background-image: -moz-linear-gradient(top left, red 1px, yellow 5px, blue 10px",
-  "background-image: -moz-linear-gradient(top left, red, yellow, rgb(0, 0, 255)",
+  "background-image: linear-gradient(red, blue",
+  "background-image: linear-gradient(red, yellow, blue",
+  "background-image: linear-gradient(red 1px, yellow 5px, blue 10px",
+  "background-image: linear-gradient(red, yellow, rgb(0, 0, 255)",
   "background-image: radial-gradient(",
   "background-image: radial-gradient( ",
   "background-image: radial-gradient(at",
   "background-image: radial-gradient(at ",
   "background-image: radial-gradient(at center",
   "background-image: radial-gradient(at center,",
   "background-image: radial-gradient(at center ",
   "background-image: radial-gradient(closest-corner",
@@ -127,28 +113,26 @@ var declarations = [
   "background-image: radial-gradient(ellipse 50px 50px,",
   "background-image: radial-gradient(ellipse 50px 50px ",
   "background-image: radial-gradient(ellipse 50px 50px at",
   "background-image: radial-gradient(ellipse 50px 50px at ",
   "background-image: radial-gradient(ellipse 50px 50px at center",
   "background-image: radial-gradient(ellipse 50px 50px at center ",
   "background-image: radial-gradient(ellipse 50px 50px at center,",
   "background-image: radial-gradient(ellipse 50px 50px at center, red, blue",
+  "background-image: radial-gradient(at top left, red, blue",
+  "background-image: radial-gradient(farthest-corner, red, blue",
+  "background-image: radial-gradient(ellipse closest-corner, red, hsl(240, 50%, 50%)",
+  "background-image: radial-gradient(farthest-side circle, red, blue",
   "background-image: repeating-radial-gradient(50%",
   "background-image: repeating-radial-gradient(50% ",
   "background-image: repeating-radial-gradient(50% 50%",
   "background-image: repeating-radial-gradient(50% 50%,",
   "background-image: repeating-radial-gradient(50% 50%, red, blue",
-  "background-image: -moz-radial-gradient(",
-  "background-image: -moz-radial-gradient( ",
-  "background-image: -moz-radial-gradient(top left 45deg, red, blue",
-  "background-image: -moz-radial-gradient(cover, red, blue",
-  "background-image: -moz-repeating-radial-gradient(circle, red, blue",
-  "background-image: -moz-radial-gradient(ellipse closest-corner, red, hsl(240, 50%, 50%)",
-  "background-image: -moz-radial-gradient(farthest-side circle, red, blue",
+  "background-image: repeating-radial-gradient(circle, red, blue",
   "background-image: -moz-image-rect(",
   "background-image: -moz-image-rect( ",
   "background-image: -moz-image-rect(url(foo.jpg)",
   "background-image: -moz-image-rect(url(foo.jpg), 2, 10, 10",
   "background-image: -moz-image-rect(url(foo.jpg), 2, 10, 10 ",
   "background-image: -moz-image-rect(url(foo.jpg), 2, 10, 10,",
   "background-image: -moz-image-rect(url(foo.jpg), 2, 10, 10, ",
   "background-image: -moz-image-rect(url(foo.jpg), 2, 10, 10, 10",
--- a/toolkit/devtools/output-parser.js
+++ b/toolkit/devtools/output-parser.js
@@ -14,23 +14,19 @@ const HTML_NS = "http://www.w3.org/1999/
 
 const MAX_ITERATIONS = 100;
 
 const BEZIER_KEYWORDS = ["linear", "ease-in-out", "ease-in", "ease-out",
                          "ease"];
 
 // Functions that accept a color argument.
 const COLOR_TAKING_FUNCTIONS = ["linear-gradient",
-                                "-moz-linear-gradient",
                                 "repeating-linear-gradient",
-                                "-moz-repeating-linear-gradient",
                                 "radial-gradient",
-                                "-moz-radial-gradient",
                                 "repeating-radial-gradient",
-                                "-moz-repeating-radial-gradient",
                                 "drop-shadow"];
 
 loader.lazyGetter(this, "DOMUtils", function() {
   return Cc["@mozilla.org/inspector/dom-utils;1"].getService(Ci.inIDOMUtils);
 });
 
 /**
  * This module is used to process text for output by developer tools. This means