Backed out 4 changesets (bug 1422839) for landing stylo changes on inbound r=backout a=backout
authorshindli <shindli@mozilla.com>
Tue, 05 Dec 2017 17:00:33 +0200
changeset 395170 a928be5dacc3b544e29c0612b3f8cda6447df802
parent 395169 a426845468e729a29229c3f181837118b18ca9cf
child 395171 78a9a1962684f7572fa9f1d832335ca950edc312
child 395215 99a274ffa70176bf94854619e1c987abc749237b
child 395241 f2b3bed28c503dd0b77330646d8cb3e1f0dbbf93
push id98021
push usernbeleuzu@mozilla.com
push dateTue, 05 Dec 2017 23:49:57 +0000
treeherdermozilla-inbound@78a9a1962684 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbackout, backout
bugs1422839
milestone59.0a1
backs outff9d1a10cb0b1fd91297491ed6c5ae01d4a09a5e
fc039432e4a62acd234c115025f1955d3d3d3ab2
83101ef21e45eeecc9410b754699949c57540be9
436d102343668d07c92e4be00e90d2d31f89c599
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
Backed out 4 changesets (bug 1422839) for landing stylo changes on inbound r=backout a=backout Backed out changeset ff9d1a10cb0b (bug 1422839) Backed out changeset fc039432e4a6 (bug 1422839) Backed out changeset 83101ef21e45 (bug 1422839) Backed out changeset 436d10234366 (bug 1422839)
devtools/shared/css/generated/properties-db.js
layout/base/PresShell.cpp
layout/generic/nsFrame.cpp
layout/generic/nsGfxScrollFrame.cpp
layout/reftests/box-properties/overflow-clip-box-1-ref.html
layout/reftests/box-properties/overflow-clip-box-1.html
layout/reftests/box-properties/overflow-clip-box-2-ref.html
layout/reftests/box-properties/overflow-clip-box-2.html
layout/reftests/box-properties/reftest.list
layout/style/Declaration.cpp
layout/style/nsCSSParser.cpp
layout/style/nsCSSPropList.h
layout/style/nsCSSProps.cpp
layout/style/nsComputedDOMStyle.cpp
layout/style/nsComputedDOMStyle.h
layout/style/nsComputedDOMStylePropertyList.h
layout/style/nsRuleNode.cpp
layout/style/nsStyleStruct.cpp
layout/style/nsStyleStruct.h
layout/style/test/property_database.js
servo/components/style/properties/longhand/box.mako.rs
servo/components/style/properties/shorthand/box.mako.rs
testing/web-platform/tests/web-animations/animation-model/animation-types/property-list.js
--- a/devtools/shared/css/generated/properties-db.js
+++ b/devtools/shared/css/generated/properties-db.js
@@ -3048,18 +3048,17 @@ exports.CSS_PROPERTIES = {
       "outline-color",
       "outline-offset",
       "-moz-outline-radius-bottomleft",
       "-moz-outline-radius-bottomright",
       "-moz-outline-radius-topleft",
       "-moz-outline-radius-topright",
       "outline-style",
       "outline-width",
-      "overflow-clip-box-block",
-      "overflow-clip-box-inline",
+      "overflow-clip-box",
       "overflow-x",
       "overflow-y",
       "padding-block-end",
       "padding-block-start",
       "padding-bottom",
       "padding-inline-end",
       "padding-inline-start",
       "padding-left",
@@ -9951,24 +9950,16 @@ exports.PREFERENCES = [
     "-moz-osx-font-smoothing",
     "layout.css.osx-font-smoothing.enabled"
   ],
   [
     "overflow-clip-box",
     "layout.css.overflow-clip-box.enabled"
   ],
   [
-    "overflow-clip-box-block",
-    "layout.css.overflow-clip-box.enabled"
-  ],
-  [
-    "overflow-clip-box-inline",
-    "layout.css.overflow-clip-box.enabled"
-  ],
-  [
     "paint-order",
     "svg.paint-order.enabled"
   ],
   [
     "scroll-behavior",
     "layout.css.scroll-behavior.property-enabled"
   ],
   [
--- a/layout/base/PresShell.cpp
+++ b/layout/base/PresShell.cpp
@@ -3622,37 +3622,19 @@ PresShell::ScrollFrameRectIntoView(nsIFr
   nsIFrame* container = aFrame;
   // Walk up the frame hierarchy scrolling the rect into view and
   // keeping rect relative to container
   do {
     nsIScrollableFrame* sf = do_QueryFrame(container);
     if (sf) {
       nsPoint oldPosition = sf->GetScrollPosition();
       nsRect targetRect = rect;
-      // Inflate the scrolled rect by the container's padding in each dimension,
-      // unless we have 'overflow-clip-box-*: content-box' in that dimension.
-      auto* disp = container->StyleDisplay();
-      if (disp->mOverflowClipBoxBlock ==
-            NS_STYLE_OVERFLOW_CLIP_BOX_CONTENT_BOX ||
-          disp->mOverflowClipBoxInline ==
+      if (container->StyleDisplay()->mOverflowClipBox ==
             NS_STYLE_OVERFLOW_CLIP_BOX_CONTENT_BOX) {
-        WritingMode wm = container->GetWritingMode();
-        bool cbH = (wm.IsVertical() ? disp->mOverflowClipBoxBlock
-                                    : disp->mOverflowClipBoxInline) ==
-                   NS_STYLE_OVERFLOW_CLIP_BOX_CONTENT_BOX;
-        bool cbV = (wm.IsVertical() ? disp->mOverflowClipBoxInline
-                                    : disp->mOverflowClipBoxBlock) ==
-                   NS_STYLE_OVERFLOW_CLIP_BOX_CONTENT_BOX;
         nsMargin padding = container->GetUsedPadding();
-        if (!cbH) {
-          padding.left = padding.right = nscoord(0);
-        }
-        if (!cbV) {
-          padding.top = padding.bottom = nscoord(0);
-        }
         targetRect.Inflate(padding);
       }
       ScrollToShowRect(sf, targetRect - sf->GetScrolledFrame()->GetPosition(),
                        aVertical, aHorizontal, aFlags);
       nsPoint newPosition = sf->LastScrollDestination();
       // If the scroll position increased, that means our content moved up,
       // so our rect's offset should decrease
       rect += oldPosition - newPosition;
--- a/layout/generic/nsFrame.cpp
+++ b/layout/generic/nsFrame.cpp
@@ -2431,44 +2431,24 @@ ApplyOverflowClipping(nsDisplayListBuild
   // is required by comboboxes which make their display text (an inline frame)
   // have clipping.
   if (!nsFrame::ShouldApplyOverflowClipping(aFrame, aDisp)) {
     return false;
   }
   nsRect clipRect;
   bool haveRadii = false;
   nscoord radii[8];
-  auto* disp = aFrame->StyleDisplay();
-  if (disp->mOverflowClipBoxBlock == NS_STYLE_OVERFLOW_CLIP_BOX_PADDING_BOX &&
-      disp->mOverflowClipBoxInline == NS_STYLE_OVERFLOW_CLIP_BOX_PADDING_BOX) {
+  if (aFrame->StyleDisplay()->mOverflowClipBox ==
+        NS_STYLE_OVERFLOW_CLIP_BOX_PADDING_BOX) {
     clipRect = aFrame->GetPaddingRectRelativeToSelf() +
       aBuilder->ToReferenceFrame(aFrame);
     haveRadii = aFrame->GetPaddingBoxBorderRadii(radii);
   } else {
-    // Only deflate the padding if we clip to the content-box in that axis.
-    auto wm = aFrame->GetWritingMode();
-    bool cbH = (wm.IsVertical() ? disp->mOverflowClipBoxBlock
-                                : disp->mOverflowClipBoxInline) ==
-               NS_STYLE_OVERFLOW_CLIP_BOX_CONTENT_BOX;
-    bool cbV = (wm.IsVertical() ? disp->mOverflowClipBoxInline
-                                : disp->mOverflowClipBoxBlock) ==
-               NS_STYLE_OVERFLOW_CLIP_BOX_CONTENT_BOX;
-    nsMargin bp = aFrame->GetUsedPadding();
-    if (!cbH) {
-      bp.left = bp.right = nscoord(0);
-    }
-    if (!cbV) {
-      bp.top = bp.bottom = nscoord(0);
-    }
-
-    bp += aFrame->GetUsedBorder();
-    bp.ApplySkipSides(aFrame->GetSkipSides());
-    nsRect rect(nsPoint(0, 0), aFrame->GetSize());
-    rect.Deflate(bp);
-    clipRect = rect + aBuilder->ToReferenceFrame(aFrame);
+    clipRect = aFrame->GetContentRectRelativeToSelf() +
+      aBuilder->ToReferenceFrame(aFrame);
     // XXX border-radius
   }
   aClipState.ClipContainingBlockDescendantsExtra(clipRect, haveRadii ? radii : nullptr);
   return true;
 }
 
 #ifdef DEBUG
 static void PaintDebugBorder(nsIFrame* aFrame, DrawTarget* aDrawTarget,
--- a/layout/generic/nsGfxScrollFrame.cpp
+++ b/layout/generic/nsGfxScrollFrame.cpp
@@ -570,32 +570,21 @@ nsHTMLScrollFrame::ReflowScrolledFrame(S
   // setting their mOverflowArea. This is wrong because every frame should
   // always set mOverflowArea. In fact nsPluginFrame and nsFrameFrame don't
   // support the 'outline' property because of this. Rather than fix the world
   // right now, just fix up the overflow area if necessary. Note that we don't
   // check HasOverflowRect() because it could be set even though the
   // overflow area doesn't include the frame bounds.
   aMetrics->UnionOverflowAreasWithDesiredBounds();
 
-  auto* disp = StyleDisplay();
-  if (MOZ_UNLIKELY(disp->mOverflowClipBoxBlock ==
-                     NS_STYLE_OVERFLOW_CLIP_BOX_CONTENT_BOX ||
-                   disp->mOverflowClipBoxInline ==
+  if (MOZ_UNLIKELY(StyleDisplay()->mOverflowClipBox ==
                      NS_STYLE_OVERFLOW_CLIP_BOX_CONTENT_BOX)) {
     nsOverflowAreas childOverflow;
     nsLayoutUtils::UnionChildOverflow(mHelper.mScrolledFrame, childOverflow);
     nsRect childScrollableOverflow = childOverflow.ScrollableOverflow();
-    if (disp->mOverflowClipBoxBlock == NS_STYLE_OVERFLOW_CLIP_BOX_PADDING_BOX) {
-      padding.BStart(wm) = nscoord(0);
-      padding.BEnd(wm) = nscoord(0);
-    }
-    if (disp->mOverflowClipBoxInline == NS_STYLE_OVERFLOW_CLIP_BOX_PADDING_BOX) {
-      padding.IStart(wm) = nscoord(0);
-      padding.IEnd(wm) = nscoord(0);
-    }
     childScrollableOverflow.Inflate(padding.GetPhysicalMargin(wm));
     nsRect contentArea =
       wm.IsVertical() ? nsRect(0, 0, computedBSize, availISize)
                       : nsRect(0, 0, availISize, computedBSize);
     if (!contentArea.Contains(childScrollableOverflow)) {
       aMetrics->mOverflowAreas.ScrollableOverflow() = childScrollableOverflow;
     }
   }
@@ -3464,41 +3453,25 @@ ScrollFrameHelper::BuildDisplayList(nsDi
   if (disp && (disp->mWillChangeBitField & NS_STYLE_WILL_CHANGE_SCROLL)) {
     aBuilder->AddToWillChangeBudget(mOuter, GetScrollPositionClampingScrollPortSize());
   }
 
   mScrollParentID = aBuilder->GetCurrentScrollParentId();
 
   Maybe<nsRect> contentBoxClip;
   Maybe<const DisplayItemClipChain*> extraContentBoxClipForNonCaretContent;
-  if (MOZ_UNLIKELY(disp->mOverflowClipBoxBlock ==
-                     NS_STYLE_OVERFLOW_CLIP_BOX_CONTENT_BOX ||
-                   disp->mOverflowClipBoxInline ==
-                      NS_STYLE_OVERFLOW_CLIP_BOX_CONTENT_BOX)) {
-    WritingMode wm = mScrolledFrame->GetWritingMode();
-    bool cbH = (wm.IsVertical() ? disp->mOverflowClipBoxBlock
-                                : disp->mOverflowClipBoxInline) ==
-               NS_STYLE_OVERFLOW_CLIP_BOX_CONTENT_BOX;
-    bool cbV = (wm.IsVertical() ? disp->mOverflowClipBoxInline
-                                : disp->mOverflowClipBoxBlock) ==
-               NS_STYLE_OVERFLOW_CLIP_BOX_CONTENT_BOX;
+  if (MOZ_UNLIKELY(mOuter->StyleDisplay()->mOverflowClipBox ==
+                     NS_STYLE_OVERFLOW_CLIP_BOX_CONTENT_BOX)) {
     // We only clip if there is *scrollable* overflow, to avoid clipping
     // *visual* overflow unnecessarily.
     nsRect clipRect = mScrollPort + aBuilder->ToReferenceFrame(mOuter);
     nsRect so = mScrolledFrame->GetScrollableOverflowRect();
-    if ((cbH && (clipRect.width != so.width || so.x < 0)) ||
-        (cbV && (clipRect.height != so.height || so.y < 0))) {
-      nsMargin padding = mOuter->GetUsedPadding();
-      if (!cbH) {
-        padding.left = padding.right = nscoord(0);
-      }
-      if (!cbV) {
-        padding.top = padding.bottom = nscoord(0);
-      }
-      clipRect.Deflate(padding);
+    if (clipRect.width != so.width || clipRect.height != so.height ||
+        so.x < 0 || so.y < 0) {
+      clipRect.Deflate(mOuter->GetUsedPadding());
 
       // The non-inflated clip needs to be set on all non-caret items.
       // We prepare an extra DisplayItemClipChain here that will be intersected
       // with those items after they've been created.
       const ActiveScrolledRoot* asr = aBuilder->CurrentActiveScrolledRoot();
 
       DisplayItemClip newClip;
       newClip.SetTo(clipRect);
deleted file mode 100644
--- a/layout/reftests/box-properties/overflow-clip-box-1-ref.html
+++ /dev/null
@@ -1,99 +0,0 @@
-<!DOCTYPE HTML>
-<!--
-     Any copyright is dedicated to the Public Domain.
-     http://creativecommons.org/publicdomain/zero/1.0/
--->
-<html><head>
-  <meta charset="utf-8">
-  <title>Reference: Testcase for bug 1422839</title>
-  <style type="text/css">
-html,body {
-  color:black; background-color:white; font:16px/1 monospace; line-height:1; padding:0; margin:0;
-}
-
-div {
-  width: 0;
-  height: 0;
-  white-space: pre;
-  overflow: hidden;
-  border: 1px solid;
-  width: 100px;
-  height: 100px;
-}
-.h > div { height: 120px; }
-.w > div { width: 120px; }
-
-c {
-  display: block;
-  width: 100px;
-  height: 40px;
-  border: 1px solid black;
-}
-
-.float { float: left; }
-
-x {
-  display: block;
-  overflow: hidden;
-  padding-left: 50px;
-  padding-top: 50px;
-  width: 50px;
-  height: 50px;
-}
-
-.w x { width: 20px; }
-.h x { height: 20px; }
-.w.h x {
-  background-color: lime;
-  background-clip: content-box;
-  overflow: visible;
-}
-y {
-  display: block;
-  overflow: hidden;
-  width: 20px;
-  height: 20px;
-}
-
-  </style>
-</head>
-<body>
-
-<span class="float">
-<div><x><c></c></x></div>
-<div></div>
-<div></div>
-<div></div>
-<div><x><c></c></x></div>
-<div></div>
-</span>
-
-<span class="float h">
-<div><x style="height:70px"><c></c></x></div>
-<div></div>
-<div></div>
-<div><x><c></c></x></div>
-<div><x style="height:70px"><c></c></x></div>
-<div></div>
-</span>
-
-<span class="float w">
-<div><x style="width:70px"><c></c></x></div>
-<div></div>
-<div><x><c></c></x></div>
-<div></div>
-<div><x style="width:70px"><c></c></x></div>
-<div></div>
-</span>
-
-<span class="float w h">
-<div><x><y style="height:70px; width:70px"><c></c></y></x></div>
-<div><x><y><c></c></y></x></div>
-<div><x><y style="height:70px"><c></c></y></x></div>
-<div><x><y style="width:70px"><c></c></y></x></div>
-<div><x><y style="height:70px; width:70px"><c></c></y></x></div>
-<div><x><y><c></c></y></x></div>
-</span>
-
-</body>
-</html>
deleted file mode 100644
--- a/layout/reftests/box-properties/overflow-clip-box-1.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE HTML>
-<!--
-     Any copyright is dedicated to the Public Domain.
-     http://creativecommons.org/publicdomain/zero/1.0/
--->
-<html><head>
-  <meta charset="utf-8">
-  <title>Testcase for bug 1422839</title>
-  <style type="text/css">
-html,body {
-  color:black; background-color:white; font:16px/1 monospace; line-height:1; padding:0; margin:0;
-}
-
-div {
-  width: 0;
-  height: 0;
-  padding: 50px;
-  white-space: pre;
-  overflow: hidden;
-  background-color: lime;
-  background-clip: content-box;
-  border: 1px solid;
-}
-
-.float { float: left; }
-.w > div { width: 20px; }
-.h > div { height: 20px; }
-
-c {
-  display: block;
-  width: 100px;
-  height: 40px;
-  border: 1px solid black;
-}
-  </style>
-</head>
-<body>
-
-<span class="float">
-<div style="overflow-clip-box: padding-box"><c></c></div>
-<div style="overflow-clip-box: content-box"><c></c></div>
-<div style="overflow-clip-box: padding-box content-box"><c></c></div>
-<div style="overflow-clip-box: content-box padding-box"><c></c></div>
-<div style="overflow-clip-box: padding-box padding-box"><c></c></div>
-<div style="overflow-clip-box: content-box content-box"><c></c></div>
-</span>
-
-<span class="float h">
-<div style="overflow-clip-box: padding-box"><c></c></div>
-<div style="overflow-clip-box: content-box"><c></c></div>
-<div style="overflow-clip-box: padding-box content-box"><c></c></div>
-<div style="overflow-clip-box: content-box padding-box"><c></c></div>
-<div style="overflow-clip-box: padding-box padding-box"><c></c></div>
-<div style="overflow-clip-box: content-box content-box"><c></c></div>
-</span>
-
-<span class="float w">
-<div style="overflow-clip-box: padding-box"><c></c></div>
-<div style="overflow-clip-box: content-box"><c></c></div>
-<div style="overflow-clip-box: padding-box content-box"><c></c></div>
-<div style="overflow-clip-box: content-box padding-box"><c></c></div>
-<div style="overflow-clip-box: padding-box padding-box"><c></c></div>
-<div style="overflow-clip-box: content-box content-box"><c></c></div>
-</span>
-
-<span class="float w h">
-<div style="overflow-clip-box: padding-box"><c></c></div>
-<div style="overflow-clip-box: content-box"><c></c></div>
-<div style="overflow-clip-box: padding-box content-box"><c></c></div>
-<div style="overflow-clip-box: content-box padding-box"><c></c></div>
-<div style="overflow-clip-box: padding-box padding-box"><c></c></div>
-<div style="overflow-clip-box: content-box content-box"><c></c></div>
-</span>
-
-</body>
-</html>
deleted file mode 100644
--- a/layout/reftests/box-properties/overflow-clip-box-2-ref.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<!DOCTYPE HTML>
-<!--
-     Any copyright is dedicated to the Public Domain.
-     http://creativecommons.org/publicdomain/zero/1.0/
--->
-<html><head>
-  <meta charset="utf-8">
-  <title>Reference: Testcase for bug 1422839</title>
-  <style type="text/css">
-html,body {
-  color:black; background-color:white; font:16px/1 monospace; line-height:1; padding:0; margin:0;
-}
-
-div {
-  width: 0;
-  height: 0;
-  white-space: pre;
-  overflow: hidden;
-  border: 1px solid;
-  width: 100px;
-  height: 100px;
-  direction: rtl;
-}
-.h > div { height: 120px; }
-.w > div { width: 120px; }
-
-c {
-  display: block;
-  width: 100px;
-  height: 40px;
-  border: 1px solid black;
-  margin-top: -10px;
-}
-
-.float { float: left; }
-
-x {
-  display: block;
-  overflow: hidden;
-  padding-right: 50px;
-  padding-top: 50px;
-  width: 50px;
-  height: 50px;
-}
-
-.w x { width: 20px; }
-.h x { height: 20px; }
-.w.h x {
-  background-color: lime;
-  background-clip: content-box;
-  overflow: visible;
-}
-y {
-  display: block;
-  overflow: hidden;
-  width: 20px;
-  height: 20px;
-}
-
-  </style>
-</head>
-<body>
-
-<span class="float">
-<div><x><c></c></x></div>
-<div></div>
-<div></div>
-<div></div>
-<div><x><c></c></x></div>
-<div></div>
-</span>
-
-<span class="float h">
-<div><x style="height:70px"><c></c></x></div>
-<div></div>
-<div></div>
-<div><x style="height:20px"><c style="margin:0; border-top-width:0"></c></x></div>
-<div><x style="height:70px"><c></c></x></div>
-<div></div>
-</span>
-
-<span class="float w">
-<div><x style="width:70px"><c></c></x></div>
-<div></div>
-<div><x><c></c></x></div>
-<div></div>
-<div><x style="width:70px"><c></c></x></div>
-<div></div>
-</span>
-
-<span class="float w h">
-<div><x><y style="height:70px; width:70px; margin-top:-10px"><c style="margin-top:0px"></c></y></x></div>
-<div><x><y><c></c></y></x></div>
-<div><x><y style="height:70px; margin-top:-10px"><c style="margin-top:0px"></c></y></x></div>
-<div><x><y style="width:70px"><c></c></y></x></div>
-<div><x><y style="height:70px; width:70px; margin-top:-10px"><c style="margin-top:0px"></c></y></x></div>
-<div><x><y><c></c></y></x></div>
-</span>
-
-</body>
-</html>
deleted file mode 100644
--- a/layout/reftests/box-properties/overflow-clip-box-2.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<!DOCTYPE HTML>
-<!--
-     Any copyright is dedicated to the Public Domain.
-     http://creativecommons.org/publicdomain/zero/1.0/
--->
-<html><head>
-  <meta charset="utf-8">
-  <title>Testcase for bug 1422839</title>
-  <style type="text/css">
-html,body {
-  color:black; background-color:white; font:16px/1 monospace; line-height:1; padding:0; margin:0;
-}
-
-div {
-  width: 0;
-  height: 0;
-  padding: 50px;
-  white-space: pre;
-  overflow: hidden;
-  background-color: lime;
-  background-clip: content-box;
-  border: 1px solid;
-  direction: rtl;
-}
-
-.float { float: left; }
-.w > div { width: 20px; }
-.h > div { height: 20px; }
-
-c {
-  display: block;
-  width: 100px;
-  height: 40px;
-  border: 1px solid black;
-  margin-top: -10px;
-}
-  </style>
-</head>
-<body>
-
-<span class="float">
-<div style="overflow-clip-box: padding-box"><c></c></div>
-<div style="overflow-clip-box: content-box"><c></c></div>
-<div style="overflow-clip-box: padding-box content-box"><c></c></div>
-<div style="overflow-clip-box: content-box padding-box"><c></c></div>
-<div style="overflow-clip-box: padding-box padding-box"><c></c></div>
-<div style="overflow-clip-box: content-box content-box"><c></c></div>
-</span>
-
-<span class="float h">
-<div style="overflow-clip-box: padding-box"><c></c></div>
-<div style="overflow-clip-box: content-box"><c></c></div>
-<div style="overflow-clip-box: padding-box content-box"><c></c></div>
-<div style="overflow-clip-box: content-box padding-box"><c></c></div>
-<div style="overflow-clip-box: padding-box padding-box"><c></c></div>
-<div style="overflow-clip-box: content-box content-box"><c></c></div>
-</span>
-
-<span class="float w">
-<div style="overflow-clip-box: padding-box"><c></c></div>
-<div style="overflow-clip-box: content-box"><c></c></div>
-<div style="overflow-clip-box: padding-box content-box"><c></c></div>
-<div style="overflow-clip-box: content-box padding-box"><c></c></div>
-<div style="overflow-clip-box: padding-box padding-box"><c></c></div>
-<div style="overflow-clip-box: content-box content-box"><c></c></div>
-</span>
-
-<span class="float w h">
-<div style="overflow-clip-box: padding-box"><c></c></div>
-<div style="overflow-clip-box: content-box"><c></c></div>
-<div style="overflow-clip-box: padding-box content-box"><c></c></div>
-<div style="overflow-clip-box: content-box padding-box"><c></c></div>
-<div style="overflow-clip-box: padding-box padding-box"><c></c></div>
-<div style="overflow-clip-box: content-box content-box"><c></c></div>
-</span>
-
-</body>
-</html>
--- a/layout/reftests/box-properties/reftest.list
+++ b/layout/reftests/box-properties/reftest.list
@@ -23,10 +23,8 @@
 == abspos-replaced-width-offset-margin.html abspos-replaced-width-offset-margin-ref.html
 == CSS21-t100301.xhtml CSS21-t100301-ref.xhtml
 == CSS21-t100303.xhtml CSS21-t100303-ref.xhtml
 == CSS21-t100303-simple.xhtml CSS21-t100303-ref.xhtml
 == CSS21-t100801-vertical-align.xhtml CSS21-t100801-vertical-align-ref.xhtml
 == clip-auto.html clip-auto-ref.html
 == clip-rect-auto.html clip-rect-auto-ref.html
 == width-rounding.html width-rounding-ref.html
-pref(layout.css.overflow-clip-box.enabled,true) == overflow-clip-box-1.html overflow-clip-box-1-ref.html
-pref(layout.css.overflow-clip-box.enabled,true) == overflow-clip-box-2.html overflow-clip-box-2-ref.html
--- a/layout/style/Declaration.cpp
+++ b/layout/style/Declaration.cpp
@@ -1409,17 +1409,16 @@ Declaration::GetPropertyValueInternal(
       const nsCSSValue* align = data->ValueFor(subprops[0]);
       const nsCSSValue* justify = data->ValueFor(subprops[1]);
       if (!align || !IsSingleValue(*align) ||
           !justify || !IsSingleValue(*justify)) {
         return; // Not serializable, bail.
       }
       MOZ_FALLTHROUGH;
     }
-    case eCSSProperty_overflow_clip_box:
     case eCSSProperty_grid_gap: {
       const nsCSSPropertyID* subprops =
         nsCSSProps::SubpropertyEntryFor(aProperty);
       MOZ_ASSERT(subprops[2] == eCSSProperty_UNKNOWN,
                  "must have exactly two subproperties");
 
       nsAutoString val1, val2;
       AppendValueToString(subprops[0], val1);
--- a/layout/style/nsCSSParser.cpp
+++ b/layout/style/nsCSSParser.cpp
@@ -932,17 +932,16 @@ protected:
   bool ParseListStyleType(nsCSSValue& aValue);
   bool ParseMargin();
   bool ParseClipPath(nsCSSValue& aValue);
   bool ParseTransform(bool aIsPrefixed, nsCSSPropertyID aProperty,
                       bool aDisallowRelativeValues = false);
   bool ParseObjectPosition();
   bool ParseOutline();
   bool ParseOverflow();
-  bool ParseOverflowClipBox();
   bool ParsePadding();
   bool ParseQuotes();
   bool ParseTextAlign(nsCSSValue& aValue,
                       const KTableEntry aTable[]);
   bool ParseTextAlign(nsCSSValue& aValue);
   bool ParseTextAlignLast(nsCSSValue& aValue);
   bool ParseTextDecoration();
   bool ParseTextDecorationLine(nsCSSValue& aValue);
@@ -11770,18 +11769,16 @@ CSSParserImpl::ParsePropertyByFunction(n
   case eCSSProperty_margin:
     return ParseMargin();
   case eCSSProperty_object_position:
     return ParseObjectPosition();
   case eCSSProperty_outline:
     return ParseOutline();
   case eCSSProperty_overflow:
     return ParseOverflow();
-  case eCSSProperty_overflow_clip_box:
-    return ParseOverflowClipBox();
   case eCSSProperty_padding:
     return ParsePadding();
   case eCSSProperty_quotes:
     return ParseQuotes();
   case eCSSProperty_text_decoration:
     return ParseTextDecoration();
   case eCSSProperty_text_emphasis:
     return ParseTextEmphasis();
@@ -15343,41 +15340,16 @@ CSSParserImpl::ParseOverflow()
         break;
     }
   AppendValue(eCSSProperty_overflow_x, overflowX);
   AppendValue(eCSSProperty_overflow_y, overflowY);
   return true;
 }
 
 bool
-CSSParserImpl::ParseOverflowClipBox()
-{
-  nsCSSValue first;
-  if (ParseSingleTokenVariant(first, VARIANT_INHERIT, nullptr)) {
-    AppendValue(eCSSProperty_overflow_clip_box_block, first);
-    AppendValue(eCSSProperty_overflow_clip_box_inline, first);
-    return true;
-  }
-  const auto& kTable = nsCSSProps::kOverflowClipBoxKTable;
-  auto result = ParseVariant(first, VARIANT_KEYWORD, kTable);
-  if (result != CSSParseResult::Ok) {
-    return false;
-  }
-  nsCSSValue second;
-  result = ParseVariant(second, VARIANT_KEYWORD, kTable);
-  if (result == CSSParseResult::Error) {
-    return false;
-  }
-  AppendValue(eCSSProperty_overflow_clip_box_block, first);
-  AppendValue(eCSSProperty_overflow_clip_box_inline,
-              result == CSSParseResult::NotFound ? first : second);
-  return true;
-}
-
-bool
 CSSParserImpl::ParsePadding()
 {
   static const nsCSSPropertyID kPaddingSideIDs[] = {
     eCSSProperty_padding_top,
     eCSSProperty_padding_right,
     eCSSProperty_padding_bottom,
     eCSSProperty_padding_left
   };
--- a/layout/style/nsCSSPropList.h
+++ b/layout/style/nsCSSPropList.h
@@ -3259,40 +3259,20 @@ CSS_PROP_OUTLINE(
     offsetof(nsStyleOutline, mOutlineWidth),
     eStyleAnimType_nscoord)
 CSS_PROP_SHORTHAND(
     overflow,
     overflow,
     Overflow,
     CSS_PROPERTY_PARSE_FUNCTION,
     "")
-CSS_PROP_SHORTHAND(
+CSS_PROP_DISPLAY(
     overflow-clip-box,
     overflow_clip_box,
     OverflowClipBox,
-    CSS_PROPERTY_PARSE_FUNCTION |
-        CSS_PROPERTY_ENABLED_IN_UA_SHEETS |
-        CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
-    "layout.css.overflow-clip-box.enabled")
-CSS_PROP_DISPLAY(
-    overflow-clip-box-block,
-    overflow_clip_box_block,
-    OverflowClipBoxBlock,
-    CSS_PROPERTY_PARSE_VALUE |
-        CSS_PROPERTY_ENABLED_IN_UA_SHEETS |
-        CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
-    "layout.css.overflow-clip-box.enabled",
-    VARIANT_HK,
-    kOverflowClipBoxKTable,
-    CSS_PROP_NO_OFFSET,
-    eStyleAnimType_Discrete)
-CSS_PROP_DISPLAY(
-    overflow-clip-box-inline,
-    overflow_clip_box_inline,
-    OverflowClipBoxInline,
     CSS_PROPERTY_PARSE_VALUE |
         CSS_PROPERTY_ENABLED_IN_UA_SHEETS |
         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
     "layout.css.overflow-clip-box.enabled",
     VARIANT_HK,
     kOverflowClipBoxKTable,
     CSS_PROP_NO_OFFSET,
     eStyleAnimType_Discrete)
--- a/layout/style/nsCSSProps.cpp
+++ b/layout/style/nsCSSProps.cpp
@@ -2925,22 +2925,16 @@ static const nsCSSPropertyID gGridGapSub
 };
 
 static const nsCSSPropertyID gOverflowSubpropTable[] = {
   eCSSProperty_overflow_x,
   eCSSProperty_overflow_y,
   eCSSProperty_UNKNOWN
 };
 
-static const nsCSSPropertyID gOverflowClipBoxSubpropTable[] = {
-  eCSSProperty_overflow_clip_box_block,
-  eCSSProperty_overflow_clip_box_inline,
-  eCSSProperty_UNKNOWN
-};
-
 static const nsCSSPropertyID gPaddingSubpropTable[] = {
   // Code relies on these being in top-right-bottom-left order.
   eCSSProperty_padding_top,
   eCSSProperty_padding_right,
   eCSSProperty_padding_bottom,
   eCSSProperty_padding_left,
   eCSSProperty_UNKNOWN
 };
--- a/layout/style/nsComputedDOMStyle.cpp
+++ b/layout/style/nsComputedDOMStyle.cpp
@@ -5132,31 +5132,21 @@ nsComputedDOMStyle::DoGetOverflowY()
   RefPtr<nsROCSSPrimitiveValue> val = new nsROCSSPrimitiveValue;
   val->SetIdent(
     nsCSSProps::ValueToKeywordEnum(StyleDisplay()->mOverflowY,
                                    nsCSSProps::kOverflowSubKTable));
   return val.forget();
 }
 
 already_AddRefed<CSSValue>
-nsComputedDOMStyle::DoGetOverflowClipBoxBlock()
+nsComputedDOMStyle::DoGetOverflowClipBox()
 {
   RefPtr<nsROCSSPrimitiveValue> val = new nsROCSSPrimitiveValue;
   val->SetIdent(
-    nsCSSProps::ValueToKeywordEnum(StyleDisplay()->mOverflowClipBoxBlock,
-                                   nsCSSProps::kOverflowClipBoxKTable));
-  return val.forget();
-}
-
-already_AddRefed<CSSValue>
-nsComputedDOMStyle::DoGetOverflowClipBoxInline()
-{
-  RefPtr<nsROCSSPrimitiveValue> val = new nsROCSSPrimitiveValue;
-  val->SetIdent(
-    nsCSSProps::ValueToKeywordEnum(StyleDisplay()->mOverflowClipBoxInline,
+    nsCSSProps::ValueToKeywordEnum(StyleDisplay()->mOverflowClipBox,
                                    nsCSSProps::kOverflowClipBoxKTable));
   return val.forget();
 }
 
 already_AddRefed<CSSValue>
 nsComputedDOMStyle::DoGetResize()
 {
   RefPtr<nsROCSSPrimitiveValue> val = new nsROCSSPrimitiveValue;
--- a/layout/style/nsComputedDOMStyle.h
+++ b/layout/style/nsComputedDOMStyle.h
@@ -496,18 +496,17 @@ private:
   already_AddRefed<CSSValue> DoGetContain();
   already_AddRefed<CSSValue> DoGetPosition();
   already_AddRefed<CSSValue> DoGetClip();
   already_AddRefed<CSSValue> DoGetImageOrientation();
   already_AddRefed<CSSValue> DoGetWillChange();
   already_AddRefed<CSSValue> DoGetOverflow();
   already_AddRefed<CSSValue> DoGetOverflowX();
   already_AddRefed<CSSValue> DoGetOverflowY();
-  already_AddRefed<CSSValue> DoGetOverflowClipBoxBlock();
-  already_AddRefed<CSSValue> DoGetOverflowClipBoxInline();
+  already_AddRefed<CSSValue> DoGetOverflowClipBox();
   already_AddRefed<CSSValue> DoGetResize();
   already_AddRefed<CSSValue> DoGetPageBreakAfter();
   already_AddRefed<CSSValue> DoGetPageBreakBefore();
   already_AddRefed<CSSValue> DoGetPageBreakInside();
   already_AddRefed<CSSValue> DoGetTouchAction();
   already_AddRefed<CSSValue> DoGetTransform();
   already_AddRefed<CSSValue> DoGetTransformBox();
   already_AddRefed<CSSValue> DoGetTransformOrigin();
--- a/layout/style/nsComputedDOMStylePropertyList.h
+++ b/layout/style/nsComputedDOMStylePropertyList.h
@@ -194,18 +194,17 @@ COMPUTED_STYLE_PROP(opacity,            
 // COMPUTED_STYLE_PROP(orphans,                    Orphans)
 //// COMPUTED_STYLE_PROP(outline,                  Outline)
 COMPUTED_STYLE_PROP(order,                         Order)
 COMPUTED_STYLE_PROP(outline_color,                 OutlineColor)
 COMPUTED_STYLE_PROP(outline_offset,                OutlineOffset)
 COMPUTED_STYLE_PROP(outline_style,                 OutlineStyle)
 COMPUTED_STYLE_PROP(outline_width,                 OutlineWidth)
 COMPUTED_STYLE_PROP(overflow,                      Overflow)
-COMPUTED_STYLE_PROP(overflow_clip_box_block,       OverflowClipBoxBlock)
-COMPUTED_STYLE_PROP(overflow_clip_box_inline,      OverflowClipBoxInline)
+COMPUTED_STYLE_PROP(overflow_clip_box,             OverflowClipBox)
 COMPUTED_STYLE_PROP(overflow_wrap,                 OverflowWrap)
 COMPUTED_STYLE_PROP(overflow_x,                    OverflowX)
 COMPUTED_STYLE_PROP(overflow_y,                    OverflowY)
 COMPUTED_STYLE_PROP(overscroll_behavior_x,         OverscrollBehaviorX)
 COMPUTED_STYLE_PROP(overscroll_behavior_y,         OverscrollBehaviorY)
 //// COMPUTED_STYLE_PROP(padding,                  Padding)
 COMPUTED_STYLE_PROP(padding_bottom,                PaddingBottom)
 COMPUTED_STYLE_PROP(padding_left,                  PaddingLeft)
--- a/layout/style/nsRuleNode.cpp
+++ b/layout/style/nsRuleNode.cpp
@@ -6138,27 +6138,20 @@ nsRuleNode::ComputeDisplayData(void* aSt
       conditions.SetUncacheable();
     }
     if (display->mOverflowY == NS_STYLE_OVERFLOW_VISIBLE) {
       display->mOverflowY = NS_STYLE_OVERFLOW_CLIP;
       conditions.SetUncacheable();
     }
   }
 
-  SetValue(*aRuleData->ValueForOverflowClipBoxBlock(),
-           display->mOverflowClipBoxBlock,
+  SetValue(*aRuleData->ValueForOverflowClipBox(), display->mOverflowClipBox,
            conditions,
            SETVAL_ENUMERATED | SETVAL_UNSET_INITIAL,
-           parentDisplay->mOverflowClipBoxBlock,
-           NS_STYLE_OVERFLOW_CLIP_BOX_PADDING_BOX);
-  SetValue(*aRuleData->ValueForOverflowClipBoxInline(),
-           display->mOverflowClipBoxInline,
-           conditions,
-           SETVAL_ENUMERATED | SETVAL_UNSET_INITIAL,
-           parentDisplay->mOverflowClipBoxInline,
+           parentDisplay->mOverflowClipBox,
            NS_STYLE_OVERFLOW_CLIP_BOX_PADDING_BOX);
 
   SetValue(*aRuleData->ValueForResize(), display->mResize, conditions,
            SETVAL_ENUMERATED | SETVAL_UNSET_INITIAL,
            parentDisplay->mResize,
            NS_STYLE_RESIZE_NONE);
 
   if (display->mDisplay != StyleDisplay::None) {
--- a/layout/style/nsStyleStruct.cpp
+++ b/layout/style/nsStyleStruct.cpp
@@ -3573,18 +3573,17 @@ nsStyleDisplay::nsStyleDisplay(const nsP
   , mFloat(StyleFloat::None)
   , mOriginalFloat(StyleFloat::None)
   , mBreakType(StyleClear::None)
   , mBreakInside(NS_STYLE_PAGE_BREAK_AUTO)
   , mBreakBefore(false)
   , mBreakAfter(false)
   , mOverflowX(NS_STYLE_OVERFLOW_VISIBLE)
   , mOverflowY(NS_STYLE_OVERFLOW_VISIBLE)
-  , mOverflowClipBoxBlock(NS_STYLE_OVERFLOW_CLIP_BOX_PADDING_BOX)
-  , mOverflowClipBoxInline(NS_STYLE_OVERFLOW_CLIP_BOX_PADDING_BOX)
+  , mOverflowClipBox(NS_STYLE_OVERFLOW_CLIP_BOX_PADDING_BOX)
   , mResize(NS_STYLE_RESIZE_NONE)
   , mOrient(StyleOrient::Inline)
   , mIsolation(NS_STYLE_ISOLATION_AUTO)
   , mTopLayer(NS_STYLE_TOP_LAYER_NONE)
   , mWillChangeBitField(0)
   , mTouchAction(NS_STYLE_TOUCH_ACTION_AUTO)
   , mScrollBehavior(NS_STYLE_SCROLL_BEHAVIOR_AUTO)
   , mOverscrollBehaviorX(StyleOverscrollBehavior::Auto)
@@ -3638,18 +3637,17 @@ nsStyleDisplay::nsStyleDisplay(const nsS
   , mFloat(aSource.mFloat)
   , mOriginalFloat(aSource.mOriginalFloat)
   , mBreakType(aSource.mBreakType)
   , mBreakInside(aSource.mBreakInside)
   , mBreakBefore(aSource.mBreakBefore)
   , mBreakAfter(aSource.mBreakAfter)
   , mOverflowX(aSource.mOverflowX)
   , mOverflowY(aSource.mOverflowY)
-  , mOverflowClipBoxBlock(aSource.mOverflowClipBoxBlock)
-  , mOverflowClipBoxInline(aSource.mOverflowClipBoxInline)
+  , mOverflowClipBox(aSource.mOverflowClipBox)
   , mResize(aSource.mResize)
   , mOrient(aSource.mOrient)
   , mIsolation(aSource.mIsolation)
   , mTopLayer(aSource.mTopLayer)
   , mWillChangeBitField(aSource.mWillChangeBitField)
   , mWillChange(aSource.mWillChange)
   , mTouchAction(aSource.mTouchAction)
   , mScrollBehavior(aSource.mScrollBehavior)
@@ -3822,18 +3820,17 @@ nsStyleDisplay::CalcDifference(const nsS
   // XXX the following is conservative, for now: changing float breaking shouldn't
   // necessarily require a repaint, reflow should suffice.
   if (mBreakType != aNewData.mBreakType
       || mBreakInside != aNewData.mBreakInside
       || mBreakBefore != aNewData.mBreakBefore
       || mBreakAfter != aNewData.mBreakAfter
       || mAppearance != aNewData.mAppearance
       || mOrient != aNewData.mOrient
-      || mOverflowClipBoxBlock != aNewData.mOverflowClipBoxBlock
-      || mOverflowClipBoxInline != aNewData.mOverflowClipBoxInline) {
+      || mOverflowClipBox != aNewData.mOverflowClipBox) {
     hint |= nsChangeHint_AllReflowHints |
             nsChangeHint_RepaintFrame;
   }
 
   if (mIsolation != aNewData.mIsolation) {
     hint |= nsChangeHint_RepaintFrame;
   }
 
--- a/layout/style/nsStyleStruct.h
+++ b/layout/style/nsStyleStruct.h
@@ -2557,18 +2557,17 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsSt
   mozilla::StyleFloat mOriginalFloat;
 
   mozilla::StyleClear mBreakType;  // [reset]
   uint8_t mBreakInside;         // [reset] NS_STYLE_PAGE_BREAK_AUTO/AVOID
   bool mBreakBefore;    // [reset]
   bool mBreakAfter;     // [reset]
   uint8_t mOverflowX;           // [reset] see nsStyleConsts.h
   uint8_t mOverflowY;           // [reset] see nsStyleConsts.h
-  uint8_t mOverflowClipBoxBlock;     // [reset] see nsStyleConsts.h
-  uint8_t mOverflowClipBoxInline;    // [reset] see nsStyleConsts.h
+  uint8_t mOverflowClipBox;     // [reset] see nsStyleConsts.h
   uint8_t mResize;              // [reset] see nsStyleConsts.h
   mozilla::StyleOrient mOrient; // [reset] see nsStyleConsts.h
   uint8_t mIsolation;           // [reset] see nsStyleConsts.h
   uint8_t mTopLayer;            // [reset] see nsStyleConsts.h
   uint8_t mWillChangeBitField;  // [reset] see nsStyleConsts.h. Stores a
                                 // bitfield representation of the properties
                                 // that are frequently queried. This should
                                 // match mWillChange. Also tracks if any of the
--- a/layout/style/test/property_database.js
+++ b/layout/style/test/property_database.js
@@ -7405,44 +7405,24 @@ if (IsCSSPropertyPrefEnabled("layout.css
     initial_values: [ "normal" ],
     other_values: [ "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn",
       "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity" ],
     invalid_values: ["none", "10px", "multiply multiply"]
   };
 }
 
 if (IsCSSPropertyPrefEnabled("layout.css.overflow-clip-box.enabled")) {
-  gCSSProperties["overflow-clip-box-block"] = {
-    domProp: "overflowClipBoxBlock",
+  gCSSProperties["overflow-clip-box"] = {
+    domProp: "overflowClipBox",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
     applies_to_placeholder: true,
     initial_values: [ "padding-box" ],
     other_values: [ "content-box" ],
-    invalid_values: [ "auto", "border-box", "0", "padding-box padding-box" ]
-  };
-  gCSSProperties["overflow-clip-box-inline"] = {
-    domProp: "overflowClipBoxInline",
-    inherited: false,
-    type: CSS_TYPE_LONGHAND,
-    applies_to_placeholder: true,
-    initial_values: [ "padding-box" ],
-    other_values: [ "content-box" ],
-    invalid_values: [ "none", "border-box", "0", "content-box content-box" ]
-  };
-  gCSSProperties["overflow-clip-box"] = {
-    domProp: "overflowClipBox",
-    inherited: false,
-    type: CSS_TYPE_TRUE_SHORTHAND,
-    subproperties: [ "overflow-clip-box-block", "overflow-clip-box-inline" ],
-    initial_values: [ "padding-box" ],
-    other_values: [ "content-box", "padding-box content-box", "content-box padding-box",
-                    "content-box content-box" ],
-    invalid_values: [ "none", "auto", "content-box none", "border-box", "0",
-                      "content-box, content-box" ]
+    invalid_values: [ "none", "auto", "border-box", "0" ]
   };
 }
 
 if (IsCSSPropertyPrefEnabled("layout.css.box-decoration-break.enabled")) {
   gCSSProperties["box-decoration-break"] = {
     domProp: "boxDecorationBreak",
     inherited: false,
     type: CSS_TYPE_LONGHAND,
--- a/servo/components/style/properties/longhand/box.mako.rs
+++ b/servo/components/style/properties/longhand/box.mako.rs
@@ -368,28 +368,19 @@
 
 // CSS 2.1, Section 11 - Visual effects
 
 ${helpers.single_keyword("-servo-overflow-clip-box", "padding-box content-box",
     products="servo", animation_value_type="none", enabled_in="ua",
     spec="Internal, not web-exposed, \
           may be standardized in the future (https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-clip-box)")}
 
-${helpers.single_keyword("overflow-clip-box-block", "padding-box content-box",
+${helpers.single_keyword("overflow-clip-box", "padding-box content-box",
     products="gecko", animation_value_type="discrete", enabled_in="ua",
     gecko_pref="layout.css.overflow-clip-box.enabled",
-    gecko_constant_prefix="NS_STYLE_OVERFLOW_CLIP_BOX",
-    flags="APPLIES_TO_PLACEHOLDER",
-    spec="Internal, not web-exposed, \
-          may be standardized in the future (https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-clip-box)")}
-
-${helpers.single_keyword("overflow-clip-box-inline", "padding-box content-box",
-    products="gecko", animation_value_type="discrete", enabled_in="ua",
-    gecko_pref="layout.css.overflow-clip-box.enabled",
-    gecko_constant_prefix="NS_STYLE_OVERFLOW_CLIP_BOX",
     flags="APPLIES_TO_PLACEHOLDER",
     spec="Internal, not web-exposed, \
           may be standardized in the future (https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-clip-box)")}
 
 <%
     overflow_custom_consts = { "-moz-hidden-unscrollable": "CLIP" }
 %>
 
--- a/servo/components/style/properties/shorthand/box.mako.rs
+++ b/servo/components/style/properties/shorthand/box.mako.rs
@@ -53,58 +53,16 @@
                 self.overflow_x.to_css(dest)
             } else {
                 Ok(())
             }
         }
     }
 </%helpers:shorthand>
 
-<%helpers:shorthand name="overflow-clip-box" sub_properties="overflow-clip-box-block overflow-clip-box-inline"
-                    enabled_in="ua" gecko_pref="layout.css.overflow-clip-box.enabled"
-                    spec="Internal, not web-exposed, may be standardized in the future (https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-clip-box)"
-                    products="gecko">
-  use properties::longhands::{overflow_clip_box_block, overflow_clip_box_inline};
-
-  pub fn to_inline_value(block_value: overflow_clip_box_block::SpecifiedValue)
-                         -> overflow_clip_box_inline::SpecifiedValue {
-      match block_value {
-          overflow_clip_box_block::SpecifiedValue::padding_box =>
-              overflow_clip_box_inline::SpecifiedValue::padding_box,
-          overflow_clip_box_block::SpecifiedValue::content_box =>
-              overflow_clip_box_inline::SpecifiedValue::content_box
-      }
-  }
-
-  pub fn parse_value<'i, 't>(context: &ParserContext, input: &mut Parser<'i, 't>)
-                             -> Result<Longhands, ParseError<'i>> {
-      let block_value = overflow_clip_box_block::parse(context, input)?;
-      let inline_value = input.try(|input| overflow_clip_box_inline::parse(context, input)).unwrap_or(
-          to_inline_value(block_value));
-
-      Ok(expanded! {
-        overflow_clip_box_block: block_value,
-        overflow_clip_box_inline: inline_value,
-      })
-  }
-
-  impl<'a> ToCss for LonghandsToSerialize<'a>  {
-      fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
-          if to_inline_value(*self.overflow_clip_box_block) == *self.overflow_clip_box_inline {
-            self.overflow_clip_box_block.to_css(dest)
-          } else {
-            self.overflow_clip_box_block.to_css(dest)?;
-            dest.write_str(" ")?;
-            self.overflow_clip_box_inline.to_css(dest)
-          }
-      }
-  }
-
-</%helpers:shorthand>
-
 macro_rules! try_parse_one {
     ($input: expr, $var: ident, $prop_module: ident) => {
         if $var.is_none() {
             if let Ok(value) = $input.try($prop_module::SingleSpecifiedValue::parse) {
                 $var = Some(value);
                 continue;
             }
         }
--- a/testing/web-platform/tests/web-animations/animation-model/animation-types/property-list.js
+++ b/testing/web-platform/tests/web-animations/animation-model/animation-types/property-list.js
@@ -1049,16 +1049,22 @@ const gCSSProperties = {
       return element;
     }
   },
   'overflow': {
     // https://drafts.csswg.org/css-overflow/#propdef-overflow
     types: [
     ]
   },
+  'overflow-clip-box': {
+    // https://developer.mozilla.org/en/docs/Web/CSS/overflow-clip-box
+    types: [
+      { type: 'discrete', options: [ [ 'padding-box', 'content-box' ] ] }
+    ]
+  },
   'overflow-wrap': {
     // https://drafts.csswg.org/css-text-3/#propdef-overflow-wrap
     types: [
       { type: 'discrete', options: [ [ 'normal', 'break-word' ] ] }
     ]
   },
   'overflow-x': {
     // https://drafts.csswg.org/css-overflow-3/#propdef-overflow-x