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; |
}; |