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

Side by Side Diff: third_party/WebKit/Source/core/css/ElementRuleCollector.cpp

Issue 2455943003: Backend for css rule tracking (Closed)
Patch Set: Backend for CSS Rule tracking. Created 4 years, 1 month 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 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com)
4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com)
5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
6 * All rights reserved. 6 * All rights reserved.
7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> 7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org>
8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> 8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org>
9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. 9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved.
10 * (http://www.torchmobile.com/) 10 * (http://www.torchmobile.com/)
(...skipping 23 matching lines...) Expand all
34 #include "core/css/CSSKeyframesRule.h" 34 #include "core/css/CSSKeyframesRule.h"
35 #include "core/css/CSSMediaRule.h" 35 #include "core/css/CSSMediaRule.h"
36 #include "core/css/CSSRuleList.h" 36 #include "core/css/CSSRuleList.h"
37 #include "core/css/CSSSelector.h" 37 #include "core/css/CSSSelector.h"
38 #include "core/css/CSSStyleRule.h" 38 #include "core/css/CSSStyleRule.h"
39 #include "core/css/CSSStyleSheet.h" 39 #include "core/css/CSSStyleSheet.h"
40 #include "core/css/CSSSupportsRule.h" 40 #include "core/css/CSSSupportsRule.h"
41 #include "core/css/StylePropertySet.h" 41 #include "core/css/StylePropertySet.h"
42 #include "core/css/resolver/StyleResolver.h" 42 #include "core/css/resolver/StyleResolver.h"
43 #include "core/css/resolver/StyleResolverStats.h" 43 #include "core/css/resolver/StyleResolverStats.h"
44 #include "core/css/resolver/StyleRuleUsageTracker.h"
44 #include "core/dom/StyleEngine.h" 45 #include "core/dom/StyleEngine.h"
45 #include "core/dom/shadow/ShadowRoot.h" 46 #include "core/dom/shadow/ShadowRoot.h"
46 #include "core/style/StyleInheritedData.h" 47 #include "core/style/StyleInheritedData.h"
47 #include <algorithm>
48 48
49 namespace blink { 49 namespace blink {
50 50
51 ElementRuleCollector::ElementRuleCollector(const ElementResolveContext& context, 51 ElementRuleCollector::ElementRuleCollector(const ElementResolveContext& context,
52 const SelectorFilter& filter, 52 const SelectorFilter& filter,
53 ComputedStyle* style) 53 ComputedStyle* style)
54 : m_context(context), 54 : m_context(context),
55 m_selectorFilter(filter), 55 m_selectorFilter(filter),
56 m_style(style), 56 m_style(style),
57 m_pseudoStyleRequest(PseudoIdNone), 57 m_pseudoStyleRequest(PseudoIdNone),
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 // To check whether a given RuleSet has any rule matching a given element, 364 // To check whether a given RuleSet has any rule matching a given element,
365 // should not see the element's treescope. Because RuleSet has no information 365 // should not see the element's treescope. Because RuleSet has no information
366 // about "scope". 366 // about "scope".
367 MatchRequest matchRequest(ruleSet); 367 MatchRequest matchRequest(ruleSet);
368 collectMatchingRules(matchRequest); 368 collectMatchingRules(matchRequest);
369 collectMatchingShadowHostRules(matchRequest); 369 collectMatchingShadowHostRules(matchRequest);
370 370
371 return !m_matchedRules.isEmpty(); 371 return !m_matchedRules.isEmpty();
372 } 372 }
373 373
374 void ElementRuleCollector::addMatchedRulesToTracker(
375 StyleRuleUsageTracker* tracker) const {
376 for (auto matchedRule : m_matchedRules)
377 tracker->track(matchedRule.ruleData()->rule());
378 }
379
374 } // namespace blink 380 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/ElementRuleCollector.h ('k') | third_party/WebKit/Source/core/css/resolver/StyleResolver.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698