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

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

Issue 2837023005: Move MediaQuery classes off BlinkGC heap (Closed)
Patch Set: fix Created 3 years, 8 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 media_feature_; 29 String media_feature_;
30 Vector<CSSParserToken, 4> value_list_; 30 Vector<CSSParserToken, 4> value_list_;
31 bool media_type_set_; 31 bool media_type_set_;
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 (restrictor_ != MediaQuery::kNone || media_type_set_ || 42 return (restrictor_ != MediaQuery::kNone || media_type_set_ ||
43 expressions_.size() > 0); 43 expressions_.size() > 0);
44 } 44 }
45 inline MediaQuery::RestrictorType Restrictor() { return restrictor_; } 45 inline MediaQuery::RestrictorType Restrictor() { return restrictor_; }
46 46
47 inline void SetRestrictor(MediaQuery::RestrictorType restrictor) { 47 inline void SetRestrictor(MediaQuery::RestrictorType restrictor) {
48 restrictor_ = restrictor; 48 restrictor_ = restrictor;
49 } 49 }
50 50
51 inline void SetMediaFeature(const String& str) { media_feature_ = str; } 51 inline void SetMediaFeature(const String& str) { media_feature_ = 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 kMediaQuerySetParser, 65 kMediaQuerySetParser,
66 kMediaConditionParser, 66 kMediaConditionParser,
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 state_; 95 State state_;
96 ParserType parser_type_; 96 ParserType parser_type_;
97 MediaQueryData media_query_data_; 97 MediaQueryData media_query_data_;
98 Member<MediaQuerySet> query_set_; 98 RefPtr<MediaQuerySet> query_set_;
99 MediaQueryBlockWatcher block_watcher_; 99 MediaQueryBlockWatcher block_watcher_;
100 100
101 const static State kReadRestrictor; 101 const static State kReadRestrictor;
102 const static State kReadMediaNot; 102 const static State kReadMediaNot;
103 const static State kReadMediaType; 103 const static State kReadMediaType;
104 const static State kReadAnd; 104 const static State kReadAnd;
105 const static State kReadFeatureStart; 105 const static State kReadFeatureStart;
106 const static State kReadFeature; 106 const static State kReadFeature;
107 const static State kReadFeatureColon; 107 const static State kReadFeatureColon;
108 const static State kReadFeatureValue; 108 const static State kReadFeatureValue;
109 const static State kReadFeatureEnd; 109 const static State kReadFeatureEnd;
110 const static State kSkipUntilComma; 110 const static State kSkipUntilComma;
111 const static State kSkipUntilBlockEnd; 111 const static State kSkipUntilBlockEnd;
112 const static State kDone; 112 const static State kDone;
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