| Index: Source/core/dom/shadow/SelectRuleFeatureSet.cpp
|
| diff --git a/Source/core/dom/shadow/SelectRuleFeatureSet.cpp b/Source/core/dom/shadow/SelectRuleFeatureSet.cpp
|
| index 23338960589a0e32cc2b31bf1bda67683d39220f..40a398e5502a2ce4fd096b8c6bf87f3b1b64045d 100644
|
| --- a/Source/core/dom/shadow/SelectRuleFeatureSet.cpp
|
| +++ b/Source/core/dom/shadow/SelectRuleFeatureSet.cpp
|
| @@ -32,11 +32,26 @@
|
| #include "core/dom/shadow/SelectRuleFeatureSet.h"
|
|
|
| #include "core/css/CSSSelector.h"
|
| +#include "core/css/CSSSelectorList.h"
|
|
|
| #include "wtf/BitVector.h"
|
|
|
| namespace blink {
|
|
|
| +void SelectRuleFeatureSet::collectFeaturesFromSelector(const CSSSelector& selector)
|
| +{
|
| + for (const CSSSelector* current = &selector; current; current = current->tagHistory()) {
|
| + if (invalidationSetForSelector(*current))
|
| + continue;
|
| +
|
| + if (!current->selectorList())
|
| + continue;
|
| +
|
| + for (const CSSSelector* selector = current->selectorList()->first(); selector; selector = CSSSelectorList::next(*selector))
|
| + collectFeaturesFromSelector(*selector);
|
| + }
|
| +}
|
| +
|
| bool SelectRuleFeatureSet::checkSelectorsForClassChange(const SpaceSplitString& changedClasses) const
|
| {
|
| unsigned changedSize = changedClasses.size();
|
|
|