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

Unified Diff: third_party/WebKit/Source/core/css/RuleFeature.h

Issue 2089063005: Schedule sibling invalidation sets for sibling insert/remove. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed minDirectAdjacent optimization. Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/css/RuleFeature.h
diff --git a/third_party/WebKit/Source/core/css/RuleFeature.h b/third_party/WebKit/Source/core/css/RuleFeature.h
index 4ddb1b69e050c43acf6491e79e45040f91edebd2..63885775f46f94cdb5bf04916f559fa0b98ab9a8 100644
--- a/third_party/WebKit/Source/core/css/RuleFeature.h
+++ b/third_party/WebKit/Source/core/css/RuleFeature.h
@@ -98,6 +98,11 @@ public:
void collectInvalidationSetsForAttribute(InvalidationLists&, Element&, const QualifiedName& attributeName) const;
void collectInvalidationSetsForPseudoClass(InvalidationLists&, Element&, CSSSelector::PseudoType) const;
+ void collectSiblingInvalidationSetForClass(InvalidationLists&, Element&, const AtomicString& className) const;
+ void collectSiblingInvalidationSetForId(InvalidationLists&, Element&, const AtomicString& id) const;
+ void collectSiblingInvalidationSetForAttribute(InvalidationLists&, Element&, const QualifiedName& attributeName) const;
+ void collectUniversalSiblingInvalidationSet(InvalidationLists&) const;
+
bool hasIdsInSelectors() const
{
return m_idInvalidationSets.size() > 0;
@@ -135,6 +140,7 @@ private:
InvalidationSet& ensureAttributeInvalidationSet(const AtomicString& attributeName, InvalidationType);
InvalidationSet& ensureIdInvalidationSet(const AtomicString& id, InvalidationType);
InvalidationSet& ensurePseudoInvalidationSet(CSSSelector::PseudoType, InvalidationType);
+ SiblingInvalidationSet& ensureUniversalSiblingInvalidationSet();
void updateInvalidationSets(const RuleData&);
void updateInvalidationSetsForContentAttribute(const RuleData&);
@@ -166,6 +172,7 @@ private:
void addFeaturesToInvalidationSet(InvalidationSet&, const InvalidationSetFeatures&);
void addFeaturesToInvalidationSets(const CSSSelector*, InvalidationSetFeatures* siblingFeatures, InvalidationSetFeatures& descendantFeatures);
+ void addFeaturesToUniversalSiblingInvalidationSet(const InvalidationSetFeatures& siblingFeatures, const InvalidationSetFeatures& descendantFeatures);
void addClassToInvalidationSet(const AtomicString& className, Element&);
@@ -174,6 +181,7 @@ private:
InvalidationSetMap m_attributeInvalidationSets;
InvalidationSetMap m_idInvalidationSets;
PseudoTypeInvalidationSetMap m_pseudoInvalidationSets;
+ RefPtr<SiblingInvalidationSet> m_universalSiblingInvalidationSet;
friend class RuleFeatureSetTest;
};

Powered by Google App Engine
This is Rietveld 408576698