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

Side by Side Diff: Source/core/css/CSSPropertySourceData.h

Issue 951213004: Make CSSRuleSourceData use the CSSRule Type enum (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Use StyleRule::Type 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
« no previous file with comments | « no previous file | Source/core/css/StyleRule.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2010 Google Inc. All rights reserved. 2 * Copyright (c) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 13 matching lines...) Expand all
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #ifndef CSSPropertySourceData_h 31 #ifndef CSSPropertySourceData_h
32 #define CSSPropertySourceData_h 32 #define CSSPropertySourceData_h
33 33
34 #include "core/css/StyleRule.h"
34 #include "platform/heap/Handle.h" 35 #include "platform/heap/Handle.h"
35 #include "wtf/Forward.h" 36 #include "wtf/Forward.h"
36 #include "wtf/RefCounted.h" 37 #include "wtf/RefCounted.h"
37 #include "wtf/Vector.h" 38 #include "wtf/Vector.h"
38 #include "wtf/text/WTFString.h" 39 #include "wtf/text/WTFString.h"
39 40
40 namespace blink { 41 namespace blink {
41 42
42 struct SourceRange { 43 struct SourceRange {
43 ALLOW_ONLY_INLINE_ALLOCATION(); 44 ALLOW_ONLY_INLINE_ALLOCATION();
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 DEFINE_INLINE_TRACE() { visitor->trace(queryData); } 111 DEFINE_INLINE_TRACE() { visitor->trace(queryData); }
111 112
112 WillBeHeapVector<RefPtrWillBeMember<CSSMediaQuerySourceData> > queryData; 113 WillBeHeapVector<RefPtrWillBeMember<CSSMediaQuerySourceData> > queryData;
113 }; 114 };
114 115
115 struct CSSRuleSourceData; 116 struct CSSRuleSourceData;
116 typedef WillBeHeapVector<RefPtrWillBeMember<CSSRuleSourceData> > RuleSourceDataL ist; 117 typedef WillBeHeapVector<RefPtrWillBeMember<CSSRuleSourceData> > RuleSourceDataL ist;
117 typedef WillBeHeapVector<SourceRange> SelectorRangeList; 118 typedef WillBeHeapVector<SourceRange> SelectorRangeList;
118 119
119 struct CSSRuleSourceData : public RefCountedWillBeGarbageCollected<CSSRuleSource Data> { 120 struct CSSRuleSourceData : public RefCountedWillBeGarbageCollected<CSSRuleSource Data> {
120 enum Type { 121 static PassRefPtrWillBeRawPtr<CSSRuleSourceData> create(StyleRule::Type type )
121 UNKNOWN_RULE,
122 STYLE_RULE,
123 CHARSET_RULE,
124 IMPORT_RULE,
125 MEDIA_RULE,
126 FONT_FACE_RULE,
127 PAGE_RULE,
128 KEYFRAMES_RULE,
129 VIEWPORT_RULE,
130 SUPPORTS_RULE,
131 };
132
133 static PassRefPtrWillBeRawPtr<CSSRuleSourceData> create(Type type)
134 { 122 {
135 return adoptRefWillBeNoop(new CSSRuleSourceData(type)); 123 return adoptRefWillBeNoop(new CSSRuleSourceData(type));
136 } 124 }
137 125
138 static PassRefPtrWillBeRawPtr<CSSRuleSourceData> createUnknown() 126 CSSRuleSourceData(StyleRule::Type type)
139 {
140 return adoptRefWillBeNoop(new CSSRuleSourceData(UNKNOWN_RULE));
141 }
142
143 CSSRuleSourceData(Type type)
144 : type(type) 127 : type(type)
145 { 128 {
146 if (type == STYLE_RULE || type == FONT_FACE_RULE || type == PAGE_RULE) 129 if (type == StyleRule::Style || type == StyleRule::FontFace || type == S tyleRule::Page)
147 styleSourceData = CSSStyleSourceData::create(); 130 styleSourceData = CSSStyleSourceData::create();
148 if (type == MEDIA_RULE || type == IMPORT_RULE) 131 if (type == StyleRule::Media || type == StyleRule::Import)
149 mediaSourceData = CSSMediaSourceData::create(); 132 mediaSourceData = CSSMediaSourceData::create();
150 } 133 }
151 134
152 DECLARE_TRACE(); 135 DECLARE_TRACE();
153 136
154 Type type; 137 StyleRule::Type type;
155 138
156 // Range of the selector list in the enclosing source. 139 // Range of the selector list in the enclosing source.
157 SourceRange ruleHeaderRange; 140 SourceRange ruleHeaderRange;
158 141
159 // Range of the rule body (e.g. style text for style rules) in the enclosing source. 142 // Range of the rule body (e.g. style text for style rules) in the enclosing source.
160 SourceRange ruleBodyRange; 143 SourceRange ruleBodyRange;
161 144
162 // Only for CSSStyleRules. 145 // Only for CSSStyleRules.
163 SelectorRangeList selectorRanges; 146 SelectorRangeList selectorRanges;
164 147
165 // Only for CSSStyleRules, CSSFontFaceRules, and CSSPageRules. 148 // Only for CSSStyleRules, CSSFontFaceRules, and CSSPageRules.
166 RefPtrWillBeMember<CSSStyleSourceData> styleSourceData; 149 RefPtrWillBeMember<CSSStyleSourceData> styleSourceData;
167 150
168 // Only for CSSMediaRules. 151 // Only for CSSMediaRules.
169 RuleSourceDataList childRules; 152 RuleSourceDataList childRules;
170 153
171 // Only for CSSMediaRules and CSSImportRules. 154 // Only for CSSMediaRules and CSSImportRules.
172 RefPtrWillBeMember<CSSMediaSourceData> mediaSourceData; 155 RefPtrWillBeMember<CSSMediaSourceData> mediaSourceData;
173 }; 156 };
174 157
175 } // namespace blink 158 } // namespace blink
176 159
177 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::SourceRange); 160 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::SourceRange);
178 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::CSSPropertySourceData); 161 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::CSSPropertySourceData);
179 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::CSSMediaQueryExpSourceData); 162 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::CSSMediaQueryExpSourceData);
180 163
181 #endif // CSSPropertySourceData_h 164 #endif // CSSPropertySourceData_h
OLDNEW
« no previous file with comments | « no previous file | Source/core/css/StyleRule.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698