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

Unified Diff: third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.h

Issue 1717703002: Use invalidation sets to invalidate slotted elements. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed expected text Created 4 years, 10 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/invalidation/StyleInvalidator.h
diff --git a/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.h b/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.h
index dabe9530733ad521967b0ecc1e1caf5ca7c87e5b..e6c1f87f58dfeed2cee68f1aadafe22f9d1cbfa2 100644
--- a/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.h
+++ b/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.h
@@ -13,6 +13,7 @@ namespace blink {
class Document;
class Element;
+class HTMLSlotElement;
class InvalidationSet;
@@ -35,10 +36,13 @@ private:
, m_wholeSubtreeInvalid(false)
, m_treeBoundaryCrossing(false)
, m_insertionPointCrossing(false)
+ , m_invalidatesSlotted(false)
{ }
void pushInvalidationSet(const DescendantInvalidationSet&);
bool matchesCurrentInvalidationSets(Element&) const;
+ bool matchesCurrentInvalidationSetsAsSlotted(Element&) const;
+
bool hasInvalidationSets() const { return !wholeSubtreeInvalid() && m_invalidationSets.size(); }
bool wholeSubtreeInvalid() const { return m_wholeSubtreeInvalid; }
@@ -46,6 +50,7 @@ private:
bool treeBoundaryCrossing() const { return m_treeBoundaryCrossing; }
bool insertionPointCrossing() const { return m_insertionPointCrossing; }
+ bool invalidatesSlotted() const { return m_invalidatesSlotted; }
using DescendantInvalidationSets = Vector<const DescendantInvalidationSet*, 16>;
DescendantInvalidationSets m_invalidationSets;
@@ -53,6 +58,7 @@ private:
bool m_wholeSubtreeInvalid;
bool m_treeBoundaryCrossing;
bool m_insertionPointCrossing;
+ bool m_invalidatesSlotted;
};
class SiblingData {
@@ -87,6 +93,7 @@ private:
bool invalidate(Element&, RecursionData&, SiblingData&);
bool invalidateShadowRootChildren(Element&, RecursionData&);
bool invalidateChildren(Element&, RecursionData&);
+ void invalidateSlotDistributedElements(HTMLSlotElement&, const RecursionData&) const;
bool checkInvalidationSetsAgainstElement(Element&, RecursionData&, SiblingData&);
void pushInvalidationSetsForElement(Element&, RecursionData&, SiblingData&);
@@ -98,6 +105,7 @@ private:
, m_prevWholeSubtreeInvalid(data->m_wholeSubtreeInvalid)
, m_treeBoundaryCrossing(data->m_treeBoundaryCrossing)
, m_insertionPointCrossing(data->m_insertionPointCrossing)
+ , m_invalidatesSlotted(data->m_invalidatesSlotted)
, m_data(data)
{ }
~RecursionCheckpoint()
@@ -107,6 +115,7 @@ private:
m_data->m_wholeSubtreeInvalid = m_prevWholeSubtreeInvalid;
m_data->m_treeBoundaryCrossing = m_treeBoundaryCrossing;
m_data->m_insertionPointCrossing = m_insertionPointCrossing;
+ m_data->m_invalidatesSlotted = m_invalidatesSlotted;
}
private:
@@ -115,6 +124,7 @@ private:
bool m_prevWholeSubtreeInvalid;
bool m_treeBoundaryCrossing;
bool m_insertionPointCrossing;
+ bool m_invalidatesSlotted;
RecursionData* m_data;
};

Powered by Google App Engine
This is Rietveld 408576698