| Index: Source/core/css/invalidation/DescendantInvalidationSet.cpp
|
| diff --git a/Source/core/css/invalidation/DescendantInvalidationSet.cpp b/Source/core/css/invalidation/DescendantInvalidationSet.cpp
|
| index 232f3cfe9b14348d607baf9ee7162d9ea459874d..0dce99f2c571fb0e4cc10fcc504905c3b455e3e1 100644
|
| --- a/Source/core/css/invalidation/DescendantInvalidationSet.cpp
|
| +++ b/Source/core/css/invalidation/DescendantInvalidationSet.cpp
|
| @@ -40,6 +40,7 @@ DescendantInvalidationSet::DescendantInvalidationSet()
|
| : m_allDescendantsMightBeInvalid(false)
|
| , m_customPseudoInvalid(false)
|
| , m_treeBoundaryCrossing(false)
|
| + , m_insertionPointCrossing(false)
|
| {
|
| }
|
|
|
| @@ -89,6 +90,9 @@ void DescendantInvalidationSet::combine(const DescendantInvalidationSet& other)
|
| if (other.treeBoundaryCrossing())
|
| setTreeBoundaryCrossing();
|
|
|
| + if (other.insertionPointCrossing())
|
| + setInsertionPointCrossing();
|
| +
|
| if (other.m_classes) {
|
| WillBeHeapHashSet<AtomicString>::const_iterator end = other.m_classes->end();
|
| for (WillBeHeapHashSet<AtomicString>::const_iterator it = other.m_classes->begin(); it != end; ++it)
|
| @@ -177,6 +181,7 @@ void DescendantInvalidationSet::setWholeSubtreeInvalid()
|
|
|
| m_allDescendantsMightBeInvalid = true;
|
| m_treeBoundaryCrossing = false;
|
| + m_insertionPointCrossing = false;
|
| m_classes = nullptr;
|
| m_ids = nullptr;
|
| m_tagNames = nullptr;
|
| @@ -203,6 +208,8 @@ void DescendantInvalidationSet::show() const
|
| fprintf(stderr, "::custom ");
|
| if (m_treeBoundaryCrossing)
|
| fprintf(stderr, "::shadow/deep/ ");
|
| + if (m_insertionPointCrossing)
|
| + fprintf(stderr, "::content/:host-context ");
|
| if (m_ids) {
|
| for (WillBeHeapHashSet<AtomicString>::const_iterator it = m_ids->begin(); it != m_ids->end(); ++it)
|
| fprintf(stderr, "#%s ", (*it).ascii().data());
|
|
|