Bug 1354876 - Add variables for represents 'normal' value for font-variant-{alternates, east-asian, numeric, ligatures}. r?heycam draft
authorHiroyuki Ikezoe <hikezoe@mozilla.com>
Fri, 14 Apr 2017 10:41:21 +0900
changeset 562563 b8bd98a7c808d7b9250d48359b089611dc85d103
parent 562562 f2830005097ce99c102443dbd744887a34740fe9
child 562564 55930f36a10c7c7bea16b531619b5ef180f62218
push id54047
push userhikezoe@mozilla.com
push dateFri, 14 Apr 2017 02:39:29 +0000
reviewersheycam
bugs1354876
milestone55.0a1
Bug 1354876 - Add variables for represents 'normal' value for font-variant-{alternates, east-asian, numeric, ligatures}. r?heycam MozReview-Commit-ID: 2ofk4h8fN6Z
gfx/src/nsFont.h
gfx/thebes/gfxFontConstants.h
--- a/gfx/src/nsFont.h
+++ b/gfx/src/nsFont.h
@@ -50,29 +50,29 @@ struct nsFont {
   uint8_t style = NS_FONT_STYLE_NORMAL;
 
   // Force this font to not be considered a 'generic' font, even if
   // the name is the same as a CSS generic font family.
   bool systemFont = false;
 
   // Variant subproperties
   uint8_t variantCaps = NS_FONT_VARIANT_CAPS_NORMAL;
-  uint8_t variantNumeric = 0;
+  uint8_t variantNumeric = NS_FONT_VARIANT_NUMERIC_NORMAL;
   uint8_t variantPosition = NS_FONT_VARIANT_POSITION_NORMAL;
   uint8_t variantWidth = NS_FONT_VARIANT_WIDTH_NORMAL;
 
-  uint16_t variantLigatures = 0;
-  uint16_t variantEastAsian = 0;
+  uint16_t variantLigatures = NS_FONT_VARIANT_LIGATURES_NORMAL;
+  uint16_t variantEastAsian = NS_FONT_VARIANT_EAST_ASIAN_NORMAL;
 
   // Some font-variant-alternates property values require
   // font-specific settings defined via @font-feature-values rules.
   // These are resolved *after* font matching occurs.
 
   // -- bitmask for both enumerated and functional propvals
-  uint16_t variantAlternates = 0;
+  uint16_t variantAlternates = NS_FONT_VARIANT_ALTERNATES_NORMAL;
 
   // Smoothing - controls subpixel-antialiasing (currently OSX only)
   uint8_t smoothing = NS_FONT_SMOOTHING_AUTO;
 
   // The weight of the font; see gfxFontConstants.h.
   uint16_t weight = NS_FONT_WEIGHT_NORMAL;
 
   // The stretch of the font (the sum of various NS_FONT_STRETCH_*
--- a/gfx/thebes/gfxFontConstants.h
+++ b/gfx/thebes/gfxFontConstants.h
@@ -42,16 +42,17 @@
 #define NS_FONT_SYNTHESIS_STYLE                     0x2
 
 #define NS_FONT_DISPLAY_AUTO            0
 #define NS_FONT_DISPLAY_BLOCK           1
 #define NS_FONT_DISPLAY_SWAP            2
 #define NS_FONT_DISPLAY_FALLBACK        3
 #define NS_FONT_DISPLAY_OPTIONAL        4
 
+#define NS_FONT_VARIANT_ALTERNATES_NORMAL             0
 // alternates - simple enumerated values
 #define NS_FONT_VARIANT_ALTERNATES_HISTORICAL        (1 << 0)
 
 // alternates - values that use functional syntax
 #define NS_FONT_VARIANT_ALTERNATES_STYLISTIC         (1 << 1)
 #define NS_FONT_VARIANT_ALTERNATES_STYLESET          (1 << 2)
 #define NS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT (1 << 3)
 #define NS_FONT_VARIANT_ALTERNATES_SWASH             (1 << 4)
@@ -73,16 +74,17 @@
 #define NS_FONT_VARIANT_CAPS_NORMAL                 0
 #define NS_FONT_VARIANT_CAPS_SMALLCAPS              1
 #define NS_FONT_VARIANT_CAPS_ALLSMALL               2
 #define NS_FONT_VARIANT_CAPS_PETITECAPS             3
 #define NS_FONT_VARIANT_CAPS_ALLPETITE              4
 #define NS_FONT_VARIANT_CAPS_TITLING                5
 #define NS_FONT_VARIANT_CAPS_UNICASE                6
 
+#define NS_FONT_VARIANT_EAST_ASIAN_NORMAL       0
 #define NS_FONT_VARIANT_EAST_ASIAN_JIS78       (1 << 0)
 #define NS_FONT_VARIANT_EAST_ASIAN_JIS83       (1 << 1)
 #define NS_FONT_VARIANT_EAST_ASIAN_JIS90       (1 << 2)
 #define NS_FONT_VARIANT_EAST_ASIAN_JIS04       (1 << 3)
 #define NS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED  (1 << 4)
 #define NS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL (1 << 5)
 #define NS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH  (1 << 6)
 #define NS_FONT_VARIANT_EAST_ASIAN_PROP_WIDTH  (1 << 7)
@@ -96,16 +98,17 @@
     NS_FONT_VARIANT_EAST_ASIAN_JIS04 | \
     NS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED | \
     NS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL )
 
 #define NS_FONT_VARIANT_EAST_ASIAN_WIDTH_MASK ( \
     NS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH | \
     NS_FONT_VARIANT_EAST_ASIAN_PROP_WIDTH )
 
+#define NS_FONT_VARIANT_LIGATURES_NORMAL            0
 #define NS_FONT_VARIANT_LIGATURES_NONE             (1 << 0)
 #define NS_FONT_VARIANT_LIGATURES_COMMON           (1 << 1)
 #define NS_FONT_VARIANT_LIGATURES_NO_COMMON        (1 << 2)
 #define NS_FONT_VARIANT_LIGATURES_DISCRETIONARY    (1 << 3)
 #define NS_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY (1 << 4)
 #define NS_FONT_VARIANT_LIGATURES_HISTORICAL       (1 << 5)
 #define NS_FONT_VARIANT_LIGATURES_NO_HISTORICAL    (1 << 6)
 #define NS_FONT_VARIANT_LIGATURES_CONTEXTUAL       (1 << 7)
@@ -123,16 +126,17 @@
 #define NS_FONT_VARIANT_LIGATURES_HISTORICAL_MASK ( \
     NS_FONT_VARIANT_LIGATURES_HISTORICAL | \
     NS_FONT_VARIANT_LIGATURES_NO_HISTORICAL )
 
 #define NS_FONT_VARIANT_LIGATURES_CONTEXTUAL_MASK \
     NS_FONT_VARIANT_LIGATURES_CONTEXTUAL | \
     NS_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL
 
+#define NS_FONT_VARIANT_NUMERIC_NORMAL              0
 #define NS_FONT_VARIANT_NUMERIC_LINING             (1 << 0)
 #define NS_FONT_VARIANT_NUMERIC_OLDSTYLE           (1 << 1)
 #define NS_FONT_VARIANT_NUMERIC_PROPORTIONAL       (1 << 2)
 #define NS_FONT_VARIANT_NUMERIC_TABULAR            (1 << 3)
 #define NS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS (1 << 4)
 #define NS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS  (1 << 5)
 #define NS_FONT_VARIANT_NUMERIC_SLASHZERO          (1 << 6)
 #define NS_FONT_VARIANT_NUMERIC_ORDINAL            (1 << 7)