author | Xidorn Quan <me@upsuper.org> |
Sun, 29 Apr 2018 09:03:31 +1000 | |
changeset 416186 | 2265aba376c02ec003824714824f57cf1f4996cf |
parent 416185 | f31672f0c57afb5235859c3ee0123d05f8bfb360 |
child 416187 | ee0ac8a8f46e105098f953bab0bf08a17fb12fa7 |
push id | 33918 |
push user | nerli@mozilla.com |
push date | Sun, 29 Apr 2018 09:47:13 +0000 |
treeherder | mozilla-central@afbec7f03bd8 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | emilio |
bugs | 1434130 |
milestone | 61.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
|
layout/style/nsCSSProps.cpp | file | annotate | diff | comparison | revisions | |
layout/style/nsCSSProps.h | file | annotate | diff | comparison | revisions |
--- a/layout/style/nsCSSProps.cpp +++ b/layout/style/nsCSSProps.cpp @@ -2747,17 +2747,9 @@ nsCSSProps::gPropertyUseCounter[eCSSProp #define CSS_PROP_LONGHAND(name_, id_, method_, ...) \ CSS_PROP_USE_COUNTER(method_) #include "mozilla/ServoCSSPropList.h" #undef CSS_PROP_LONGHAND #undef CSS_PROP_USE_COUNTER #undef CSS_PROP_PUBLIC_OR_PRIVATE }; -const uint32_t -nsCSSProps::kParserVariantTable[eCSSProperty_COUNT_no_shorthands] = { -#define CSS_PROP(name_, id_, method_, pref_, parsevariant_, ...) \ - parsevariant_, -#include "nsCSSPropList.h" -#undef CSS_PROP -}; - #include "nsCSSPropsGenerated.inc"
--- a/layout/style/nsCSSProps.h +++ b/layout/style/nsCSSProps.h @@ -24,110 +24,16 @@ #include "mozilla/EnumTypeTraits.h" #include "mozilla/Preferences.h" #include "nsXULAppAPI.h" // Length of the "--" prefix on custom names (such as custom property names, // and, in the future, custom media query names). #define CSS_CUSTOM_NAME_PREFIX_LENGTH 2 -// Flags for ParseVariant method -#define VARIANT_KEYWORD 0x000001 // K -#define VARIANT_LENGTH 0x000002 // L -#define VARIANT_PERCENT 0x000004 // P -#define VARIANT_COLOR 0x000008 // C eCSSUnit_*Color, eCSSUnit_Ident (e.g. "red") -#define VARIANT_URL 0x000010 // U -#define VARIANT_NUMBER 0x000020 // N -#define VARIANT_INTEGER 0x000040 // I -#define VARIANT_ANGLE 0x000080 // G -#define VARIANT_FREQUENCY 0x000100 // F -#define VARIANT_TIME 0x000200 // T -#define VARIANT_STRING 0x000400 // S -#define VARIANT_COUNTER 0x000800 // -#define VARIANT_ATTR 0x001000 // -#define VARIANT_IDENTIFIER 0x002000 // D -#define VARIANT_IDENTIFIER_NO_INHERIT 0x004000 // like above, but excluding -// 'inherit' and 'initial' -#define VARIANT_AUTO 0x010000 // A -#define VARIANT_INHERIT 0x020000 // H eCSSUnit_Initial, eCSSUnit_Inherit, eCSSUnit_Unset -#define VARIANT_NONE 0x040000 // O -#define VARIANT_NORMAL 0x080000 // M -#define VARIANT_SYSFONT 0x100000 // eCSSUnit_System_Font -#define VARIANT_GRADIENT 0x200000 // eCSSUnit_Gradient -#define VARIANT_TIMING_FUNCTION 0x400000 // cubic-bezier() and steps() -#define VARIANT_ALL 0x800000 // -#define VARIANT_IMAGE_RECT 0x01000000 // eCSSUnit_Function -// This is an extra bit that says that a VARIANT_ANGLE allows unitless zero: -#define VARIANT_ZERO_ANGLE 0x02000000 // unitless zero for angles -#define VARIANT_CALC 0x04000000 // eCSSUnit_Calc -#define VARIANT_ELEMENT 0x08000000 // eCSSUnit_Element -#define VARIANT_NONNEGATIVE_DIMENSION 0x10000000 // Only lengths greater than or equal to 0.0 -// Keyword used iff gfx.font_rendering.opentype_svg.enabled is true: -#define VARIANT_OPENTYPE_SVG_KEYWORD 0x20000000 -#define VARIANT_ABSOLUTE_DIMENSION 0x40000000 // B Only lengths with absolute length unit - -// Variants that can consume more than one token -#define VARIANT_MULTIPLE_TOKENS \ - (VARIANT_COLOR | /* rgb(...), hsl(...), etc. */ \ - VARIANT_COUNTER | /* counter(...), counters(...) */ \ - VARIANT_ATTR | /* attr(...) */ \ - VARIANT_GRADIENT | /* linear-gradient(...), etc. */ \ - VARIANT_TIMING_FUNCTION | /* cubic-bezier(...), steps(...) */ \ - VARIANT_IMAGE_RECT | /* -moz-image-rect(...) */ \ - VARIANT_CALC | /* calc(...) */ \ - VARIANT_ELEMENT) /* -moz-element(...) */ - -// Common combinations of variants -#define VARIANT_AL (VARIANT_AUTO | VARIANT_LENGTH) -#define VARIANT_LP (VARIANT_LENGTH | VARIANT_PERCENT) -#define VARIANT_LN (VARIANT_LENGTH | VARIANT_NUMBER) -#define VARIANT_AH (VARIANT_AUTO | VARIANT_INHERIT) -#define VARIANT_AHLP (VARIANT_AH | VARIANT_LP) -#define VARIANT_AHI (VARIANT_AH | VARIANT_INTEGER) -#define VARIANT_AHK (VARIANT_AH | VARIANT_KEYWORD) -#define VARIANT_AHKLP (VARIANT_AHLP | VARIANT_KEYWORD) -#define VARIANT_AHL (VARIANT_AH | VARIANT_LENGTH) -#define VARIANT_AHKL (VARIANT_AHK | VARIANT_LENGTH) -#define VARIANT_HK (VARIANT_INHERIT | VARIANT_KEYWORD) -#define VARIANT_HKF (VARIANT_HK | VARIANT_FREQUENCY) -#define VARIANT_HKI (VARIANT_HK | VARIANT_INTEGER) -#define VARIANT_HKL (VARIANT_HK | VARIANT_LENGTH) -#define VARIANT_HKLP (VARIANT_HK | VARIANT_LP) -#define VARIANT_HKLPO (VARIANT_HKLP | VARIANT_NONE) -#define VARIANT_HL (VARIANT_INHERIT | VARIANT_LENGTH) -#define VARIANT_HI (VARIANT_INHERIT | VARIANT_INTEGER) -#define VARIANT_HLP (VARIANT_HL | VARIANT_PERCENT) -#define VARIANT_HLPN (VARIANT_HLP | VARIANT_NUMBER) -#define VARIANT_HLPO (VARIANT_HLP | VARIANT_NONE) -#define VARIANT_HTP (VARIANT_INHERIT | VARIANT_TIME | VARIANT_PERCENT) -#define VARIANT_HMK (VARIANT_HK | VARIANT_NORMAL) -#define VARIANT_HC (VARIANT_INHERIT | VARIANT_COLOR) -#define VARIANT_HCK (VARIANT_HK | VARIANT_COLOR) -#define VARIANT_HUK (VARIANT_HK | VARIANT_URL) -#define VARIANT_HUO (VARIANT_INHERIT | VARIANT_URL | VARIANT_NONE) -#define VARIANT_AHUO (VARIANT_AUTO | VARIANT_HUO) -#define VARIANT_HPN (VARIANT_INHERIT | VARIANT_PERCENT | VARIANT_NUMBER) -#define VARIANT_PN (VARIANT_PERCENT | VARIANT_NUMBER) -#define VARIANT_ALPN (VARIANT_AL | VARIANT_PN) -#define VARIANT_HN (VARIANT_INHERIT | VARIANT_NUMBER) -#define VARIANT_HON (VARIANT_HN | VARIANT_NONE) -#define VARIANT_HOS (VARIANT_INHERIT | VARIANT_NONE | VARIANT_STRING) -#define VARIANT_LPN (VARIANT_LP | VARIANT_NUMBER) -#define VARIANT_UK (VARIANT_URL | VARIANT_KEYWORD) -#define VARIANT_UO (VARIANT_URL | VARIANT_NONE) -#define VARIANT_ANGLE_OR_ZERO (VARIANT_ANGLE | VARIANT_ZERO_ANGLE) -#define VARIANT_LB (VARIANT_LENGTH | VARIANT_ABSOLUTE_DIMENSION) -#define VARIANT_LBCALC (VARIANT_LB | VARIANT_CALC) -#define VARIANT_LCALC (VARIANT_LENGTH | VARIANT_CALC) -#define VARIANT_LPCALC (VARIANT_LCALC | VARIANT_PERCENT) -#define VARIANT_LNCALC (VARIANT_LCALC | VARIANT_NUMBER) -#define VARIANT_LPNCALC (VARIANT_LNCALC | VARIANT_PERCENT) -#define VARIANT_IMAGE (VARIANT_URL | VARIANT_NONE | VARIANT_GRADIENT | \ - VARIANT_IMAGE_RECT | VARIANT_ELEMENT) - class nsCSSProps { public: typedef mozilla::CSSEnabledState EnabledState; typedef mozilla::CSSPropFlags Flags; struct KTableEntry { // KTableEntry objects can be initialized either with an int16_t value @@ -246,26 +152,16 @@ public: static inline bool PropHasFlags(nsCSSPropertyID aProperty, Flags aFlags) { MOZ_ASSERT(0 <= aProperty && aProperty < eCSSProperty_COUNT, "out of range"); return (nsCSSProps::kFlagsTable[aProperty] & aFlags) == aFlags; } private: - static const uint32_t kParserVariantTable[eCSSProperty_COUNT_no_shorthands]; - -public: - static inline uint32_t ParserVariant(nsCSSPropertyID aProperty) { - MOZ_ASSERT(0 <= aProperty && aProperty < eCSSProperty_COUNT_no_shorthands, - "out of range"); - return nsCSSProps::kParserVariantTable[aProperty]; - } - -private: // A table for shorthand properties. The appropriate index is the // property ID minus eCSSProperty_COUNT_no_shorthands. static const nsCSSPropertyID *const kSubpropertyTable[eCSSProperty_COUNT - eCSSProperty_COUNT_no_shorthands]; public: static inline const nsCSSPropertyID * SubpropertyEntryFor(nsCSSPropertyID aProperty) {