| Index: Source/core/css/RuleFeature.h
|
| diff --git a/Source/core/css/RuleFeature.h b/Source/core/css/RuleFeature.h
|
| index 8c4a5aa9437a1a5e5c675e98bade57308f39224f..3510dda2b820a047f6e7cbb3284813e457faf51a 100644
|
| --- a/Source/core/css/RuleFeature.h
|
| +++ b/Source/core/css/RuleFeature.h
|
| @@ -22,6 +22,7 @@
|
| #ifndef RuleFeature_h
|
| #define RuleFeature_h
|
|
|
| +#include "core/css/CSSSelector.h"
|
| #include "core/css/invalidation/StyleInvalidator.h"
|
| #include "wtf/Forward.h"
|
| #include "wtf/HashSet.h"
|
| @@ -29,7 +30,6 @@
|
|
|
| namespace WebCore {
|
|
|
| -class CSSSelector;
|
| class CSSSelectorList;
|
| class DescendantInvalidationSet;
|
| class Document;
|
| @@ -88,10 +88,9 @@ public:
|
|
|
| void scheduleStyleInvalidationForClassChange(const SpaceSplitString& changedClasses, Element&);
|
| void scheduleStyleInvalidationForClassChange(const SpaceSplitString& oldClasses, const SpaceSplitString& newClasses, Element&);
|
| -
|
| void scheduleStyleInvalidationForAttributeChange(const QualifiedName& attributeName, Element&);
|
| -
|
| void scheduleStyleInvalidationForIdChange(const AtomicString& oldId, const AtomicString& newId, Element&);
|
| + void scheduleStyleInvalidationForPseudoChange(CSSSelector::PseudoType, Element&);
|
|
|
| bool hasIdsInSelectors() const
|
| {
|
| @@ -110,6 +109,7 @@ public:
|
|
|
| private:
|
| typedef HashMap<AtomicString, RefPtr<DescendantInvalidationSet> > InvalidationSetMap;
|
| + typedef HashMap<CSSSelector::PseudoType, RefPtr<DescendantInvalidationSet>, WTF::IntHash<unsigned>, WTF::UnsignedWithZeroKeyHashTraits<unsigned> > PseudoTypeInvalidationSetMap;
|
|
|
| struct FeatureMetadata {
|
| FeatureMetadata()
|
| @@ -139,6 +139,7 @@ private:
|
| DescendantInvalidationSet& ensureClassInvalidationSet(const AtomicString& className);
|
| DescendantInvalidationSet& ensureAttributeInvalidationSet(const AtomicString& attributeName);
|
| DescendantInvalidationSet& ensureIdInvalidationSet(const AtomicString& attributeName);
|
| + DescendantInvalidationSet& ensurePseudoInvalidationSet(CSSSelector::PseudoType);
|
| DescendantInvalidationSet* invalidationSetForSelector(const CSSSelector&);
|
|
|
| InvalidationSetMode updateInvalidationSets(const CSSSelector&);
|
| @@ -162,6 +163,7 @@ private:
|
| InvalidationSetMap m_classInvalidationSets;
|
| InvalidationSetMap m_attributeInvalidationSets;
|
| InvalidationSetMap m_idInvalidationSets;
|
| + PseudoTypeInvalidationSetMap m_pseudoInvalidationSets;
|
| bool m_targetedStyleRecalcEnabled;
|
| StyleInvalidator m_styleInvalidator;
|
| };
|
|
|