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

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

Issue 2399633003: reflow comments in core/css/resolver (Closed)
Patch Set: Created 4 years, 2 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 /* 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.
4 * All rights reserved.
4 * 5 *
5 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
9 * 10 *
10 * This library is distributed in the hope that it will be useful, 11 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Library General Public License for more details. 14 * Library General Public License for more details.
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 }; 67 };
67 68
68 enum RuleMatchingBehavior { MatchAllRules, MatchAllRulesExcludingSMIL }; 69 enum RuleMatchingBehavior { MatchAllRules, MatchAllRulesExcludingSMIL };
69 70
70 const unsigned styleSharingListSize = 15; 71 const unsigned styleSharingListSize = 15;
71 const unsigned styleSharingMaxDepth = 32; 72 const unsigned styleSharingMaxDepth = 32;
72 using StyleSharingList = HeapDeque<Member<Element>, styleSharingListSize>; 73 using StyleSharingList = HeapDeque<Member<Element>, styleSharingListSize>;
73 using ActiveInterpolationsMap = 74 using ActiveInterpolationsMap =
74 HashMap<PropertyHandle, Vector<RefPtr<Interpolation>, 1>>; 75 HashMap<PropertyHandle, Vector<RefPtr<Interpolation>, 1>>;
75 76
76 // This class selects a ComputedStyle for a given element based on a collection of stylesheets. 77 // This class selects a ComputedStyle for a given element based on a collection
78 // of stylesheets.
77 class CORE_EXPORT StyleResolver final 79 class CORE_EXPORT StyleResolver final
78 : public GarbageCollectedFinalized<StyleResolver> { 80 : public GarbageCollectedFinalized<StyleResolver> {
79 WTF_MAKE_NONCOPYABLE(StyleResolver); 81 WTF_MAKE_NONCOPYABLE(StyleResolver);
80 82
81 public: 83 public:
82 static StyleResolver* create(Document& document) { 84 static StyleResolver* create(Document& document) {
83 return new StyleResolver(document); 85 return new StyleResolver(document);
84 } 86 }
85 ~StyleResolver(); 87 ~StyleResolver();
86 void dispose(); 88 void dispose();
(...skipping 14 matching lines...) Expand all
101 PassRefPtr<ComputedStyle> pseudoStyleForElement( 103 PassRefPtr<ComputedStyle> pseudoStyleForElement(
102 Element*, 104 Element*,
103 const PseudoStyleRequest&, 105 const PseudoStyleRequest&,
104 const ComputedStyle* parentStyle); 106 const ComputedStyle* parentStyle);
105 107
106 PassRefPtr<ComputedStyle> styleForPage(int pageIndex); 108 PassRefPtr<ComputedStyle> styleForPage(int pageIndex);
107 PassRefPtr<ComputedStyle> styleForText(Text*); 109 PassRefPtr<ComputedStyle> styleForText(Text*);
108 110
109 static PassRefPtr<ComputedStyle> styleForDocument(Document&); 111 static PassRefPtr<ComputedStyle> styleForDocument(Document&);
110 112
111 // FIXME: It could be better to call appendAuthorStyleSheets() directly after we factor StyleResolver further. 113 // FIXME: It could be better to call appendAuthorStyleSheets() directly after
114 // we factor StyleResolver further.
112 // https://bugs.webkit.org/show_bug.cgi?id=108890 115 // https://bugs.webkit.org/show_bug.cgi?id=108890
113 void appendAuthorStyleSheets(const HeapVector<Member<CSSStyleSheet>>&); 116 void appendAuthorStyleSheets(const HeapVector<Member<CSSStyleSheet>>&);
114 void resetAuthorStyle(TreeScope&); 117 void resetAuthorStyle(TreeScope&);
115 void resetRuleFeatures(); 118 void resetRuleFeatures();
116 void finishAppendAuthorStyleSheets(); 119 void finishAppendAuthorStyleSheets();
117 120
118 void lazyAppendAuthorStyleSheets(unsigned firstNew, 121 void lazyAppendAuthorStyleSheets(unsigned firstNew,
119 const HeapVector<Member<CSSStyleSheet>>&); 122 const HeapVector<Member<CSSStyleSheet>>&);
120 void removePendingAuthorStyleSheets(const HeapVector<Member<CSSStyleSheet>>&); 123 void removePendingAuthorStyleSheets(const HeapVector<Member<CSSStyleSheet>>&);
121 void appendPendingAuthorStyleSheets(); 124 void appendPendingAuthorStyleSheets();
122 bool hasPendingAuthorStyleSheets() const { 125 bool hasPendingAuthorStyleSheets() const {
123 return m_pendingStyleSheets.size() > 0 || m_needCollectFeatures; 126 return m_pendingStyleSheets.size() > 0 || m_needCollectFeatures;
124 } 127 }
125 128
126 // TODO(esprehn): StyleResolver should probably not contain tree walking 129 // TODO(esprehn): StyleResolver should probably not contain tree walking
127 // state, instead we should pass a context object during recalcStyle. 130 // state, instead we should pass a context object during recalcStyle.
128 SelectorFilter& selectorFilter() { return m_selectorFilter; } 131 SelectorFilter& selectorFilter() { return m_selectorFilter; }
129 132
130 StyleRuleKeyframes* findKeyframesRule(const Element*, 133 StyleRuleKeyframes* findKeyframesRule(const Element*,
131 const AtomicString& animationName); 134 const AtomicString& animationName);
132 135
133 // These methods will give back the set of rules that matched for a given elem ent (or a pseudo-element). 136 // These methods will give back the set of rules that matched for a given
137 // element (or a pseudo-element).
134 enum CSSRuleFilter { 138 enum CSSRuleFilter {
135 UAAndUserCSSRules = 1 << 1, 139 UAAndUserCSSRules = 1 << 1,
136 AuthorCSSRules = 1 << 2, 140 AuthorCSSRules = 1 << 2,
137 EmptyCSSRules = 1 << 3, 141 EmptyCSSRules = 1 << 3,
138 CrossOriginCSSRules = 1 << 4, 142 CrossOriginCSSRules = 1 << 4,
139 AllButEmptyCSSRules = 143 AllButEmptyCSSRules =
140 UAAndUserCSSRules | AuthorCSSRules | CrossOriginCSSRules, 144 UAAndUserCSSRules | AuthorCSSRules | CrossOriginCSSRules,
141 AllCSSRules = AllButEmptyCSSRules | EmptyCSSRules, 145 AllCSSRules = AllButEmptyCSSRules | EmptyCSSRules,
142 }; 146 };
143 CSSRuleList* cssRulesForElement( 147 CSSRuleList* cssRulesForElement(
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 MediaQueryResultList m_viewportDependentMediaQueryResults; 279 MediaQueryResultList m_viewportDependentMediaQueryResults;
276 MediaQueryResultList m_deviceDependentMediaQueryResults; 280 MediaQueryResultList m_deviceDependentMediaQueryResults;
277 281
278 Member<Document> m_document; 282 Member<Document> m_document;
279 SelectorFilter m_selectorFilter; 283 SelectorFilter m_selectorFilter;
280 284
281 Member<ViewportStyleResolver> m_viewportStyleResolver; 285 Member<ViewportStyleResolver> m_viewportStyleResolver;
282 286
283 HeapListHashSet<Member<CSSStyleSheet>, 16> m_pendingStyleSheets; 287 HeapListHashSet<Member<CSSStyleSheet>, 16> m_pendingStyleSheets;
284 288
285 // FIXME: The entire logic of collecting features on StyleResolver, as well as transferring them 289 // FIXME: The entire logic of collecting features on StyleResolver, as well as
286 // between various parts of machinery smells wrong. This needs to be better so mehow. 290 // transferring them between various parts of machinery smells wrong. This
291 // needs to be better somehow.
287 RuleFeatureSet m_features; 292 RuleFeatureSet m_features;
288 Member<RuleSet> m_siblingRuleSet; 293 Member<RuleSet> m_siblingRuleSet;
289 Member<RuleSet> m_uncommonAttributeRuleSet; 294 Member<RuleSet> m_uncommonAttributeRuleSet;
290 Member<RuleSet> m_watchedSelectorsRules; 295 Member<RuleSet> m_watchedSelectorsRules;
291 296
292 DocumentOrderedList m_treeBoundaryCrossingScopes; 297 DocumentOrderedList m_treeBoundaryCrossingScopes;
293 298
294 bool m_needCollectFeatures; 299 bool m_needCollectFeatures;
295 bool m_printMediaType; 300 bool m_printMediaType;
296 bool m_hasFullscreenUAStyle = false; 301 bool m_hasFullscreenUAStyle = false;
297 302
298 unsigned m_styleSharingDepth; 303 unsigned m_styleSharingDepth;
299 HeapVector<Member<StyleSharingList>, styleSharingMaxDepth> 304 HeapVector<Member<StyleSharingList>, styleSharingMaxDepth>
300 m_styleSharingLists; 305 m_styleSharingLists;
301 }; 306 };
302 307
303 } // namespace blink 308 } // namespace blink
304 309
305 #endif // StyleResolver_h 310 #endif // StyleResolver_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698