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

Side by Side Diff: third_party/WebKit/Source/core/css/parser/MediaQueryParser.h

Issue 2873433003: Move MediaQuery classes off BlinkGC heap (Closed)
Patch Set: Created 3 years, 7 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 MediaQueryParser_h 5 #ifndef MediaQueryParser_h
6 #define MediaQueryParser_h 6 #define MediaQueryParser_h
7 7
8 #include "core/CoreExport.h" 8 #include "core/CoreExport.h"
9 #include "core/css/MediaList.h" 9 #include "core/css/MediaList.h"
10 #include "core/css/MediaQuery.h" 10 #include "core/css/MediaQuery.h"
(...skipping 18 matching lines...) Expand all
29 String m_mediaFeature; 29 String m_mediaFeature;
30 Vector<CSSParserToken, 4> m_valueList; 30 Vector<CSSParserToken, 4> m_valueList;
31 bool m_mediaTypeSet; 31 bool m_mediaTypeSet;
32 32
33 public: 33 public:
34 MediaQueryData(); 34 MediaQueryData();
35 void clear(); 35 void clear();
36 bool addExpression(); 36 bool addExpression();
37 bool tryAddParserToken(CSSParserTokenType, const CSSParserToken&); 37 bool tryAddParserToken(CSSParserTokenType, const CSSParserToken&);
38 void setMediaType(const String&); 38 void setMediaType(const String&);
39 MediaQuery* takeMediaQuery(); 39 std::unique_ptr<MediaQuery> takeMediaQuery();
40 40
41 inline bool currentMediaQueryChanged() const { 41 inline bool currentMediaQueryChanged() const {
42 return (m_restrictor != MediaQuery::None || m_mediaTypeSet || 42 return (m_restrictor != MediaQuery::None || m_mediaTypeSet ||
43 m_expressions.size() > 0); 43 m_expressions.size() > 0);
44 } 44 }
45 inline MediaQuery::RestrictorType restrictor() { return m_restrictor; } 45 inline MediaQuery::RestrictorType restrictor() { return m_restrictor; }
46 46
47 inline void setRestrictor(MediaQuery::RestrictorType restrictor) { 47 inline void setRestrictor(MediaQuery::RestrictorType restrictor) {
48 m_restrictor = restrictor; 48 m_restrictor = restrictor;
49 } 49 }
50 50
51 inline void setMediaFeature(const String& str) { m_mediaFeature = str; } 51 inline void setMediaFeature(const String& str) { m_mediaFeature = str; }
52 }; 52 };
53 53
54 class CORE_EXPORT MediaQueryParser { 54 class CORE_EXPORT MediaQueryParser {
55 STACK_ALLOCATED(); 55 STACK_ALLOCATED();
56 WTF_MAKE_NONCOPYABLE(MediaQueryParser); 56 WTF_MAKE_NONCOPYABLE(MediaQueryParser);
57 57
58 public: 58 public:
59 static MediaQuerySet* parseMediaQuerySet(const String&); 59 static RefPtr<MediaQuerySet> parseMediaQuerySet(const String&);
60 static MediaQuerySet* parseMediaQuerySet(CSSParserTokenRange); 60 static RefPtr<MediaQuerySet> parseMediaQuerySet(CSSParserTokenRange);
61 static MediaQuerySet* parseMediaCondition(CSSParserTokenRange); 61 static RefPtr<MediaQuerySet> parseMediaCondition(CSSParserTokenRange);
62 62
63 private: 63 private:
64 enum ParserType { 64 enum ParserType {
65 MediaQuerySetParser, 65 MediaQuerySetParser,
66 MediaConditionParser, 66 MediaConditionParser,
67 }; 67 };
68 68
69 MediaQueryParser(ParserType); 69 MediaQueryParser(ParserType);
70 virtual ~MediaQueryParser(); 70 virtual ~MediaQueryParser();
71 71
72 MediaQuerySet* parseImpl(CSSParserTokenRange); 72 RefPtr<MediaQuerySet> parseImpl(CSSParserTokenRange);
73 73
74 void processToken(const CSSParserToken&); 74 void processToken(const CSSParserToken&);
75 75
76 void readRestrictor(CSSParserTokenType, const CSSParserToken&); 76 void readRestrictor(CSSParserTokenType, const CSSParserToken&);
77 void readMediaNot(CSSParserTokenType, const CSSParserToken&); 77 void readMediaNot(CSSParserTokenType, const CSSParserToken&);
78 void readMediaType(CSSParserTokenType, const CSSParserToken&); 78 void readMediaType(CSSParserTokenType, const CSSParserToken&);
79 void readAnd(CSSParserTokenType, const CSSParserToken&); 79 void readAnd(CSSParserTokenType, const CSSParserToken&);
80 void readFeatureStart(CSSParserTokenType, const CSSParserToken&); 80 void readFeatureStart(CSSParserTokenType, const CSSParserToken&);
81 void readFeature(CSSParserTokenType, const CSSParserToken&); 81 void readFeature(CSSParserTokenType, const CSSParserToken&);
82 void readFeatureColon(CSSParserTokenType, const CSSParserToken&); 82 void readFeatureColon(CSSParserTokenType, const CSSParserToken&);
83 void readFeatureValue(CSSParserTokenType, const CSSParserToken&); 83 void readFeatureValue(CSSParserTokenType, const CSSParserToken&);
84 void readFeatureEnd(CSSParserTokenType, const CSSParserToken&); 84 void readFeatureEnd(CSSParserTokenType, const CSSParserToken&);
85 void skipUntilComma(CSSParserTokenType, const CSSParserToken&); 85 void skipUntilComma(CSSParserTokenType, const CSSParserToken&);
86 void skipUntilBlockEnd(CSSParserTokenType, const CSSParserToken&); 86 void skipUntilBlockEnd(CSSParserTokenType, const CSSParserToken&);
87 void done(CSSParserTokenType, const CSSParserToken&); 87 void done(CSSParserTokenType, const CSSParserToken&);
88 88
89 using State = void (MediaQueryParser::*)(CSSParserTokenType, 89 using State = void (MediaQueryParser::*)(CSSParserTokenType,
90 const CSSParserToken&); 90 const CSSParserToken&);
91 91
92 void setStateAndRestrict(State, MediaQuery::RestrictorType); 92 void setStateAndRestrict(State, MediaQuery::RestrictorType);
93 void handleBlocks(const CSSParserToken&); 93 void handleBlocks(const CSSParserToken&);
94 94
95 State m_state; 95 State m_state;
96 ParserType m_parserType; 96 ParserType m_parserType;
97 MediaQueryData m_mediaQueryData; 97 MediaQueryData m_mediaQueryData;
98 Member<MediaQuerySet> m_querySet; 98 RefPtr<MediaQuerySet> m_querySet;
99 MediaQueryBlockWatcher m_blockWatcher; 99 MediaQueryBlockWatcher m_blockWatcher;
100 100
101 const static State ReadRestrictor; 101 const static State ReadRestrictor;
102 const static State ReadMediaNot; 102 const static State ReadMediaNot;
103 const static State ReadMediaType; 103 const static State ReadMediaType;
104 const static State ReadAnd; 104 const static State ReadAnd;
105 const static State ReadFeatureStart; 105 const static State ReadFeatureStart;
106 const static State ReadFeature; 106 const static State ReadFeature;
107 const static State ReadFeatureColon; 107 const static State ReadFeatureColon;
108 const static State ReadFeatureValue; 108 const static State ReadFeatureValue;
109 const static State ReadFeatureEnd; 109 const static State ReadFeatureEnd;
110 const static State SkipUntilComma; 110 const static State SkipUntilComma;
111 const static State SkipUntilBlockEnd; 111 const static State SkipUntilBlockEnd;
112 const static State Done; 112 const static State Done;
113 }; 113 };
114 114
115 } // namespace blink 115 } // namespace blink
116 116
117 #endif // MediaQueryParser_h 117 #endif // MediaQueryParser_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698