Index: Source/core/css/CSSGrammar.y.in |
diff --git a/Source/core/css/CSSGrammar.y.in b/Source/core/css/CSSGrammar.y.in |
index adb38a60e42db031644c85ea40ab4d537ebead82..024f514addcc5349f46debf7ee0d7767cadc3d86 100644 |
--- a/Source/core/css/CSSGrammar.y.in |
+++ b/Source/core/css/CSSGrammar.y.in |
@@ -142,6 +142,7 @@ inline static CSSParserValue makeOperatorValue(int value) |
%token INTERNAL_VALUE_SYM |
%token INTERNAL_KEYFRAME_RULE_SYM |
%token INTERNAL_SUPPORTS_CONDITION_SYM |
+%token KEYFRAMES_SYM |
%token WEBKIT_KEYFRAMES_SYM |
%token WEBKIT_REGION_RULE_SYM |
%token WEBKIT_FILTER_RULE_SYM |
@@ -822,8 +823,16 @@ before_keyframes_rule: |
; |
keyframes: |
+ before_keyframes_rule KEYFRAMES_SYM maybe_space keyframe_name at_rule_header_end_maybe_space '{' at_rule_body_start maybe_space location_label keyframes_rule closing_brace { |
+ $$ = parser->createKeyframesRule($4, parser->sinkFloatingKeyframeVector($10), false /* isPrefixed */); |
+ } |
+ | |
before_keyframes_rule WEBKIT_KEYFRAMES_SYM maybe_space keyframe_name at_rule_header_end_maybe_space '{' at_rule_body_start maybe_space location_label keyframes_rule closing_brace { |
- $$ = parser->createKeyframesRule($4, parser->sinkFloatingKeyframeVector($10)); |
+ $$ = parser->createKeyframesRule($4, parser->sinkFloatingKeyframeVector($10), true /* isPrefixed */); |
+ } |
+ | before_keyframes_rule KEYFRAMES_SYM at_rule_recovery { |
+ $$ = 0; |
+ parser->endRuleBody(true); |
} |
| before_keyframes_rule WEBKIT_KEYFRAMES_SYM at_rule_recovery { |
$$ = 0; |