Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(199)

Side by Side Diff: Source/core/css/parser/CSSParserImpl.h

Issue 1018213004: CSS Parser: Mark on stylesheets whether the first rule was valid (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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"
11 #include "core/css/parser/CSSParserMode.h" 11 #include "core/css/parser/CSSParserMode.h"
12 #include "core/css/parser/CSSParserTokenRange.h" 12 #include "core/css/parser/CSSParserTokenRange.h"
13 #include "platform/heap/Handle.h" 13 #include "platform/heap/Handle.h"
14 #include "wtf/Vector.h" 14 #include "wtf/Vector.h"
15 #include "wtf/text/WTFString.h" 15 #include "wtf/text/WTFString.h"
16 16
17 namespace blink { 17 namespace blink {
18 18
19 class StyleRule; 19 class StyleRule;
20 class StyleRuleBase; 20 class StyleRuleBase;
21 class StyleRuleCharset;
21 class StyleRuleFontFace; 22 class StyleRuleFontFace;
22 class StyleRuleImport; 23 class StyleRuleImport;
23 class StyleRuleKeyframe; 24 class StyleRuleKeyframe;
24 class StyleRuleKeyframes; 25 class StyleRuleKeyframes;
25 class StyleRuleMedia; 26 class StyleRuleMedia;
26 class StyleRuleNamespace; 27 class StyleRuleNamespace;
27 class StyleRulePage; 28 class StyleRulePage;
28 class StyleRuleSupports; 29 class StyleRuleSupports;
29 class StyleRuleViewport; 30 class StyleRuleViewport;
30 class StyleSheetContents; 31 class StyleSheetContents;
(...skipping 29 matching lines...) Expand all
60 61
61 bool supportsDeclaration(CSSParserTokenRange&); 62 bool supportsDeclaration(CSSParserTokenRange&);
62 63
63 private: 64 private:
64 enum RuleListType { 65 enum RuleListType {
65 TopLevelRuleList, 66 TopLevelRuleList,
66 RegularRuleList, 67 RegularRuleList,
67 KeyframesRuleList 68 KeyframesRuleList
68 }; 69 };
69 70
71 // Returns whether the first encountered rule was valid
70 template<typename T> 72 template<typename T>
71 void consumeRuleList(CSSParserTokenRange, RuleListType, T callback); 73 bool consumeRuleList(CSSParserTokenRange, RuleListType, T callback);
72 74
73 // These two functions update the range they're given 75 // These two functions update the range they're given
74 PassRefPtrWillBeRawPtr<StyleRuleBase> consumeAtRule(CSSParserTokenRange&, Al lowedRulesType); 76 PassRefPtrWillBeRawPtr<StyleRuleBase> consumeAtRule(CSSParserTokenRange&, Al lowedRulesType);
75 PassRefPtrWillBeRawPtr<StyleRuleBase> consumeQualifiedRule(CSSParserTokenRan ge&, AllowedRulesType); 77 PassRefPtrWillBeRawPtr<StyleRuleBase> consumeQualifiedRule(CSSParserTokenRan ge&, AllowedRulesType);
76 78
79 static PassRefPtrWillBeRawPtr<StyleRuleCharset> consumeCharsetRule(CSSParser TokenRange prelude);
77 PassRefPtrWillBeRawPtr<StyleRuleImport> consumeImportRule(CSSParserTokenRang e prelude); 80 PassRefPtrWillBeRawPtr<StyleRuleImport> consumeImportRule(CSSParserTokenRang e prelude);
78 PassRefPtrWillBeRawPtr<StyleRuleNamespace> consumeNamespaceRule(CSSParserTok enRange prelude); // This can set m_defaultNamespace 81 PassRefPtrWillBeRawPtr<StyleRuleNamespace> consumeNamespaceRule(CSSParserTok enRange prelude); // This can set m_defaultNamespace
79 PassRefPtrWillBeRawPtr<StyleRuleMedia> consumeMediaRule(CSSParserTokenRange prelude, CSSParserTokenRange block); 82 PassRefPtrWillBeRawPtr<StyleRuleMedia> consumeMediaRule(CSSParserTokenRange prelude, CSSParserTokenRange block);
80 PassRefPtrWillBeRawPtr<StyleRuleSupports> consumeSupportsRule(CSSParserToken Range prelude, CSSParserTokenRange block); 83 PassRefPtrWillBeRawPtr<StyleRuleSupports> consumeSupportsRule(CSSParserToken Range prelude, CSSParserTokenRange block);
81 PassRefPtrWillBeRawPtr<StyleRuleViewport> consumeViewportRule(CSSParserToken Range prelude, CSSParserTokenRange block); 84 PassRefPtrWillBeRawPtr<StyleRuleViewport> consumeViewportRule(CSSParserToken Range prelude, CSSParserTokenRange block);
82 PassRefPtrWillBeRawPtr<StyleRuleFontFace> consumeFontFaceRule(CSSParserToken Range prelude, CSSParserTokenRange block); 85 PassRefPtrWillBeRawPtr<StyleRuleFontFace> consumeFontFaceRule(CSSParserToken Range prelude, CSSParserTokenRange block);
83 PassRefPtrWillBeRawPtr<StyleRuleKeyframes> consumeKeyframesRule(bool webkitP refixed, CSSParserTokenRange prelude, CSSParserTokenRange block); 86 PassRefPtrWillBeRawPtr<StyleRuleKeyframes> consumeKeyframesRule(bool webkitP refixed, CSSParserTokenRange prelude, CSSParserTokenRange block);
84 PassRefPtrWillBeRawPtr<StyleRulePage> consumePageRule(CSSParserTokenRange pr elude, CSSParserTokenRange block); 87 PassRefPtrWillBeRawPtr<StyleRulePage> consumePageRule(CSSParserTokenRange pr elude, CSSParserTokenRange block);
85 88
86 PassRefPtrWillBeRawPtr<StyleRuleKeyframe> consumeKeyframeStyleRule(CSSParser TokenRange prelude, CSSParserTokenRange block); 89 PassRefPtrWillBeRawPtr<StyleRuleKeyframe> consumeKeyframeStyleRule(CSSParser TokenRange prelude, CSSParserTokenRange block);
(...skipping 10 matching lines...) Expand all
97 WillBeHeapVector<CSSProperty, 256> m_parsedProperties; 100 WillBeHeapVector<CSSProperty, 256> m_parsedProperties;
98 CSSParserContext m_context; 101 CSSParserContext m_context;
99 102
100 AtomicString m_defaultNamespace; 103 AtomicString m_defaultNamespace;
101 RawPtrWillBeMember<StyleSheetContents> m_styleSheet; 104 RawPtrWillBeMember<StyleSheetContents> m_styleSheet;
102 }; 105 };
103 106
104 } // namespace blink 107 } // namespace blink
105 108
106 #endif // CSSParserImpl_h 109 #endif // CSSParserImpl_h
OLDNEW
« no previous file with comments | « Source/core/css/invalidation/StyleSheetInvalidationAnalysis.cpp ('k') | Source/core/css/parser/CSSParserImpl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698