OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. | 3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 | 131 |
132 const WillBeHeapTerminatedArray<RuleData>* idRules(const AtomicString& key)
const { ASSERT(!m_pendingRules); return m_idRules.get(key); } | 132 const WillBeHeapTerminatedArray<RuleData>* idRules(const AtomicString& key)
const { ASSERT(!m_pendingRules); return m_idRules.get(key); } |
133 const WillBeHeapTerminatedArray<RuleData>* classRules(const AtomicString& ke
y) const { ASSERT(!m_pendingRules); return m_classRules.get(key); } | 133 const WillBeHeapTerminatedArray<RuleData>* classRules(const AtomicString& ke
y) const { ASSERT(!m_pendingRules); return m_classRules.get(key); } |
134 const WillBeHeapTerminatedArray<RuleData>* tagRules(const AtomicString& key)
const { ASSERT(!m_pendingRules); return m_tagRules.get(key); } | 134 const WillBeHeapTerminatedArray<RuleData>* tagRules(const AtomicString& key)
const { ASSERT(!m_pendingRules); return m_tagRules.get(key); } |
135 const WillBeHeapTerminatedArray<RuleData>* shadowPseudoElementRules(const At
omicString& key) const { ASSERT(!m_pendingRules); return m_shadowPseudoElementRu
les.get(key); } | 135 const WillBeHeapTerminatedArray<RuleData>* shadowPseudoElementRules(const At
omicString& key) const { ASSERT(!m_pendingRules); return m_shadowPseudoElementRu
les.get(key); } |
136 const WillBeHeapVector<RuleData>* linkPseudoClassRules() const { ASSERT(!m_p
endingRules); return &m_linkPseudoClassRules; } | 136 const WillBeHeapVector<RuleData>* linkPseudoClassRules() const { ASSERT(!m_p
endingRules); return &m_linkPseudoClassRules; } |
137 const WillBeHeapVector<RuleData>* cuePseudoRules() const { ASSERT(!m_pending
Rules); return &m_cuePseudoRules; } | 137 const WillBeHeapVector<RuleData>* cuePseudoRules() const { ASSERT(!m_pending
Rules); return &m_cuePseudoRules; } |
138 const WillBeHeapVector<RuleData>* focusPseudoClassRules() const { ASSERT(!m_
pendingRules); return &m_focusPseudoClassRules; } | 138 const WillBeHeapVector<RuleData>* focusPseudoClassRules() const { ASSERT(!m_
pendingRules); return &m_focusPseudoClassRules; } |
139 const WillBeHeapVector<RuleData>* universalRules() const { ASSERT(!m_pending
Rules); return &m_universalRules; } | 139 const WillBeHeapVector<RuleData>* universalRules() const { ASSERT(!m_pending
Rules); return &m_universalRules; } |
140 const WillBeHeapVector<RuleData>* shadowHostRules() const { ASSERT(!m_pendin
gRules); return &m_shadowHostRules; } | 140 const WillBeHeapVector<RuleData>* shadowHostRules() const { ASSERT(!m_pendin
gRules); return &m_shadowHostRules; } |
141 const WillBeHeapVector<RawPtrWillBeMember<StyleRulePage> >& pageRules() cons
t { ASSERT(!m_pendingRules); return m_pageRules; } | 141 const WillBeHeapVector<RawPtrWillBeMember<StyleRulePage>>& pageRules() const
{ ASSERT(!m_pendingRules); return m_pageRules; } |
142 const WillBeHeapVector<RawPtrWillBeMember<StyleRuleViewport> >& viewportRule
s() const { ASSERT(!m_pendingRules); return m_viewportRules; } | 142 const WillBeHeapVector<RawPtrWillBeMember<StyleRuleViewport>>& viewportRules
() const { ASSERT(!m_pendingRules); return m_viewportRules; } |
143 const WillBeHeapVector<RawPtrWillBeMember<StyleRuleFontFace> >& fontFaceRule
s() const { return m_fontFaceRules; } | 143 const WillBeHeapVector<RawPtrWillBeMember<StyleRuleFontFace>>& fontFaceRules
() const { return m_fontFaceRules; } |
144 const WillBeHeapVector<RawPtrWillBeMember<StyleRuleKeyframes> >& keyframesRu
les() const { return m_keyframesRules; } | 144 const WillBeHeapVector<RawPtrWillBeMember<StyleRuleKeyframes>>& keyframesRul
es() const { return m_keyframesRules; } |
145 const WillBeHeapVector<MinimalRuleData>& treeBoundaryCrossingRules() const {
return m_treeBoundaryCrossingRules; } | 145 const WillBeHeapVector<MinimalRuleData>& treeBoundaryCrossingRules() const {
return m_treeBoundaryCrossingRules; } |
146 const WillBeHeapVector<MinimalRuleData>& shadowDistributedRules() const { re
turn m_shadowDistributedRules; } | 146 const WillBeHeapVector<MinimalRuleData>& shadowDistributedRules() const { re
turn m_shadowDistributedRules; } |
147 const MediaQueryResultList& viewportDependentMediaQueryResults() const { ret
urn m_viewportDependentMediaQueryResults; } | 147 const MediaQueryResultList& viewportDependentMediaQueryResults() const { ret
urn m_viewportDependentMediaQueryResults; } |
148 | 148 |
149 unsigned ruleCount() const { return m_ruleCount; } | 149 unsigned ruleCount() const { return m_ruleCount; } |
150 | 150 |
151 void compactRulesIfNeeded() | 151 void compactRulesIfNeeded() |
152 { | 152 { |
153 if (!m_pendingRules) | 153 if (!m_pendingRules) |
154 return; | 154 return; |
155 compactRules(); | 155 compactRules(); |
156 } | 156 } |
157 | 157 |
158 #ifndef NDEBUG | 158 #ifndef NDEBUG |
159 void show(); | 159 void show(); |
160 #endif | 160 #endif |
161 | 161 |
162 DECLARE_TRACE(); | 162 DECLARE_TRACE(); |
163 | 163 |
164 private: | 164 private: |
165 typedef WillBeHeapHashMap<AtomicString, OwnPtrWillBeMember<WillBeHeapLinkedS
tack<RuleData> > > PendingRuleMap; | 165 typedef WillBeHeapHashMap<AtomicString, OwnPtrWillBeMember<WillBeHeapLinkedS
tack<RuleData>>> PendingRuleMap; |
166 typedef WillBeHeapHashMap<AtomicString, OwnPtrWillBeMember<WillBeHeapTermina
tedArray<RuleData> > > CompactRuleMap; | 166 typedef WillBeHeapHashMap<AtomicString, OwnPtrWillBeMember<WillBeHeapTermina
tedArray<RuleData>>> CompactRuleMap; |
167 | 167 |
168 RuleSet() | 168 RuleSet() |
169 : m_ruleCount(0) | 169 : m_ruleCount(0) |
170 { | 170 { |
171 } | 171 } |
172 | 172 |
173 void addToRuleSet(const AtomicString& key, PendingRuleMap&, const RuleData&)
; | 173 void addToRuleSet(const AtomicString& key, PendingRuleMap&, const RuleData&)
; |
174 void addPageRule(StyleRulePage*); | 174 void addPageRule(StyleRulePage*); |
175 void addViewportRule(StyleRuleViewport*); | 175 void addViewportRule(StyleRuleViewport*); |
176 void addFontFaceRule(StyleRuleFontFace*); | 176 void addFontFaceRule(StyleRuleFontFace*); |
177 void addKeyframesRule(StyleRuleKeyframes*); | 177 void addKeyframesRule(StyleRuleKeyframes*); |
178 | 178 |
179 void addChildRules(const WillBeHeapVector<RefPtrWillBeMember<StyleRuleBase>
>&, const MediaQueryEvaluator& medium, AddRuleFlags); | 179 void addChildRules(const WillBeHeapVector<RefPtrWillBeMember<StyleRuleBase>>
&, const MediaQueryEvaluator& medium, AddRuleFlags); |
180 bool findBestRuleSetAndAdd(const CSSSelector&, RuleData&); | 180 bool findBestRuleSetAndAdd(const CSSSelector&, RuleData&); |
181 | 181 |
182 void compactRules(); | 182 void compactRules(); |
183 static void compactPendingRules(PendingRuleMap&, CompactRuleMap&); | 183 static void compactPendingRules(PendingRuleMap&, CompactRuleMap&); |
184 | 184 |
185 class PendingRuleMaps : public NoBaseWillBeGarbageCollected<PendingRuleMaps>
{ | 185 class PendingRuleMaps : public NoBaseWillBeGarbageCollected<PendingRuleMaps>
{ |
186 public: | 186 public: |
187 static PassOwnPtrWillBeRawPtr<PendingRuleMaps> create() { return adoptPt
rWillBeNoop(new PendingRuleMaps); } | 187 static PassOwnPtrWillBeRawPtr<PendingRuleMaps> create() { return adoptPt
rWillBeNoop(new PendingRuleMaps); } |
188 | 188 |
189 PendingRuleMap idRules; | 189 PendingRuleMap idRules; |
(...skipping 17 matching lines...) Expand all Loading... |
207 CompactRuleMap m_idRules; | 207 CompactRuleMap m_idRules; |
208 CompactRuleMap m_classRules; | 208 CompactRuleMap m_classRules; |
209 CompactRuleMap m_tagRules; | 209 CompactRuleMap m_tagRules; |
210 CompactRuleMap m_shadowPseudoElementRules; | 210 CompactRuleMap m_shadowPseudoElementRules; |
211 WillBeHeapVector<RuleData> m_linkPseudoClassRules; | 211 WillBeHeapVector<RuleData> m_linkPseudoClassRules; |
212 WillBeHeapVector<RuleData> m_cuePseudoRules; | 212 WillBeHeapVector<RuleData> m_cuePseudoRules; |
213 WillBeHeapVector<RuleData> m_focusPseudoClassRules; | 213 WillBeHeapVector<RuleData> m_focusPseudoClassRules; |
214 WillBeHeapVector<RuleData> m_universalRules; | 214 WillBeHeapVector<RuleData> m_universalRules; |
215 WillBeHeapVector<RuleData> m_shadowHostRules; | 215 WillBeHeapVector<RuleData> m_shadowHostRules; |
216 RuleFeatureSet m_features; | 216 RuleFeatureSet m_features; |
217 WillBeHeapVector<RawPtrWillBeMember<StyleRulePage> > m_pageRules; | 217 WillBeHeapVector<RawPtrWillBeMember<StyleRulePage>> m_pageRules; |
218 WillBeHeapVector<RawPtrWillBeMember<StyleRuleViewport> > m_viewportRules; | 218 WillBeHeapVector<RawPtrWillBeMember<StyleRuleViewport>> m_viewportRules; |
219 WillBeHeapVector<RawPtrWillBeMember<StyleRuleFontFace> > m_fontFaceRules; | 219 WillBeHeapVector<RawPtrWillBeMember<StyleRuleFontFace>> m_fontFaceRules; |
220 WillBeHeapVector<RawPtrWillBeMember<StyleRuleKeyframes> > m_keyframesRules; | 220 WillBeHeapVector<RawPtrWillBeMember<StyleRuleKeyframes>> m_keyframesRules; |
221 WillBeHeapVector<MinimalRuleData> m_treeBoundaryCrossingRules; | 221 WillBeHeapVector<MinimalRuleData> m_treeBoundaryCrossingRules; |
222 WillBeHeapVector<MinimalRuleData> m_shadowDistributedRules; | 222 WillBeHeapVector<MinimalRuleData> m_shadowDistributedRules; |
223 | 223 |
224 MediaQueryResultList m_viewportDependentMediaQueryResults; | 224 MediaQueryResultList m_viewportDependentMediaQueryResults; |
225 | 225 |
226 unsigned m_ruleCount; | 226 unsigned m_ruleCount; |
227 OwnPtrWillBeMember<PendingRuleMaps> m_pendingRules; | 227 OwnPtrWillBeMember<PendingRuleMaps> m_pendingRules; |
228 | 228 |
229 #ifndef NDEBUG | 229 #ifndef NDEBUG |
230 WillBeHeapVector<RuleData> m_allRules; | 230 WillBeHeapVector<RuleData> m_allRules; |
231 #endif | 231 #endif |
232 }; | 232 }; |
233 | 233 |
234 } // namespace blink | 234 } // namespace blink |
235 | 235 |
236 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::RuleData); | 236 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::RuleData); |
237 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::MinimalRuleData); | 237 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::MinimalRuleData); |
238 | 238 |
239 #endif // RuleSet_h | 239 #endif // RuleSet_h |
OLD | NEW |