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

Side by Side Diff: Source/core/css/resolver/StyleResolver.h

Issue 211073002: [Oilpan]: Move CSSFontSelectorClient to the oilpan heap using transition types. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Adding StyleEngine.cpp change (forgot to upload diff again with WTF change) Created 6 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 | Annotate | Revision Log
OLDNEW
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 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 CSSPropertyValue(CSSPropertyID property, CSSValue* value) 97 CSSPropertyValue(CSSPropertyID property, CSSValue* value)
98 : property(property), value(value) { } 98 : property(property), value(value) { }
99 // Stores value=propertySet.getPropertyCSSValue(id).get(). 99 // Stores value=propertySet.getPropertyCSSValue(id).get().
100 CSSPropertyValue(CSSPropertyID, const StylePropertySet&); 100 CSSPropertyValue(CSSPropertyID, const StylePropertySet&);
101 CSSPropertyID property; 101 CSSPropertyID property;
102 RawPtrWillBeMember<CSSValue> value; 102 RawPtrWillBeMember<CSSValue> value;
103 }; 103 };
104 104
105 // This class selects a RenderStyle for a given element based on a collection of stylesheets. 105 // This class selects a RenderStyle for a given element based on a collection of stylesheets.
106 class StyleResolver FINAL : public CSSFontSelectorClient { 106 class StyleResolver FINAL : public CSSFontSelectorClient {
107 WTF_MAKE_NONCOPYABLE(StyleResolver); WTF_MAKE_FAST_ALLOCATED; 107 WTF_MAKE_NONCOPYABLE(StyleResolver); WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED ;
108 public: 108 public:
109 explicit StyleResolver(Document&); 109 explicit StyleResolver(Document&);
110 virtual ~StyleResolver(); 110 virtual ~StyleResolver();
111 111
112 // FIXME: StyleResolver should not be keeping tree-walk state. 112 // FIXME: StyleResolver should not be keeping tree-walk state.
113 // These should move to some global tree-walk state, or should be contained in a 113 // These should move to some global tree-walk state, or should be contained in a
114 // TreeWalkContext or similar which is passed in to StyleResolver methods wh en available. 114 // TreeWalkContext or similar which is passed in to StyleResolver methods wh en available.
115 // Using these during tree walk will allow style selector to optimize child and descendant selector lookups. 115 // Using these during tree walk will allow style selector to optimize child and descendant selector lookups.
116 void pushParentElement(Element&); 116 void pushParentElement(Element&);
117 void popParentElement(Element&); 117 void popParentElement(Element&);
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 enum StatsReportType { ReportDefaultStats, ReportSlowStats }; 223 enum StatsReportType { ReportDefaultStats, ReportSlowStats };
224 void enableStats(StatsReportType = ReportDefaultStats); 224 void enableStats(StatsReportType = ReportDefaultStats);
225 void disableStats(); 225 void disableStats();
226 void printStats(); 226 void printStats();
227 227
228 unsigned accessCount() const { return m_accessCount; } 228 unsigned accessCount() const { return m_accessCount; }
229 void didAccess() { ++m_accessCount; } 229 void didAccess() { ++m_accessCount; }
230 230
231 PassRefPtr<PseudoElement> createPseudoElementIfNeeded(Element& parent, Pseud oId); 231 PassRefPtr<PseudoElement> createPseudoElementIfNeeded(Element& parent, Pseud oId);
232 232
233 virtual void trace(Visitor*) OVERRIDE;
234
233 private: 235 private:
234 // CSSFontSelectorClient implementation. 236 // CSSFontSelectorClient implementation.
235 virtual void fontsNeedUpdate(CSSFontSelector*) OVERRIDE; 237 virtual void fontsNeedUpdate(CSSFontSelector*) OVERRIDE;
236 238
237 private: 239 private:
238 void initWatchedSelectorRules(const WillBeHeapVector<RefPtrWillBeMember<Styl eRule> >& watchedSelectors); 240 void initWatchedSelectorRules(const WillBeHeapVector<RefPtrWillBeMember<Styl eRule> >& watchedSelectors);
239 241
240 void addTreeBoundaryCrossingRules(const WillBeHeapVector<MinimalRuleData>&, ContainerNode* scope); 242 void addTreeBoundaryCrossingRules(const WillBeHeapVector<MinimalRuleData>&, ContainerNode* scope);
241 243
242 // FIXME: This should probably go away, folded into FontBuilder. 244 // FIXME: This should probably go away, folded into FontBuilder.
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 Settings* documentSettings() { return m_document.settings(); } 284 Settings* documentSettings() { return m_document.settings(); }
283 285
284 bool isLeftPage(int pageIndex) const; 286 bool isLeftPage(int pageIndex) const;
285 bool isRightPage(int pageIndex) const { return !isLeftPage(pageIndex); } 287 bool isRightPage(int pageIndex) const { return !isLeftPage(pageIndex); }
286 bool isFirstPage(int pageIndex) const; 288 bool isFirstPage(int pageIndex) const;
287 String pageName(int pageIndex) const; 289 String pageName(int pageIndex) const;
288 290
289 bool pseudoStyleForElementInternal(Element&, const PseudoStyleRequest&, Rend erStyle* parentStyle, StyleResolverState&); 291 bool pseudoStyleForElementInternal(Element&, const PseudoStyleRequest&, Rend erStyle* parentStyle, StyleResolverState&);
290 292
291 // FIXME: This likely belongs on RuleSet. 293 // FIXME: This likely belongs on RuleSet.
292 typedef WillBePersistentHeapHashMap<StringImpl*, RefPtrWillBeMember<StyleRul eKeyframes> > KeyframesRuleMap; 294 typedef WillBeHeapHashMap<StringImpl*, RefPtrWillBeMember<StyleRuleKeyframes > > KeyframesRuleMap;
293 KeyframesRuleMap m_keyframesRuleMap; 295 KeyframesRuleMap m_keyframesRuleMap;
294 296
295 static RenderStyle* s_styleNotYetAvailable; 297 static RenderStyle* s_styleNotYetAvailable;
296 298
297 void cacheBorderAndBackground(); 299 void cacheBorderAndBackground();
298 300
299 MatchedPropertiesCache m_matchedPropertiesCache; 301 MatchedPropertiesCache m_matchedPropertiesCache;
300 302
301 OwnPtr<MediaQueryEvaluator> m_medium; 303 OwnPtr<MediaQueryEvaluator> m_medium;
302 WillBePersistentMediaQueryResultList m_viewportDependentMediaQueryResults; 304 MediaQueryResultList m_viewportDependentMediaQueryResults;
303 305
304 RefPtr<RenderStyle> m_rootDefaultStyle; 306 RefPtr<RenderStyle> m_rootDefaultStyle;
305 307
306 Document& m_document; 308 Document& m_document;
307 SelectorFilter m_selectorFilter; 309 SelectorFilter m_selectorFilter;
308 310
309 RefPtrWillBePersistent<ViewportStyleResolver> m_viewportStyleResolver; 311 OwnPtrWillBeMember<ViewportStyleResolver> m_viewportStyleResolver;
310 312
311 // FIXME: Oilpan: This should be a WillBePersistentHeapListHashSet. 313 // FIXME: Oilpan: This should be a WillBeHeapListHashSet.
312 // This is safe for now, but should be updated when we support 314 // This is safe for now, but should be updated when we support
313 // heap allocated ListHashSets. 315 // heap allocated ListHashSets.
314 ListHashSet<CSSStyleSheet*, 16> m_pendingStyleSheets; 316 ListHashSet<CSSStyleSheet*, 16> m_pendingStyleSheets;
315 317
316 ScopedStyleTree m_styleTree; 318 ScopedStyleTree m_styleTree;
317 319
318 // FIXME: The entire logic of collecting features on StyleResolver, as well as transferring them 320 // FIXME: The entire logic of collecting features on StyleResolver, as well as transferring them
319 // between various parts of machinery smells wrong. This needs to be better somehow. 321 // between various parts of machinery smells wrong. This needs to be better somehow.
320 RuleFeatureSet m_features; 322 RuleFeatureSet m_features;
321 OwnPtrWillBePersistent<RuleSet> m_siblingRuleSet; 323 OwnPtrWillBeMember<RuleSet> m_siblingRuleSet;
322 OwnPtrWillBePersistent<RuleSet> m_uncommonAttributeRuleSet; 324 OwnPtrWillBeMember<RuleSet> m_uncommonAttributeRuleSet;
323 325
324 // FIXME: watched selectors should be implemented using injected author styl esheets: http://crbug.com/316960 326 // FIXME: watched selectors should be implemented using injected author styl esheets: http://crbug.com/316960
325 OwnPtrWillBePersistent<RuleSet> m_watchedSelectorsRules; 327 OwnPtrWillBeMember<RuleSet> m_watchedSelectorsRules;
326 TreeBoundaryCrossingRules m_treeBoundaryCrossingRules; 328 TreeBoundaryCrossingRules m_treeBoundaryCrossingRules;
327 329
328 bool m_needCollectFeatures; 330 bool m_needCollectFeatures;
329 331
330 StyleResourceLoader m_styleResourceLoader; 332 StyleResourceLoader m_styleResourceLoader;
331 333
332 StyleSharingList m_styleSharingList; 334 StyleSharingList m_styleSharingList;
333 335
334 OwnPtr<StyleResolverStats> m_styleResolverStats; 336 OwnPtr<StyleResolverStats> m_styleResolverStats;
335 OwnPtr<StyleResolverStats> m_styleResolverStatsTotals; 337 OwnPtr<StyleResolverStats> m_styleResolverStatsTotals;
336 unsigned m_styleResolverStatsSequence; 338 unsigned m_styleResolverStatsSequence;
337 339
338 // Use only for Internals::updateStyleAndReturnAffectedElementCount. 340 // Use only for Internals::updateStyleAndReturnAffectedElementCount.
339 unsigned m_accessCount; 341 unsigned m_accessCount;
340 }; 342 };
341 343
342 } // namespace WebCore 344 } // namespace WebCore
343 345
344 #endif // StyleResolver_h 346 #endif // StyleResolver_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698