Bug 1399767 - Remove preference "layout.css.clip-path-shapes.enabled". r=heycam
authorTing-Yu Lin <tlin@mozilla.com>
Fri, 15 Sep 2017 15:00:30 +0800
changeset 381407 c452e8622329018257c34641e21f747337ecaebe
parent 381406 cd29ce68eefee0ceb49c9f909c27e545267dc221
child 381408 4ef69bbd6816d95ade430640785971f587e2d5bc
push id32527
push userarchaeopteryx@coole-files.de
push dateMon, 18 Sep 2017 09:31:38 +0000
treeherdermozilla-central@4ef69bbd6816 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersheycam
bugs1399767
milestone57.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 1399767 - Remove preference "layout.css.clip-path-shapes.enabled". r=heycam The variables (basicShapeSVGBoxValues, etc.) in property_database.js are moved to the beginning of the file so that they're defined before usage. MozReview-Commit-ID: 7L3obIY1alP
layout/base/nsLayoutUtils.cpp
layout/base/nsLayoutUtils.h
layout/reftests/svg/reftest.list
layout/reftests/svg/smil/reftest.list
layout/reftests/svg/svg-integration/clip-path/reftest.list
layout/reftests/w3c-css/submitted/masking/reftest.list
layout/reftests/w3c-css/submitted/shapes1/reftest.list
layout/style/nsCSSParser.cpp
layout/style/test/property_database.js
layout/style/test/test_clip-path_polygon.html
layout/style/test/test_transitions_per_property.html
modules/libpref/init/all.js
testing/web-platform/meta/css-shapes/__dir__.ini
--- a/layout/base/nsLayoutUtils.cpp
+++ b/layout/base/nsLayoutUtils.cpp
@@ -690,32 +690,16 @@ nsLayoutUtils::CSSFiltersEnabled()
                                  "layout.css.filters.enabled",
                                  false);
   }
 
   return sCSSFiltersEnabled;
 }
 
 bool
-nsLayoutUtils::CSSClipPathShapesEnabled()
-{
-  static bool sCSSClipPathShapesEnabled;
-  static bool sCSSClipPathShapesPrefCached = false;
-
-  if (!sCSSClipPathShapesPrefCached) {
-   sCSSClipPathShapesPrefCached = true;
-   Preferences::AddBoolVarCache(&sCSSClipPathShapesEnabled,
-                                "layout.css.clip-path-shapes.enabled",
-                                false);
-  }
-
-  return sCSSClipPathShapesEnabled;
-}
-
-bool
 nsLayoutUtils::UnsetValueEnabled()
 {
   static bool sUnsetValueEnabled;
   static bool sUnsetValuePrefCached = false;
 
   if (!sUnsetValuePrefCached) {
     sUnsetValuePrefCached = true;
     Preferences::AddBoolVarCache(&sUnsetValueEnabled,
--- a/layout/base/nsLayoutUtils.h
+++ b/layout/base/nsLayoutUtils.h
@@ -2340,21 +2340,16 @@ public:
   static bool AnimatedImageLayersEnabled();
 
   /**
    * Checks if we should enable parsing for CSS Filters.
    */
   static bool CSSFiltersEnabled();
 
   /**
-   * Checks if we should enable parsing for CSS clip-path basic shapes.
-   */
-  static bool CSSClipPathShapesEnabled();
-
-  /**
    * Checks whether support for the CSS-wide "unset" value is enabled.
    */
   static bool UnsetValueEnabled();
 
   /**
    * Checks whether support for the CSS grid-template-{columns,rows} 'subgrid X'
    * value is enabled.
    */
--- a/layout/reftests/svg/reftest.list
+++ b/layout/reftests/svg/reftest.list
@@ -72,22 +72,20 @@ fuzzy-if(/^Windows\x20NT\x2010\.0/.test(
 == clipPath-basic-02.svg pass.svg
 == clipPath-basic-03.svg pass.svg
 == clipPath-basic-04.svg pass.svg
 == clipPath-basic-05.svg pass.svg
 == clipPath-basic-06.svg pass.svg
 == clipPath-basic-07.svg pass.svg
 == clipPath-on-outflowElement-01a.html clipPath-on-outflowElement-01-ref.html
 == clipPath-on-outflowElement-01b.html clipPath-on-outflowElement-01-ref.html
-default-preferences pref(layout.css.clip-path-shapes.enabled,true)
 fuzzy(1,32400) == clipPath-on-outflowElement-02a.html clipPath-on-outflowElement-02-ref.html
 fuzzy(1,32400) == clipPath-on-outflowElement-02b.html clipPath-on-outflowElement-02-ref.html
 == clipPath-polygon-01.svg pass.svg
 == clipPath-polygon-elementFromPoint-01.svg pass.svg
-default-preferences
 != clipPath-on-thin-object.svg about:blank
 == clipPath-winding-01.svg pass.svg
 
 == comments-in-pres-attrs.svg pass.svg
 
 == conditions-01.svg pass.svg
 == conditions-02.svg pass.svg
 == conditions-03.svg pass.svg
@@ -329,17 +327,17 @@ fuzzy-if(skiaContent,7,175) fuzzy-if(ski
 == overflow-on-outer-svg-02b.xhtml overflow-on-outer-svg-02-ref.xhtml
 == overflow-on-outer-svg-02c.xhtml overflow-on-outer-svg-02-ref.xhtml
 == overflow-on-outer-svg-02d.xhtml overflow-on-outer-svg-02-ref.xhtml
 == overflow-on-outer-svg-03a.xhtml overflow-on-outer-svg-03-ref.xhtml
 == overflow-on-outer-svg-03b.xhtml overflow-on-outer-svg-03-ref.xhtml
 
 == paint-on-maskLayer-1a.html paint-on-maskLayer-1-ref.html
 == paint-on-maskLayer-1b.html paint-on-maskLayer-1-ref.html
-pref(layout.css.clip-path-shapes.enabled,true) == paint-on-maskLayer-1c.html paint-on-maskLayer-1-ref.html
+== paint-on-maskLayer-1c.html paint-on-maskLayer-1-ref.html
 pref(svg.paint-order.enabled,true) == paint-order-01.svg paint-order-01-ref.svg
 pref(svg.paint-order.enabled,true) fuzzy-if(webrender,1-1,112-112) == paint-order-02.svg paint-order-02-ref.svg
 pref(svg.paint-order.enabled,true) == paint-order-03.svg paint-order-03-ref.svg
 
 #fuzzy(23,60) fails-if(d2d) == path-01.svg path-01-ref.svg
 == path-02.svg pass.svg
 == path-03.svg pass.svg
 == path-04.svg pass.svg
--- a/layout/reftests/svg/smil/reftest.list
+++ b/layout/reftests/svg/smil/reftest.list
@@ -279,12 +279,12 @@ fuzzy-if(cocoaWidget&&layersGPUAccelerat
 == anim-display-in-g-element.svg lime.svg
 
 # Test animation that change 'display' style value to 'none'
 == anim-change-display-none-for-ancestor-elem.html lime.html
 == anim-change-display-none-for-target-elem.html lime.html
 == anim-change-display-none-for-dynamically-appended-elem.html lime.html
 == anim-change-display-block-for-dynamically-appended-elem.html anim-standard-ref.html
 
-pref(layout.css.clip-path-shapes.enabled,true) fuzzy(63,146) == anim-clipPath-viewBox.svg anim-clipPath-viewBox-ref.svg
+fuzzy(63,146) == anim-clipPath-viewBox.svg anim-clipPath-viewBox-ref.svg
 
 # Test animations for overflow.
 == anim-overflow-shorthand.svg anim-overflow-shorthand-ref.svg
--- a/layout/reftests/svg/svg-integration/clip-path/reftest.list
+++ b/layout/reftests/svg/svg-integration/clip-path/reftest.list
@@ -1,13 +1,11 @@
 # These tests verify that CSS clip-path behaves properly.
 # e.g. clip-path: polygon(nonzero, 3px 3px, 20% 20%)
 
-default-preferences pref(layout.css.clip-path-shapes.enabled,true)
-
 # Following tests adapted from W3C csswg-test repo
 == clip-path-polygon-001.html clip-path-rectangle-ref.html
 == clip-path-polygon-002.html clip-path-rectangle-ref.html
 == clip-path-polygon-003.html clip-path-rectangle-ref.html
 == clip-path-polygon-004.html clip-path-rectangle-border-ref.html
 == clip-path-polygon-005.html clip-path-rectangle-border-ref.html
 == clip-path-polygon-006.html clip-path-square-001-ref.html
 == clip-path-polygon-007.html clip-path-stripes-001-ref.html
--- a/layout/reftests/w3c-css/submitted/masking/reftest.list
+++ b/layout/reftests/w3c-css/submitted/masking/reftest.list
@@ -25,17 +25,17 @@ fuzzy-if(skiaContent||winWidget,1,20000)
 == mask-image-3a.html mask-image-3-ref.html
 == mask-image-3b.html mask-image-3-ref.html
 fuzzy-if(skiaContent||winWidget,1,43) == mask-image-3c.html mask-image-3-ref.html
 fuzzy-if(skiaContent||winWidget,1,43) == mask-image-3d.html mask-image-3-ref.html
 == mask-image-3e.html mask-image-3-ref.html
 # Due to SVG luminance, see bug 1372577, parent process doesn't use d2d for luminance.
 fuzzy-if(skiaContent||winWidget,50,85) fuzzy-if(webrender,1,126) fuzzy-if(d2d,255,1) fuzzy-if(winWidget&&!browserIsRemote,50,85) == mask-image-3f.html mask-image-3-ref.html
 fuzzy-if(skiaContent||winWidget,50,85) fuzzy-if(webrender,1,126) fuzzy-if(d2d,255,1) fuzzy-if(winWidget&&!browserIsRemote,50,85) == mask-image-3g.html mask-image-3-ref.html
-pref(layout.css.clip-path-shapes.enabled,true) fuzzy-if(winWidget,1,3) fuzzy-if(skiaContent,2,12) == mask-image-3h.html mask-image-3-ref.html
+fuzzy-if(winWidget,1,3) fuzzy-if(skiaContent,2,12) == mask-image-3h.html mask-image-3-ref.html
 fuzzy-if(skiaContent,71,203) == mask-image-3i.html mask-image-3-ref.html
 == mask-image-4a.html blank.html
 == mask-image-4b.html blank.html
 == mask-image-5.html mask-image-5-ref.html
 == mask-image-6.html mask-image-6-ref.html
 
 # mask-clip test cases
 == mask-clip-1.html mask-clip-1-ref.html
@@ -82,18 +82,16 @@ fails == mask-origin-2.html mask-origin-
 == mask-size-length-length.html mask-size-length-length-ref.html
 == mask-size-length-percent.html mask-size-length-percent-ref.html
 == mask-size-percent.html mask-size-percent-percent-ref.html
 == mask-size-percent-auto.html mask-size-percent-percent-ref.html
 == mask-size-percent-length.html mask-size-percent-percent-ref.html
 == mask-size-percent-percent.html mask-size-percent-percent-ref.html
 == mask-size-percent-percent-stretch.html mask-size-percent-percent-stretch-ref.html
 
-default-preferences pref(layout.css.clip-path-shapes.enabled,true)
-
 fuzzy-if(winWidget,1,21) fuzzy-if(skiaContent,1,60) fuzzy-if(webrender,64,371) == clip-path-contentBox-1a.html clip-path-geometryBox-1-ref.html
 fuzzy-if(winWidget,1,21) fuzzy-if(skiaContent,1,60) == clip-path-contentBox-1b.html clip-path-geometryBox-1-ref.html
 fuzzy-if(winWidget,1,21) fuzzy-if(skiaContent,1,60) == clip-path-contentBox-1c.html clip-path-geometryBox-1-ref.html
 fuzzy-if(winWidget,1,21) fuzzy-if(skiaContent,1,60) fuzzy-if(webrender,64,371) == clip-path-paddingBox-1a.html clip-path-geometryBox-1-ref.html
 fuzzy-if(winWidget,1,21) fuzzy-if(skiaContent,1,60) == clip-path-paddingBox-1b.html clip-path-geometryBox-1-ref.html
 fuzzy-if(winWidget,1,21) fuzzy-if(skiaContent,1,60) fuzzy-if(webrender,64,371) == clip-path-paddingBox-1c.html clip-path-geometryBox-1-ref.html
 fuzzy(64,370) == clip-path-borderBox-1a.html clip-path-geometryBox-1-ref.html
 fuzzy-if(winWidget,1,21) fuzzy-if(skiaContent,1,60) == clip-path-borderBox-1b.html clip-path-geometryBox-1-ref.html
@@ -104,18 +102,16 @@ fuzzy(64,370) == clip-path-strokeBox-1a.
 fuzzy(64,370) == clip-path-strokeBox-1b.html clip-path-geometryBox-1-ref.html
 fuzzy-if(winWidget,1,21) fuzzy-if(skiaContent,1,60) == clip-path-viewBox-1a.html clip-path-geometryBox-1-ref.html
 fuzzy-if(winWidget,1,21) fuzzy-if(skiaContent,1,60) == clip-path-viewBox-1b.html clip-path-geometryBox-1-ref.html
 fuzzy(64,370) == clip-path-viewBox-1c.html clip-path-geometryBox-1-ref.html
 fuzzy-if(winWidget,9,98) fuzzy-if(webrender,64,100) == clip-path-geometryBox-2.html clip-path-geometryBox-2-ref.html
 
 == clip-path-localRef-1.html clip-path-localRef-1-ref.html
 
-default-preferences
-
 # mask with opacity test cases
 fuzzy(1,5000) == mask-opacity-1a.html mask-opacity-1-ref.html
 fuzzy(1,5000) == mask-opacity-1b.html mask-opacity-1-ref.html
 fuzzy(1,5000) == mask-opacity-1c.html mask-opacity-1-ref.html
 fuzzy(1,5000) == mask-opacity-1d.html mask-opacity-1-ref.html
 fuzzy(1,5000) == mask-opacity-1e.html mask-opacity-1-ref.html
 
 == clip-path-mix-blend-mode-1.html clip-path-mix-blend-mode-1-ref.html
--- a/layout/reftests/w3c-css/submitted/shapes1/reftest.list
+++ b/layout/reftests/w3c-css/submitted/shapes1/reftest.list
@@ -1,9 +1,9 @@
-default-preferences pref(layout.css.shape-outside.enabled,true) pref(layout.css.clip-path-shapes.enabled,true)
+default-preferences pref(layout.css.shape-outside.enabled,true)
 
 # <shape-box> only
 == shape-outside-margin-box-001.html shape-outside-margin-box-001-ref.html
 == shape-outside-margin-box-002.html shape-outside-margin-box-002-ref.html
 == shape-outside-border-box-001.html shape-outside-border-box-001-ref.html
 == shape-outside-border-box-002.html shape-outside-border-box-002-ref.html
 == shape-outside-padding-box-001.html shape-outside-padding-box-001-ref.html
 == shape-outside-padding-box-002.html shape-outside-padding-box-002-ref.html
--- a/layout/style/nsCSSParser.cpp
+++ b/layout/style/nsCSSParser.cpp
@@ -16427,23 +16427,16 @@ CSSParserImpl::ParseReferenceBoxAndBasic
 // Parse a clip-path url to a <clipPath> element or a basic shape.
 bool
 CSSParserImpl::ParseClipPath(nsCSSValue& aValue)
 {
   if (ParseSingleTokenVariant(aValue, VARIANT_HUO, nullptr)) {
     return true;
   }
 
-  if (!nsLayoutUtils::CSSClipPathShapesEnabled()) {
-    // With CSS Clip Path Shapes disabled, we should only accept
-    // SVG clipPath reference and none.
-    REPORT_UNEXPECTED_TOKEN(PEExpectedNoneOrURL);
-    return false;
-  }
-
   return ParseReferenceBoxAndBasicShape(
     aValue, nsCSSProps::kClipPathGeometryBoxKTable);
 }
 
 // none | [ <basic-shape> || <shape-box> ] | <image>
 bool
 CSSParserImpl::ParseShapeOutside(nsCSSValue& aValue)
 {
--- a/layout/style/test/property_database.js
+++ b/layout/style/test/property_database.js
@@ -319,16 +319,193 @@ var invalidGradientAndElementValues = [
   "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)"
 ];
 var unbalancedGradientAndElementValues = [
   "-moz-element(#a()",
 ];
 
+var basicShapeSVGBoxValues = [
+  "fill-box",
+  "stroke-box",
+  "view-box",
+
+  "polygon(evenodd, 20pt 20cm) fill-box",
+  "polygon(evenodd, 20ex 20pc) stroke-box",
+  "polygon(evenodd, 20rem 20in) view-box",
+];
+
+var basicShapeOtherValues = [
+  "polygon(20px 20px)",
+  "polygon(20px 20%)",
+  "polygon(20% 20%)",
+  "polygon(20rem 20em)",
+  "polygon(20cm 20mm)",
+  "polygon(20px 20px, 30px 30px)",
+  "polygon(20px 20px, 30% 30%, 30px 30px)",
+  "polygon(nonzero, 20px 20px, 30% 30%, 30px 30px)",
+  "polygon(evenodd, 20px 20px, 30% 30%, 30px 30px)",
+
+  "content-box",
+  "padding-box",
+  "border-box",
+  "margin-box",
+
+  "polygon(0 0) content-box",
+  "border-box polygon(0 0)",
+  "padding-box    polygon(   0  20px ,  30px    20% )  ",
+  "polygon(evenodd, 20% 20em) content-box",
+  "polygon(evenodd, 20vh 20em) padding-box",
+  "polygon(evenodd, 20vh calc(20% + 20em)) border-box",
+  "polygon(evenodd, 20vh 20vw) margin-box",
+
+  "circle()",
+  "circle(at center)",
+  "circle(at top left 20px)",
+  "circle(at bottom right)",
+  "circle(20%)",
+  "circle(300px)",
+  "circle(calc(20px + 30px))",
+  "circle(farthest-side)",
+  "circle(closest-side)",
+  "circle(closest-side at center)",
+  "circle(farthest-side at top)",
+  "circle(20px at top right)",
+  "circle(40% at 50% 100%)",
+  "circle(calc(20% + 20%) at right bottom)",
+  "circle() padding-box",
+
+  "ellipse()",
+  "ellipse(at center)",
+  "ellipse(at top left 20px)",
+  "ellipse(at bottom right)",
+  "ellipse(20% 20%)",
+  "ellipse(300px 50%)",
+  "ellipse(calc(20px + 30px) 10%)",
+  "ellipse(farthest-side closest-side)",
+  "ellipse(closest-side farthest-side)",
+  "ellipse(farthest-side farthest-side)",
+  "ellipse(closest-side closest-side)",
+  "ellipse(closest-side closest-side at center)",
+  "ellipse(20% farthest-side at top)",
+  "ellipse(20px 50% at top right)",
+  "ellipse(closest-side 40% at 50% 100%)",
+  "ellipse(calc(20% + 20%) calc(20px + 20cm) at right bottom)",
+
+  "inset(1px)",
+  "inset(20% -20px)",
+  "inset(20em 4rem calc(20% + 20px))",
+  "inset(20vh 20vw 20pt 3%)",
+  "inset(5px round 3px)",
+  "inset(1px 2px round 3px / 3px)",
+  "inset(1px 2px 3px round 3px 2em / 20%)",
+  "inset(1px 2px 3px 4px round 3px 2vw 20% / 20px 3em 2vh 20%)",
+];
+
+var basicShapeInvalidValues = [
+  "url(#test) url(#tes2)",
+  "polygon (0 0)",
+  "polygon(20px, 40px)",
+  "border-box content-box",
+  "polygon(0 0) polygon(0 0)",
+  "polygon(nonzero 0 0)",
+  "polygon(evenodd 20px 20px)",
+  "polygon(20px 20px, evenodd)",
+  "polygon(20px 20px, nonzero)",
+  "polygon(0 0) conten-box content-box",
+  "content-box polygon(0 0) conten-box",
+  "padding-box polygon(0 0) conten-box",
+  "polygon(0 0) polygon(0 0) content-box",
+  "polygon(0 0) content-box polygon(0 0)",
+  "polygon(0 0), content-box",
+  "polygon(0 0), polygon(0 0)",
+  "content-box polygon(0 0) polygon(0 0)",
+  "content-box polygon(0 0) none",
+  "none content-box polygon(0 0)",
+  "inherit content-box polygon(0 0)",
+  "initial polygon(0 0)",
+  "polygon(0 0) farthest-side",
+  "farthest-corner polygon(0 0)",
+  "polygon(0 0) farthest-corner",
+  "polygon(0 0) conten-box",
+  "polygon(0 0) polygon(0 0) farthest-corner",
+  "polygon(0 0) polygon(0 0) polygon(0 0)",
+  "border-box polygon(0, 0)",
+  "border-box padding-box",
+  "margin-box farthest-side",
+  "nonsense() border-box",
+  "border-box nonsense()",
+
+  "circle(at)",
+  "circle(at 20% 20% 30%)",
+  "circle(20px 2px at center)",
+  "circle(2at center)",
+  "circle(closest-corner)",
+  "circle(at center top closest-side)",
+  "circle(-20px)",
+  "circle(farthest-side closest-side)",
+  "circle(20% 20%)",
+  "circle(at farthest-side)",
+  "circle(calc(20px + rubbish))",
+
+  "ellipse(at)",
+  "ellipse(at 20% 20% 30%)",
+  "ellipse(20px at center)",
+  "ellipse(-20px 20px)",
+  "ellipse(closest-corner farthest-corner)",
+  "ellipse(20px -20px)",
+  "ellipse(-20px -20px)",
+  "ellipse(farthest-side)",
+  "ellipse(20%)",
+  "ellipse(at farthest-side farthest-side)",
+  "ellipse(at top left calc(20px + rubbish))",
+
+  "polygon(at)",
+  "polygon(at 20% 20% 30%)",
+  "polygon(20px at center)",
+  "polygon(2px 2at center)",
+  "polygon(closest-corner farthest-corner)",
+  "polygon(at center top closest-side closest-side)",
+  "polygon(40% at 50% 100%)",
+  "polygon(40% farthest-side 20px at 50% 100%)",
+
+  "inset()",
+  "inset(round)",
+  "inset(round 3px)",
+  "inset(1px round 1px 2px 3px 4px 5px)",
+  "inset(1px 2px 3px 4px 5px)",
+  "inset(1px, round 3px)",
+  "inset(1px, 2px)",
+  "inset(1px 2px, 3px)",
+  "inset(1px at 3px)",
+  "inset(1px round 1px // 2px)",
+  "inset(1px round)",
+  "inset(1px calc(2px + rubbish))",
+  "inset(1px round 2px calc(3px + rubbish))",
+];
+
+var basicShapeUnbalancedValues = [
+  "polygon(30% 30%",
+  "polygon(nonzero, 20% 20px",
+  "polygon(evenodd, 20px 20px",
+
+  "circle(",
+  "circle(40% at 50% 100%",
+  "ellipse(",
+  "ellipse(40% at 50% 100%",
+
+  "inset(1px",
+  "inset(1px 2px",
+  "inset(1px 2px 3px",
+  "inset(1px 2px 3px 4px",
+  "inset(1px 2px 3px 4px round 5px",
+  "inset(1px 2px 3px 4px round 5px / 6px",
+];
+
 if (IsCSSPropertyPrefEnabled("layout.css.prefixes.webkit")) {
   // Extend gradient lists with valid/invalid webkit-prefixed expressions:
   validGradientAndElementValues.push(
     // 2008 GRADIENTS: -webkit-gradient()
     // ----------------------------------
     // linear w/ no color stops (valid) and a variety of position values:
     "-webkit-gradient(linear, 1 2, 3 4)",
     "-webkit-gradient(linear,1 2,3 4)", // (no extra space)
@@ -4397,18 +4574,21 @@ var gCSSProperties = {
     invalid_values: [ "3.0", "17.5", "3e1" ]
   }
   ,
   "clip-path": {
     domProp: "clipPath",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     initial_values: [ "none" ],
-    other_values: [ "url(#mypath)", "url('404.svg#mypath')" ],
-    invalid_values: []
+    other_values: [
+      "url(#mypath)", "url('404.svg#mypath')", "url(#my-clip-path)"
+    ].concat(basicShapeSVGBoxValues).concat(basicShapeOtherValues),
+    invalid_values: basicShapeInvalidValues,
+    unbalanced_values: basicShapeUnbalancedValues
   },
   "clip-rule": {
     domProp: "clipRule",
     inherited: true,
     type: CSS_TYPE_LONGHAND,
     initial_values: [ "nonzero" ],
     other_values: [ "evenodd" ],
     invalid_values: []
@@ -5963,208 +6143,16 @@ if (IsCSSPropertyPrefEnabled("svg.transf
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     initial_values: [ "border-box" ],
     other_values: [ "fill-box", "view-box" ],
     invalid_values: ["content-box", "padding-box", "stroke-box", "margin-box"]
   };
 }
 
-var basicShapeSVGBoxValues = [
-  "fill-box",
-  "stroke-box",
-  "view-box",
-
-  "polygon(evenodd, 20pt 20cm) fill-box",
-  "polygon(evenodd, 20ex 20pc) stroke-box",
-  "polygon(evenodd, 20rem 20in) view-box",
-];
-
-var basicShapeOtherValues = [
-  "polygon(20px 20px)",
-  "polygon(20px 20%)",
-  "polygon(20% 20%)",
-  "polygon(20rem 20em)",
-  "polygon(20cm 20mm)",
-  "polygon(20px 20px, 30px 30px)",
-  "polygon(20px 20px, 30% 30%, 30px 30px)",
-  "polygon(nonzero, 20px 20px, 30% 30%, 30px 30px)",
-  "polygon(evenodd, 20px 20px, 30% 30%, 30px 30px)",
-
-  "content-box",
-  "padding-box",
-  "border-box",
-  "margin-box",
-
-  "polygon(0 0) content-box",
-  "border-box polygon(0 0)",
-  "padding-box    polygon(   0  20px ,  30px    20% )  ",
-  "polygon(evenodd, 20% 20em) content-box",
-  "polygon(evenodd, 20vh 20em) padding-box",
-  "polygon(evenodd, 20vh calc(20% + 20em)) border-box",
-  "polygon(evenodd, 20vh 20vw) margin-box",
-
-  "circle()",
-  "circle(at center)",
-  "circle(at top left 20px)",
-  "circle(at bottom right)",
-  "circle(20%)",
-  "circle(300px)",
-  "circle(calc(20px + 30px))",
-  "circle(farthest-side)",
-  "circle(closest-side)",
-  "circle(closest-side at center)",
-  "circle(farthest-side at top)",
-  "circle(20px at top right)",
-  "circle(40% at 50% 100%)",
-  "circle(calc(20% + 20%) at right bottom)",
-  "circle() padding-box",
-
-  "ellipse()",
-  "ellipse(at center)",
-  "ellipse(at top left 20px)",
-  "ellipse(at bottom right)",
-  "ellipse(20% 20%)",
-  "ellipse(300px 50%)",
-  "ellipse(calc(20px + 30px) 10%)",
-  "ellipse(farthest-side closest-side)",
-  "ellipse(closest-side farthest-side)",
-  "ellipse(farthest-side farthest-side)",
-  "ellipse(closest-side closest-side)",
-  "ellipse(closest-side closest-side at center)",
-  "ellipse(20% farthest-side at top)",
-  "ellipse(20px 50% at top right)",
-  "ellipse(closest-side 40% at 50% 100%)",
-  "ellipse(calc(20% + 20%) calc(20px + 20cm) at right bottom)",
-
-  "inset(1px)",
-  "inset(20% -20px)",
-  "inset(20em 4rem calc(20% + 20px))",
-  "inset(20vh 20vw 20pt 3%)",
-  "inset(5px round 3px)",
-  "inset(1px 2px round 3px / 3px)",
-  "inset(1px 2px 3px round 3px 2em / 20%)",
-  "inset(1px 2px 3px 4px round 3px 2vw 20% / 20px 3em 2vh 20%)",
-];
-
-var basicShapeInvalidValues = [
-  "url(#test) url(#tes2)",
-  "polygon (0 0)",
-  "polygon(20px, 40px)",
-  "border-box content-box",
-  "polygon(0 0) polygon(0 0)",
-  "polygon(nonzero 0 0)",
-  "polygon(evenodd 20px 20px)",
-  "polygon(20px 20px, evenodd)",
-  "polygon(20px 20px, nonzero)",
-  "polygon(0 0) conten-box content-box",
-  "content-box polygon(0 0) conten-box",
-  "padding-box polygon(0 0) conten-box",
-  "polygon(0 0) polygon(0 0) content-box",
-  "polygon(0 0) content-box polygon(0 0)",
-  "polygon(0 0), content-box",
-  "polygon(0 0), polygon(0 0)",
-  "content-box polygon(0 0) polygon(0 0)",
-  "content-box polygon(0 0) none",
-  "none content-box polygon(0 0)",
-  "inherit content-box polygon(0 0)",
-  "initial polygon(0 0)",
-  "polygon(0 0) farthest-side",
-  "farthest-corner polygon(0 0)",
-  "polygon(0 0) farthest-corner",
-  "polygon(0 0) conten-box",
-  "polygon(0 0) polygon(0 0) farthest-corner",
-  "polygon(0 0) polygon(0 0) polygon(0 0)",
-  "border-box polygon(0, 0)",
-  "border-box padding-box",
-  "margin-box farthest-side",
-  "nonsense() border-box",
-  "border-box nonsense()",
-
-  "circle(at)",
-  "circle(at 20% 20% 30%)",
-  "circle(20px 2px at center)",
-  "circle(2at center)",
-  "circle(closest-corner)",
-  "circle(at center top closest-side)",
-  "circle(-20px)",
-  "circle(farthest-side closest-side)",
-  "circle(20% 20%)",
-  "circle(at farthest-side)",
-  "circle(calc(20px + rubbish))",
-
-  "ellipse(at)",
-  "ellipse(at 20% 20% 30%)",
-  "ellipse(20px at center)",
-  "ellipse(-20px 20px)",
-  "ellipse(closest-corner farthest-corner)",
-  "ellipse(20px -20px)",
-  "ellipse(-20px -20px)",
-  "ellipse(farthest-side)",
-  "ellipse(20%)",
-  "ellipse(at farthest-side farthest-side)",
-  "ellipse(at top left calc(20px + rubbish))",
-
-  "polygon(at)",
-  "polygon(at 20% 20% 30%)",
-  "polygon(20px at center)",
-  "polygon(2px 2at center)",
-  "polygon(closest-corner farthest-corner)",
-  "polygon(at center top closest-side closest-side)",
-  "polygon(40% at 50% 100%)",
-  "polygon(40% farthest-side 20px at 50% 100%)",
-
-  "inset()",
-  "inset(round)",
-  "inset(round 3px)",
-  "inset(1px round 1px 2px 3px 4px 5px)",
-  "inset(1px 2px 3px 4px 5px)",
-  "inset(1px, round 3px)",
-  "inset(1px, 2px)",
-  "inset(1px 2px, 3px)",
-  "inset(1px at 3px)",
-  "inset(1px round 1px // 2px)",
-  "inset(1px round)",
-  "inset(1px calc(2px + rubbish))",
-  "inset(1px round 2px calc(3px + rubbish))",
-];
-
-var basicShapeUnbalancedValues = [
-  "polygon(30% 30%",
-  "polygon(nonzero, 20% 20px",
-  "polygon(evenodd, 20px 20px",
-
-  "circle(",
-  "circle(40% at 50% 100%",
-  "ellipse(",
-  "ellipse(40% at 50% 100%",
-
-  "inset(1px",
-  "inset(1px 2px",
-  "inset(1px 2px 3px",
-  "inset(1px 2px 3px 4px",
-  "inset(1px 2px 3px 4px round 5px",
-  "inset(1px 2px 3px 4px round 5px / 6px",
-];
-
-if (IsCSSPropertyPrefEnabled("layout.css.clip-path-shapes.enabled")) {
-  gCSSProperties["clip-path"] = {
-    domProp: "clipPath",
-    inherited: false,
-    type: CSS_TYPE_LONGHAND,
-    initial_values: [ "none" ],
-    other_values: [
-      // SVG reference clip-path
-      "url(#my-clip-path)",
-    ].concat(basicShapeSVGBoxValues).concat(basicShapeOtherValues),
-    invalid_values: basicShapeInvalidValues,
-    unbalanced_values: basicShapeUnbalancedValues,
-  };
-}
-
 if (IsCSSPropertyPrefEnabled("layout.css.shape-outside.enabled")) {
   gCSSProperties["shape-outside"] = {
     domProp: "shapeOutside",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     applies_to_first_letter: true,
     initial_values: [ "none" ],
     other_values: [
--- a/layout/style/test/test_clip-path_polygon.html
+++ b/layout/style/test/test_clip-path_polygon.html
@@ -21,22 +21,20 @@ div {
 <title>clip-path with polygon() hit test</title>
 <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
 </head>
 <div id="a"></div>
 <p style="margin-top: 110px">
 <script>
 var a = document.getElementById("a");
-if (SpecialPowers.getBoolPref("layout.css.clip-path-shapes.enabled")) {
-  isnot(a, document.elementFromPoint(199, 199), "a shouldn't be found");
-  isnot(a, document.elementFromPoint(199, 250), "a shouldn't be found");
-  isnot(a, document.elementFromPoint(250, 199), "a shouldn't be found");
-  isnot(a, document.elementFromPoint(255, 255), "a shouldn't be found");
-  isnot(a, document.elementFromPoint(301, 200), "a shouldn't be found");
-  isnot(a, document.elementFromPoint(200, 301), "a shouldn't be found");
-}
+isnot(a, document.elementFromPoint(199, 199), "a shouldn't be found");
+isnot(a, document.elementFromPoint(199, 250), "a shouldn't be found");
+isnot(a, document.elementFromPoint(250, 199), "a shouldn't be found");
+isnot(a, document.elementFromPoint(255, 255), "a shouldn't be found");
+isnot(a, document.elementFromPoint(301, 200), "a shouldn't be found");
+isnot(a, document.elementFromPoint(200, 301), "a shouldn't be found");
 is(a, document.elementFromPoint(200, 200), "a should be found");
 is(a, document.elementFromPoint(299, 200), "a should be found");
 is(a, document.elementFromPoint(200, 299), "a should be found");
 is(a, document.elementFromPoint(250, 250), "a should be found");
 </script>
 </html>
--- a/layout/style/test/test_transitions_per_property.html
+++ b/layout/style/test/test_transitions_per_property.html
@@ -1558,19 +1558,16 @@ function filter_function_list_equals(com
       Math.abs(parseFloat(functionValue) - expected) > tolerance) {
       return false;
     }
   }
   return true;
 }
 
 function test_clip_path_transition(prop) {
-  if (!SpecialPowers.getBoolPref("layout.css.clip-path-shapes.enabled")) {
-    return;
-  }
   for (var i in clipPathTests) {
     var test = clipPathTests[i];
     div.style.setProperty("transition-property", "none", "");
     div.style.setProperty(prop, test.start, "");
     cs.getPropertyValue(prop);
     div.style.setProperty("transition-property", prop, "");
     div.style.setProperty(prop, test.end, "");
     var actual = cs.getPropertyValue(prop);
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -2925,19 +2925,16 @@ pref("layout.css.scroll-snap.proximity-t
 pref("layout.css.scroll-snap.prediction-max-velocity", 2000);
 
 // When selecting the snap point for CSS scroll snapping, the velocity of the
 // scroll frame is integrated over this duration, in seconds.  The snap point
 // best suited for this position is selected, enabling the user to perform fling
 // gestures.
 pref("layout.css.scroll-snap.prediction-sensitivity", "0.750");
 
-// Is support for basic shapes in clip-path enabled?
-pref("layout.css.clip-path-shapes.enabled", true);
-
 // Is support for DOMPoint enabled?
 pref("layout.css.DOMPoint.enabled", true);
 
 // Is support for DOMQuad enabled?
 pref("layout.css.DOMQuad.enabled", true);
 
 // Is support for DOMMatrix enabled?
 pref("layout.css.DOMMatrix.enabled", true);
deleted file mode 100644
--- a/testing/web-platform/meta/css-shapes/__dir__.ini
+++ /dev/null
@@ -1,1 +0,0 @@
-prefs: [layout.css.clip-path-shapes.enabled:true]