| // Copyright 2017 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Based on the grammar provided here: https://goo.gl/svLze7 |
| // Most top level definitions here (mostly messages, but also the enum "h", is |
| // named after a rule or token in the grammar. The messages that aren't were |
| // implemented to hack around shortcomings in the protobuf format (such as |
| // "StringCharOrQuote"). These can be identified because they are preceded by |
| // a comment that says "Not in grammar". |
| |
| syntax = "proto2"; |
| |
| package css_proto_converter; |
| |
| // Tokens |
| // TODO(metzman): Implement CDO, CDC, UNICODERANGE, and range. |
| // The following tokens are implmented in code and do not have their own |
| // message: INCLUDES, DASHMATCH, HASH, STRING IMPORT_SYM, PAGE_SYM, MEDIA_SYM, |
| // FONT_FACE_SYM, CHARSET_SYM, NAMESPACE_SYM, IMPORTANT_SYM, EMS, EXS, NUMBER, |
| // and PERCENTAGE. |
| // DIMEN not implemented since it isnt used in any production. |
| |
| // This is named "h" because it represents the "h" token in the grammar this is |
| // based off of. |
| enum H { |
| ZERO = 48; |
| ONE = 49; |
| TWO = 50; |
| THREE = 51; |
| FOUR = 52; |
| FIVE = 53; |
| SIX = 54; |
| SEVEN = 55; |
| EIGHT = 56; |
| NINE = 57; |
| A_UPPER = 65; |
| B_UPPER = 66; |
| C_UPPER = 67; |
| D_UPPER = 68; |
| E_UPPER = 69; |
| F_UPPER = 70; |
| A_LOWER = 97; |
| B_LOWER = 98; |
| C_LOWER = 99; |
| D_LOWER = 100; |
| E_LOWER = 101; |
| F_LOWER = 102; |
| } |
| |
| // TODO(metzman): Add "nonascii" token from grammar. |
| |
| message Unicode { |
| required H ascii_value_1 = 1; |
| optional H ascii_value_2 = 2; |
| optional H ascii_value_3 = 3; |
| optional H ascii_value_4 = 4; |
| optional H ascii_value_5 = 5; |
| optional H ascii_value_6 = 6; |
| optional UnrepeatedW unrepeated_w = 7; |
| } |
| |
| // unicode | '\' [#x20-#x7E#x80-#xD7FF#xE000-#xFFFD#x10000-#x10FFFF] |
| message Escape { |
| // #x20-#x7E |
| enum AsciiValue { |
| SPACE = 32; |
| EXCLAMATION_POINT = 33; |
| DOUBLE_QUOTE = 34; |
| HASH = 35; |
| DOLLAR = 36; |
| PERCENT = 37; |
| AMPERSAND = 38; |
| APOSTROPHE = 39; |
| OPEN_PAREN = 40; |
| CLOSE_PAREN = 41; |
| STAR = 42; |
| PLUS = 43; |
| COMMA = 44; |
| MINUS = 45; |
| DOT = 46; |
| SLASH = 47; |
| ZERO = 48; |
| ONE = 49; |
| TWO = 50; |
| THREE = 51; |
| FOUR = 52; |
| FIVE = 53; |
| SIX = 54; |
| SEVEN = 55; |
| EIGHT = 56; |
| NINE = 57; |
| COLON = 58; |
| SEMI_COLON = 59; |
| LESS_THAN = 60; |
| EQUAL = 61; |
| GREATER_THAN = 62; |
| QUESTION = 63; |
| AT_SIGN = 64; |
| A_UPPER = 65; |
| B_UPPER = 66; |
| C_UPPER = 67; |
| D_UPPER = 68; |
| E_UPPER = 69; |
| F_UPPER = 70; |
| G_UPPER = 71; |
| H_UPPER = 72; |
| I_UPPER = 73; |
| J_UPPER = 74; |
| K_UPPER = 75; |
| L_UPPER = 76; |
| M_UPPER = 77; |
| N_UPPER = 78; |
| O_UPPER = 79; |
| P_UPPER = 80; |
| Q_UPPER = 81; |
| R_UPPER = 82; |
| S_UPPER = 83; |
| T_UPPER = 84; |
| U_UPPER = 85; |
| V_UPPER = 86; |
| W_UPPER = 87; |
| X_UPPER = 88; |
| Y_UPPER = 89; |
| Z_UPPER = 90; |
| OPEN_BRACKET = 91; |
| BACKSLASH = 92; |
| CLOSE_BRACKET = 93; |
| CARET = 94; |
| UNDERSCORE = 95; |
| BACKTICK = 96; |
| A_LOWER = 97; |
| B_LOWER = 98; |
| C_LOWER = 99; |
| D_LOWER = 100; |
| E_LOWER = 101; |
| F_LOWER = 102; |
| G_LOWER = 103; |
| H_LOWER = 104; |
| I_LOWER = 105; |
| J_LOWER = 106; |
| K_LOWER = 107; |
| L_LOWER = 108; |
| M_LOWER = 109; |
| N_LOWER = 110; |
| O_LOWER = 111; |
| P_LOWER = 112; |
| Q_LOWER = 113; |
| R_LOWER = 114; |
| S_LOWER = 115; |
| T_LOWER = 116; |
| U_LOWER = 117; |
| V_LOWER = 118; |
| W_LOWER = 119; |
| X_LOWER = 120; |
| Y_LOWER = 121; |
| Z_LOWER = 122; |
| OPEN_CURLY_BRACE = 123; |
| PIPE = 124; |
| CLOSE_CURLY_BRACE_ = 125; |
| TILDE = 126; |
| } |
| |
| oneof rhs { |
| Unicode unicode = 1; |
| AsciiValue ascii_value = 2; |
| } |
| // TODO(metzman): Determine if we care about unicode points not covered here. |
| } |
| |
| message Nmstart { |
| enum AsciiValue { |
| A_UPPER = 65; |
| B_UPPER = 66; |
| C_UPPER = 67; |
| D_UPPER = 68; |
| E_UPPER = 69; |
| F_UPPER = 70; |
| G_UPPER = 71; |
| H_UPPER = 72; |
| I_UPPER = 73; |
| J_UPPER = 74; |
| K_UPPER = 75; |
| L_UPPER = 76; |
| M_UPPER = 77; |
| N_UPPER = 78; |
| O_UPPER = 79; |
| P_UPPER = 80; |
| Q_UPPER = 81; |
| R_UPPER = 82; |
| S_UPPER = 83; |
| T_UPPER = 84; |
| U_UPPER = 85; |
| V_UPPER = 86; |
| W_UPPER = 87; |
| X_UPPER = 88; |
| Y_UPPER = 89; |
| Z_UPPER = 90; |
| A_LOWER = 97; |
| B_LOWER = 98; |
| C_LOWER = 99; |
| D_LOWER = 100; |
| E_LOWER = 101; |
| F_LOWER = 102; |
| G_LOWER = 103; |
| H_LOWER = 104; |
| I_LOWER = 105; |
| J_LOWER = 106; |
| K_LOWER = 107; |
| L_LOWER = 108; |
| M_LOWER = 109; |
| N_LOWER = 110; |
| O_LOWER = 111; |
| P_LOWER = 112; |
| Q_LOWER = 113; |
| R_LOWER = 114; |
| S_LOWER = 115; |
| T_LOWER = 116; |
| U_LOWER = 117; |
| V_LOWER = 118; |
| W_LOWER = 119; |
| X_LOWER = 120; |
| Y_LOWER = 121; |
| Z_LOWER = 122; |
| } |
| |
| oneof rhs { |
| AsciiValue ascii_value = 1; |
| Escape escape = 2; |
| // TODO(metzman): Add nonascii token once (if) I implement it. |
| } |
| } |
| |
| message Nmchar { |
| enum AsciiValue { |
| MINUS = 45; |
| ZERO = 48; |
| ONE = 49; |
| TWO = 50; |
| THREE = 51; |
| FOUR = 52; |
| FIVE = 53; |
| SIX = 54; |
| SEVEN = 55; |
| EIGHT = 56; |
| NINE = 57; |
| A_UPPER = 65; |
| B_UPPER = 66; |
| C_UPPER = 67; |
| D_UPPER = 68; |
| E_UPPER = 69; |
| F_UPPER = 70; |
| G_UPPER = 71; |
| H_UPPER = 72; |
| I_UPPER = 73; |
| J_UPPER = 74; |
| K_UPPER = 75; |
| L_UPPER = 76; |
| M_UPPER = 77; |
| N_UPPER = 78; |
| O_UPPER = 79; |
| P_UPPER = 80; |
| Q_UPPER = 81; |
| R_UPPER = 82; |
| S_UPPER = 83; |
| T_UPPER = 84; |
| U_UPPER = 85; |
| V_UPPER = 86; |
| W_UPPER = 87; |
| X_UPPER = 88; |
| Y_UPPER = 89; |
| Z_UPPER = 90; |
| A_LOWER = 97; |
| B_LOWER = 98; |
| C_LOWER = 99; |
| D_LOWER = 100; |
| E_LOWER = 101; |
| F_LOWER = 102; |
| G_LOWER = 103; |
| H_LOWER = 104; |
| I_LOWER = 105; |
| J_LOWER = 106; |
| K_LOWER = 107; |
| L_LOWER = 108; |
| M_LOWER = 109; |
| N_LOWER = 110; |
| O_LOWER = 111; |
| P_LOWER = 112; |
| Q_LOWER = 113; |
| R_LOWER = 114; |
| S_LOWER = 115; |
| T_LOWER = 116; |
| U_LOWER = 117; |
| V_LOWER = 118; |
| W_LOWER = 119; |
| X_LOWER = 120; |
| Y_LOWER = 121; |
| Z_LOWER = 122; |
| } |
| oneof rhs { |
| AsciiValue ascii_value = 1; |
| Escape escape = 2; |
| // TODO(metzman): Add nonascii token once (if) I implement it. |
| } |
| } |
| |
| // string1, string2 and string |
| message String { |
| // TODO(metzman): determine if these hacks are more efficient than enforcing |
| // constraints on string types in the actual code. |
| required bool use_single_quotes = 1; |
| repeated StringCharOrQuote string_char_quotes = 2; |
| } |
| |
| // Not in grammar. |
| message StringCharOrQuote { |
| enum QuoteChar { |
| UNSET = 0; |
| IS_SET = 1; |
| } |
| oneof rhs { |
| StringChar string_char = 2; |
| QuoteChar quote_char = 1; |
| } |
| } |
| |
| message StringChar { |
| enum Space { |
| UNSET = 0; |
| IS_SET = 1; |
| } |
| oneof rhs { |
| UrlChar url_char = 1; |
| Space space = 2; |
| // '\' nl |
| Nl nl = 3; |
| } |
| } |
| |
| message Ident { |
| optional bool starting_minus = 1 [default = false]; // - |
| required Nmstart nmstart = 2; |
| repeated Nmchar nmchars = 3; |
| } |
| |
| message Num { |
| required sint64 signed_int_value = 1; |
| optional float float_value = 2; |
| } |
| |
| message UrlChar { |
| enum AsciiValue { |
| NUL = 0; |
| // #x9 |
| HT = 9; |
| |
| // #x21 |
| EXCLAMATION_POINT = 33; |
| |
| // #x23-#x26 |
| HASH = 35; |
| DOLLAR = 36; |
| PERCENT = 37; |
| AMPERSAND = 38; |
| |
| // #x26-#x27 |
| APOSTROPHE = 39; |
| OPEN_PAREN = 40; |
| CLOSE_PAREN = 41; |
| STAR = 42; |
| PLUS = 43; |
| COMMA = 44; |
| MINUS = 45; |
| DOT = 46; |
| SLASH = 47; |
| ZERO = 48; |
| ONE = 49; |
| TWO = 50; |
| THREE = 51; |
| FOUR = 52; |
| FIVE = 53; |
| SIX = 54; |
| SEVEN = 55; |
| EIGHT = 56; |
| NINE = 57; |
| COLON = 58; |
| SEMI_COLON = 59; |
| LESS_THAN = 60; |
| EQUAL = 61; |
| GREATER_THAN = 62; |
| QUESTION = 63; |
| AT_SIGN = 64; |
| A_UPPER = 65; |
| B_UPPER = 66; |
| C_UPPER = 67; |
| D_UPPER = 68; |
| E_UPPER = 69; |
| F_UPPER = 70; |
| G_UPPER = 71; |
| H_UPPER = 72; |
| I_UPPER = 73; |
| J_UPPER = 74; |
| K_UPPER = 75; |
| L_UPPER = 76; |
| M_UPPER = 77; |
| N_UPPER = 78; |
| O_UPPER = 79; |
| P_UPPER = 80; |
| Q_UPPER = 81; |
| R_UPPER = 82; |
| S_UPPER = 83; |
| T_UPPER = 84; |
| U_UPPER = 85; |
| V_UPPER = 86; |
| W_UPPER = 87; |
| X_UPPER = 88; |
| Y_UPPER = 89; |
| Z_UPPER = 90; |
| OPEN_BRACKET = 91; |
| BACKSLASH = 92; |
| CLOSE_BRACKET = 93; |
| CARET = 94; |
| UNDERSCORE = 95; |
| BACKTICK = 96; |
| A_LOWER = 97; |
| B_LOWER = 98; |
| C_LOWER = 99; |
| D_LOWER = 100; |
| E_LOWER = 101; |
| F_LOWER = 102; |
| G_LOWER = 103; |
| H_LOWER = 104; |
| I_LOWER = 105; |
| J_LOWER = 106; |
| K_LOWER = 107; |
| L_LOWER = 108; |
| M_LOWER = 109; |
| N_LOWER = 110; |
| O_LOWER = 111; |
| P_LOWER = 112; |
| Q_LOWER = 113; |
| R_LOWER = 114; |
| S_LOWER = 115; |
| T_LOWER = 116; |
| U_LOWER = 117; |
| V_LOWER = 118; |
| W_LOWER = 119; |
| X_LOWER = 120; |
| Y_LOWER = 121; |
| Z_LOWER = 122; |
| OPEN_CURLY_BRACE = 123; |
| PIPE = 124; |
| CLOSE_CURLY_BRACE_ = 125; |
| TILDE = 126; |
| } |
| oneof rhs { |
| AsciiValue ascii_value = 1; |
| Escape escape = 2; |
| // TODO(metzman): Support nonascii tokens. |
| } |
| } |
| |
| message W { |
| repeated UnrepeatedW unrepeated_w = 1; |
| } |
| |
| // Not in grammar |
| message UnrepeatedW { |
| enum AsciiValue { |
| // #x9 ('\t') |
| HT = 9; |
| // #xA ('\n') |
| LF = 10; |
| // #xC ('\f') |
| FF = 12; |
| // #xD ('\r') |
| CR = 13; |
| // #x20 (' ') |
| SPACE = 32; |
| } |
| required AsciiValue ascii_value = 1; |
| } |
| |
| message Nl { |
| enum NewlineKind { |
| // #xA ('\n') |
| LF = 10; |
| // #xD #xA ('\r\n') Pseudo value, since we don't need SOH |
| CR_LF = 1; |
| // #xD ('\r') |
| CR = 13; |
| // #xC ('\f') |
| FF = 12; |
| } |
| required NewlineKind newline_kind = 1; |
| } |
| |
| // {num}[px|cm|mm|in|pt|pc] |
| message Length { |
| enum Unit { |
| PX = 1; |
| CM = 2; |
| MM = 3; |
| IN = 4; |
| PT = 5; |
| PC = 6; |
| } |
| required Num num = 1; |
| required Unit unit = 2; |
| } |
| |
| // {num}[deg|rad|grad] |
| message Angle { |
| enum Unit { |
| DEG = 1; |
| RAD = 2; |
| GRAD = 3; |
| } |
| required Num num = 1; |
| required Unit unit = 2; |
| } |
| |
| // {num}[ms|s] |
| message Time { |
| enum Unit { |
| MS = 1; |
| S = 2; |
| } |
| required Num num = 1; |
| required Unit unit = 2; |
| } |
| |
| // {num}[Hz|kHz] |
| message Freq { |
| enum Unit { |
| // Hack around build bug since some system header #defines HZ. |
| _HZ = 1; |
| KHZ = 2; |
| } |
| required Num num = 1; |
| required Unit unit = 2; |
| } |
| |
| message Uri { |
| // "url(" w (string | url* ) w ")" |
| // TODO(metzman): Add url token once (if) I implement it. |
| // optional String value = 1; |
| } |
| |
| // FUNCTION. Not named Function to avoid conflict. |
| message FunctionToken { |
| required Ident ident = 1; |
| } |
| // end tokens |
| |
| // rules |
| // TODO(metzman): Add rules for @keyframes (including |
| // -webkit-keyframes), and @supports. |
| message StyleSheet { |
| optional CharsetDeclaration charset_declaration = 1; |
| repeated Import imports = 2; |
| repeated Namespace namespaces = 3; |
| repeated NestedAtRule nested_at_rules = 4; |
| } |
| |
| // Not in grammar. |
| message CharsetDeclaration { |
| enum EncodingId { |
| UTF_8 = 1; |
| UTF_16 = 2; |
| UTF_32 = 3; |
| } |
| required EncodingId encoding_id = 1; |
| } |
| |
| // Not in grammar. |
| message NestedAtRule { |
| oneof rhs { |
| Ruleset ruleset = 1; |
| Media media = 2; |
| Page page = 3; |
| FontFace font_face = 4; |
| Viewport viewport = 5; |
| SupportsRule supports_rule = 6; |
| } |
| } |
| |
| message SupportsRule { |
| required SupportsCondition supports_condition = 1; |
| repeated AtRuleOrRulesets at_rule_or_rulesets = 2; |
| } |
| |
| message AtRuleOrRulesets { |
| required AtRuleOrRuleset first = 1; |
| repeated AtRuleOrRuleset laters = 2; |
| } |
| |
| message AtRuleOrRuleset { |
| required Ruleset ruleset = 1; |
| optional NestedAtRule at_rule = 2; |
| } |
| |
| message SupportsCondition { |
| // Using PropertyAndValue rather than declaration means that there |
| // will always be a declaration. This is syntactically correct but |
| // means we may miss some error paths. |
| // TODO(metzman): Figure out what to do about generating invalid output that |
| // causes more coverage. Maybe doing so infrequently is the correct move. |
| required PropertyAndValue property_and_value = 1; // Default. |
| // TODO(metzman): Do functions also need to be supported? |
| required bool not_condition = 2; |
| oneof rhs { |
| BinarySupportsCondition and_supports_condition = 3; |
| BinarySupportsCondition or_supports_condition = 4; |
| } |
| } |
| |
| message BinarySupportsCondition { |
| required SupportsCondition condition_1 = 1; |
| required SupportsCondition condition_2 = 2; |
| } |
| |
| message Viewport { |
| repeated ViewportPropertyAndValue properties_and_values = 1; |
| } |
| |
| message ViewportPropertyAndValue { |
| required ViewportProperty property = 1; |
| required ViewportValue value = 2; |
| } |
| |
| message ViewportProperty { |
| enum PropertyId { |
| MIN_WIDTH = 1; |
| MAX_WIDTH = 2; |
| WIDTH = 3; |
| MIN_HEIGHT = 4; |
| MAX_HEIGHT = 5; |
| HEIGHT = 6; |
| ZOOM = 7; |
| MIN_ZOOM = 8; |
| USER_ZOOM = 9; |
| MAX_ZOOM = 10; |
| ORIENTATION = 11; |
| } |
| required PropertyId id = 1; |
| } |
| |
| message ViewportValue { |
| enum ValueId { |
| LANDSCAPE = 1; |
| PORTRAIT = 2; |
| AUTO = 3; |
| ZOOM = 4; |
| FIXED = 5; |
| NONE = 6; |
| } |
| required ValueId value_id = 1; |
| oneof rhs { |
| Length length = 2; |
| Num num = 3; |
| } |
| } |
| |
| message Import { |
| enum SrcId { |
| RELATIVE_STRING = 1; |
| FULL_URL = 2; |
| } |
| optional SrcId src_id = 1; |
| optional MediaQueryList media_query_list = 2; |
| } |
| |
| // Media based on https://developer.mozilla.org/en-US/docs/Web/CSS/@media |
| message MediaQueryList { |
| repeated MediaQuery media_queries = 1; |
| } |
| |
| message MediaQuery { |
| required MediaCondition media_condition = 1; |
| optional MediaQueryPartTwo media_query_part_two = 2; |
| } |
| |
| // Not in spec. |
| message MediaQueryPartTwo { |
| enum NotOrOnly { |
| NOT = 1; |
| ONLY = 2; |
| } |
| optional NotOrOnly not_or_only = 1; |
| required MediaType media_type = 2; |
| optional MediaConditionWithoutOr media_condition_without_or = 3; |
| } |
| |
| message MediaConditionWithoutOr { |
| required MediaNot media_not = 1; |
| oneof rhs { |
| MediaAnd media_and = 2; |
| MediaInParens media_in_parens = 3; |
| } |
| } |
| |
| message MediaCondition { |
| required MediaAnd media_and = 1; |
| oneof rhs { |
| MediaNot media_not = 2; |
| MediaOr media_or = 3; |
| MediaInParens media_in_parens = 4; |
| } |
| } |
| |
| message MediaType { |
| enum ValueId { |
| ALL = 1; |
| BRAILLE = 2; |
| EMBOSSED = 3; |
| HANDHELD = 4; |
| PRINT = 5; |
| PROJECTION = 6; |
| SCREEN = 7; |
| SPEECH = 8; |
| TTY = 9; |
| TV = 10; |
| INVALID_MEDIA_TYPE = 11; |
| } |
| required ValueId value_id = 1; |
| } |
| |
| message MediaNot { |
| required MediaInParens media_in_parens = 1; |
| } |
| |
| message MediaAnd { |
| required MediaInParens first_media_in_parens = 1; |
| required MediaInParens second_media_in_parens = 2; |
| repeated MediaInParens media_in_parens_list = 3; |
| } |
| |
| message MediaOr { |
| required MediaInParens first_media_in_parens = 1; |
| required MediaInParens second_media_in_parens = 2; |
| repeated MediaInParens media_in_parens_list = 3; |
| } |
| |
| message MediaInParens { |
| required MediaFeature media_feature = 1; |
| optional MediaCondition media_condition = 2; |
| } |
| |
| message MediaFeature { |
| required MfPlain mf_plain = 1; |
| optional MfBool mf_bool = 2; |
| // TODO(metzman): Implement <mf-range> |
| } |
| |
| // TODO(metzman): implement <general-enclosed> |
| |
| message MfPlain { |
| required MfName property = 1; |
| required MfValue value = 2; |
| } |
| |
| message MfBool { |
| required MfName mf_name = 1; |
| } |
| |
| message MfName { |
| enum ValueId { |
| ANY_HOVER = 1; |
| ANY_POINTER = 2; |
| COLOR = 3; |
| COLOR_INDEX = 4; |
| COLOR_GAMUT = 5; |
| GRID = 6; |
| MONOCHROME = 7; |
| HEIGHT = 8; |
| HOVER = 9; |
| WIDTH = 10; |
| ORIENTATION = 11; |
| ASPECT_RATIO = 12; |
| DEVICE_ASPECT_RATIO = 13; |
| _WEBKIT_DEVICE_PIXEL_RATIO = 14; |
| DEVICE_HEIGHT = 15; |
| DEVICE_WIDTH = 16; |
| DISPLAY_MODE = 17; |
| MAX_COLOR = 18; |
| MAX_COLOR_INDEX = 19; |
| MAX_ASPECT_RATIO = 20; |
| MAX_DEVICE_ASPECT_RATIO = 21; |
| _WEBKIT_MAX_DEVICE_PIXEL_RATIO = 22; |
| MAX_DEVICE_HEIGHT = 23; |
| MAX_DEVICE_WIDTH = 24; |
| MAX_HEIGHT = 25; |
| MAX_MONOCHROME = 26; |
| MAX_WIDTH = 27; |
| MAX_RESOLUTION = 28; |
| MIN_COLOR = 29; |
| MIN_COLOR_INDEX = 30; |
| MIN_ASPECT_RATIO = 31; |
| MIN_DEVICE_ASPECT_RATIO = 32; |
| _WEBKIT_MIN_DEVICE_PIXEL_RATIO = 33; |
| MIN_DEVICE_HEIGHT = 34; |
| MIN_DEVICE_WIDTH = 35; |
| MIN_HEIGHT = 36; |
| MIN_MONOCHROME = 37; |
| MIN_WIDTH = 38; |
| MIN_RESOLUTION = 39; |
| POINTER = 40; |
| RESOLUTION = 41; |
| _WEBKIT_TRANSFORM_3D = 42; |
| SCAN = 43; |
| SHAPE = 44; |
| INVALID_NAME = 45; |
| } |
| required ValueId id = 1; |
| } |
| |
| message MfValue { |
| required Num num = 1; |
| oneof rhs { |
| Length length = 2; // Called <dimension> on developer.mozilla.org |
| Ident ident = 3; |
| // TODO(metzman) implement <mf-range> |
| } |
| } |
| |
| message Namespace { |
| optional NamespacePrefix namespace_prefix = 1; |
| oneof rhs { |
| String string = 2; |
| Uri uri = 3; |
| } |
| } |
| |
| // TODO(metzman): Determine if this is unnecessary. |
| message NamespacePrefix { |
| required Ident ident = 1; |
| } |
| |
| message Media { |
| required MediaQueryList media_query_list = 1; |
| repeated Ruleset rulesets = 2; |
| } |
| |
| message Page { |
| optional Ident ident = 1; |
| optional PseudoPage pseudo_page = 2; |
| required DeclarationList declaration_list = 3; |
| } |
| |
| // Not in grammar. |
| message DeclarationList { |
| required Declaration first_declaration = 1; |
| repeated Declaration later_declarations = 2; |
| } |
| |
| // TODO(metzman): Determine if this is unnecessary. |
| message PseudoPage { |
| required Ident ident = 1; |
| } |
| |
| message FontFace { |
| // required DeclarationList declaration_list = 1; |
| // https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face#Formal_syntax |
| // repeated FontFaceContents font_face_contents = 1; |
| } |
| |
| message Operator { |
| enum AsciiValue { |
| COMMA = 44; |
| SLASH = 47; |
| } |
| optional AsciiValue ascii_value = 1; |
| } |
| |
| message UnaryOperator { |
| enum AsciiValue { |
| PLUS = 43; |
| MINUS = 45; |
| } |
| required AsciiValue ascii_value = 1; |
| } |
| |
| // TODO(metzman): Determine if this is unnecessary. |
| message Property { |
| enum NameId { |
| ALL = 1; |
| _WEBKIT_ANIMATION_ITERATION_COUNT = 2; |
| FONT_FEATURE_SETTINGS = 3; |
| _WEBKIT_TEXT_EMPHASIS_POSITION = 4; |
| _WEBKIT_TEXT_EMPHASIS_STYLE = 5; |
| GRID_TEMPLATE_ROWS = 6; |
| TEXT_UNDERLINE_POSITION = 7; |
| _WEBKIT_FLEX_GROW = 8; |
| SCROLL_SNAP_MARGIN_RIGHT = 9; |
| _WEBKIT_COLUMN_RULE = 10; |
| _WEBKIT_ORDER = 11; |
| GRID_ROW_GAP = 12; |
| BACKDROP_FILTER = 13; |
| FONT_VARIANT_EAST_ASIAN = 14; |
| BUFFERED_RENDERING = 15; |
| _WEBKIT_APPEARANCE = 16; |
| OUTLINE_WIDTH = 17; |
| ALIGNMENT_BASELINE = 18; |
| _WEBKIT_FLEX_FLOW = 19; |
| COLUMN_RULE = 20; |
| GRID_COLUMN_GAP = 21; |
| _WEBKIT_BORDER_AFTER = 22; |
| _WEBKIT_COLUMN_BREAK_INSIDE = 23; |
| _WEBKIT_SHAPE_OUTSIDE = 24; |
| _WEBKIT_PRINT_COLOR_ADJUST = 25; |
| LIST_STYLE_TYPE = 26; |
| PAGE_BREAK_BEFORE = 27; |
| FLOOD_COLOR = 28; |
| TEXT_ANCHOR = 29; |
| _WEBKIT_PADDING_START = 30; |
| _WEBKIT_USER_SELECT = 31; |
| _WEBKIT_COLUMN_RULE_COLOR = 32; |
| PADDING_LEFT = 33; |
| _WEBKIT_BACKFACE_VISIBILITY = 34; |
| _WEBKIT_MARGIN_BEFORE = 35; |
| BREAK_INSIDE = 36; |
| COLUMN_COUNT = 37; |
| _WEBKIT_LOGICAL_HEIGHT = 38; |
| PERSPECTIVE = 39; |
| MAX_BLOCK_SIZE = 40; |
| _WEBKIT_ANIMATION_PLAY_STATE = 41; |
| BORDER_IMAGE_REPEAT = 42; |
| _WEBKIT_FONT_SIZE_DELTA = 43; |
| SCROLL_PADDING_BOTTOM = 44; |
| BORDER_RIGHT_STYLE = 45; |
| BORDER_LEFT_STYLE = 46; |
| SCROLL_SNAP_MARGIN_BLOCK = 47; |
| FLEX_FLOW = 48; |
| OUTLINE_COLOR = 49; |
| FLEX_GROW = 50; |
| MAX_WIDTH = 51; |
| GRID_COLUMN = 52; |
| IMAGE_ORIENTATION = 53; |
| ANIMATION_DURATION = 54; |
| _WEBKIT_COLUMNS = 55; |
| _WEBKIT_BOX_FLEX_GROUP = 56; |
| _WEBKIT_ANIMATION_DELAY = 57; |
| _EPUB_TEXT_EMPHASIS = 58; |
| FLEX_SHRINK = 59; |
| TEXT_RENDERING = 60; |
| ALIGN_ITEMS = 61; |
| BORDER_COLLAPSE = 62; |
| OFFSET = 63; |
| TEXT_COMBINE_UPRIGHT = 64; |
| _WEBKIT_MASK_POSITION_X = 65; |
| _WEBKIT_MASK_POSITION_Y = 66; |
| OUTLINE_STYLE = 67; |
| _WEBKIT_MARGIN_BOTTOM_COLLAPSE = 68; |
| COLOR_INTERPOLATION_FILTERS = 69; |
| FONT_VARIANT = 70; |
| _WEBKIT_ANIMATION_FILL_MODE = 71; |
| BORDER_RIGHT = 72; |
| VISIBILITY = 73; |
| TRANSFORM_BOX = 74; |
| FONT_VARIANT_CAPS = 75; |
| _EPUB_TEXT_EMPHASIS_COLOR = 76; |
| _WEBKIT_BORDER_BEFORE_STYLE = 77; |
| RESIZE = 78; |
| _WEBKIT_RTL_ORDERING = 79; |
| _WEBKIT_BOX_ORDINAL_GROUP = 80; |
| PAINT_ORDER = 81; |
| STROKE_LINECAP = 82; |
| ANIMATION_DIRECTION = 83; |
| _WEBKIT_FONT_FEATURE_SETTINGS = 84; |
| BORDER_TOP_LEFT_RADIUS = 85; |
| _WEBKIT_COLUMN_WIDTH = 86; |
| _WEBKIT_BOX_ALIGN = 87; |
| _WEBKIT_PADDING_AFTER = 88; |
| COLUMN_WIDTH = 89; |
| LIST_STYLE = 90; |
| _WEBKIT_MASK_REPEAT_Y = 91; |
| _WEBKIT_MARGIN_BEFORE_COLLAPSE = 92; |
| STROKE = 93; |
| TEXT_DECORATION_LINE = 94; |
| _WEBKIT_BACKGROUND_SIZE = 95; |
| _WEBKIT_MASK_REPEAT_X = 96; |
| PADDING_BOTTOM = 97; |
| FONT_STYLE = 98; |
| _WEBKIT_TRANSITION_DELAY = 99; |
| BACKGROUND_REPEAT = 100; |
| FLEX_BASIS = 101; |
| BORDER_IMAGE_SLICE = 102; |
| _WEBKIT_TRANSFORM_ORIGIN = 103; |
| SCROLL_BOUNDARY_BEHAVIOR_X = 104; |
| SCROLL_BOUNDARY_BEHAVIOR_Y = 105; |
| VECTOR_EFFECT = 106; |
| _WEBKIT_ANIMATION_TIMING_FUNCTION = 107; |
| _WEBKIT_BORDER_AFTER_STYLE = 108; |
| _WEBKIT_PERSPECTIVE_ORIGIN_X = 109; |
| _WEBKIT_PERSPECTIVE_ORIGIN_Y = 110; |
| INLINE_SIZE = 111; |
| OUTLINE = 112; |
| FONT_DISPLAY = 113; |
| _WEBKIT_BORDER_BEFORE = 114; |
| BORDER_IMAGE_SOURCE = 115; |
| TRANSITION_DURATION = 116; |
| SCROLL_PADDING_TOP = 117; |
| ORDER = 118; |
| _WEBKIT_BOX_ORIENT = 119; |
| COUNTER_RESET = 120; |
| COLOR_RENDERING = 121; |
| FLEX_DIRECTION = 122; |
| _WEBKIT_TEXT_STROKE_WIDTH = 123; |
| FONT_VARIANT_NUMERIC = 124; |
| SCROLL_SNAP_MARGIN_BLOCK_END = 125; |
| MIN_HEIGHT = 126; |
| SCROLL_PADDING_INLINE_START = 127; |
| _WEBKIT_MASK_BOX_IMAGE = 128; |
| LEFT = 129; |
| _WEBKIT_MASK = 130; |
| _WEBKIT_BORDER_AFTER_WIDTH = 131; |
| STROKE_WIDTH = 132; |
| _WEBKIT_BOX_DECORATION_BREAK = 133; |
| _WEBKIT_MASK_POSITION = 134; |
| BACKGROUND_ORIGIN = 135; |
| _WEBKIT_BORDER_START_COLOR = 136; |
| FONT_STRETCH = 137; |
| _WEBKIT_BACKGROUND_CLIP = 138; |
| SCROLL_SNAP_MARGIN_TOP = 139; |
| _WEBKIT_BORDER_HORIZONTAL_SPACING = 140; |
| BORDER_RADIUS = 141; |
| FLEX = 142; |
| TEXT_INDENT = 143; |
| HYPHENS = 144; |
| COLUMN_RULE_WIDTH = 145; |
| _WEBKIT_MARGIN_AFTER = 146; |
| _EPUB_CAPTION_SIDE = 147; |
| BREAK_AFTER = 148; |
| TEXT_TRANSFORM = 149; |
| TOUCH_ACTION = 150; |
| FONT_SIZE = 151; |
| _WEBKIT_ANIMATION_NAME = 152; |
| SCROLL_PADDING_INLINE = 153; |
| OFFSET_PATH = 154; |
| SCROLL_SNAP_MARGIN = 155; |
| PADDING_TOP = 156; |
| SCROLL_SNAP_ALIGN = 157; |
| _WEBKIT_TEXT_COMBINE = 158; |
| _WEBKIT_FLEX_SHRINK = 159; |
| RX = 160; |
| RY = 161; |
| CONTENT = 162; |
| PADDING_RIGHT = 163; |
| _WEBKIT_TRANSFORM = 164; |
| MARKER_MID = 165; |
| _WEBKIT_MIN_LOGICAL_WIDTH = 166; |
| CLIP_RULE = 167; |
| FONT_FAMILY = 168; |
| SCROLL_SNAP_TYPE = 169; |
| TEXT_DECORATION_SKIP = 170; |
| TRANSITION = 171; |
| FILTER = 172; |
| BORDER_RIGHT_WIDTH = 173; |
| _WEBKIT_FLEX_DIRECTION = 174; |
| _WEBKIT_MASK_COMPOSITE = 175; |
| MIX_BLEND_MODE = 176; |
| COLOR_INTERPOLATION = 177; |
| BORDER_TOP_STYLE = 178; |
| FILL_OPACITY = 179; |
| MARKER_START = 180; |
| BORDER_BOTTOM_WIDTH = 181; |
| _WEBKIT_TEXT_EMPHASIS = 182; |
| GRID_AREA = 183; |
| SIZE = 184; |
| BACKGROUND_CLIP = 185; |
| _WEBKIT_TEXT_FILL_COLOR = 186; |
| TOP = 187; |
| _WEBKIT_BOX_REFLECT = 188; |
| BORDER_WIDTH = 189; |
| OFFSET_ANCHOR = 190; |
| MAX_INLINE_SIZE = 191; |
| _WEBKIT_COLUMN_RULE_STYLE = 192; |
| _WEBKIT_COLUMN_COUNT = 193; |
| ANIMATION_PLAY_STATE = 194; |
| PADDING = 195; |
| DOMINANT_BASELINE = 196; |
| BACKGROUND_ATTACHMENT = 197; |
| _WEBKIT_BOX_SIZING = 198; |
| _WEBKIT_BOX_FLEX = 199; |
| TEXT_ORIENTATION = 200; |
| BACKGROUND_POSITION = 201; |
| _WEBKIT_BORDER_START_WIDTH = 202; |
| _EPUB_TEXT_EMPHASIS_STYLE = 203; |
| ISOLATION = 204; |
| _EPUB_TEXT_ORIENTATION = 205; |
| _WEBKIT_BORDER_BOTTOM_RIGHT_RADIUS = 206; |
| R = 207; |
| BORDER_LEFT_WIDTH = 208; |
| GRID_COLUMN_END = 209; |
| BACKGROUND_BLEND_MODE = 210; |
| VERTICAL_ALIGN = 211; |
| CLIP = 212; |
| GRID_AUTO_ROWS = 213; |
| OFFSET_ROTATE = 214; |
| MARGIN_LEFT = 215; |
| ANIMATION_NAME = 216; |
| TEXT_DECORATION = 217; |
| BORDER = 218; |
| _WEBKIT_TRANSITION_TIMING_FUNCTION = 219; |
| MARGIN_BOTTOM = 220; |
| UNICODE_RANGE = 221; |
| ANIMATION = 222; |
| _WEBKIT_SHAPE_MARGIN = 223; |
| FONT_WEIGHT = 224; |
| SHAPE_MARGIN = 225; |
| MASK_TYPE = 226; |
| SCROLL_PADDING = 227; |
| MIN_INLINE_SIZE = 228; |
| OBJECT_POSITION = 229; |
| PAGE_BREAK_AFTER = 230; |
| _WEBKIT_MASK_CLIP = 231; |
| WHITE_SPACE = 232; |
| _WEBKIT_BORDER_AFTER_COLOR = 233; |
| _WEBKIT_MAX_LOGICAL_WIDTH = 234; |
| _WEBKIT_BORDER_BEFORE_COLOR = 235; |
| FONT_KERNING = 236; |
| _EPUB_WORD_BREAK = 237; |
| CLEAR = 238; |
| ANIMATION_TIMING_FUNCTION = 239; |
| _WEBKIT_BORDER_RADIUS = 240; |
| SCROLL_PADDING_RIGHT = 241; |
| _WEBKIT_TEXT_DECORATIONS_IN_EFFECT = 242; |
| _WEBKIT_ANIMATION_DIRECTION = 243; |
| JUSTIFY_SELF = 244; |
| TRANSITION_TIMING_FUNCTION = 245; |
| SCROLL_SNAP_STOP = 246; |
| COUNTER_INCREMENT = 247; |
| _WEBKIT_TRANSFORM_STYLE = 248; |
| GRID_AUTO_COLUMNS = 249; |
| _WEBKIT_ALIGN_CONTENT = 250; |
| FONT = 251; |
| FLEX_WRAP = 252; |
| GRID_ROW_START = 253; |
| LIST_STYLE_IMAGE = 254; |
| _WEBKIT_TAP_HIGHLIGHT_COLOR = 255; |
| _WEBKIT_TEXT_EMPHASIS_COLOR = 256; |
| BORDER_LEFT = 257; |
| _WEBKIT_BORDER_END_COLOR = 258; |
| COLUMNS = 259; |
| BOX_SHADOW = 260; |
| _WEBKIT_FLEX_WRAP = 261; |
| ALIGN_SELF = 262; |
| BORDER_BOTTOM = 263; |
| BORDER_SPACING = 264; |
| _WEBKIT_COLUMN_SPAN = 265; |
| GRID_ROW_END = 266; |
| _WEBKIT_BORDER_END = 267; |
| PERSPECTIVE_ORIGIN = 268; |
| PAGE_BREAK_INSIDE = 269; |
| ORPHANS = 270; |
| _WEBKIT_BORDER_START_STYLE = 271; |
| SCROLL_BEHAVIOR = 272; |
| COLUMN_SPAN = 273; |
| _WEBKIT_HYPHENATE_CHARACTER = 274; |
| COLUMN_FILL = 275; |
| TAB_SIZE = 276; |
| CONTAIN = 277; |
| X = 278; |
| GRID_ROW = 279; |
| BORDER_BOTTOM_RIGHT_RADIUS = 280; |
| LINE_HEIGHT = 281; |
| STROKE_LINEJOIN = 282; |
| TEXT_ALIGN_LAST = 283; |
| OFFSET_POSITION = 284; |
| WORD_SPACING = 285; |
| TRANSFORM_STYLE = 286; |
| _WEBKIT_APP_REGION = 287; |
| _WEBKIT_BORDER_END_STYLE = 288; |
| _WEBKIT_TRANSFORM_ORIGIN_Z = 289; |
| _WEBKIT_TRANSFORM_ORIGIN_X = 290; |
| _WEBKIT_TRANSFORM_ORIGIN_Y = 291; |
| BACKGROUND_REPEAT_X = 292; |
| BACKGROUND_REPEAT_Y = 293; |
| BORDER_BOTTOM_COLOR = 294; |
| _WEBKIT_RUBY_POSITION = 295; |
| _WEBKIT_LOGICAL_WIDTH = 296; |
| TEXT_JUSTIFY = 297; |
| SCROLL_SNAP_MARGIN_INLINE_START = 298; |
| CAPTION_SIDE = 299; |
| MASK_SOURCE_TYPE = 300; |
| _WEBKIT_MASK_BOX_IMAGE_SLICE = 301; |
| _WEBKIT_BORDER_IMAGE = 302; |
| TEXT_SIZE_ADJUST = 303; |
| _WEBKIT_TEXT_SECURITY = 304; |
| _EPUB_WRITING_MODE = 305; |
| GRID_TEMPLATE = 306; |
| _WEBKIT_MASK_BOX_IMAGE_REPEAT = 307; |
| _WEBKIT_MASK_REPEAT = 308; |
| _WEBKIT_JUSTIFY_CONTENT = 309; |
| BASELINE_SHIFT = 310; |
| BORDER_IMAGE = 311; |
| TEXT_DECORATION_COLOR = 312; |
| COLOR = 313; |
| SHAPE_IMAGE_THRESHOLD = 314; |
| SHAPE_RENDERING = 315; |
| CY = 316; |
| CX = 317; |
| _WEBKIT_USER_MODIFY = 318; |
| OFFSET_DISTANCE = 319; |
| _WEBKIT_BORDER_BOTTOM_LEFT_RADIUS = 320; |
| SPEAK = 321; |
| BORDER_BOTTOM_LEFT_RADIUS = 322; |
| _WEBKIT_COLUMN_BREAK_AFTER = 323; |
| _WEBKIT_FONT_SMOOTHING = 324; |
| _WEBKIT_MAX_LOGICAL_HEIGHT = 325; |
| _WEBKIT_LINE_BREAK = 326; |
| FILL_RULE = 327; |
| _WEBKIT_MARGIN_START = 328; |
| MIN_WIDTH = 329; |
| _EPUB_TEXT_COMBINE = 330; |
| BREAK_BEFORE = 331; |
| CARET_COLOR = 332; |
| EMPTY_CELLS = 333; |
| DIRECTION = 334; |
| CLIP_PATH = 335; |
| JUSTIFY_CONTENT = 336; |
| SCROLL_PADDING_BLOCK_END = 337; |
| Z_INDEX = 338; |
| BACKGROUND_POSITION_Y = 339; |
| TEXT_DECORATION_STYLE = 340; |
| GRID_TEMPLATE_AREAS = 341; |
| _WEBKIT_MIN_LOGICAL_HEIGHT = 342; |
| FONT_SIZE_ADJUST = 343; |
| SCROLL_PADDING_BLOCK = 344; |
| OVERFLOW_ANCHOR = 345; |
| CURSOR = 346; |
| SCROLL_SNAP_MARGIN_BLOCK_START = 347; |
| _WEBKIT_MASK_BOX_IMAGE_SOURCE = 348; |
| MARGIN = 349; |
| _WEBKIT_ANIMATION = 350; |
| LETTER_SPACING = 351; |
| ORIENTATION = 352; |
| WILL_CHANGE = 353; |
| _WEBKIT_HIGHLIGHT = 354; |
| TRANSFORM_ORIGIN = 355; |
| FONT_VARIANT_LIGATURES = 356; |
| _WEBKIT_ANIMATION_DURATION = 357; |
| _WEBKIT_MASK_ORIGIN = 358; |
| _WEBKIT_CLIP_PATH = 359; |
| WORD_BREAK = 360; |
| TABLE_LAYOUT = 361; |
| TEXT_OVERFLOW = 362; |
| _WEBKIT_LOCALE = 363; |
| _WEBKIT_FLEX = 364; |
| GRID_AUTO_FLOW = 365; |
| BORDER_TOP_RIGHT_RADIUS = 366; |
| BORDER_IMAGE_OUTSET = 367; |
| PLACE_ITEMS = 368; |
| BORDER_LEFT_COLOR = 369; |
| FONT_VARIATION_SETTINGS = 370; |
| BORDER_RIGHT_COLOR = 371; |
| MIN_ZOOM = 372; |
| SCROLL_SNAP_MARGIN_INLINE = 373; |
| _WEBKIT_BORDER_BEFORE_WIDTH = 374; |
| BACKFACE_VISIBILITY = 375; |
| BACKGROUND_IMAGE = 376; |
| _WEBKIT_TRANSITION_PROPERTY = 377; |
| WRITING_MODE = 378; |
| STROKE_OPACITY = 379; |
| _WEBKIT_MARGIN_COLLAPSE = 380; |
| BOX_SIZING = 381; |
| MARGIN_TOP = 382; |
| COLUMN_RULE_COLOR = 383; |
| Y = 384; |
| POSITION = 385; |
| SCROLL_SNAP_MARGIN_BOTTOM = 386; |
| LIST_STYLE_POSITION = 387; |
| _WEBKIT_BOX_PACK = 388; |
| SCROLL_PADDING_INLINE_END = 389; |
| QUOTES = 390; |
| BORDER_TOP = 391; |
| SCROLL_PADDING_LEFT = 392; |
| _WEBKIT_TRANSITION = 393; |
| _WEBKIT_COLUMN_BREAK_BEFORE = 394; |
| LIGHTING_COLOR = 395; |
| BACKGROUND_SIZE = 396; |
| _WEBKIT_PADDING_BEFORE = 397; |
| _WEBKIT_BORDER_TOP_LEFT_RADIUS = 398; |
| FLOOD_OPACITY = 399; |
| LINE_HEIGHT_STEP = 400; |
| _WEBKIT_MASK_SIZE = 401; |
| TEXT_ALIGN = 402; |
| _WEBKIT_FILTER = 403; |
| WORD_WRAP = 404; |
| MAX_ZOOM = 405; |
| GRID = 406; |
| BACKGROUND = 407; |
| HEIGHT = 408; |
| GRID_COLUMN_START = 409; |
| ANIMATION_FILL_MODE = 410; |
| ROTATE = 411; |
| MARKER_END = 412; |
| D = 413; |
| JUSTIFY_ITEMS = 414; |
| ZOOM = 415; |
| SCROLL_PADDING_BLOCK_START = 416; |
| _WEBKIT_MARGIN_TOP_COLLAPSE = 417; |
| PAGE = 418; |
| RIGHT = 419; |
| USER_SELECT = 420; |
| MARGIN_RIGHT = 421; |
| MARKER = 422; |
| LINE_BREAK = 423; |
| _WEBKIT_MARGIN_END = 424; |
| _WEBKIT_TRANSITION_DURATION = 425; |
| _WEBKIT_WRITING_MODE = 426; |
| BORDER_TOP_WIDTH = 427; |
| BOTTOM = 428; |
| PLACE_CONTENT = 429; |
| _WEBKIT_SHAPE_IMAGE_THRESHOLD = 430; |
| _WEBKIT_USER_DRAG = 431; |
| _WEBKIT_BORDER_VERTICAL_SPACING = 432; |
| _WEBKIT_COLUMN_GAP = 433; |
| _WEBKIT_OPACITY = 434; |
| BACKGROUND_COLOR = 435; |
| COLUMN_GAP = 436; |
| SHAPE_OUTSIDE = 437; |
| _WEBKIT_PADDING_END = 438; |
| _WEBKIT_BORDER_START = 439; |
| ANIMATION_DELAY = 440; |
| UNICODE_BIDI = 441; |
| TEXT_SHADOW = 442; |
| _WEBKIT_BOX_DIRECTION = 443; |
| IMAGE_RENDERING = 444; |
| SRC = 445; |
| GRID_GAP = 446; |
| POINTER_EVENTS = 447; |
| BORDER_IMAGE_WIDTH = 448; |
| MIN_BLOCK_SIZE = 449; |
| TRANSITION_PROPERTY = 450; |
| _WEBKIT_MASK_IMAGE = 451; |
| FLOAT = 452; |
| MAX_HEIGHT = 453; |
| OUTLINE_OFFSET = 454; |
| _WEBKIT_BOX_SHADOW = 455; |
| OVERFLOW_WRAP = 456; |
| BLOCK_SIZE = 457; |
| TRANSFORM = 458; |
| PLACE_SELF = 459; |
| WIDTH = 460; |
| STROKE_MITERLIMIT = 461; |
| STOP_OPACITY = 462; |
| BORDER_TOP_COLOR = 463; |
| TRANSLATE = 464; |
| OBJECT_FIT = 465; |
| _WEBKIT_MASK_BOX_IMAGE_WIDTH = 466; |
| _WEBKIT_BACKGROUND_ORIGIN = 467; |
| _WEBKIT_ALIGN_ITEMS = 468; |
| TRANSITION_DELAY = 469; |
| SCROLL_SNAP_MARGIN_LEFT = 470; |
| BORDER_STYLE = 471; |
| ANIMATION_ITERATION_COUNT = 472; |
| _WEBKIT_MARGIN_AFTER_COLLAPSE = 473; |
| // Should be named OVERFLOW but can't because a macro uses this. |
| _OVERFLOW = 474; |
| USER_ZOOM = 475; |
| _WEBKIT_BORDER_TOP_RIGHT_RADIUS = 476; |
| GRID_TEMPLATE_COLUMNS = 477; |
| _WEBKIT_ALIGN_SELF = 478; |
| _WEBKIT_PERSPECTIVE_ORIGIN = 479; |
| COLUMN_RULE_STYLE = 480; |
| DISPLAY = 481; |
| _WEBKIT_COLUMN_RULE_WIDTH = 482; |
| _WEBKIT_BOX_LINES = 483; |
| BORDER_COLOR = 484; |
| _WEBKIT_FLEX_BASIS = 485; |
| STROKE_DASHOFFSET = 486; |
| _WEBKIT_TEXT_SIZE_ADJUST = 487; |
| SCROLL_BOUNDARY_BEHAVIOR = 488; |
| _WEBKIT_TEXT_STROKE = 489; |
| WIDOWS = 490; |
| FILL = 491; |
| OVERFLOW_Y = 492; |
| OVERFLOW_X = 493; |
| OPACITY = 494; |
| _WEBKIT_PERSPECTIVE = 495; |
| _WEBKIT_TEXT_STROKE_COLOR = 496; |
| SCROLL_SNAP_MARGIN_INLINE_END = 497; |
| SCALE = 498; |
| _WEBKIT_TEXT_ORIENTATION = 499; |
| _WEBKIT_MASK_BOX_IMAGE_OUTSET = 500; |
| ALIGN_CONTENT = 501; |
| _WEBKIT_BORDER_END_WIDTH = 502; |
| BORDER_BOTTOM_STYLE = 503; |
| MASK = 504; |
| BACKGROUND_POSITION_X = 505; |
| _EPUB_TEXT_TRANSFORM = 506; |
| STOP_COLOR = 507; |
| STROKE_DASHARRAY = 508; |
| _WEBKIT_LINE_CLAMP = 509; |
| INVALID_PROPERTY = 510; |
| } |
| required NameId name_id = 1; |
| } |
| |
| message Ruleset { |
| required SelectorList selector_list = 1; |
| required DeclarationList declaration_list = 2; |
| } |
| |
| // Not in grammar. |
| message SelectorList { |
| required Selector first_selector = 1; |
| repeated Selector later_selectors = 2; |
| } |
| |
| message Attr { |
| enum Type { |
| NONE = 1; |
| EQUAL = 6; |
| TILDE = 126; |
| PIPE = 124; |
| DOLLAR = 36; |
| STAR = 42; |
| } |
| required Type type = 1; |
| optional bool attr_i = 2; |
| // TODO(metzman): Allow values to be set instead of hardcoding. |
| } |
| |
| enum PseudoType { |
| CLASS = 1; |
| ELEMENT = 2; |
| } |
| |
| enum Combinator { |
| NONE = 1; |
| DOLLAR = 36; |
| COMMA = 44; |
| GREATER_THAN = 62; |
| PLUS = 43; |
| TILDE = 126; |
| } |
| |
| message Selector { |
| enum Type { |
| ELEMENT = 1; |
| CLASS = 2; |
| ID = 3; |
| // TODO(metzman): Support the different variations of universal selectors. |
| UNIVERSAL = 4; |
| ATTR = 5; |
| } |
| required Type type = 1; |
| required Attr attr = 2; |
| // TODO(metzman): Allow the selector value to be set by fuzzer. |
| required PseudoType pseudo_type = 3; |
| enum PseudoValueId { |
| _INTERNAL_LIST_BOX = 1; |
| _INTERNAL_MEDIA_CONTROLS_OVERLAY_CAST_BUTTON = 2; |
| _INTERNAL_SHADOW_HOST_HAS_APPEARANCE = 3; |
| _INTERNAL_SPATIAL_NAVIGATION_FOCUS = 4; |
| _INTERNAL_VIDEO_PERSISTENT = 5; |
| _INTERNAL_VIDEO_PERSISTENT_ANCESTOR = 6; |
| _WEBKIT_ANY_LINK = 7; |
| _WEBKIT_AUTOFILL = 8; |
| _WEBKIT_DRAG = 9; |
| _WEBKIT_FULL_PAGE_MEDIA = 10; |
| _WEBKIT_FULL_SCREEN = 11; |
| _WEBKIT_FULL_SCREEN_ANCESTOR = 12; |
| _WEBKIT_RESIZER = 13; |
| _WEBKIT_SCROLLBAR = 14; |
| _WEBKIT_SCROLLBAR_BUTTON = 15; |
| _WEBKIT_SCROLLBAR_CORNER = 16; |
| _WEBKIT_SCROLLBAR_THUMB = 17; |
| _WEBKIT_SCROLLBAR_TRACK = 18; |
| _WEBKIT_SCROLLBAR_TRACK_PIECE = 19; |
| ACTIVE = 20; |
| AFTER = 21; |
| BACKDROP = 22; |
| BEFORE = 23; |
| CHECKED = 24; |
| CONTENT = 25; |
| CORNER_PRESENT = 26; |
| CUE = 27; |
| DECREMENT = 28; |
| DEFAULT = 29; |
| DEFINED = 30; |
| DISABLED = 31; |
| DOUBLE_BUTTON = 32; |
| EMPTY = 33; |
| ENABLED = 34; |
| END = 35; |
| FIRST = 36; |
| FIRST_CHILD = 37; |
| FIRST_LETTER = 38; |
| FIRST_LINE = 39; |
| FIRST_OF_TYPE = 40; |
| FOCUS = 41; |
| FOCUS_WITHIN = 42; |
| FULLSCREEN = 43; |
| FUTURE = 44; |
| HORIZONTAL = 45; |
| HOST = 46; |
| HOVER = 47; |
| IN_RANGE = 48; |
| INCREMENT = 49; |
| INDETERMINATE = 50; |
| INVALID = 51; |
| LAST_CHILD = 52; |
| LAST_OF_TYPE = 53; |
| LEFT = 54; |
| LINK = 55; |
| NO_BUTTON = 56; |
| ONLY_CHILD = 57; |
| ONLY_OF_TYPE = 58; |
| OPTIONAL = 59; |
| OUT_OF_RANGE = 60; |
| PAST = 61; |
| PLACEHOLDER = 62; |
| PLACEHOLDER_SHOWN = 63; |
| READ_ONLY = 64; |
| READ_WRITE = 65; |
| REQUIRED = 66; |
| RIGHT = 67; |
| ROOT = 68; |
| SCOPE = 69; |
| SELECTION = 70; |
| SHADOW = 71; |
| SINGLE_BUTTON = 72; |
| START = 73; |
| TARGET = 74; |
| UNRESOLVED = 75; |
| VALID = 76; |
| VERTICAL = 77; |
| VISITED = 78; |
| WINDOW_INACTIVE = 79; |
| _WEBKIT_ANY = 80; |
| HOST_CONTEXT = 83; |
| LANG = 84; |
| NOT = 85; |
| NTH_CHILD = 86; |
| NTH_LAST_CHILD = 87; |
| NTH_LAST_OF_TYPE = 88; |
| NTH_OF_TYPE = 89; |
| SLOTTED = 90; |
| INVALID_PSEUDO_VALUE = 91; |
| } |
| optional PseudoValueId pseudo_value_id = 4; |
| required Combinator combinator = 5; |
| } |
| |
| message Pseudo { |
| oneof rhs { |
| Ident ident_1 = 1; |
| FunctionToken function_token = 2; |
| } |
| required Ident ident_2 = 3; |
| } |
| |
| message Declaration { |
| // property ':' S* expr prio? | /* empty */ |
| optional PropertyAndValue property_and_value = 1; |
| } |
| |
| message PropertyAndValue { |
| required Property property = 1; |
| required Expr expr = 2; |
| enum Prio { |
| UNSET = 0; |
| IS_SET = 1; |
| } |
| optional Prio prio = 3; |
| enum ValueId { |
| ALL = 1; |
| DYNAMIC = 2; |
| YELLOW = 3; |
| GRAYTEXT = 4; |
| COLOR_DODGE = 5; |
| DARKSEAGREEN = 6; |
| DISC = 7; |
| EXTRA_CONDENSED = 8; |
| HANGING = 9; |
| STEP_MIDDLE = 10; |
| MENULIST = 11; |
| ROW = 12; |
| PRE_WRAP = 13; |
| INLINE_BLOCK = 14; |
| STEP_START = 15; |
| ISOLATE_OVERRIDE = 16; |
| SWAP = 17; |
| RTL = 18; |
| CRIMSON = 19; |
| TB = 20; |
| COMMON_LIGATURES = 21; |
| _WEBKIT_MIN_CONTENT = 22; |
| BROWN = 23; |
| KHMER = 24; |
| INFINITE = 25; |
| TABLE_HEADER_GROUP = 26; |
| BEFORE_EDGE = 27; |
| READ_WRITE = 28; |
| RL = 29; |
| WAVY = 30; |
| PROPORTIONAL_WIDTH = 31; |
| NO_DROP = 32; |
| CYAN = 33; |
| DIFFERENCE = 34; |
| EXACT = 35; |
| SQUARE_BUTTON = 36; |
| SKYBLUE = 37; |
| _WEBKIT_ISOLATE_OVERRIDE = 38; |
| TABLE_ROW_GROUP = 39; |
| DARKGRAY = 40; |
| BUTTON = 41; |
| ETHIOPIC_HALEHAME_AM = 42; |
| LARGE = 43; |
| LIGHTPINK = 44; |
| CROSSHAIR = 45; |
| TEAL = 46; |
| FILL_BOX = 47; |
| SMALL = 48; |
| MEDIA_SLIDERTHUMB = 49; |
| ROUND = 50; |
| _INTERNAL_MEDIA_SUBTITLES_ICON = 51; |
| MEDIA_PLAY_BUTTON = 52; |
| SMALLER = 53; |
| JIS04 = 54; |
| LR_TB = 55; |
| LIGHTGOLDENRODYELLOW = 56; |
| LAVENDER = 57; |
| ULTRA_EXPANDED = 58; |
| DIMGREY = 59; |
| DIAGONAL_FRACTIONS = 60; |
| BLUE = 61; |
| XOR = 62; |
| SUB = 63; |
| TELUGU = 64; |
| CRISPEDGES = 65; |
| _WEBKIT_MINI_CONTROL = 66; |
| ZOOM_OUT = 67; |
| SEARCHFIELD = 68; |
| CELL = 69; |
| GUJARATI = 70; |
| ABOVE = 71; |
| NO_PUNCTUATION = 72; |
| NEW = 73; |
| FILLED = 74; |
| USE_SCRIPT = 75; |
| CONDENSED = 76; |
| LOOSE = 77; |
| SOURCE_OUT = 78; |
| OBJECTS = 79; |
| SLIDER_HORIZONTAL = 80; |
| ROW_RESIZE = 81; |
| BREAK_ALL = 82; |
| WAIT = 83; |
| MEDIA_EXIT_FULLSCREEN_BUTTON = 84; |
| KOREAN_HANGUL_FORMAL = 85; |
| FLORALWHITE = 86; |
| RESET_SIZE = 87; |
| ZOOM_IN = 88; |
| _WEBKIT_GRABBING = 89; |
| LARGER = 90; |
| MAX_CONTENT = 91; |
| SRGB = 92; |
| LITERAL_PUNCTUATION = 93; |
| WINDOWFRAME = 94; |
| SUBPIXEL_ANTIALIASED = 95; |
| BUTTONHIGHLIGHT = 96; |
| HUE = 97; |
| PIXELATED = 98; |
| STICKY = 99; |
| GREENYELLOW = 100; |
| LINEARRGB = 101; |
| LIGHTSEAGREEN = 102; |
| LOGICAL = 103; |
| _WEBKIT_RIGHT = 104; |
| SIENNA = 105; |
| FLOW_ROOT = 106; |
| OPTIMIZESPEED = 107; |
| KOREAN_HANJA_FORMAL = 108; |
| NOWRAP = 109; |
| X_SMALL = 110; |
| LANDSCAPE = 111; |
| LIME = 112; |
| X_LARGE = 113; |
| NS_RESIZE = 114; |
| APPWORKSPACE = 115; |
| PERU = 116; |
| ALL_PETITE_CAPS = 117; |
| BLACK = 118; |
| XX_SMALL = 119; |
| ALL_SCROLL = 120; |
| DARKSLATEGRAY = 121; |
| FLAT = 122; |
| GEORGIAN = 123; |
| UNDER = 124; |
| LEMONCHIFFON = 125; |
| CHOCOLATE = 126; |
| PRE_LINE = 127; |
| CONTEXT_MENU = 128; |
| DARKGREY = 129; |
| VIEW_BOX = 130; |
| OLIVE = 131; |
| _WEBKIT_PLAINTEXT = 132; |
| EXTRA_EXPANDED = 133; |
| ANTIQUEWHITE = 134; |
| NONE = 135; |
| MOCCASIN = 136; |
| LOCAL = 137; |
| STROKE = 138; |
| DARKSLATEBLUE = 139; |
| LIGHTSKYBLUE = 140; |
| CONTENT_BOX = 141; |
| THIN = 142; |
| DEEPPINK = 143; |
| SPELL_OUT = 144; |
| NON_SCALING_STROKE = 145; |
| SLIDER_VERTICAL = 146; |
| _WEBKIT_BOX = 147; |
| PLUM = 148; |
| _INTERNAL_MEDIA_OVERLAY_CAST_OFF_BUTTON = 149; |
| INACTIVECAPTIONTEXT = 150; |
| DODGERBLUE = 151; |
| THREEDSHADOW = 152; |
| PETITE_CAPS = 153; |
| PAUSED = 154; |
| _WEBKIT_LINK = 155; |
| MESSAGE_BOX = 156; |
| _INTERNAL_CENTER = 157; |
| TRIANGLE = 158; |
| MAGENTA = 159; |
| TAN = 160; |
| ABSOLUTE = 161; |
| PINK = 162; |
| HIRAGANA_IROHA = 163; |
| FARTHEST_SIDE = 164; |
| PALEVIOLETRED = 165; |
| CLOSE_QUOTE = 166; |
| THREEDLIGHTSHADOW = 167; |
| CAPTION = 168; |
| POWDERBLUE = 169; |
| TABLE_COLUMN = 170; |
| SOURCE_ATOP = 171; |
| HIRAGANA = 172; |
| UPPER_ARMENIAN = 173; |
| WINDOWTEXT = 174; |
| FULL_WIDTH = 175; |
| PROGRESS_BAR_VALUE = 176; |
| MIDNIGHTBLUE = 177; |
| INLINE_FLEX = 178; |
| ECONOMY = 179; |
| LAO = 180; |
| CLONE = 181; |
| AFTER = 182; |
| STATUS_BAR = 183; |
| LOWERCASE = 184; |
| MIXED = 185; |
| LINE_THROUGH = 186; |
| LIGHTSLATEGRAY = 187; |
| SMALL_CAPTION = 188; |
| INFOBACKGROUND = 189; |
| DISCARD = 190; |
| CAPTIONTEXT = 191; |
| END = 192; |
| _INTERNAL_INACTIVE_LIST_BOX_SELECTION_TEXT = 193; |
| CAPITALIZE = 194; |
| MEDIUMSEAGREEN = 195; |
| TOMATO = 196; |
| CADETBLUE = 197; |
| DECIMAL_LEADING_ZERO = 198; |
| SANS_SERIF = 199; |
| LINEN = 200; |
| GREEN = 201; |
| INACTIVEBORDER = 202; |
| INLINE = 203; |
| FALLBACK = 204; |
| PEACHPUFF = 205; |
| _WEBKIT_MAX_CONTENT = 206; |
| PLUS_LIGHTER = 207; |
| CHECKBOX = 208; |
| HELP = 209; |
| OBLIQUE = 210; |
| MOVE = 211; |
| METER = 212; |
| LEDGER = 213; |
| SLATEGREY = 214; |
| MEDIA_TIME_REMAINING_DISPLAY = 215; |
| URDU = 216; |
| POINTER = 217; |
| BEFORE = 218; |
| DARKSLATEGREY = 219; |
| _WEBKIT_CONTROL = 220; |
| _WEBKIT_INLINE_BOX = 221; |
| HARD_LIGHT = 222; |
| MITER = 223; |
| ORIYA = 224; |
| UPPER_LATIN = 225; |
| WINDOW = 226; |
| MEDIUMBLUE = 227; |
| LR = 228; |
| ORANGE = 229; |
| HIDDEN = 230; |
| _INTERNAL_ACTIVE_LIST_BOX_SELECTION = 231; |
| BOLDER = 232; |
| _WEBKIT_CENTER = 233; |
| SAFE = 234; |
| HIGHLIGHTTEXT = 235; |
| ACCUMULATE = 236; |
| FLEX_END = 237; |
| TRANSPARENT = 238; |
| _INTERNAL_MEDIA_REMOTING_CAST_ICON = 239; |
| GOLDENROD = 240; |
| HISTORICAL_LIGATURES = 241; |
| DARKVIOLET = 242; |
| ALWAYS = 243; |
| DECIMAL = 244; |
| BLOCK_AXIS = 245; |
| SCROLLBAR = 246; |
| EW_RESIZE = 247; |
| DARKMAGENTA = 248; |
| NOT_ALLOWED = 249; |
| EASE_IN = 250; |
| TABLE_COLUMN_GROUP = 251; |
| SQUARE = 252; |
| NO_CONTEXTUAL = 253; |
| _WEBKIT_FILL_AVAILABLE = 254; |
| FRAMES = 255; |
| PERSIAN = 256; |
| STATIC = 257; |
| NAVY = 258; |
| VISIBLEPAINTED = 259; |
| THICK = 260; |
| SIMP_CHINESE_FORMAL = 261; |
| GHOSTWHITE = 262; |
| SPACE = 263; |
| DARKKHAKI = 264; |
| KEEP_ALL = 265; |
| CONTENT = 266; |
| _INTERNAL_MEDIA_DOWNLOAD_BUTTON = 267; |
| UPPER_ROMAN = 268; |
| CORNSILK = 269; |
| RED = 270; |
| NO_CHANGE = 271; |
| LINEAR = 272; |
| _INTERNAL_MEDIA_CONTROL = 273; |
| SIDEWAYS = 274; |
| CONTAIN = 275; |
| KATAKANA_IROHA = 276; |
| STEELBLUE = 277; |
| DOUBLE_CIRCLE = 278; |
| ANTIALIASED = 279; |
| ALICEBLUE = 280; |
| LIGHTSLATEGREY = 281; |
| GEOMETRICPRECISION = 282; |
| GAINSBORO = 283; |
| INLINE_TABLE = 284; |
| LTR = 285; |
| BACKWARDS = 286; |
| S_RESIZE = 287; |
| LIGHTGREY = 288; |
| MEDIA_MUTE_BUTTON = 289; |
| LISTITEM = 290; |
| MISTYROSE = 291; |
| DARKSALMON = 292; |
| SIDEWAYS_RIGHT = 293; |
| JIS83 = 294; |
| MEDIUMSPRINGGREEN = 295; |
| CAPS_LOCK_INDICATOR = 296; |
| SLIDERTHUMB_HORIZONTAL = 297; |
| FORWARDS = 298; |
| UPPER_ALPHA = 299; |
| BLINK = 300; |
| FANTASY = 301; |
| SIMPLIFIED = 302; |
| ORANGERED = 303; |
| NAVAJOWHITE = 304; |
| OPEN = 305; |
| HORIZONTAL = 306; |
| SLATEGRAY = 307; |
| ACTIVECAPTION = 308; |
| KOREAN_HANJA_INFORMAL = 309; |
| STRICT = 310; |
| LIGHTCYAN = 311; |
| TOP = 312; |
| _WEBKIT_PICTOGRAPH = 313; |
| WHITE = 314; |
| TEXT_AFTER_EDGE = 315; |
| LIGHTGRAY = 316; |
| COLLAPSE = 317; |
| HOVER = 318; |
| _WEBKIT_OPTIMIZE_CONTRAST = 319; |
| PADDING = 320; |
| BUTT = 321; |
| OFF = 322; |
| THAI = 323; |
| COPY = 324; |
| HOTPINK = 325; |
| DOUBLE = 326; |
| LOWER_GREEK = 327; |
| GREY = 328; |
| MEDIA_VOLUME_SLIDER_CONTAINER = 329; |
| _WEBKIT_INLINE_FLEX = 330; |
| SPACE_EVENLY = 331; |
| ACTIVEBORDER = 332; |
| BROWSER = 333; |
| PRE = 334; |
| UNICASE = 335; |
| SIMP_CHINESE_INFORMAL = 336; |
| CLIP = 337; |
| CLOSEST_CORNER = 338; |
| PLAINTEXT = 339; |
| NO_REPEAT = 340; |
| TEXT_TOP = 341; |
| JIS78 = 342; |
| XX_LARGE = 343; |
| RL_TB = 344; |
| TABLE_ROW = 345; |
| MEDIUM = 346; |
| MONGOLIAN = 347; |
| KATAKANA = 348; |
| ELEMENT = 349; |
| BORDER = 350; |
| ROSYBROWN = 351; |
| PROGRESS_BAR = 352; |
| WHITESMOKE = 353; |
| LIGHTBLUE = 354; |
| _WEBKIT_LEFT = 355; |
| NO_COMMON_LIGATURES = 356; |
| LISTBOX = 357; |
| ISOLATE = 358; |
| SNOW = 359; |
| STEP_END = 360; |
| ETHIOPIC_HALEHAME_TI_ER = 361; |
| ETHIOPIC_HALEHAME_TI_ET = 362; |
| MULTIPLE = 363; |
| _INTERNAL_INACTIVE_LIST_BOX_SELECTION = 364; |
| NORMAL = 365; |
| BLUEVIOLET = 366; |
| SALMON = 367; |
| LOWER_ALPHA = 368; |
| OLDLACE = 369; |
| LETTER = 370; |
| BORDER_BOX = 371; |
| ALPHA = 372; |
| TIBETAN = 373; |
| ICON = 374; |
| FLEX_START = 375; |
| TEXTAREA = 376; |
| W_RESIZE = 377; |
| CLEAR = 378; |
| COVER = 379; |
| FARTHEST_CORNER = 380; |
| MENULIST_TEXTFIELD = 381; |
| TRADITIONAL = 382; |
| LEFT = 383; |
| DOT = 384; |
| LUMINANCE = 385; |
| GOLD = 386; |
| SHOW = 387; |
| TEXT = 388; |
| _WEBKIT_MATCH_PARENT = 389; |
| RADIO = 390; |
| CAMBODIAN = 391; |
| REPEAT_X = 392; |
| REPEAT_Y = 393; |
| FINE = 394; |
| TEXTFIELD = 395; |
| FROM_IMAGE = 396; |
| LINING_NUMS = 397; |
| MENU = 398; |
| PROPORTIONAL_NUMS = 399; |
| SOURCE_OVER = 400; |
| NE_RESIZE = 401; |
| PAPAYAWHIP = 402; |
| SOURCE_IN = 403; |
| SE_RESIZE = 404; |
| CIRCLE = 405; |
| DESTINATION_OUT = 406; |
| THREEDFACE = 407; |
| OVER = 408; |
| DISTRIBUTE = 409; |
| INACTIVECAPTION = 410; |
| LIGHTEN = 411; |
| _WEBKIT_FIT_CONTENT = 412; |
| LIGHTER = 413; |
| CONTEXTUAL = 414; |
| GRAY = 415; |
| DARKTURQUOISE = 416; |
| E_RESIZE = 417; |
| LUMINOSITY = 418; |
| LIST_ITEM = 419; |
| LIMEGREEN = 420; |
| FIXED = 421; |
| MIN_CONTENT = 422; |
| MEDIA_SLIDER = 423; |
| VISIBLESTROKE = 424; |
| CUBIC_BEZIER = 425; |
| CLOSEST_SIDE = 426; |
| RELATIVE = 427; |
| NO_OPEN_QUOTE = 428; |
| THISTLE = 429; |
| VIOLET = 430; |
| PORTRAIT = 431; |
| FULLSCREEN = 432; |
| HONEYDEW = 433; |
| ON_DEMAND = 434; |
| CORNFLOWERBLUE = 435; |
| DARKBLUE = 436; |
| OUTSIDE = 437; |
| PROGRESS = 438; |
| MEDIUMPURPLE = 439; |
| DARKCYAN = 440; |
| VERTICAL = 441; |
| MONOSPACE = 442; |
| BREAK_WORD = 443; |
| SCREEN = 444; |
| REBECCAPURPLE = 445; |
| DARKRED = 446; |
| VERTICAL_LR = 447; |
| OPTIMIZEQUALITY = 448; |
| ARMENIAN = 449; |
| NWSE_RESIZE = 450; |
| TEXT_BEFORE_EDGE = 451; |
| OPTIONAL = 452; |
| EXCLUSION = 453; |
| BOTH = 454; |
| MEDIUMTURQUOISE = 455; |
| LOWER_ROMAN = 456; |
| REVERSE = 457; |
| HANGUL_CONSONANT = 458; |
| SOFT_LIGHT = 459; |
| AQUA = 460; |
| BUTTON_BEVEL = 461; |
| GURMUKHI = 462; |
| LIGHTSTEELBLUE = 463; |
| SMALL_CAPS = 464; |
| N_RESIZE = 465; |
| TABLE_FOOTER_GROUP = 466; |
| DESTINATION_IN = 467; |
| OLIVEDRAB = 468; |
| READ_WRITE_PLAINTEXT_ONLY = 469; |
| PADDING_BOX = 470; |
| COL_RESIZE = 471; |
| _INTERNAL_MEDIA_TRACK_SELECTION_CHECKMARK = 472; |
| LOWER_LATIN = 473; |
| _WEBKIT_NOWRAP = 474; |
| TABLE = 475; |
| BUTTONSHADOW = 476; |
| PALEGREEN = 477; |
| JIS90 = 478; |
| FIT_CONTENT = 479; |
| STRETCH = 480; |
| SEASHELL = 481; |
| THREEDHIGHLIGHT = 482; |
| VISIBLEFILL = 483; |
| SPACE_AROUND = 484; |
| COARSE = 485; |
| AQUAMARINE = 486; |
| DIGITS = 487; |
| CURRENTCOLOR = 488; |
| PAINTED = 489; |
| TB_RL = 490; |
| BUTTONFACE = 491; |
| LAWNGREEN = 492; |
| BURLYWOOD = 493; |
| _WEBKIT_SMALL_CONTROL = 494; |
| SLATEBLUE = 495; |
| MINTCREAM = 496; |
| RUBY = 497; |
| SOLID = 498; |
| ULTRA_CONDENSED = 499; |
| EXPANDED = 500; |
| SADDLEBROWN = 501; |
| VERTICAL_RL = 502; |
| SESAME = 503; |
| _WEBKIT_BODY = 504; |
| DESTINATION_ATOP = 505; |
| MALAYALAM = 506; |
| WRAP_REVERSE = 507; |
| BALANCE = 508; |
| VERTICAL_RIGHT = 509; |
| NO_CLOSE_QUOTE = 510; |
| FLEX = 511; |
| PUSH_BUTTON = 512; |
| DARKGOLDENROD = 513; |
| SATURATION = 514; |
| MIDDLE = 515; |
| SANDYBROWN = 516; |
| HEBREW = 517; |
| MENUTEXT = 518; |
| INLINE_AXIS = 519; |
| BASELINE = 520; |
| _WEBKIT_GRAB = 521; |
| DARKORANGE = 522; |
| _WEBKIT_FLEX = 523; |
| NW_RESIZE = 524; |
| CONTENTS = 525; |
| AUTO = 526; |
| MARGIN_BOX = 527; |
| DOCUMENT = 528; |
| PALEGOLDENROD = 529; |
| ORDINAL = 530; |
| HAND = 531; |
| RUNNING = 532; |
| CJK_EARTHLY_BRANCH = 533; |
| TABLE_CAPTION = 534; |
| MEDIA_TOGGLE_CLOSED_CAPTIONS_BUTTON = 535; |
| AFTER_EDGE = 536; |
| SLIDERTHUMB_VERTICAL = 537; |
| CENTER = 538; |
| LIGHTYELLOW = 539; |
| LAVENDERBLUSH = 540; |
| _INTERNAL_MEDIA_CLOSED_CAPTIONS_ICON = 541; |
| INHERIT = 542; |
| MEDIA_CONTROLS_BACKGROUND = 543; |
| JUSTIFY = 544; |
| OPTIMIZELEGIBILITY = 545; |
| _WEBKIT_BASELINE_MIDDLE = 546; |
| INDIGO = 547; |
| MINIMAL_UI = 548; |
| FIREBRICK = 549; |
| INDIANRED = 550; |
| DARKOLIVEGREEN = 551; |
| SEMI_EXPANDED = 552; |
| UNDERLINE = 553; |
| MYANMAR = 554; |
| SPACE_BETWEEN = 555; |
| EASE = 556; |
| ALTERNATE = 557; |
| MEDIUMORCHID = 558; |
| SILVER = 559; |
| COLOR = 560; |
| CHARTREUSE = 561; |
| EASE_IN_OUT = 562; |
| SPRINGGREEN = 563; |
| LIGHTSALMON = 564; |
| TURQUOISE = 565; |
| HIDE = 566; |
| HORIZONTAL_TB = 567; |
| VERTICAL_TEXT = 568; |
| ALIAS = 569; |
| GRID = 570; |
| NO_DISCRETIONARY_LIGATURES = 571; |
| BACKGROUND = 572; |
| DEVANAGARI = 573; |
| TEXT_BOTTOM = 574; |
| DARKGREEN = 575; |
| VISIBLE = 576; |
| TABULAR_NUMS = 577; |
| MANUAL = 578; |
| ZOOM = 579; |
| CJK_HEAVENLY_STEM = 580; |
| STEPS = 581; |
| BOUNDING_BOX = 582; |
| ALPHABETIC = 583; |
| AFTER_WHITE_SPACE = 584; |
| ROW_REVERSE = 585; |
| MEDIA_CURRENT_TIME_DISPLAY = 586; |
| MATHEMATICAL = 587; |
| ETHIOPIC_HALEHAME = 588; |
| RIGHT = 589; |
| UPPERCASE = 590; |
| _WEBKIT_XXX_LARGE = 591; |
| B4 = 592; |
| B5 = 593; |
| YELLOWGREEN = 594; |
| MEDIA_CONTROLS_FULLSCREEN_BACKGROUND = 595; |
| LOWER_ARMENIAN = 596; |
| ORCHID = 597; |
| NONZERO = 598; |
| SLICE = 599; |
| DENSE = 600; |
| INTER_WORD = 601; |
| BOTTOM = 602; |
| PURPLE = 603; |
| AVOID = 604; |
| SEPARATE = 605; |
| HANGUL = 606; |
| LEGAL = 607; |
| ALTERNATE_REVERSE = 608; |
| PRESERVE_3D = 609; |
| READ_ONLY = 610; |
| ELLIPSIS = 611; |
| MEDIA_OVERLAY_PLAY_BUTTON = 612; |
| BISQUE = 613; |
| INFOTEXT = 614; |
| KHAKI = 615; |
| WHEAT = 616; |
| BOLD = 617; |
| NO_HISTORICAL_LIGATURES = 618; |
| BIDI_OVERRIDE = 619; |
| DEEPSKYBLUE = 620; |
| EASE_OUT = 621; |
| CJK_IDEOGRAPHIC = 622; |
| OLDSTYLE_NUMS = 623; |
| MEDIA_ENTER_FULLSCREEN_BUTTON = 624; |
| SUPER = 625; |
| CURSIVE = 626; |
| ON = 627; |
| CENTRAL = 628; |
| _INTERNAL_MEDIA_OVERFLOW_BUTTON = 629; |
| STANDALONE = 630; |
| COLUMN = 631; |
| CORAL = 632; |
| DESTINATION_OVER = 633; |
| DISCRETIONARY_LIGATURES = 634; |
| BEIGE = 635; |
| TABLE_CELL = 636; |
| AZURE = 637; |
| TRAD_CHINESE_INFORMAL = 638; |
| TITLING_CAPS = 639; |
| _WEBKIT_ZOOM_IN = 640; |
| BLOCK = 641; |
| OUTSET = 642; |
| MEDIUMVIOLETRED = 643; |
| ROYALBLUE = 644; |
| MENULIST_TEXT = 645; |
| SW_RESIZE = 646; |
| MULTIPLY = 647; |
| THREEDDARKSHADOW = 648; |
| WRAP = 649; |
| LIGHTCORAL = 650; |
| ELLIPSE = 651; |
| _INTERNAL_ACTIVE_LIST_BOX_SELECTION_TEXT = 652; |
| RIDGE = 653; |
| _WEBKIT_AUTO = 654; |
| _INTERNAL_QUIRK_INHERIT = 655; |
| INITIAL = 656; |
| FUCHSIA = 657; |
| MENULIST_BUTTON = 658; |
| BLANCHEDALMOND = 659; |
| CARET = 660; |
| START = 661; |
| _INTERNAL_MEDIA_CAST_OFF_BUTTON = 662; |
| ITALIC = 663; |
| IVORY = 664; |
| BUTTONTEXT = 665; |
| SEMI_CONDENSED = 666; |
| INLINE_GRID = 667; |
| _WEBKIT_ACTIVELINK = 668; |
| SERIF = 669; |
| FORESTGREEN = 670; |
| BENGALI = 671; |
| UPRIGHT = 672; |
| RESET = 673; |
| BEVEL = 674; |
| IDEOGRAPHIC = 675; |
| DARKEN = 676; |
| MEDIA_VOLUME_SLIDERTHUMB = 677; |
| DEFAULT = 678; |
| INSIDE = 679; |
| BELOW = 680; |
| HIGHLIGHT = 681; |
| EMBED = 682; |
| GROOVE = 683; |
| NESW_RESIZE = 684; |
| STACKED_FRACTIONS = 685; |
| UNSAFE = 686; |
| MAROON = 687; |
| KANNADA = 688; |
| SINGLE = 689; |
| AT = 690; |
| INK = 691; |
| ARABIC_INDIC = 692; |
| MEDIA_VOLUME_SLIDER = 693; |
| COLUMN_REVERSE = 694; |
| _WEBKIT_ZOOM_OUT = 695; |
| FILL = 696; |
| EVENODD = 697; |
| DOTTED = 698; |
| DIMGRAY = 699; |
| DASHED = 700; |
| SEAGREEN = 701; |
| TRAD_CHINESE_FORMAL = 702; |
| MEDIUMSLATEBLUE = 703; |
| PALETURQUOISE = 704; |
| INNER_SPIN_BUTTON = 705; |
| REPEAT = 706; |
| DARKORCHID = 707; |
| _WEBKIT_ISOLATE = 708; |
| SEARCHFIELD_CANCEL_BUTTON = 709; |
| ALL_SMALL_CAPS = 710; |
| A3 = 711; |
| A5 = 712; |
| A4 = 713; |
| OPEN_QUOTE = 714; |
| LIGHTGREEN = 715; |
| SLASHED_ZERO = 716; |
| COLOR_BURN = 717; |
| AUTO_FLOW = 718; |
| OVERLAY = 719; |
| VISUAL = 720; |
| SCALE_DOWN = 721; |
| OVERLINE = 722; |
| INSET = 723; |
| MEDIUMAQUAMARINE = 724; |
| SCROLL = 725; |
| INVALID_VALUE = 726; |
| }; |
| |
| optional ValueId value_id = 4; |
| } |
| |
| message Expr { |
| required Term term = 1; |
| repeated OperatorTerm operator_terms = 2; |
| } |
| |
| // Not in grammar. |
| message OperatorTerm { |
| required Operator _operator = 1; |
| required Term term = 2; |
| } |
| |
| message Term { |
| optional UnaryOperator unary_operator = 1; |
| oneof rhs { |
| // [ NUMBER S* | PERCENTAGE S* | LENGTH S* | EMS S* | EXS S* | ANGLE S* | |
| // TIME S* | FREQ S* | function ] |
| TermPart term_part = 2; |
| // | STRING |
| String string = 3; |
| } |
| // S* | IDENT S* | URI S* | UNICODERANGE S* | hexcolor |
| optional Ident ident = 4; |
| optional Uri uri = 5; |
| // TODO(metzman): Add UNICODERANGE token once (if) I implement it. |
| optional Hexcolor hexcolor = 6; |
| } |
| |
| // Not in grammar. |
| message TermPart { |
| // NUMBER |
| required Num number = 1; |
| // S* | PERCENTAGE |
| optional Num percentage = 2; // num "%" |
| // S* | LENGTH |
| optional Length length = 3; |
| optional Num ems = 4; // {num}em |
| optional Num exs = 5; // {num}ex |
| optional Angle angle = 6; |
| optional Time time = 7; |
| optional Freq freq = 8; |
| optional Function function = 9; |
| } |
| |
| message Function { |
| required FunctionToken function_token = 1; |
| required Expr expr = 2; |
| } |
| |
| message Hexcolor { |
| required HexcolorThree first_three = 1; |
| optional HexcolorThree last_three = 2; |
| } |
| |
| // Not in grammar. |
| message HexcolorThree { |
| // 0-9A-Za-z |
| required H ascii_value_1 = 1; |
| required H ascii_value_2 = 2; |
| required H ascii_value_3 = 3; |
| } |
| |
| message Input { |
| enum CSSParserMode { |
| kHTMLStandardMode = 0; |
| kHTMLQuirksMode = 1; |
| kSVGAttributeMode = 2; |
| kCSSViewportRuleMode = 3; |
| kCSSFontFaceRuleMode = 4; |
| kUASheetMode = 5; |
| } |
| enum SecureContextMode { |
| kInsecureContext = 0; |
| kSecureContext = 1; |
| } |
| required CSSParserMode css_parser_mode = 1; |
| required bool defer_property_parsing = 2; |
| required StyleSheet style_sheet = 3; |
| required bool is_dynamic_profile = 4; |
| required SecureContextMode secure_context_mode = 5; |
| } |