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 CSSParser_h | 5 #ifndef CSSParser_h |
6 #define CSSParser_h | 6 #define CSSParser_h |
7 | 7 |
8 #include "core/CSSPropertyNames.h" | 8 #include "core/CSSPropertyNames.h" |
9 #include "core/CoreExport.h" | 9 #include "core/CoreExport.h" |
10 #include "core/css/CSSValue.h" | 10 #include "core/css/CSSValue.h" |
11 #include "core/css/parser/CSSParserMode.h" | 11 #include "core/css/parser/CSSParserMode.h" |
12 #include "platform/graphics/Color.h" | 12 #include "platform/graphics/Color.h" |
13 | 13 |
14 namespace blink { | 14 namespace blink { |
15 | 15 |
16 class CSSParserObserver; | 16 class CSSParserObserver; |
| 17 class CSSParserTokenRange; |
17 class CSSSelectorList; | 18 class CSSSelectorList; |
18 class Element; | 19 class Element; |
19 class ImmutableStylePropertySet; | 20 class ImmutableStylePropertySet; |
20 class MutableStylePropertySet; | 21 class MutableStylePropertySet; |
21 class StyleColor; | 22 class StyleColor; |
22 class StyleRuleBase; | 23 class StyleRuleBase; |
23 class StyleRuleKeyframe; | 24 class StyleRuleKeyframe; |
24 class StyleSheetContents; | 25 class StyleSheetContents; |
25 | 26 |
26 // This class serves as the public API for the css/parser subsystem | 27 // This class serves as the public API for the css/parser subsystem |
27 class CORE_EXPORT CSSParser { | 28 class CORE_EXPORT CSSParser { |
28 STATIC_ONLY(CSSParser); | 29 STATIC_ONLY(CSSParser); |
29 public: | 30 public: |
30 // As well as regular rules, allows @import and @namespace but not @charset | 31 // As well as regular rules, allows @import and @namespace but not @charset |
31 static PassRefPtrWillBeRawPtr<StyleRuleBase> parseRule(const CSSParserContex
t&, StyleSheetContents*, const String&); | 32 static PassRefPtrWillBeRawPtr<StyleRuleBase> parseRule(const CSSParserContex
t&, StyleSheetContents*, const String&); |
32 static void parseSheet(const CSSParserContext&, StyleSheetContents*, const S
tring&); | 33 static void parseSheet(const CSSParserContext&, StyleSheetContents*, const S
tring&); |
33 static CSSSelectorList parseSelector(const CSSParserContext&, StyleSheetCont
ents*, const String&); | 34 static CSSSelectorList parseSelector(const CSSParserContext&, StyleSheetCont
ents*, const String&); |
34 static CSSSelectorList parsePageSelector(const CSSParserContext&, StyleSheet
Contents*, const String&); | 35 static CSSSelectorList parsePageSelector(const CSSParserContext&, StyleSheet
Contents*, const String&); |
35 static bool parseDeclarationList(const CSSParserContext&, MutableStyleProper
tySet*, const String&); | 36 static bool parseDeclarationList(const CSSParserContext&, MutableStyleProper
tySet*, const String&); |
36 // Returns whether anything was changed. | 37 // Returns whether anything was changed. |
37 static bool parseValue(MutableStylePropertySet*, CSSPropertyID unresolvedPro
perty, const String&, bool important, StyleSheetContents*); | 38 static bool parseValue(MutableStylePropertySet*, CSSPropertyID unresolvedPro
perty, const String&, bool important, StyleSheetContents*); |
38 | 39 |
39 static bool parseValueForCustomProperty(MutableStylePropertySet*, const Atom
icString& propertyName, const String& value, bool important, StyleSheetContents*
); | 40 static bool parseValueForCustomProperty(MutableStylePropertySet*, const Atom
icString& propertyName, const String& value, bool important, StyleSheetContents*
); |
| 41 static PassRefPtrWillBeRawPtr<ImmutableStylePropertySet> parseCustomProperty
Set(CSSParserTokenRange); |
40 | 42 |
41 // This is for non-shorthands only | 43 // This is for non-shorthands only |
42 static PassRefPtrWillBeRawPtr<CSSValue> parseSingleValue(CSSPropertyID, cons
t String&, const CSSParserContext& = strictCSSParserContext()); | 44 static PassRefPtrWillBeRawPtr<CSSValue> parseSingleValue(CSSPropertyID, cons
t String&, const CSSParserContext& = strictCSSParserContext()); |
43 | 45 |
44 static PassRefPtrWillBeRawPtr<CSSValue> parseFontFaceDescriptor(CSSPropertyI
D, const String&, const CSSParserContext&); | 46 static PassRefPtrWillBeRawPtr<CSSValue> parseFontFaceDescriptor(CSSPropertyI
D, const String&, const CSSParserContext&); |
45 | 47 |
46 static PassRefPtrWillBeRawPtr<ImmutableStylePropertySet> parseInlineStyleDec
laration(const String&, Element*); | 48 static PassRefPtrWillBeRawPtr<ImmutableStylePropertySet> parseInlineStyleDec
laration(const String&, Element*); |
47 | 49 |
48 static PassOwnPtr<Vector<double>> parseKeyframeKeyList(const String&); | 50 static PassOwnPtr<Vector<double>> parseKeyframeKeyList(const String&); |
49 static PassRefPtrWillBeRawPtr<StyleRuleKeyframe> parseKeyframeRule(const CSS
ParserContext&, const String&); | 51 static PassRefPtrWillBeRawPtr<StyleRuleKeyframe> parseKeyframeRule(const CSS
ParserContext&, const String&); |
50 | 52 |
51 static bool parseSupportsCondition(const String&); | 53 static bool parseSupportsCondition(const String&); |
52 | 54 |
53 // The color will only be changed when string contains a valid CSS color, so
callers | 55 // The color will only be changed when string contains a valid CSS color, so
callers |
54 // can set it to a default color and ignore the boolean result. | 56 // can set it to a default color and ignore the boolean result. |
55 static bool parseColor(Color&, const String&, bool strict = false); | 57 static bool parseColor(Color&, const String&, bool strict = false); |
56 static bool parseSystemColor(Color&, const String&); | 58 static bool parseSystemColor(Color&, const String&); |
57 | 59 |
58 static void parseSheetForInspector(const CSSParserContext&, StyleSheetConten
ts*, const String&, CSSParserObserver&); | 60 static void parseSheetForInspector(const CSSParserContext&, StyleSheetConten
ts*, const String&, CSSParserObserver&); |
59 static void parseDeclarationListForInspector(const CSSParserContext&, const
String&, CSSParserObserver&); | 61 static void parseDeclarationListForInspector(const CSSParserContext&, const
String&, CSSParserObserver&); |
60 | 62 |
61 private: | 63 private: |
62 static bool parseValue(MutableStylePropertySet*, CSSPropertyID unresolvedPro
perty, const String&, bool important, const CSSParserContext&); | 64 static bool parseValue(MutableStylePropertySet*, CSSPropertyID unresolvedPro
perty, const String&, bool important, const CSSParserContext&); |
63 }; | 65 }; |
64 | 66 |
65 } // namespace blink | 67 } // namespace blink |
66 | 68 |
67 #endif // CSSParser_h | 69 #endif // CSSParser_h |
OLD | NEW |