Bug 1454297 - Remove CSS_PROP_LOGICAL and friends. r=emilio
authorXidorn Quan <me@upsuper.org>
Mon, 16 Apr 2018 16:23:33 +1000
changeset 467410 7d35e0be4b5756330817311e9980177c09fdc8c0
parent 467409 484c9ddde7ddda6dacf2be3d7e3e2d4c9d6f9a46
child 467411 ee1ecd82bda466d17b37c1f75cf9038554311d60
push id9165
push userasasaki@mozilla.com
push dateThu, 26 Apr 2018 21:04:54 +0000
treeherdermozilla-beta@064c3804de2e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersemilio
bugs1454297
milestone61.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 1454297 - Remove CSS_PROP_LOGICAL and friends. r=emilio MozReview-Commit-ID: Euzbjf9qkmO
dom/base/gen-usecounters.py
layout/style/GenerateCSSPropsGenerated.py
layout/style/PythonCSSProps.h
layout/style/ServoPropPrefList.h
layout/style/nsCSSPropList.h
layout/style/nsCSSPropertyID.h
layout/style/nsCSSProps.cpp
layout/style/nsComputedDOMStyle.cpp
layout/style/nsDOMCSSDeclaration.h
layout/style/test/ListCSSProperties.cpp
--- a/dom/base/gen-usecounters.py
+++ b/dom/base/gen-usecounters.py
@@ -56,22 +56,20 @@ def generate_list(f, counters):
     print_optional_macro_undeclare('USE_COUNTER_CSS_PROPERTY')
     print_optional_macro_undeclare('USE_COUNTER_CUSTOM')
 
 def generate_property_map(f, counters):
     print(AUTOGENERATED_WARNING_COMMENT, file=f)
     print('''
 enum {
   #define CSS_PROP_PUBLIC_OR_PRIVATE(publicname_, privatename_) privatename_
-  #define CSS_PROP_LIST_INCLUDE_LOGICAL
   #define CSS_PROP(name_, id_, method_, ...) \\
     USE_COUNTER_FOR_CSS_PROPERTY_##method_ = eUseCounter_UNKNOWN,
   #include "nsCSSPropList.h"
   #undef CSS_PROP
-  #undef CSS_PROP_LIST_INCLUDE_LOGICAL
   #undef CSS_PROP_PUBLIC_OR_PRIVATE
 };
 ''', file=f)
     for counter in counters:
         if counter['type'] == 'property':
             prop = counter['property_name']
             print('#define USE_COUNTER_FOR_CSS_PROPERTY_%s eUseCounter_property_%s' % (prop, prop), file=f)
 
--- a/layout/style/GenerateCSSPropsGenerated.py
+++ b/layout/style/GenerateCSSPropsGenerated.py
@@ -13,22 +13,22 @@ def get_properties(preprocessorHeader):
     cpp = list(buildconfig.substs['CPP'])
     cpp += shellutil.split(buildconfig.substs['ACDEFINES'])
     cpp.append(preprocessorHeader)
     preprocessed = subprocess.check_output(cpp)
     properties = [{"name":p[0], "prop":p[1], "id":p[2],
                    "flags":p[3], "pref":p[4], "proptype":p[5]}
                   for (i, p) in enumerate(eval(preprocessed))]
 
-    # Sort the list so that longhand and logical properties are intermingled
-    # first, shorthand properties follow, then aliases appear last.  This matches
-    # the order of the nsCSSPropertyID enum.
+    # Sort the list so that longhand properties are intermingled first,
+    # shorthand properties follow, then aliases appear last.
+    # This matches the order of the nsCSSPropertyID enum.
 
     def property_compare(x, y):
-        property_order = {"longhand": 0, "logical": 0, "shorthand": 1, "alias": 2}
+        property_order = {"longhand": 0, "shorthand": 1, "alias": 2}
         return property_order[x["proptype"]] - property_order[y["proptype"]]
 
     properties = sorted(properties, cmp=property_compare)
 
     for i, p in enumerate(properties):
         p["index"] = i
 
     # Record each property's IDL name.
--- a/layout/style/PythonCSSProps.h
+++ b/layout/style/PythonCSSProps.h
@@ -15,24 +15,21 @@
 #define PROP_STRINGIFY(X) PROP_STRINGIFY_INTERNAL(X)
 
 #define DO_PROP(name, method, id, flags, pref, proptype) \
   [ #name, #method, #id, PROP_STRINGIFY(flags), pref, proptype ],
 #define CSS_PROP(name, id, method, flags, pref, ...) \
   DO_PROP(name, method, id, flags, pref, "longhand")
 #define CSS_PROP_SHORTHAND(name, id, method, flags, pref) \
   DO_PROP(name, method, id, flags, pref, "shorthand")
-#define CSS_PROP_LOGICAL(name, id, method, flags, pref, ...) \
-  DO_PROP(name, method, id, flags, pref, "logical")
 #define CSS_PROP_PUBLIC_OR_PRIVATE(publicname_, privatename_) publicname_
 
 #include "nsCSSPropList.h"
 
 #undef CSS_PROP_PUBLIC_OR_PRIVATE
-#undef CSS_PROP_LOGICAL
 #undef CSS_PROP_SHORTHAND
 #undef CSS_PROP
 
 #define CSS_PROP_ALIAS(name, aliasid_, id, method, pref) \
   DO_PROP(name, method, id, 0, pref, "alias")
 
 #include "nsCSSPropAliasList.h"
 
--- a/layout/style/ServoPropPrefList.h
+++ b/layout/style/ServoPropPrefList.h
@@ -8,24 +8,20 @@
 #define mozilla_ServoPropPrefList_h
 
 namespace mozilla {
 
 #define CSS_PROP(name_, id_, method_, flags_, pref_, ...) \
     const bool SERVO_PREF_ENABLED_##id_ = !(sizeof(pref_) == 1);
 #define CSS_PROP_SHORTHAND(name_, id_, method_, flags_, pref_)  \
     const bool SERVO_PREF_ENABLED_##id_ = !(sizeof(pref_) == 1);
-#define CSS_PROP_LIST_INCLUDE_LOGICAL
 #include "nsCSSPropList.h"
-#undef CSS_PROP_LIST_INCLUDE_LOGICAL
 #undef CSS_PROP
 #undef CSS_PROP_SHORTHAND
 
 #define CSS_PROP_ALIAS(aliasname_, aliasid_, id_, method_, pref_)  \
     const bool SERVO_PREF_ENABLED_##aliasid_ = !(sizeof(pref_) == 1);
-#define CSS_PROP_ALIAS_LIST_INCLUDE_LOGICAL
 #include "nsCSSPropAliasList.h"
-#undef CSS_PROP_ALIAS_LIST_INCLUDE_LOGICAL
 #undef CSS_PROP_ALIAS
 
 }
 
 #endif // mozilla_ServoPropPrefList_h
--- a/layout/style/nsCSSPropList.h
+++ b/layout/style/nsCSSPropList.h
@@ -13,17 +13,17 @@
 
   This file contains the list of all parsed CSS properties.  It is
   designed to be used as inline input through the magic of C
   preprocessing.  All entries must be enclosed in the appropriate
   CSS_PROP_* macro which will have cruel and unusual things done to it.
   It is recommended (but not strictly necessary) to keep all entries in
   alphabetical order.
 
-  The arguments to CSS_PROP, CSS_PROP_LOGICAL and CSS_PROP_* are:
+  The arguments to CSS_PROP are:
 
   -. 'name' entries represent a CSS property name and *must* use only
   lowercase characters.
 
   -. 'id' should be the same as 'name' except that all hyphens ('-')
   in 'name' are converted to underscores ('_') in 'id'. For properties
   on a standards track, any '-moz-' prefix is removed in 'id'. This
   lets us do nice things with the macros without having to copy/convert
@@ -47,29 +47,21 @@
   or if the boolean property whose name is 'pref' is set to true.
 
   -. 'parsevariant', to be passed to ParseVariant in the parser.
 
   -. 'kwtable', which is either nullptr or the name of the appropriate
   keyword table member of class nsCSSProps, for use in
   nsCSSProps::LookupPropertyValue.
 
-  -. 'stylestruct_' [used only for CSS_PROP and CSS_PROP_LOGICAL, not
-  CSS_PROP_*] gives the name of the style struct.  Can be used to make
-  nsStyle##stylestruct_ and eStyleStruct_##stylestruct_
-
   -. 'animtype_' gives the animation type (see nsStyleAnimType) of this
   property.
 
   CSS_PROP_SHORTHAND only takes 1-5.
 
-  CSS_PROP_LOGICAL should be used instead of CSS_PROP_struct when
-  defining logical properties.  Logical shorthand properties should
-  still be defined with CSS_PROP_SHORTHAND.
-
  ******/
 
 
 /*************************************************************************/
 
 
 // All includers must explicitly define CSS_PROP_SHORTHAND if they
 // want it.
@@ -82,36 +74,16 @@
   CSS_PROP_PUBLIC_OR_PRIVATE(Moz ## name_, name_)
 
 // Callers may define CSS_PROP_LIST_EXCLUDE_INTERNAL if they want to
 // exclude internal properties that are not represented in the DOM (only
 // the DOM style code defines this).  All properties defined in an
 // #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL section must have the
 // CSS_PROPERTY_INTERNAL flag set.
 
-// When capturing all properties by defining CSS_PROP, callers must also
-// define one of the following three macros:
-//
-//   CSS_PROP_LIST_EXCLUDE_LOGICAL
-//     Does not include logical properties (defined with CSS_PROP_LOGICAL,
-//     such as margin-inline-start) when capturing properties to CSS_PROP.
-//
-//   CSS_PROP_LIST_INCLUDE_LOGICAL
-//     Does include logical properties when capturing properties to
-//     CSS_PROP.
-//
-//   CSS_PROP_LOGICAL
-//     Captures logical properties separately to CSS_PROP_LOGICAL.
-//
-// (CSS_PROP_LIST_EXCLUDE_LOGICAL is used for example to ensure
-// gPropertyCountInStruct and gPropertyIndexInStruct do not allocate any
-// storage to logical properties, since the result of the cascade, stored
-// in an nsRuleData, does not need to store both logical and physical
-// property values.)
-
 // Callers may also define CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
 // to exclude properties that are not considered to be components of the 'all'
 // shorthand property.  Currently this excludes 'direction' and 'unicode-bidi',
 // as required by the CSS Cascading and Inheritance specification, and any
 // internal properties that cannot be changed by using CSS syntax.  For example,
 // the internal '-moz-system-font' property is not excluded, as it is set by the
 // 'font' shorthand, while '-x-lang' is excluded as there is no way to set this
 // internal property from a style sheet.
@@ -120,53 +92,24 @@
 // macro.
 #ifdef CSS_PROP
 
 #define USED_CSS_PROP
 // We still need this extra level so that CSS_PROP_DOMPROP_PREFIXED has
 // a chance to be expanded.
 #define CSS_PROP_(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, animtype_)
 
-// And similarly for logical properties.  An includer can define
-// CSS_PROP_LOGICAL to capture all logical properties, but otherwise they
-// are included in CSS_PROP (as long as CSS_PROP_LIST_INCLUDE_LOGICAL is
-// defined).
-#if defined(CSS_PROP_LOGICAL) && defined(CSS_PROP_LIST_EXCLUDE_LOGICAL) || defined(CSS_PROP_LOGICAL) && defined(CSS_PROP_LIST_INCLUDE_LOGICAL) || defined(CSS_PROP_LIST_EXCLUDE_LOGICAL) && defined(CSS_PROP_LIST_INCLUDE_LOGICAL)
-#error Do not define more than one of CSS_PROP_LOGICAL, CSS_PROP_LIST_EXCLUDE_LOGICAL and CSS_PROP_LIST_INCLUDE_LOGICAL when capturing properties using CSS_PROP.
-#endif
-
-#ifndef CSS_PROP_LOGICAL
-#ifdef CSS_PROP_LIST_INCLUDE_LOGICAL
-#define CSS_PROP_LOGICAL(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, animtype_)
-#else
-#ifndef CSS_PROP_LIST_EXCLUDE_LOGICAL
-#error Must define exactly one of CSS_PROP_LOGICAL, CSS_PROP_LIST_EXCLUDE_LOGICAL and CSS_PROP_LIST_INCLUDE_LOGICAL when capturing properties using CSS_PROP.
-#endif
-#define CSS_PROP_LOGICAL(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, animtype_) /* nothing */
-#endif
-#define DEFINED_CSS_PROP_LOGICAL
-#endif
-
 #else /* !defined(CSS_PROP) */
 
 // An includer who does not define CSS_PROP can define any or all of the
 // per-struct macros that are equivalent to it, and the rest will be
 // ignored.
 
-#if defined(CSS_PROP_LIST_EXCLUDE_LOGICAL) || defined(CSS_PROP_LIST_INCLUDE_LOGICAL)
-#error Do not define CSS_PROP_LIST_EXCLUDE_LOGICAL or CSS_PROP_LIST_INCLUDE_LOGICAL when not capturing properties using CSS_PROP.
-#endif
-
 #define CSS_PROP_(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, animtype_) /* nothing */
 
-#ifndef CSS_PROP_LOGICAL
-#define CSS_PROP_LOGICAL(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, animtype_) /* nothing */
-#define DEFINED_CSS_PROP_LOGICAL
-#endif
-
 #endif /* !defined(CSS_PROP) */
 
 /*************************************************************************/
 
 // For notes XXX bug 3935 below, the names being parsed do not correspond
 // to the constants used internally.  It would be nice to bring the
 // constants into line sometime.
 
@@ -438,17 +381,17 @@ CSS_PROP_(
     -moz-binding,
     _moz_binding,
     CSS_PROP_DOMPROP_PREFIXED(Binding),
     0,
     "",
     VARIANT_HUO,
     nullptr,
     eStyleAnimType_None) // XXX bug 3935
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     block-size,
     block_size,
     BlockSize,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_AHLP | VARIANT_CALC,
     nullptr,
     eStyleAnimType_None)
@@ -459,68 +402,68 @@ CSS_PROP_SHORTHAND(
     CSS_PROPERTY_PARSE_FUNCTION,
     "")
 CSS_PROP_SHORTHAND(
     border-block-end,
     border_block_end,
     BorderBlockEnd,
     CSS_PROPERTY_PARSE_FUNCTION,
     "")
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     border-block-end-color,
     border_block_end_color,
     BorderBlockEndColor,
     0,
     "",
     VARIANT_HC,
     nullptr,
     eStyleAnimType_None)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     border-block-end-style,
     border_block_end_style,
     BorderBlockEndStyle,
     0,
     "",
     VARIANT_HK,
     kBorderStyleKTable,
     eStyleAnimType_None)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     border-block-end-width,
     border_block_end_width,
     BorderBlockEndWidth,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_HKL | VARIANT_CALC,
     kBorderWidthKTable,
     eStyleAnimType_None)
 CSS_PROP_SHORTHAND(
     border-block-start,
     border_block_start,
     BorderBlockStart,
     CSS_PROPERTY_PARSE_FUNCTION,
     "")
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     border-block-start-color,
     border_block_start_color,
     BorderBlockStartColor,
     0,
     "",
     VARIANT_HC,
     nullptr,
     eStyleAnimType_None)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     border-block-start-style,
     border_block_start_style,
     BorderBlockStartStyle,
     0,
     "",
     VARIANT_HK,
     kBorderStyleKTable,
     eStyleAnimType_None)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     border-block-start-width,
     border_block_start_width,
     BorderBlockStartWidth,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_HKL | VARIANT_CALC,
     kBorderWidthKTable,
     eStyleAnimType_None)
@@ -642,68 +585,68 @@ CSS_PROP_(
     nullptr,
     eStyleAnimType_Discrete)
 CSS_PROP_SHORTHAND(
     border-inline-end,
     border_inline_end,
     BorderInlineEnd,
     CSS_PROPERTY_PARSE_FUNCTION,
     "")
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     border-inline-end-color,
     border_inline_end_color,
     BorderInlineEndColor,
     0,
     "",
     VARIANT_HC,
     nullptr,
     eStyleAnimType_None)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     border-inline-end-style,
     border_inline_end_style,
     BorderInlineEndStyle,
     0,
     "",
     VARIANT_HK,
     kBorderStyleKTable,
     eStyleAnimType_None)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     border-inline-end-width,
     border_inline_end_width,
     BorderInlineEndWidth,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_HKL | VARIANT_CALC,
     kBorderWidthKTable,
     eStyleAnimType_None)
 CSS_PROP_SHORTHAND(
     border-inline-start,
     border_inline_start,
     BorderInlineStart,
     CSS_PROPERTY_PARSE_FUNCTION,
     "")
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     border-inline-start-color,
     border_inline_start_color,
     BorderInlineStartColor,
     0,
     "",
     VARIANT_HC,
     nullptr,
     eStyleAnimType_None)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     border-inline-start-style,
     border_inline_start_style,
     BorderInlineStartStyle,
     0,
     "",
     VARIANT_HK,
     kBorderStyleKTable,
     eStyleAnimType_None)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     border-inline-start-width,
     border_inline_start_width,
     BorderInlineStartWidth,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_HKL | VARIANT_CALC,
     kBorderWidthKTable,
     eStyleAnimType_None)
@@ -1766,17 +1709,17 @@ CSS_PROP_(
     ime-mode,
     ime_mode,
     ImeMode,
     0,
     "",
     VARIANT_HK,
     kIMEModeKTable,
     eStyleAnimType_Discrete)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     inline-size,
     inline_size,
     InlineSize,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_AHKLP | VARIANT_CALC,
     kWidthKTable,
     eStyleAnimType_None)
@@ -1901,26 +1844,26 @@ CSS_PROP_(
     nullptr,
     eStyleAnimType_Discrete)
 CSS_PROP_SHORTHAND(
     margin,
     margin,
     Margin,
     CSS_PROPERTY_PARSE_FUNCTION,
     "")
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     margin-block-end,
     margin_block_end,
     MarginBlockEnd,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_AHLP | VARIANT_CALC,
     nullptr,
     eStyleAnimType_None)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     margin-block-start,
     margin_block_start,
     MarginBlockStart,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_AHLP | VARIANT_CALC,
     nullptr,
     eStyleAnimType_None)
@@ -1928,26 +1871,26 @@ CSS_PROP_(
     margin-bottom,
     margin_bottom,
     MarginBottom,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_AHLP | VARIANT_CALC,
     nullptr,
     eStyleAnimType_Sides_Bottom)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     margin-inline-end,
     margin_inline_end,
     MarginInlineEnd,
     0,
     "",
     VARIANT_AHLP | VARIANT_CALC,
     nullptr,
     eStyleAnimType_None)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     margin-inline-start,
     margin_inline_start,
     MarginInlineStart,
     0,
     "",
     VARIANT_AHLP | VARIANT_CALC,
     nullptr,
     eStyleAnimType_None)
@@ -2136,17 +2079,17 @@ CSS_PROP_(
     CSS_PROPERTY_INTERNAL |
         CSS_PROPERTY_PARSE_INACCESSIBLE,
     "",
     VARIANT_HK,
     kMathVariantKTable,
     eStyleAnimType_None)
 #endif // CSS_PROP_LIST_EXCLUDE_INTERNAL
 #endif // CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     max-block-size,
     max_block_size,
     MaxBlockSize,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_HLPO | VARIANT_CALC,
     nullptr,
     eStyleAnimType_None)
@@ -2154,17 +2097,17 @@ CSS_PROP_(
     max-height,
     max_height,
     MaxHeight,
     0,
     "",
     VARIANT_HKLPO | VARIANT_CALC,
     kWidthKTable,
     eStyleAnimType_Coord)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     max-inline-size,
     max_inline_size,
     MaxInlineSize,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_HKLPO | VARIANT_CALC,
     kWidthKTable,
     eStyleAnimType_None)
@@ -2172,17 +2115,17 @@ CSS_PROP_(
     max-width,
     max_width,
     MaxWidth,
     0,
     "",
     VARIANT_HKLPO | VARIANT_CALC,
     kWidthKTable,
     eStyleAnimType_Coord)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     min-block-size,
     min_block_size,
     MinBlockSize,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_AHLP | VARIANT_CALC,
     nullptr,
     eStyleAnimType_None)
@@ -2202,17 +2145,17 @@ CSS_PROP_(
     min-height,
     min_height,
     MinHeight,
     0,
     "",
     VARIANT_AHKLP | VARIANT_CALC,
     kWidthKTable,
     eStyleAnimType_Coord)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     min-inline-size,
     min_inline_size,
     MinInlineSize,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_AHKLP | VARIANT_CALC,
     kWidthKTable,
     eStyleAnimType_None)
@@ -2247,44 +2190,44 @@ CSS_PROP_(
     object-position,
     object_position,
     ObjectPosition,
     CSS_PROPERTY_PARSE_FUNCTION,
     "",
     VARIANT_CALC,
     kImageLayerPositionKTable,
     eStyleAnimType_Custom)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     offset-block-end,
     offset_block_end,
     OffsetBlockEnd,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_AHLP | VARIANT_CALC,
     nullptr,
     eStyleAnimType_None)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     offset-block-start,
     offset_block_start,
     OffsetBlockStart,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_AHLP | VARIANT_CALC,
     nullptr,
     eStyleAnimType_None)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     offset-inline-end,
     offset_inline_end,
     OffsetInlineEnd,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_AHLP | VARIANT_CALC,
     nullptr,
     eStyleAnimType_None)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     offset-inline-start,
     offset_inline_start,
     OffsetInlineStart,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_AHLP | VARIANT_CALC,
     nullptr,
     eStyleAnimType_None)
@@ -2458,26 +2401,26 @@ CSS_PROP_(
     kOverflowSubKTable,
     eStyleAnimType_Discrete)
 CSS_PROP_SHORTHAND(
     padding,
     padding,
     Padding,
     CSS_PROPERTY_PARSE_FUNCTION,
     "")
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     padding-block-end,
     padding_block_end,
     PaddingBlockEnd,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_HLP | VARIANT_CALC,
     nullptr,
     eStyleAnimType_None)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     padding-block-start,
     padding_block_start,
     PaddingBlockStart,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_HLP | VARIANT_CALC,
     nullptr,
     eStyleAnimType_None)
@@ -2485,26 +2428,26 @@ CSS_PROP_(
     padding-bottom,
     padding_bottom,
     PaddingBottom,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_HLP | VARIANT_CALC,
     nullptr,
     eStyleAnimType_Sides_Bottom)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     padding-inline-end,
     padding_inline_end,
     PaddingInlineEnd,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_HLP | VARIANT_CALC,
     nullptr,
     eStyleAnimType_None)
-CSS_PROP_LOGICAL(
+CSS_PROP_(
     padding-inline-start,
     padding_inline_start,
     PaddingInlineStart,
     CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
     "",
     VARIANT_HLP | VARIANT_CALC,
     nullptr,
     eStyleAnimType_None)
@@ -3537,14 +3480,10 @@ CSS_PROP_(
     eStyleAnimType_Coord)
 
 #undef CSS_PROP_
 
 #ifdef DEFINED_CSS_PROP_SHORTHAND
 #undef CSS_PROP_SHORTHAND
 #undef DEFINED_CSS_PROP_SHORTHAND
 #endif
-#ifdef DEFINED_CSS_PROP_LOGICAL
-#undef CSS_PROP_LOGICAL
-#undef DEFINED_CSS_PROP_LOGICAL
-#endif
 
 #undef CSS_PROP_DOMPROP_PREFIXED
--- a/layout/style/nsCSSPropertyID.h
+++ b/layout/style/nsCSSPropertyID.h
@@ -17,19 +17,17 @@
 
    To change the list of properties, see nsCSSPropList.h
 
  */
 enum nsCSSPropertyID {
   eCSSProperty_UNKNOWN = -1,
 
   #define CSS_PROP(name_, id_, ...) eCSSProperty_##id_,
-  #define CSS_PROP_LIST_INCLUDE_LOGICAL
   #include "nsCSSPropList.h"
-  #undef CSS_PROP_LIST_INCLUDE_LOGICAL
   #undef CSS_PROP
 
   eCSSProperty_COUNT_no_shorthands,
   // Make the count continue where it left off:
   eCSSProperty_COUNT_DUMMY = eCSSProperty_COUNT_no_shorthands - 1,
 
   #define CSS_PROP_SHORTHAND(name_, id_, ...) eCSSProperty_##id_,
   #include "nsCSSPropList.h"
--- a/layout/style/nsCSSProps.cpp
+++ b/layout/style/nsCSSProps.cpp
@@ -36,42 +36,36 @@ typedef nsCSSProps::KTableEntry KTableEn
 // By wrapping internal-only properties in this macro, we are not
 // exposing them in the CSSOM. Since currently it is not necessary to
 // allow accessing them in that way, it is easier and cheaper to just
 // do this rather than exposing them conditionally.
 #define CSS_PROP(name_, id_, method_, flags_, pref_, ...) \
   static_assert(!((flags_) & CSS_PROPERTY_ENABLED_MASK) || pref_[0], \
                 "Internal-only property '" #name_ "' should be wrapped in " \
                 "#ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL");
-#define CSS_PROP_LIST_INCLUDE_LOGICAL
 #define CSS_PROP_LIST_EXCLUDE_INTERNAL
 #include "nsCSSPropList.h"
 #undef CSS_PROP_LIST_EXCLUDE_INTERNAL
-#undef CSS_PROP_LIST_INCLUDE_LOGICAL
 #undef CSS_PROP
 
 #define CSS_PROP(name_, id_, method_, flags_, pref_, ...) \
   static_assert(!((flags_) & CSS_PROPERTY_ENABLED_IN_CHROME) || \
                 ((flags_) & CSS_PROPERTY_ENABLED_IN_UA_SHEETS), \
                 "Property '" #name_ "' is enabled in chrome, so it should " \
                 "also be enabled in UA sheets");
-#define CSS_PROP_LIST_INCLUDE_LOGICAL
 #include "nsCSSPropList.h"
-#undef CSS_PROP_LIST_INCLUDE_LOGICAL
 #undef CSS_PROP
 
 // required to make the symbol external, so that TestCSSPropertyLookup.cpp can link with it
 extern const char* const kCSSRawProperties[];
 
 // define an array of all CSS properties
 const char* const kCSSRawProperties[eCSSProperty_COUNT_with_aliases] = {
 #define CSS_PROP(name_, ...) #name_,
-#define CSS_PROP_LIST_INCLUDE_LOGICAL
 #include "nsCSSPropList.h"
-#undef CSS_PROP_LIST_INCLUDE_LOGICAL
 #undef CSS_PROP
 #define CSS_PROP_SHORTHAND(name_, id_, method_, flags_, pref_) #name_,
 #include "nsCSSPropList.h"
 #undef CSS_PROP_SHORTHAND
 #define CSS_PROP_ALIAS(aliasname_, aliasid_, id_, method_, pref_) #aliasname_,
 #include "nsCSSPropAliasList.h"
 #undef CSS_PROP_ALIAS
 };
@@ -184,19 +178,17 @@ nsCSSProps::AddRefTable(void)
       #define OBSERVE_PROP(pref_, id_)                                        \
         if (pref_[0]) {                                                       \
           Preferences::AddBoolVarCache(&gPropertyEnabled[id_],                \
                                        pref_);                                \
         }
 
       #define CSS_PROP(name_, id_, method_, flags_, pref_, ...) \
         OBSERVE_PROP(pref_, eCSSProperty_##id_)
-      #define CSS_PROP_LIST_INCLUDE_LOGICAL
       #include "nsCSSPropList.h"
-      #undef CSS_PROP_LIST_INCLUDE_LOGICAL
       #undef CSS_PROP
 
       #define  CSS_PROP_SHORTHAND(name_, id_, method_, flags_, pref_) \
         OBSERVE_PROP(pref_, eCSSProperty_##id_)
       #include "nsCSSPropList.h"
       #undef CSS_PROP_SHORTHAND
 
       #define CSS_PROP_ALIAS(aliasname_, aliasid_, propid_, aliasmethod_, pref_)    \
@@ -237,21 +229,19 @@ nsCSSProps::AddRefTable(void)
       }
 
       // Assert that CSS_PROPERTY_INTERNAL is used on properties in
       // #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL sections of nsCSSPropList.h
       // and on no others.
       static nsCSSPropertyID nonInternalProperties[] = {
         #define CSS_PROP(name_, id_, ...)           eCSSProperty_##id_,
         #define CSS_PROP_SHORTHAND(name_, id_, ...) eCSSProperty_##id_,
-        #define CSS_PROP_LIST_INCLUDE_LOGICAL
         #define CSS_PROP_LIST_EXCLUDE_INTERNAL
         #include "nsCSSPropList.h"
         #undef CSS_PROP_LIST_EXCLUDE_INTERNAL
-        #undef CSS_PROP_LIST_INCLUDE_LOGICAL
         #undef CSS_PROP_SHORTHAND
         #undef CSS_PROP
       };
       MOZ_ASSERT(ArrayLength(nonInternalProperties) <= eCSSProperty_COUNT);
 
       bool found[eCSSProperty_COUNT];
       PodArrayZero(found);
       for (nsCSSPropertyID p : nonInternalProperties) {
@@ -2223,19 +2213,17 @@ nsCSSProps::ValueToKeyword(int32_t aValu
     return nsCSSKeywords::GetStringValue(keyword);
   }
 }
 
 /* static */ const KTableEntry* const
 nsCSSProps::kKeywordTableTable[eCSSProperty_COUNT_no_shorthands] = {
   #define CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, \
                    kwtable_, ...) kwtable_,
-  #define CSS_PROP_LIST_INCLUDE_LOGICAL
   #include "nsCSSPropList.h"
-  #undef CSS_PROP_LIST_INCLUDE_LOGICAL
   #undef CSS_PROP
 };
 
 const nsCString&
 nsCSSProps::LookupPropertyValue(nsCSSPropertyID aProp, int32_t aValue)
 {
   MOZ_ASSERT(aProp >= 0 && aProp < eCSSProperty_COUNT,
              "property out of range");
@@ -2272,40 +2260,34 @@ bool nsCSSProps::GetColorName(int32_t aP
   return rv;
 }
 
 const nsStyleAnimType
 nsCSSProps::kAnimTypeTable[eCSSProperty_COUNT_no_shorthands] = {
 #define CSS_PROP(name_, id_, method_, flags_, pref_, \
                  parsevariant_, kwtable_, animtype_) \
   animtype_,
-#define CSS_PROP_LIST_INCLUDE_LOGICAL
 #include "nsCSSPropList.h"
-#undef CSS_PROP_LIST_INCLUDE_LOGICAL
 #undef CSS_PROP
 };
 
 const uint32_t nsCSSProps::kFlagsTable[eCSSProperty_COUNT] = {
 #define CSS_PROP(name_, id_, method_, flags_, ...) flags_,
-#define CSS_PROP_LIST_INCLUDE_LOGICAL
 #include "nsCSSPropList.h"
-#undef CSS_PROP_LIST_INCLUDE_LOGICAL
 #undef CSS_PROP
 #define CSS_PROP_SHORTHAND(name_, id_, method_, flags_, pref_) flags_,
 #include "nsCSSPropList.h"
 #undef CSS_PROP_SHORTHAND
 };
 
 static const nsCSSPropertyID gAllSubpropTable[] = {
 #define CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
-#define CSS_PROP_LIST_INCLUDE_LOGICAL
 #define CSS_PROP(name_, id_, ...) eCSSProperty_##id_,
 #include "nsCSSPropList.h"
 #undef CSS_PROP
-#undef CSS_PROP_LIST_INCLUDE_LOGICAL
 #undef CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
   eCSSProperty_UNKNOWN
 };
 
 static const nsCSSPropertyID gAnimationSubpropTable[] = {
   eCSSProperty_animation_duration,
   eCSSProperty_animation_timing_function,
   eCSSProperty_animation_delay,
@@ -2749,19 +2731,17 @@ nsCSSProps::gPropertyEnabled[eCSSPropert
   // value is, it will later be changed in nsCSSProps::AddRefTable().
   // If the property has "ENABLED_IN" flags but doesn't have a pref,
   // it is an internal property which is disabled elsewhere.
   #define IS_ENABLED_BY_DEFAULT(flags_) \
     (!((flags_) & CSS_PROPERTY_ENABLED_MASK))
 
   #define CSS_PROP(name_, id_, method_, flags_, ...) \
     IS_ENABLED_BY_DEFAULT(flags_),
-  #define CSS_PROP_LIST_INCLUDE_LOGICAL
   #include "nsCSSPropList.h"
-  #undef CSS_PROP_LIST_INCLUDE_LOGICAL
   #undef CSS_PROP
 
   #define  CSS_PROP_SHORTHAND(name_, id_, method_, flags_, pref_) \
     IS_ENABLED_BY_DEFAULT(flags_),
   #include "nsCSSPropList.h"
   #undef CSS_PROP_SHORTHAND
 
   #define CSS_PROP_ALIAS(aliasname_, aliasid_, propid_, aliasmethod_, pref_) \
@@ -2772,28 +2752,24 @@ nsCSSProps::gPropertyEnabled[eCSSPropert
   #undef IS_ENABLED_BY_DEFAULT
 };
 
 #include "../../dom/base/PropertyUseCounterMap.inc"
 
 /* static */ const UseCounter
 nsCSSProps::gPropertyUseCounter[eCSSProperty_COUNT_no_shorthands] = {
   #define CSS_PROP_PUBLIC_OR_PRIVATE(publicname_, privatename_) privatename_
-  #define CSS_PROP_LIST_INCLUDE_LOGICAL
   #define CSS_PROP(name_, id_, method_, ...) \
     static_cast<UseCounter>(USE_COUNTER_FOR_CSS_PROPERTY_##method_),
   #include "nsCSSPropList.h"
   #undef CSS_PROP
-  #undef CSS_PROP_LIST_INCLUDE_LOGICAL
   #undef CSS_PROP_PUBLIC_OR_PRIVATE
 };
 
 const uint32_t
 nsCSSProps::kParserVariantTable[eCSSProperty_COUNT_no_shorthands] = {
 #define CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, ...) \
   parsevariant_,
-#define CSS_PROP_LIST_INCLUDE_LOGICAL
 #include "nsCSSPropList.h"
-#undef CSS_PROP_LIST_INCLUDE_LOGICAL
 #undef CSS_PROP
 };
 
 #include "nsCSSPropsGenerated.inc"
--- a/layout/style/nsComputedDOMStyle.cpp
+++ b/layout/style/nsComputedDOMStyle.cpp
@@ -7178,31 +7178,27 @@ nsComputedDOMStyle::RegisterPrefChangeCa
   // entries iterated in nsComputedDOMStylePropertyList.h.
   ComputedStyleMap* data = GetComputedStyleMap();
 #define REGISTER_CALLBACK(pref_)                                             \
   if (pref_[0]) {                                                            \
     Preferences::RegisterCallback(MarkComputedStyleMapDirty, pref_, data);   \
   }
 #define CSS_PROP(prop_, id_, method_, flags_, pref_, ...) \
   REGISTER_CALLBACK(pref_)
-#define CSS_PROP_LIST_INCLUDE_LOGICAL
 #include "nsCSSPropList.h"
-#undef CSS_PROP_LIST_INCLUDE_LOGICAL
 #undef CSS_PROP
 #undef REGISTER_CALLBACK
 }
 
 /* static */ void
 nsComputedDOMStyle::UnregisterPrefChangeCallbacks()
 {
   ComputedStyleMap* data = GetComputedStyleMap();
 #define UNREGISTER_CALLBACK(pref_)                                             \
   if (pref_[0]) {                                                              \
     Preferences::UnregisterCallback(MarkComputedStyleMapDirty, pref_, data);   \
   }
 #define CSS_PROP(prop_, id_, method_, flags_, pref_, ...) \
   UNREGISTER_CALLBACK(pref_)
-#define CSS_PROP_LIST_INCLUDE_LOGICAL
 #include "nsCSSPropList.h"
-#undef CSS_PROP_LIST_INCLUDE_LOGICAL
 #undef CSS_PROP
 #undef UNREGISTER_CALLBACK
 }
--- a/layout/style/nsDOMCSSDeclaration.h
+++ b/layout/style/nsDOMCSSDeclaration.h
@@ -93,27 +93,25 @@ public:
   void                                                                       \
   Set##method_(const nsAString& aValue, nsIPrincipal* aSubjectPrincipal,     \
                mozilla::ErrorResult& rv)                                     \
   {                                                                          \
     rv = SetPropertyValue(eCSSProperty_##id_, aValue, aSubjectPrincipal);    \
   }
 
 #define CSS_PROP_LIST_EXCLUDE_INTERNAL
-#define CSS_PROP_LIST_INCLUDE_LOGICAL
 #define CSS_PROP_SHORTHAND(name_, id_, method_, ...)  CSS_PROP(name_, id_, method_, )
 #include "nsCSSPropList.h"
 
 #define CSS_PROP_ALIAS(aliasname_, aliasid_, propid_, aliasmethod_, ...)  \
   CSS_PROP(X, propid_, aliasmethod_, )
 #include "nsCSSPropAliasList.h"
 #undef CSS_PROP_ALIAS
 
 #undef CSS_PROP_SHORTHAND
-#undef CSS_PROP_LIST_INCLUDE_LOGICAL
 #undef CSS_PROP_LIST_EXCLUDE_INTERNAL
 #undef CSS_PROP
 #undef CSS_PROP_PUBLIC_OR_PRIVATE
 
   virtual void IndexedGetter(uint32_t aIndex, bool& aFound, nsAString& aPropName) override;
 
   virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
 
--- a/layout/style/test/ListCSSProperties.cpp
+++ b/layout/style/test/ListCSSProperties.cpp
@@ -16,40 +16,36 @@ struct PropertyInfo {
     const char *pref;
 };
 
 const PropertyInfo gLonghandProperties[] = {
 
 #define CSS_PROP_PUBLIC_OR_PRIVATE(publicname_, privatename_) publicname_
 #define CSS_PROP(name_, id_, method_, flags_, pref_, ...) \
     { #name_, #method_, pref_ },
-#define CSS_PROP_LIST_INCLUDE_LOGICAL
 
 #include "nsCSSPropList.h"
 
-#undef CSS_PROP_LIST_INCLUDE_LOGICAL
 #undef CSS_PROP
 #undef CSS_PROP_PUBLIC_OR_PRIVATE
 
 };
 
 /*
  * These are the properties for which domName in the above list should
  * be used.  They're in the same order as the above list, with some
  * items skipped.
  */
 const char* gLonghandPropertiesWithDOMProp[] = {
 
 #define CSS_PROP_LIST_EXCLUDE_INTERNAL
 #define CSS_PROP(name_, ...) #name_,
-#define CSS_PROP_LIST_INCLUDE_LOGICAL
 
 #include "nsCSSPropList.h"
 
-#undef CSS_PROP_LIST_INCLUDE_LOGICAL
 #undef CSS_PROP
 #undef CSS_PROP_LIST_EXCLUDE_INTERNAL
 
 };
 
 const PropertyInfo gShorthandProperties[] = {
 
 #define CSS_PROP_PUBLIC_OR_PRIVATE(publicname_, privatename_) publicname_