Bug 1207734 - Part 3. Add rotate/translate/scale properties into nsCSSPropList. draft
authorcku <cku@mozilla.com>
Wed, 06 Dec 2017 17:58:05 +0800
changeset 720250 d5e9a0ff410ba6f4a66aa0cf077333038f1ffc4a
parent 720249 ddb231c2f01460224075257e696d0226dcb46dc7
child 720251 3bffcc9330e85b2cc465ace96c47d5ed73ef6760
child 720492 b46369422bbb20a8986aa321c0d5b7755d36cbc1
push id95487
push userbmo:cku@mozilla.com
push dateMon, 15 Jan 2018 05:48:29 +0000
bugs1207734
milestone59.0a1
Bug 1207734 - Part 3. Add rotate/translate/scale properties into nsCSSPropList. MozReview-Commit-ID: 3nb365nnqGF
layout/style/nsCSSParser.cpp
layout/style/nsCSSPropList.h
--- a/layout/style/nsCSSParser.cpp
+++ b/layout/style/nsCSSParser.cpp
@@ -11826,16 +11826,21 @@ CSSParserImpl::ParsePropertyByFunction(n
     return ParseImageLayerPositionCoord(aPropID,
                aPropID == eCSSProperty_mask_position_x);
   case eCSSProperty_mask_size:
     return ParseImageLayerSize(eCSSProperty_mask_size);
   case eCSSProperty__webkit_text_stroke:
     return ParseWebkitTextStroke();
   case eCSSProperty_all:
     return ParseAll();
+  case eCSSProperty_translate:
+  case eCSSProperty_rotate:
+  case eCSSProperty_scale:
+    // These properties aren't implemented in the old style system.
+    return false;
   default:
     MOZ_ASSERT(false, "should not be called");
     return false;
   }
 }
 
 // Bits used in determining which background position info we have
 #define BG_CENTER  NS_STYLE_IMAGELAYER_POSITION_CENTER
--- a/layout/style/nsCSSPropList.h
+++ b/layout/style/nsCSSPropList.h
@@ -3606,16 +3606,29 @@ CSS_PROP_POSITION(
         CSS_PROPERTY_STORES_CALC |
         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_AHLP | VARIANT_CALC,
     nullptr,
     offsetof(nsStylePosition, mOffset),
     eStyleAnimType_Sides_Right)
+CSS_PROP_DISPLAY(
+    rotate,
+    rotate,
+    Rotate,
+    CSS_PROPERTY_PARSE_FUNCTION |
+        CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
+        CSS_PROPERTY_CREATES_STACKING_CONTEXT |
+        CSS_PROPERTY_FIXPOS_CB,
+    "layout.css.individual-transform.enabled",
+    0,
+    nullptr,
+    offsetof(nsStyleDisplay, mSpecifiedRotate),
+    eStyleAnimType_None)
 CSS_PROP_TEXT(
     ruby-align,
     ruby_align,
     RubyAlign,
     CSS_PROPERTY_PARSE_VALUE,
     "",
     VARIANT_HK,
     kRubyAlignKTable,
@@ -4235,16 +4248,29 @@ CSS_PROP_TEXT(
         CSS_PROPERTY_VALUE_NONNEGATIVE |
         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
     "layout.css.prefixes.webkit",
     VARIANT_HKL | VARIANT_CALC,
     kBorderWidthKTable,
     CSS_PROP_NO_OFFSET,
     eStyleAnimType_Discrete)
+CSS_PROP_DISPLAY(
+    scale,
+    scale,
+    Scale,
+    CSS_PROPERTY_PARSE_FUNCTION |
+        CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
+        CSS_PROPERTY_CREATES_STACKING_CONTEXT |
+        CSS_PROPERTY_FIXPOS_CB,
+    "layout.css.individual-transform.enabled",
+    0,
+    nullptr,
+    offsetof(nsStyleDisplay, mSpecifiedScale),
+    eStyleAnimType_None)
 CSS_PROP_TEXT(
     text-transform,
     text_transform,
     TextTransform,
     CSS_PROPERTY_PARSE_VALUE |
         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
     "",
@@ -4407,16 +4433,29 @@ CSS_PROP_DISPLAY(
     TransitionTimingFunction,
     CSS_PROPERTY_PARSE_VALUE_LIST |
         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
     "",
     VARIANT_KEYWORD | VARIANT_TIMING_FUNCTION, // used by list parsing
     kTransitionTimingFunctionKTable,
     CSS_PROP_NO_OFFSET,
     eStyleAnimType_None)
+CSS_PROP_DISPLAY(
+    translate,
+    translate,
+    Translate,
+    CSS_PROPERTY_PARSE_FUNCTION |
+        CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
+        CSS_PROPERTY_CREATES_STACKING_CONTEXT |
+        CSS_PROPERTY_FIXPOS_CB,
+    "layout.css.individual-transform.enabled",
+    0,
+    nullptr,
+    offsetof(nsStyleDisplay, mSpecifiedTranslate),
+    eStyleAnimType_None)
 #ifndef CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
 CSS_PROP_TEXTRESET(
     unicode-bidi,
     unicode_bidi,
     UnicodeBidi,
     CSS_PROPERTY_PARSE_VALUE,
     "",
     VARIANT_HK,