Bug 1211330 - Removed CSS pref layout.css.unset-value.enabled - r=heycam draft
authorGerald Squelart <gsquelart@mozilla.com>
Thu, 28 Jun 2018 16:10:56 +1000
changeset 813390 b9a7d18b3c1b948f213632a16d2152f80d676068
parent 813360 7d20e7fae1039720f92db1a3a72bc2c7424b5f98
child 813391 7a8f9cd217647d7c08e9be42b8de164480c9a16d
push id114874
push usergsquelart@mozilla.com
push dateTue, 03 Jul 2018 00:45:42 +0000
reviewersheycam
bugs1211330
milestone63.0a1
Bug 1211330 - Removed CSS pref layout.css.unset-value.enabled - r=heycam Feature is mature and doesn't need pref. In fact, it was not used in code anymore, only in tests. MozReview-Commit-ID: AbH8OCiksDa
layout/base/nsLayoutUtils.cpp
layout/base/nsLayoutUtils.h
layout/style/test/property_database.js
layout/style/test/test_all_shorthand.html
layout/style/test/test_bug74880.html
layout/style/test/test_font_family_parsing.html
layout/style/test/test_garbage_at_end_of_declarations.html
layout/style/test/test_inherit_computation.html
layout/style/test/test_inherit_storage.html
layout/style/test/test_initial_computation.html
layout/style/test/test_initial_storage.html
layout/style/test/test_value_cloning.html
modules/libpref/init/all.js
--- a/layout/base/nsLayoutUtils.cpp
+++ b/layout/base/nsLayoutUtils.cpp
@@ -516,32 +516,16 @@ nsLayoutUtils::CSSFiltersEnabled()
                                  "layout.css.filters.enabled",
                                  false);
   }
 
   return sCSSFiltersEnabled;
 }
 
 bool
-nsLayoutUtils::UnsetValueEnabled()
-{
-  static bool sUnsetValueEnabled;
-  static bool sUnsetValuePrefCached = false;
-
-  if (!sUnsetValuePrefCached) {
-    sUnsetValuePrefCached = true;
-    Preferences::AddBoolVarCache(&sUnsetValueEnabled,
-                                 "layout.css.unset-value.enabled",
-                                 false);
-  }
-
-  return sUnsetValueEnabled;
-}
-
-bool
 nsLayoutUtils::IsInterCharacterRubyEnabled()
 {
   static bool sInterCharacterRubyEnabled;
   static bool sInterCharacterRubyEnabledPrefCached = false;
 
   if (!sInterCharacterRubyEnabledPrefCached) {
     sInterCharacterRubyEnabledPrefCached = true;
     Preferences::AddBoolVarCache(&sInterCharacterRubyEnabled,
--- a/layout/base/nsLayoutUtils.h
+++ b/layout/base/nsLayoutUtils.h
@@ -2391,21 +2391,16 @@ public:
   static bool AnimatedImageLayersEnabled();
 
   /**
    * Checks if we should enable parsing for CSS Filters.
    */
   static bool CSSFiltersEnabled();
 
   /**
-   * Checks whether support for the CSS-wide "unset" value is enabled.
-   */
-  static bool UnsetValueEnabled();
-
-  /**
    * Checks whether support for inter-character ruby is enabled.
    */
   static bool IsInterCharacterRubyEnabled();
 
   /**
    * Checks whether content-select is enabled.
    */
   static bool IsContentSelectEnabled();
--- a/layout/style/test/property_database.js
+++ b/layout/style/test/property_database.js
@@ -1172,33 +1172,33 @@ if (IsCSSPropertyPrefEnabled("layout.css
 var gCSSProperties = {
   "animation": {
     domProp: "animation",
     inherited: false,
     type: CSS_TYPE_TRUE_SHORTHAND,
     subproperties: [ "animation-name", "animation-duration", "animation-timing-function", "animation-delay", "animation-direction", "animation-fill-mode", "animation-iteration-count", "animation-play-state" ],
     initial_values: [ "none none 0s 0s ease normal running 1.0", "none", "0s", "ease", "normal", "running", "1.0" ],
     other_values: [ "none none 0s 0s cubic-bezier(0.25, 0.1, 0.25, 1.0) normal running 1.0", "bounce 1s linear 2s", "bounce 1s 2s linear", "bounce linear 1s 2s", "linear bounce 1s 2s", "linear 1s bounce 2s", "linear 1s 2s bounce", "1s bounce linear 2s", "1s bounce 2s linear", "1s 2s bounce linear", "1s linear bounce 2s", "1s linear 2s bounce", "1s 2s linear bounce", "bounce linear 1s", "bounce 1s linear", "linear bounce 1s", "linear 1s bounce", "1s bounce linear", "1s linear bounce", "1s 2s bounce", "1s bounce 2s", "bounce 1s 2s", "1s 2s linear", "1s linear 2s", "linear 1s 2s", "bounce 1s", "1s bounce", "linear 1s", "1s linear", "1s 2s", "2s 1s", "bounce", "linear", "1s", "height", "2s", "ease-in-out", "2s ease-in", "opacity linear", "ease-out 2s", "2s color, 1s bounce, 500ms height linear, 1s opacity 4s cubic-bezier(0.0, 0.1, 1.0, 1.0)", "1s \\32bounce linear 2s", "1s -bounce linear 2s", "1s -\\32bounce linear 2s", "1s \\32 0bounce linear 2s", "1s -\\32 0bounce linear 2s", "1s \\2bounce linear 2s", "1s -\\2bounce linear 2s", "2s, 1s bounce", "1s bounce, 2s", "2s all, 1s bounce", "1s bounce, 2s all", "1s bounce, 2s none", "2s none, 1s bounce", "2s bounce, 1s all", "2s all, 1s bounce" ],
-    invalid_values: [ "2s inherit", "inherit 2s", "2s bounce, 1s inherit", "2s inherit, 1s bounce", "2s initial", "2s all,, 1s bounce", "2s all, , 1s bounce", "bounce 1s cubic-bezier(0, rubbish) 2s", "bounce 1s steps(rubbish) 2s" ]
+    invalid_values: [ "2s inherit", "inherit 2s", "2s bounce, 1s inherit", "2s inherit, 1s bounce", "2s initial", "2s all,, 1s bounce", "2s all, , 1s bounce", "bounce 1s cubic-bezier(0, rubbish) 2s", "bounce 1s steps(rubbish) 2s", "2s unset" ]
   },
   "animation-delay": {
     domProp: "animationDelay",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     initial_values: [ "0s", "0ms" ],
     other_values: [ "1s", "250ms", "-100ms", "-1s", "1s, 250ms, 2.3s", "calc(1s + 2ms)" ],
     invalid_values: [ "0", "0px" ]
   },
   "animation-direction": {
     domProp: "animationDirection",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     initial_values: [ "normal" ],
     other_values: [ "alternate", "normal, alternate", "alternate, normal", "normal, normal", "normal, normal, normal", "reverse", "alternate-reverse", "normal, reverse, alternate-reverse, alternate" ],
-    invalid_values: [ "normal normal", "inherit, normal", "reverse-alternate" ]
+    invalid_values: [ "normal normal", "inherit, normal", "reverse-alternate", "normal, unset", "unset, normal" ]
   },
   "animation-duration": {
     domProp: "animationDuration",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     initial_values: [ "0s", "0ms" ],
     other_values: [ "1s", "250ms", "1s, 250ms, 2.3s", "calc(1s + 2ms)" ],
     invalid_values: [ "0", "0px", "-1ms", "-2s" ]
@@ -1222,17 +1222,17 @@ var gCSSProperties = {
     invalid_values: [ "none", "-1", "-0.5", "-1, infinite", "infinite, -3" ]
   },
   "animation-name": {
     domProp: "animationName",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     initial_values: [ "none" ],
     other_values: [ "all", "ball", "mall", "color", "bounce, bubble, opacity", "foobar", "auto", "\\32bounce", "-bounce", "-\\32bounce", "\\32 0bounce", "-\\32 0bounce", "\\2bounce", "-\\2bounce" ],
-    invalid_values: [ "bounce, initial", "initial, bounce", "bounce, inherit", "inherit, bounce" ]
+    invalid_values: [ "bounce, initial", "initial, bounce", "bounce, inherit", "inherit, bounce", "bounce, unset", "unset, bounce" ]
   },
   "animation-play-state": {
     domProp: "animationPlayState",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     initial_values: [ "running" ],
     other_values: [ "paused", "running, running", "paused, running", "paused, paused", "running, paused", "paused, running, running, running, paused, running" ],
     invalid_values: [ "0" ]
@@ -1418,17 +1418,17 @@ var gCSSProperties = {
       "calc(3*25px) 5px",
       "5px calc(3*25px)",
       "calc(20%) calc(3*25px)",
       "calc(25px*3)",
       "calc(3*25px + 50%)",
       "2px 2px calc(2px + 1%) 2px",
       "1px 2px 2px 2px / 2px 2px calc(2px + 1%) 2px",
             ],
-    invalid_values: [ "2px -2px", "inherit 2px", "inherit / 2px", "2px inherit", "2px / inherit", "2px 2px 2px 2px 2px", "1px / 2px 2px 2px 2px 2px", "2", "2 2", "2px 2px 2px 2px / 2px 2px 2 2px", "2px calc(0px + rubbish)" ]
+    invalid_values: [ "2px -2px", "inherit 2px", "inherit / 2px", "2px inherit", "2px / inherit", "2px 2px 2px 2px 2px", "1px / 2px 2px 2px 2px 2px", "2", "2 2", "2px 2px 2px 2px / 2px 2px 2 2px", "2px calc(0px + rubbish)", "unset 2px", "unset / 2px", "2px unset", "2px / unset" ]
   },
   "border-bottom-left-radius": {
     domProp: "borderBottomLeftRadius",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     applies_to_first_letter: true,
     prerequisites: { "width": "200px", "height": "100px", "display": "inline-block"},
     initial_values: [ "0", "0px", "calc(-2px)" ],
@@ -1439,17 +1439,17 @@ var gCSSProperties = {
       "calc(50%)",
       "calc(3*25px)",
       "calc(3*25px) 5px",
       "5px calc(3*25px)",
       "calc(20%) calc(3*25px)",
       "calc(25px*3)",
       "calc(3*25px + 50%)",
             ],
-    invalid_values: [ "-1px", "4px -2px", "inherit 2px", "2px inherit", "2", "2px 2", "2 2px", "2px calc(0px + rubbish)" ]
+    invalid_values: [ "-1px", "4px -2px", "inherit 2px", "2px inherit", "2", "2px 2", "2 2px", "2px calc(0px + rubbish)", "unset 2px", "2px unset" ]
   },
   "border-bottom-right-radius": {
     domProp: "borderBottomRightRadius",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     applies_to_first_letter: true,
     prerequisites: { "width": "200px", "height": "100px", "display": "inline-block"},
     initial_values: [ "0", "0px", "calc(-2px)" ],
@@ -1460,17 +1460,17 @@ var gCSSProperties = {
       "calc(50%)",
       "calc(3*25px)",
       "calc(3*25px) 5px",
       "5px calc(3*25px)",
       "calc(20%) calc(3*25px)",
       "calc(25px*3)",
       "calc(3*25px + 50%)",
             ],
-    invalid_values: [ "-1px", "4px -2px", "inherit 2px", "2px inherit", "2", "2px 2", "2 2px", "2px calc(0px + rubbish)" ]
+    invalid_values: [ "-1px", "4px -2px", "inherit 2px", "2px inherit", "2", "2px 2", "2 2px", "2px calc(0px + rubbish)", "unset 2px", "2px unset" ]
   },
   "border-top-left-radius": {
     domProp: "borderTopLeftRadius",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     applies_to_first_letter: true,
     prerequisites: { "width": "200px", "height": "100px", "display": "inline-block"},
     initial_values: [ "0", "0px", "calc(-2px)" ],
@@ -1481,17 +1481,17 @@ var gCSSProperties = {
       "calc(50%)",
       "calc(3*25px)",
       "calc(3*25px) 5px",
       "5px calc(3*25px)",
       "calc(20%) calc(3*25px)",
       "calc(25px*3)",
       "calc(3*25px + 50%)",
             ],
-    invalid_values: [ "-1px", "4px -2px", "inherit 2px", "2px inherit", "2", "2px 2", "2 2px", "2px calc(0px + rubbish)" ]
+    invalid_values: [ "-1px", "4px -2px", "inherit 2px", "2px inherit", "2", "2px 2", "2 2px", "2px calc(0px + rubbish)", "unset 2px", "2px unset" ]
   },
   "border-top-right-radius": {
     domProp: "borderTopRightRadius",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     applies_to_first_letter: true,
     prerequisites: { "width": "200px", "height": "100px", "display": "inline-block"},
     initial_values: [ "0", "0px", "calc(-2px)" ],
@@ -1502,17 +1502,17 @@ var gCSSProperties = {
       "calc(50%)",
       "calc(3*25px)",
       "calc(3*25px) 5px",
       "5px calc(3*25px)",
       "calc(20%) calc(3*25px)",
       "calc(25px*3)",
       "calc(3*25px + 50%)",
             ],
-    invalid_values: [ "-1px", "4px -2px", "inherit 2px", "2px inherit", "2", "2px 2", "2 2px", "2px calc(0px + rubbish)" ]
+    invalid_values: [ "-1px", "4px -2px", "inherit 2px", "2px inherit", "2", "2px 2", "2 2px", "2px calc(0px + rubbish)", "unset 2px", "2px unset" ]
   },
   "border-inline-start": {
     domProp: "borderInlineStart",
     inherited: false,
     type: CSS_TYPE_TRUE_SHORTHAND,
     subproperties: [ "border-inline-start-color", "border-inline-start-style", "border-inline-start-width" ],
     initial_values: [ "none", "medium", "currentColor", "thin", "none medium currentcolor" ],
     other_values: [ "solid", "green", "medium solid", "green solid", "10px solid", "thick solid", "5px green none" ],
@@ -2267,17 +2267,17 @@ var gCSSProperties = {
       "calc(3*25px) 5px",
       "5px calc(3*25px)",
       "calc(20%) calc(3*25px)",
       "calc(25px*3)",
       "calc(3*25px + 50%)",
       "2px 2px calc(2px + 1%) 2px",
       "1px 2px 2px 2px / 2px 2px calc(2px + 1%) 2px",
             ],
-    invalid_values: [ "2px -2px", "inherit 2px", "inherit / 2px", "2px inherit", "2px / inherit", "2px 2px 2px 2px 2px", "1px / 2px 2px 2px 2px 2px", "2", "2 2", "2px 2px 2px 2px / 2px 2px 2 2px" ]
+    invalid_values: [ "2px -2px", "inherit 2px", "inherit / 2px", "2px inherit", "2px / inherit", "2px 2px 2px 2px 2px", "1px / 2px 2px 2px 2px 2px", "2", "2 2", "2px 2px 2px 2px / 2px 2px 2 2px", "unset 2px", "unset / 2px", "2px unset", "2px / unset" ]
   },
   "-moz-outline-radius-bottomleft": {
     domProp: "MozOutlineRadiusBottomleft",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     prerequisites: { "width": "200px", "height": "100px", "display": "inline-block"},
     initial_values: [ "0", "0px", "calc(-2px)", "calc(0px)" ],
     other_values: [ "0%", "3%", "1px", "2em", // circular
@@ -2287,17 +2287,17 @@ var gCSSProperties = {
       "calc(50%)",
       "calc(3*25px)",
       "calc(3*25px) 5px",
       "5px calc(3*25px)",
       "calc(20%) calc(3*25px)",
       "calc(25px*3)",
       "calc(3*25px + 50%)",
             ],
-    invalid_values: [ "-1px", "4px -2px", "inherit 2px", "2px inherit", "2", "2px 2", "2 2px" ]
+    invalid_values: [ "-1px", "4px -2px", "inherit 2px", "2px inherit", "2", "2px 2", "2 2px", "unset 2px", "2px unset" ]
   },
   "-moz-outline-radius-bottomright": {
     domProp: "MozOutlineRadiusBottomright",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     prerequisites: { "width": "200px", "height": "100px", "display": "inline-block"},
     initial_values: [ "0", "0px", "calc(-2px)", "calc(0px)" ],
     other_values: [ "0%", "3%", "1px", "2em", // circular
@@ -2307,17 +2307,17 @@ var gCSSProperties = {
       "calc(50%)",
       "calc(3*25px)",
       "calc(3*25px) 5px",
       "5px calc(3*25px)",
       "calc(20%) calc(3*25px)",
       "calc(25px*3)",
       "calc(3*25px + 50%)",
             ],
-    invalid_values: [ "-1px", "4px -2px", "inherit 2px", "2px inherit", "2", "2px 2", "2 2px" ]
+    invalid_values: [ "-1px", "4px -2px", "inherit 2px", "2px inherit", "2", "2px 2", "2 2px", "unset 2px", "2px unset" ]
   },
   "-moz-outline-radius-topleft": {
     domProp: "MozOutlineRadiusTopleft",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     prerequisites: { "width": "200px", "height": "100px", "display": "inline-block"},
     initial_values: [ "0", "0px", "calc(-2px)", "calc(0px)" ],
     other_values: [ "0%", "3%", "1px", "2em", // circular
@@ -2327,17 +2327,17 @@ var gCSSProperties = {
       "calc(50%)",
       "calc(3*25px)",
       "calc(3*25px) 5px",
       "5px calc(3*25px)",
       "calc(20%) calc(3*25px)",
       "calc(25px*3)",
       "calc(3*25px + 50%)",
             ],
-    invalid_values: [ "-1px", "4px -2px", "inherit 2px", "2px inherit", "2", "2px 2", "2 2px" ]
+    invalid_values: [ "-1px", "4px -2px", "inherit 2px", "2px inherit", "2", "2px 2", "2 2px", "unset 2px", "2px unset" ]
   },
   "-moz-outline-radius-topright": {
     domProp: "MozOutlineRadiusTopright",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     prerequisites: { "width": "200px", "height": "100px", "display": "inline-block"},
     initial_values: [ "0", "0px", "calc(-2px)", "calc(0px)" ],
     other_values: [ "0%", "3%", "1px", "2em", // circular
@@ -2347,17 +2347,17 @@ var gCSSProperties = {
       "calc(50%)",
       "calc(3*25px)",
       "calc(3*25px) 5px",
       "5px calc(3*25px)",
       "calc(20%) calc(3*25px)",
       "calc(25px*3)",
       "calc(3*25px + 50%)",
             ],
-    invalid_values: [ "-1px", "4px -2px", "inherit 2px", "2px inherit", "2", "2px 2", "2 2px" ]
+    invalid_values: [ "-1px", "4px -2px", "inherit 2px", "2px inherit", "2", "2px 2", "2 2px", "unset 2px", "2px unset" ]
   },
   "padding-inline-end": {
     domProp: "paddingInlineEnd",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     applies_to_first_letter: true,
     // No applies_to_placeholder because we have a !important rule in forms.css.
     logical: true,
@@ -2745,17 +2745,17 @@ var gCSSProperties = {
     other_values: [
     "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAKElEQVR42u3NQQ0AAAgEoNP+nTWFDzcoQE1udQQCgUAgEAgEAsGTYAGjxAE/G/Q2tQAAAABJRU5ErkJggg==)", "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAKElEQVR42u3NQQ0AAAgEoNP+nTWFDzcoQE1udQQCgUAgEAgEAsGTYAGjxAE/G/Q2tQAAAABJRU5ErkJggg==')", 'url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAKElEQVR42u3NQQ0AAAgEoNP+nTWFDzcoQE1udQQCgUAgEAgEAsGTYAGjxAE/G/Q2tQAAAABJRU5ErkJggg==")',
     "none, none",
     "none, none, none, none, none",
     "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAKElEQVR42u3NQQ0AAAgEoNP+nTWFDzcoQE1udQQCgUAgEAgEAsGTYAGjxAE/G/Q2tQAAAABJRU5ErkJggg==), none",
     "none, url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAKElEQVR42u3NQQ0AAAgEoNP+nTWFDzcoQE1udQQCgUAgEAgEAsGTYAGjxAE/G/Q2tQAAAABJRU5ErkJggg==), none",
     "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAKElEQVR42u3NQQ0AAAgEoNP+nTWFDzcoQE1udQQCgUAgEAgEAsGTYAGjxAE/G/Q2tQAAAABJRU5ErkJggg==), url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAKElEQVR42u3NQQ0AAAgEoNP+nTWFDzcoQE1udQQCgUAgEAgEAsGTYAGjxAE/G/Q2tQAAAABJRU5ErkJggg==)",
     ].concat(validGradientAndElementValues),
-    invalid_values: [
+    invalid_values: [ "linear-gradient(unset, 10px 10px, from(blue))", "linear-gradient(unset, 10px 10px, blue 0)", "repeating-linear-gradient(unset, 10px 10px, blue 0)"
     ].concat(invalidGradientAndElementValues),
     unbalanced_values: [
     ].concat(unbalancedGradientAndElementValues)
   },
   "background-origin": {
     domProp: "backgroundOrigin",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
@@ -3239,17 +3239,17 @@ var gCSSProperties = {
       "blue 2px calc(2px + 0.2em)",
       "2px calc(2px + 0.2em) blue",
       "calc(-2px) calc(-2px)",
       "-2px -2px",
       "calc(2px) calc(2px)",
       "calc(2px) calc(2px) calc(2px)",
       "calc(2px) calc(2px) calc(2px) calc(2px)"
     ],
-    invalid_values: [ "3% 3%", "1px 1px 1px 1px 1px", "2px 2px, none", "red 2px 2px blue", "inherit, 2px 2px", "2px 2px, inherit", "2px 2px -5px", "inset 4px 4px black inset", "inset inherit", "inset none", "3 3", "3px 3", "3 3px", "3px 3px 3", "3px 3px 3px 3", "3px calc(3px + rubbish)", "3px 3px calc(3px + rubbish)", "3px 3px 3px calc(3px + rubbish)", "3px 3px 3px 3px rgb(0, rubbish, 0)" ]
+    invalid_values: [ "3% 3%", "1px 1px 1px 1px 1px", "2px 2px, none", "red 2px 2px blue", "inherit, 2px 2px", "2px 2px, inherit", "2px 2px -5px", "inset 4px 4px black inset", "inset inherit", "inset none", "3 3", "3px 3", "3 3px", "3px 3px 3", "3px 3px 3px 3", "3px calc(3px + rubbish)", "3px 3px calc(3px + rubbish)", "3px 3px 3px calc(3px + rubbish)", "3px 3px 3px 3px rgb(0, rubbish, 0)", "unset, 2px 2px", "2px 2px, unset", "inset unset" ]
   },
   "caption-side": {
     domProp: "captionSide",
     inherited: true,
     type: CSS_TYPE_LONGHAND,
     initial_values: [ "top" ],
     other_values: [ "bottom", "left", "right", "top-outside", "bottom-outside" ],
     invalid_values: []
@@ -4518,17 +4518,17 @@ var gCSSProperties = {
   },
   "text-overflow": {
     domProp: "textOverflow",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     applies_to_placeholder: true,
     initial_values: [ "clip" ],
     other_values: [ "ellipsis", '""', "''", '"hello"', 'clip clip', 'ellipsis ellipsis', 'clip ellipsis', 'clip ""', '"hello" ""', '"" ellipsis' ],
-    invalid_values: [ "none", "auto", '"hello" inherit', 'inherit "hello"', 'clip initial', 'initial clip', 'initial inherit', 'inherit initial', 'inherit none']
+    invalid_values: [ "none", "auto", '"hello" inherit', 'inherit "hello"', 'clip initial', 'initial clip', 'initial inherit', 'inherit initial', 'inherit none', '"hello" unset', 'unset "hello"', 'clip unset', 'unset clip', 'unset inherit', 'unset none', 'initial unset']
   },
   "text-shadow": {
     domProp: "textShadow",
     inherited: true,
     type: CSS_TYPE_LONGHAND,
     applies_to_first_letter: true,
     applies_to_first_line: true,
     applies_to_placeholder: true,
@@ -4543,17 +4543,17 @@ var gCSSProperties = {
       "blue 2px calc(2px + 0.2em)",
       "2px calc(2px + 0.2em) blue",
       "calc(-2px) calc(-2px)",
       "-2px -2px",
       "calc(2px) calc(2px)",
       "calc(2px) calc(2px) calc(2px)",
     ],
     invalid_values: [ "3% 3%", "2px 2px -5px", "2px 2px 2px 2px", "2px 2px, none", "none, 2px 2px", "inherit, 2px 2px", "2px 2px, inherit", "2 2px", "2px 2", "2px 2px 2", "2px 2px 2px 2",
-      "calc(2px) calc(2px) calc(2px) calc(2px)", "3px 3px calc(3px + rubbish)"
+      "calc(2px) calc(2px) calc(2px) calc(2px)", "3px 3px calc(3px + rubbish)", "unset, 2px 2px", "2px 2px, unset"
     ]
   },
   "text-transform": {
     domProp: "textTransform",
     inherited: true,
     type: CSS_TYPE_LONGHAND,
     applies_to_first_letter: true,
     applies_to_first_line: true,
@@ -4583,17 +4583,17 @@ var gCSSProperties = {
   },
   "transition": {
     domProp: "transition",
     inherited: false,
     type: CSS_TYPE_TRUE_SHORTHAND,
     subproperties: [ "transition-property", "transition-duration", "transition-timing-function", "transition-delay" ],
     initial_values: [ "all 0s ease 0s", "all", "0s", "0s 0s", "ease" ],
     other_values: [ "all 0s cubic-bezier(0.25, 0.1, 0.25, 1.0) 0s", "width 1s linear 2s", "width 1s 2s linear", "width linear 1s 2s", "linear width 1s 2s", "linear 1s width 2s", "linear 1s 2s width", "1s width linear 2s", "1s width 2s linear", "1s 2s width linear", "1s linear width 2s", "1s linear 2s width", "1s 2s linear width", "width linear 1s", "width 1s linear", "linear width 1s", "linear 1s width", "1s width linear", "1s linear width", "1s 2s width", "1s width 2s", "width 1s 2s", "1s 2s linear", "1s linear 2s", "linear 1s 2s", "width 1s", "1s width", "linear 1s", "1s linear", "1s 2s", "2s 1s", "width", "linear", "1s", "height", "2s", "ease-in-out", "2s ease-in", "opacity linear", "ease-out 2s", "2s color, 1s width, 500ms height linear, 1s opacity 4s cubic-bezier(0.0, 0.1, 1.0, 1.0)", "1s \\32width linear 2s", "1s -width linear 2s", "1s -\\32width linear 2s", "1s \\32 0width linear 2s", "1s -\\32 0width linear 2s", "1s \\2width linear 2s", "1s -\\2width linear 2s", "2s, 1s width", "1s width, 2s", "2s all, 1s width", "1s width, 2s all", "2s all, 1s width", "2s width, 1s all", "3s --my-color", "none", "none 2s linear 2s" ],
-    invalid_values: [ "1s width, 2s none", "2s none, 1s width", "2s inherit", "inherit 2s", "2s width, 1s inherit", "2s inherit, 1s width", "2s initial", "1s width,,2s color", "1s width, ,2s color", "bounce 1s cubic-bezier(0, rubbish) 2s", "bounce 1s steps(rubbish) 2s" ]
+    invalid_values: [ "1s width, 2s none", "2s none, 1s width", "2s inherit", "inherit 2s", "2s width, 1s inherit", "2s inherit, 1s width", "2s initial", "1s width,,2s color", "1s width, ,2s color", "bounce 1s cubic-bezier(0, rubbish) 2s", "bounce 1s steps(rubbish) 2s", "2s unset" ]
   },
   "transition-delay": {
     domProp: "transitionDelay",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     initial_values: [ "0s", "0ms" ],
     other_values: [ "1s", "250ms", "-100ms", "-1s", "1s, 250ms, 2.3s"],
     invalid_values: [ "0", "0px" ]
@@ -4607,17 +4607,17 @@ var gCSSProperties = {
     invalid_values: [ "0", "0px", "-1ms", "-2s" ]
   },
   "transition-property": {
     domProp: "transitionProperty",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     initial_values: [ "all" ],
     other_values: [ "none", "left", "top", "color", "width, height, opacity", "foobar", "auto", "\\32width", "-width", "-\\32width", "\\32 0width", "-\\32 0width", "\\2width", "-\\2width", "all, all", "all, color", "color, all", "--my-color" ],
-    invalid_values: [ "none, none", "color, none", "none, color", "inherit, color", "color, inherit", "initial, color", "color, initial", "none, color", "color, none" ]
+    invalid_values: [ "none, none", "color, none", "none, color", "inherit, color", "color, inherit", "initial, color", "color, initial", "none, color", "color, none", "unset, color", "color, unset" ]
   },
   "transition-timing-function": {
     domProp: "transitionTimingFunction",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     initial_values: [ "ease" ],
     other_values: [ "cubic-bezier(0.25, 0.1, 0.25, 1.0)", "linear", "ease-in", "ease-out", "ease-in-out", "linear, ease-in, cubic-bezier(0.1, 0.2, 0.8, 0.9)", "cubic-bezier(0.5, 0.5, 0.5, 0.5)", "cubic-bezier(0.25, 1.5, 0.75, -0.5)", "step-start", "step-end", "steps(1)", "steps(2, start)", "steps(386)", "steps(3, end)" ],
     invalid_values: [ "none", "auto", "cubic-bezier(0.25, 0.1, 0.25)", "cubic-bezier(0.25, 0.1, 0.25, 0.25, 1.0)", "cubic-bezier(-0.5, 0.5, 0.5, 0.5)", "cubic-bezier(1.5, 0.5, 0.5, 0.5)", "cubic-bezier(0.5, 0.5, -0.5, 0.5)", "cubic-bezier(0.5, 0.5, 1.5, 0.5)", "steps(2, step-end)", "steps(0)", "steps(-2)", "steps(0, step-end, 1)" ]
@@ -8185,46 +8185,26 @@ if (false) {
     inherited: true,
     type: CSS_TYPE_LONGHAND,
     initial_values: [ "transparent" ],
     other_values: [ "green", "#fc3" ],
     invalid_values: [ "000000", "ff00ff" ]
   };
 }
 
-if (IsCSSPropertyPrefEnabled("layout.css.unset-value.enabled")) {
-  gCSSProperties["animation"].invalid_values.push("2s unset");
-  gCSSProperties["animation-direction"].invalid_values.push("normal, unset", "unset, normal");
-  gCSSProperties["animation-name"].invalid_values.push("bounce, unset", "unset, bounce");
-  gCSSProperties["border-radius"].invalid_values.push("unset 2px", "unset / 2px", "2px unset", "2px / unset");
-  gCSSProperties["border-bottom-left-radius"].invalid_values.push("unset 2px", "2px unset");
-  gCSSProperties["border-bottom-right-radius"].invalid_values.push("unset 2px", "2px unset");
-  gCSSProperties["border-top-left-radius"].invalid_values.push("unset 2px", "2px unset");
-  gCSSProperties["border-top-right-radius"].invalid_values.push("unset 2px", "2px unset");
-  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("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");
-  if (IsCSSPropertyPrefEnabled("layout.css.filters.enabled")) {
-    gCSSProperties["filter"].invalid_values.push("drop-shadow(unset, 2px 2px)", "drop-shadow(2px 2px, unset)");
-  }
-  if (IsCSSPropertyPrefEnabled("layout.css.prefixes.gradients")) {
-    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)",
-    );
-  }
+if (IsCSSPropertyPrefEnabled("layout.css.filters.enabled")) {
+  gCSSProperties["filter"].invalid_values.push("drop-shadow(unset, 2px 2px)", "drop-shadow(2px 2px, unset)");
+}
+
+if (IsCSSPropertyPrefEnabled("layout.css.prefixes.gradients")) {
+  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)",
+  );
 }
 
 if (IsCSSPropertyPrefEnabled("layout.css.scrollbar-colors.enabled")) {
   gCSSProperties["scrollbar-face-color"] = {
     domProp: "scrollbarFaceColor",
     inherited: true,
     type: CSS_TYPE_LONGHAND,
     initial_values: [ "auto" ],
--- a/layout/style/test/test_all_shorthand.html
+++ b/layout/style/test/test_all_shorthand.html
@@ -1,14 +1,14 @@
 <!DOCTYPE html>
 <title>Test the 'all' shorthand property</title>
 <script src="/tests/SimpleTest/SimpleTest.js"></script>
 <script src="property_database.js"></script>
 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css">
-<body>
+<body onload="runTest()">
 
 <style id="stylesheet">
 #parent { }
 #child { }
 #child { }
 </style>
 
 <div style="display: none">
@@ -149,10 +149,9 @@ function runTest() {
     childRule1.style.cssText = "";
     childRule2.style.cssText = "";
   });
 
   SimpleTest.finish();
 }
 
 SimpleTest.waitForExplicitFinish();
-SpecialPowers.pushPrefEnv({ "set": [["layout.css.unset-value.enabled", true]] }, runTest);
 </script>
--- a/layout/style/test/test_bug74880.html
+++ b/layout/style/test/test_bug74880.html
@@ -30,25 +30,19 @@ https://bugzilla.mozilla.org/show_bug.cg
 var gProps = [
   [ "margin-left", "margin-right", "margin-inline-start", "margin-inline-end" ],
   [ "padding-left", "padding-right", "padding-inline-start", "padding-inline-end" ],
   [ "border-left-color", "border-right-color", "border-inline-start-color", "border-inline-end-color" ],
   [ "border-left-style", "border-right-style", "border-inline-start-style", "border-inline-end-style" ],
   [ "border-left-width", "border-right-width", "border-inline-start-width", "border-inline-end-width" ],
 ];
 
-var gLengthValues = [ "inherit", "initial", "2px", "1em" ];
-var gColorValues = [ "inherit", "initial", "currentColor", "green" ];
-var gStyleValues = [ "inherit", "initial", "double", "dashed" ];
-
-if (SpecialPowers.getBoolPref("layout.css.unset-value.enabled")) {
-  gLengthValues.push("unset");
-  gColorValues.push("unset");
-  gStyleValues.push("unset");
-}
+var gLengthValues = [ "inherit", "initial", "2px", "1em", "unset" ];
+var gColorValues = [ "inherit", "initial", "currentColor", "green", "unset" ];
+var gStyleValues = [ "inherit", "initial", "double", "dashed", "unset" ];
 
 function values_for(set) {
   var values;
   if (set[0].match(/style$/))
     values = gStyleValues;
   else if (set[0].match(/color$/))
     values = gColorValues;
   else
--- a/layout/style/test/test_font_family_parsing.html
+++ b/layout/style/test/test_font_family_parsing.html
@@ -119,31 +119,27 @@ var testFontFamilyLists = [
   { namelist: "simple inherit", single: true },
   { namelist: "simple normal", single: true },
   { namelist: "default simple", single: true },
   { namelist: "initial simple", single: true },
   { namelist: "inherit simple", single: true },
   { namelist: "normal simple", single: true },
   { namelist: "caption", single: true }, // these are keywords for the 'font' property but only when in the first position
   { namelist: "icon", single: true },
-  { namelist: "menu", single: true }
+  { namelist: "menu", single: true },
+  { namelist: "unset", invalid: true, fontonly: true, single: true },
+  { namelist: "unset, simple", invalid: true },
+  { namelist: "simple, unset", invalid: true },
+  { namelist: "simple, unset bongo" },
+  { namelist: "simple, bongo unset" },
+  { namelist: "simple unset", single: true },
+  { namelist: "unset simple", single: true }
 
 ];
 
-if (window.SpecialPowers && SpecialPowers.getBoolPref("layout.css.unset-value.enabled")) {
-  testFontFamilyLists.push(
-    { namelist: "unset", invalid: true, fontonly: true, single: true },
-    { namelist: "unset, simple", invalid: true },
-    { namelist: "simple, unset", invalid: true },
-    { namelist: "simple, unset bongo" },
-    { namelist: "simple, bongo unset" },
-    { namelist: "simple unset", single: true },
-    { namelist: "unset simple", single: true });
-}
-
 var gTest = 0;
 
 /* strip out just values */
 function extractDecl(rule)
 {
   var t = rule.replace(/[ \n]+/g, " ");
   t = t.replace(/.*{[ \n]*/, "");
   t = t.replace(/[ \n]*}.*/, "");
--- a/layout/style/test/test_garbage_at_end_of_declarations.html
+++ b/layout/style/test/test_garbage_at_end_of_declarations.html
@@ -31,17 +31,16 @@
  * ensures that we don't accept garbage.
  *
  * Despite that, I'm checking it in anyway, since it caught an infinite
  * loop in the patch for bug 435441.
  */
 
 var gElement = document.getElementById("testnode");
 var gDeclaration = gElement.style;
-var gUnsetValueEnabled = SpecialPowers.getBoolPref("layout.css.unset-value.enabled");
 
 /*
  * This lists properties where garbage identifiers are allowed at the
  * end, with values in property_database.js that are exceptions that
  * should be tested anyway.  "inherit", "initial" and "unset" are always
  * tested.
  */
 var gAllowsExtra = {
@@ -115,18 +114,17 @@ function test_property(property)
          ["expected garbage ignored after '", property, ": ", value,
           "'"].join(""));
     }
   }
 
   var idx;
   test_value("inherit");
   test_value("initial");
-  if (gUnsetValueEnabled)
-    test_value("unset");
+  test_value("unset");
   for (idx in info.initial_values)
     test_value(info.initial_values[idx]);
   for (idx in info.other_values)
     test_value(info.other_values[idx]);
 }
 
 // To avoid triggering the slow script dialog, we have to test one
 // property at a time.
--- a/layout/style/test/test_inherit_computation.html
+++ b/layout/style/test/test_inherit_computation.html
@@ -32,30 +32,28 @@ var gFChild = document.getElementById("f
 
 var gStyleSheet = document.getElementById("stylesheet").sheet;
 var gChildRule1 = gStyleSheet.cssRules[gStyleSheet.insertRule("#nchild, #fchild {}", gStyleSheet.cssRules.length)];
 var gChildRule2 = gStyleSheet.cssRules[gStyleSheet.insertRule("#nchild, #fchild {}", gStyleSheet.cssRules.length)];
 var gChildRule3 = gStyleSheet.cssRules[gStyleSheet.insertRule("#nchild.allother, #fchild.allother {}", gStyleSheet.cssRules.length)];
 var gChildRuleTop = gStyleSheet.cssRules[gStyleSheet.insertRule("#nchild, #nchild.allother, #fchild, #fchild.allother {}", gStyleSheet.cssRules.length)];
 var gParentRuleTop = gStyleSheet.cssRules[gStyleSheet.insertRule("#nparent, #fparent {}", gStyleSheet.cssRules.length)];
 
-var gTestUnset = SpecialPowers.getBoolPref("layout.css.unset-value.enabled");
-
 function get_computed_value_node(node, property)
 {
   var cs = getComputedStyle(node, "");
   return get_computed_value(cs, property);
 }
 
 function test_property(property)
 {
   var info = gCSSProperties[property];
 
   var keywords = ["inherit"];
-  if (info.inherited && gTestUnset)
+  if (info.inherited)
     keywords.push("unset");
 
   keywords.forEach(function(keyword) {
     if ("prerequisites" in info) {
       var prereqs = info.prerequisites;
       for (var prereq in prereqs) {
         gParentRuleTop.style.setProperty(prereq, prereqs[prereq], "");
         gChildRuleTop.style.setProperty(prereq, prereqs[prereq], "");
--- a/layout/style/test/test_inherit_storage.html
+++ b/layout/style/test/test_inherit_storage.html
@@ -10,34 +10,32 @@ https://bugzilla.mozilla.org/show_bug.cg
   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
 </head>
 <body>
 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=375363">Mozilla Bug 375363</a>
 <p id="display"></p>
 <div id="content" style="display: none">
 
 <div id="testnode"></div>
-  
+
 </div>
 <pre id="test">
 <script class="testbody" type="text/javascript">
 
 /** Test for parsing, storage, and serialization of CSS 'inherit' on all
     properties and 'unset' on inherited properties **/
 
 var gDeclaration = document.getElementById("testnode").style;
 
-var gTestUnset = SpecialPowers.getBoolPref("layout.css.unset-value.enabled");
-
 function test_property(property)
 {
   var info = gCSSProperties[property];
 
   var keywords = ["inherit"];
-  if (info.inherited && gTestUnset)
+  if (info.inherited)
     keywords.push("unset");
 
   keywords.forEach(function(keyword) {
     function check_initial(sproperty) {
       var sinfo = gCSSProperties[sproperty];
       var val = gDeclaration.getPropertyValue(sproperty);
       is(val, "", "value of '" + sproperty + "' before we do anything");
       is(val, gDeclaration[sinfo.domProp],
--- a/layout/style/test/test_initial_computation.html
+++ b/layout/style/test/test_initial_computation.html
@@ -26,17 +26,17 @@
 <p id="display"><span><span id="elementf"></span></span>
 <iframe id="unstyledn" src="unstyled.xml" height="10" width="10" onload="load_done()"></iframe>
 <iframe id="unstyledf" src="unstyled-frame.xml" height="10" width="10" onload="load_done()"></iframe>
 </p>
 <div id="content" style="display: none">
 
 <div><span id="elementn"></span></div>
 
-  
+
 </div>
 <pre id="test">
 <script class="testbody" type="text/javascript">
 
 /** Test for computation of CSS 'initial' on all properties and 'unset' on
     reset properties **/
 
 var gBrokenInitial = {
@@ -53,35 +53,33 @@ var gStyleSheet = document.getElementByI
 var gRule1 = gStyleSheet.cssRules[gStyleSheet.insertRule("#elementn, #elementf {}", gStyleSheet.cssRules.length)];
 var gRule2 = gStyleSheet.cssRules[gStyleSheet.insertRule("#elementn, #elementf {}", gStyleSheet.cssRules.length)];
 
 var gInitialValuesN;
 var gInitialValuesF;
 var gInitialPrereqsRuleN;
 var gInitialPrereqsRuleF;
 
-var gTestUnset = SpecialPowers.getBoolPref("layout.css.unset-value.enabled");
-
 function setup_initial_values(id, ivalprop, prereqprop) {
   var iframe = document.getElementById(id);
   window[ivalprop] = iframe.contentWindow.getComputedStyle(
                        iframe.contentDocument.documentElement.firstChild);
   var sheet = iframe.contentDocument.styleSheets[0];
   // For 'width', 'height', etc., need a constant size container.
   sheet.insertRule(":root { height: 200px; width: 500px }", sheet.cssRules.length);
 
   window[prereqprop] = sheet.cssRules[sheet.insertRule(":root > * {}", sheet.cssRules.length)];
 }
 
 function test_property(property)
 {
   var info = gCSSProperties[property];
 
   var keywords = ["initial"];
-  if (!info.inherited && gTestUnset)
+  if (!info.inherited)
     keywords.push("unset");
 
   keywords.forEach(function(keyword) {
     if ("prerequisites" in info) {
       var prereqs = info.prerequisites;
       for (var prereq in prereqs) {
         gRule1.style.setProperty(prereq, prereqs[prereq], "");
         gInitialPrereqsRuleN.style.setProperty(prereq, prereqs[prereq], "");
--- a/layout/style/test/test_initial_storage.html
+++ b/layout/style/test/test_initial_storage.html
@@ -10,28 +10,26 @@ https://bugzilla.mozilla.org/show_bug.cg
   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
 </head>
 <body>
 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=375363">Mozilla Bug 375363</a>
 <p id="display"></p>
 <div id="content" style="display: none">
 
 <div id="testnode"></div>
-  
+
 </div>
 <pre id="test">
 <script class="testbody" type="text/javascript">
 
 /** Test for parsing, storage, and serialization of CSS 'initial' on all
     properties and 'unset' on reset properties **/
 
 var gDeclaration = document.getElementById("testnode").style;
 
-var gTestUnset = SpecialPowers.getBoolPref("layout.css.unset-value.enabled");
-
 /**
  * Checks that the passed-in property-value (returned by getPropertyValue) is
  * consistent with the DOM accessors that we know about for the given sproperty.
  */
 function check_consistency(sproperty, valFromGetPropertyValue, messagePrefix)
 {
   var sinfo = gCSSProperties[sproperty];
   is(valFromGetPropertyValue, gDeclaration[sinfo.domProp],
@@ -48,17 +46,17 @@ function check_consistency(sproperty, va
   }
 }
 
 function test_property(property)
 {
   var info = gCSSProperties[property];
 
   var keywords = ["initial"];
-  if (!info.inherited && gTestUnset)
+  if (!info.inherited)
     keywords.push("unset");
 
   keywords.forEach(function(keyword) {
     function check_initial(sproperty) {
       var val = gDeclaration.getPropertyValue(sproperty);
       is(val, "", "value of '" + sproperty + "' before we do anything");
       check_consistency(sproperty, val, "initial");
     }
--- a/layout/style/test/test_value_cloning.html
+++ b/layout/style/test/test_value_cloning.html
@@ -10,39 +10,36 @@ https://bugzilla.mozilla.org/show_bug.cg
   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
 </head>
 <body>
 <p id="display"><iframe id="iframe" src="about:blank"></iframe></p>
 <pre id="test">
 <script class="testbody" type="text/javascript">
 
 /** Test for cloning of CSS property values (including 'inherit', 'initial' and 'unset') **/
-var gTestUnset = SpecialPowers.getBoolPref("layout.css.unset-value.enabled");
 var test_queue = [];
 var iframe = document.getElementById("iframe");
 
 SimpleTest.waitForExplicitFinish();
 
 for (var prop in gCSSProperties) {
   var info = gCSSProperties[prop];
 
   test_queue.push({ prop: prop, value: "inherit",
                     inherited_value: info.initial_values[0] });
   test_queue.push({ prop: prop, value: "inherit",
                     inherited_value: info.other_values[0] });
   test_queue.push({ prop: prop, value: "initial" });
-  if (gTestUnset) {
-    if (info.inherited) {
-      test_queue.push({ prop: prop, value: "unset",
-                        inherited_value: info.initial_values[0] });
-      test_queue.push({ prop: prop, value: "unset",
-                        inherited_value: info.other_values[0] });
-    } else {
-      test_queue.push({ prop: prop, value: "unset" });
-    }
+  if (info.inherited) {
+    test_queue.push({ prop: prop, value: "unset",
+                      inherited_value: info.initial_values[0] });
+    test_queue.push({ prop: prop, value: "unset",
+                      inherited_value: info.other_values[0] });
+  } else {
+    test_queue.push({ prop: prop, value: "unset" });
   }
   for (var idx in info.initial_values) {
     test_queue.push({ prop: prop, value: info.initial_values[idx] });
   }
   for (var idx in info.other_values) {
     test_queue.push({ prop: prop, value: info.other_values[idx] });
   }
 }
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -2946,19 +2946,16 @@ pref("layout.css.background-blend-mode.e
 // Is -moz-osx-font-smoothing enabled?
 // Only supported in OSX builds
 #ifdef XP_MACOSX
 pref("layout.css.osx-font-smoothing.enabled", true);
 #else
 pref("layout.css.osx-font-smoothing.enabled", false);
 #endif
 
-// Is support for the CSS-wide "unset" value enabled?
-pref("layout.css.unset-value.enabled", true);
-
 // Is support for CSS overflow-clip-box enabled for non-UA sheets?
 pref("layout.css.overflow-clip-box.enabled", false);
 
 // Is support for CSS contain enabled?
 pref("layout.css.contain.enabled", false);
 
 // Is support for CSS box-decoration-break enabled?
 pref("layout.css.box-decoration-break.enabled", true);