| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CSSParserImpl_h | 5 #ifndef CSSParserImpl_h |
| 6 #define CSSParserImpl_h | 6 #define CSSParserImpl_h |
| 7 | 7 |
| 8 #include "core/CSSPropertyNames.h" | 8 #include "core/CSSPropertyNames.h" |
| 9 #include "core/css/CSSProperty.h" | 9 #include "core/css/CSSProperty.h" |
| 10 #include "core/css/CSSPropertySourceData.h" | 10 #include "core/css/CSSPropertySourceData.h" |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 // As per css-syntax, css-cascade and css-namespaces, @charset rules | 44 // As per css-syntax, css-cascade and css-namespaces, @charset rules |
| 45 // must come first, followed by @import then @namespace. | 45 // must come first, followed by @import then @namespace. |
| 46 // AllowImportRules actually means we allow @import and any rules thay | 46 // AllowImportRules actually means we allow @import and any rules thay |
| 47 // may follow it, i.e. @namespace rules and regular rules. | 47 // may follow it, i.e. @namespace rules and regular rules. |
| 48 // AllowCharsetRules and AllowNamespaceRules behave similarly. | 48 // AllowCharsetRules and AllowNamespaceRules behave similarly. |
| 49 AllowCharsetRules, | 49 AllowCharsetRules, |
| 50 AllowImportRules, | 50 AllowImportRules, |
| 51 AllowNamespaceRules, | 51 AllowNamespaceRules, |
| 52 RegularRules, | 52 RegularRules, |
| 53 KeyframeRules, | 53 KeyframeRules, |
| 54 ApplyRules, // For @apply inside style rules |
| 54 NoRules, // For parsing at-rules inside declaration lists | 55 NoRules, // For parsing at-rules inside declaration lists |
| 55 }; | 56 }; |
| 56 | 57 |
| 57 static bool parseValue(MutableStylePropertySet*, CSSPropertyID, const String
&, bool important, const CSSParserContext&); | 58 static bool parseValue(MutableStylePropertySet*, CSSPropertyID, const String
&, bool important, const CSSParserContext&); |
| 58 static bool parseVariableValue(MutableStylePropertySet*, const AtomicString&
propertyName, const String&, bool important, const CSSParserContext&); | 59 static bool parseVariableValue(MutableStylePropertySet*, const AtomicString&
propertyName, const String&, bool important, const CSSParserContext&); |
| 59 static PassRefPtrWillBeRawPtr<ImmutableStylePropertySet> parseInlineStyleDec
laration(const String&, Element*); | 60 static PassRefPtrWillBeRawPtr<ImmutableStylePropertySet> parseInlineStyleDec
laration(const String&, Element*); |
| 60 static bool parseDeclarationList(MutableStylePropertySet*, const String&, co
nst CSSParserContext&); | 61 static bool parseDeclarationList(MutableStylePropertySet*, const String&, co
nst CSSParserContext&); |
| 61 static PassRefPtrWillBeRawPtr<StyleRuleBase> parseRule(const String&, const
CSSParserContext&, StyleSheetContents*, AllowedRulesType); | 62 static PassRefPtrWillBeRawPtr<StyleRuleBase> parseRule(const String&, const
CSSParserContext&, StyleSheetContents*, AllowedRulesType); |
| 62 static void parseStyleSheet(const String&, const CSSParserContext&, StyleShe
etContents*); | 63 static void parseStyleSheet(const String&, const CSSParserContext&, StyleShe
etContents*); |
| 63 static CSSSelectorList parsePageSelector(CSSParserTokenRange, StyleSheetCont
ents*); | 64 static CSSSelectorList parsePageSelector(CSSParserTokenRange, StyleSheetCont
ents*); |
| 64 | 65 |
| 66 static PassRefPtrWillBeRawPtr<ImmutableStylePropertySet> parseCustomProperty
Set(CSSParserTokenRange); |
| 67 |
| 65 static PassOwnPtr<Vector<double>> parseKeyframeKeyList(const String&); | 68 static PassOwnPtr<Vector<double>> parseKeyframeKeyList(const String&); |
| 66 | 69 |
| 67 bool supportsDeclaration(CSSParserTokenRange&); | 70 bool supportsDeclaration(CSSParserTokenRange&); |
| 68 | 71 |
| 69 static void parseDeclarationListForInspector(const String&, const CSSParserC
ontext&, CSSParserObserver&); | 72 static void parseDeclarationListForInspector(const String&, const CSSParserC
ontext&, CSSParserObserver&); |
| 70 static void parseStyleSheetForInspector(const String&, const CSSParserContex
t&, StyleSheetContents*, CSSParserObserver&); | 73 static void parseStyleSheetForInspector(const String&, const CSSParserContex
t&, StyleSheetContents*, CSSParserObserver&); |
| 71 | 74 |
| 72 private: | 75 private: |
| 73 enum RuleListType { | 76 enum RuleListType { |
| 74 TopLevelRuleList, | 77 TopLevelRuleList, |
| (...skipping 11 matching lines...) Expand all Loading... |
| 86 | 89 |
| 87 static PassRefPtrWillBeRawPtr<StyleRuleCharset> consumeCharsetRule(CSSParser
TokenRange prelude); | 90 static PassRefPtrWillBeRawPtr<StyleRuleCharset> consumeCharsetRule(CSSParser
TokenRange prelude); |
| 88 PassRefPtrWillBeRawPtr<StyleRuleImport> consumeImportRule(CSSParserTokenRang
e prelude); | 91 PassRefPtrWillBeRawPtr<StyleRuleImport> consumeImportRule(CSSParserTokenRang
e prelude); |
| 89 PassRefPtrWillBeRawPtr<StyleRuleNamespace> consumeNamespaceRule(CSSParserTok
enRange prelude); | 92 PassRefPtrWillBeRawPtr<StyleRuleNamespace> consumeNamespaceRule(CSSParserTok
enRange prelude); |
| 90 PassRefPtrWillBeRawPtr<StyleRuleMedia> consumeMediaRule(CSSParserTokenRange
prelude, CSSParserTokenRange block); | 93 PassRefPtrWillBeRawPtr<StyleRuleMedia> consumeMediaRule(CSSParserTokenRange
prelude, CSSParserTokenRange block); |
| 91 PassRefPtrWillBeRawPtr<StyleRuleSupports> consumeSupportsRule(CSSParserToken
Range prelude, CSSParserTokenRange block); | 94 PassRefPtrWillBeRawPtr<StyleRuleSupports> consumeSupportsRule(CSSParserToken
Range prelude, CSSParserTokenRange block); |
| 92 PassRefPtrWillBeRawPtr<StyleRuleViewport> consumeViewportRule(CSSParserToken
Range prelude, CSSParserTokenRange block); | 95 PassRefPtrWillBeRawPtr<StyleRuleViewport> consumeViewportRule(CSSParserToken
Range prelude, CSSParserTokenRange block); |
| 93 PassRefPtrWillBeRawPtr<StyleRuleFontFace> consumeFontFaceRule(CSSParserToken
Range prelude, CSSParserTokenRange block); | 96 PassRefPtrWillBeRawPtr<StyleRuleFontFace> consumeFontFaceRule(CSSParserToken
Range prelude, CSSParserTokenRange block); |
| 94 PassRefPtrWillBeRawPtr<StyleRuleKeyframes> consumeKeyframesRule(bool webkitP
refixed, CSSParserTokenRange prelude, CSSParserTokenRange block); | 97 PassRefPtrWillBeRawPtr<StyleRuleKeyframes> consumeKeyframesRule(bool webkitP
refixed, CSSParserTokenRange prelude, CSSParserTokenRange block); |
| 95 PassRefPtrWillBeRawPtr<StyleRulePage> consumePageRule(CSSParserTokenRange pr
elude, CSSParserTokenRange block); | 98 PassRefPtrWillBeRawPtr<StyleRulePage> consumePageRule(CSSParserTokenRange pr
elude, CSSParserTokenRange block); |
| 99 // Updates m_parsedProperties |
| 100 void consumeApplyRule(CSSParserTokenRange prelude); |
| 96 | 101 |
| 97 PassRefPtrWillBeRawPtr<StyleRuleKeyframe> consumeKeyframeStyleRule(CSSParser
TokenRange prelude, CSSParserTokenRange block); | 102 PassRefPtrWillBeRawPtr<StyleRuleKeyframe> consumeKeyframeStyleRule(CSSParser
TokenRange prelude, CSSParserTokenRange block); |
| 98 PassRefPtrWillBeRawPtr<StyleRule> consumeStyleRule(CSSParserTokenRange prelu
de, CSSParserTokenRange block); | 103 PassRefPtrWillBeRawPtr<StyleRule> consumeStyleRule(CSSParserTokenRange prelu
de, CSSParserTokenRange block); |
| 99 | 104 |
| 100 void consumeDeclarationList(CSSParserTokenRange, StyleRule::RuleType); | 105 void consumeDeclarationList(CSSParserTokenRange, StyleRule::RuleType); |
| 101 void consumeDeclaration(CSSParserTokenRange, StyleRule::RuleType); | 106 void consumeDeclaration(CSSParserTokenRange, StyleRule::RuleType); |
| 102 void consumeDeclarationValue(CSSParserTokenRange, CSSPropertyID, bool import
ant, StyleRule::RuleType); | 107 void consumeDeclarationValue(CSSParserTokenRange, CSSPropertyID, bool import
ant, StyleRule::RuleType); |
| 103 void consumeVariableValue(CSSParserTokenRange, const AtomicString& propertyN
ame, bool important); | 108 void consumeVariableValue(CSSParserTokenRange, const AtomicString& propertyN
ame, bool important); |
| 104 | 109 |
| 105 static PassOwnPtr<Vector<double>> consumeKeyframeKeyList(CSSParserTokenRange
); | 110 static PassOwnPtr<Vector<double>> consumeKeyframeKeyList(CSSParserTokenRange
); |
| 106 | 111 |
| 107 // FIXME: Can we build StylePropertySets directly? | 112 // FIXME: Can we build StylePropertySets directly? |
| 108 // FIXME: Investigate using a smaller inline buffer | 113 // FIXME: Investigate using a smaller inline buffer |
| 109 WillBeHeapVector<CSSProperty, 256> m_parsedProperties; | 114 WillBeHeapVector<CSSProperty, 256> m_parsedProperties; |
| 110 CSSParserContext m_context; | 115 CSSParserContext m_context; |
| 111 | 116 |
| 112 RawPtrWillBeMember<StyleSheetContents> m_styleSheet; | 117 RawPtrWillBeMember<StyleSheetContents> m_styleSheet; |
| 113 | 118 |
| 114 // For the inspector | 119 // For the inspector |
| 115 CSSParserObserverWrapper* m_observerWrapper; | 120 CSSParserObserverWrapper* m_observerWrapper; |
| 116 }; | 121 }; |
| 117 | 122 |
| 118 } // namespace blink | 123 } // namespace blink |
| 119 | 124 |
| 120 #endif // CSSParserImpl_h | 125 #endif // CSSParserImpl_h |
| OLD | NEW |