Chromium Code Reviews| Index: third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp |
| diff --git a/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp b/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp |
| index 5a57a75ceb356a93ecb2875899136dc3935f0c48..1e2b4b9b91c1646f16a9c2bacea8c6bdb29888f5 100644 |
| --- a/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp |
| +++ b/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp |
| @@ -132,6 +132,25 @@ void StyleInvalidator::scheduleSiblingInvalidationsAsDescendants( |
| } |
| } |
| +void StyleInvalidator::rescheduleSiblingInvalidationsAsDescendants( |
| + Element& element) { |
| + PendingInvalidations* pendingInvalidations = |
| + m_pendingInvalidationMap.get(&element); |
| + if (!pendingInvalidations || pendingInvalidations->siblings().isEmpty()) |
| + return; |
| + |
| + InvalidationLists invalidationLists; |
| + for (const auto& invalidationSet : pendingInvalidations->siblings()) { |
| + invalidationLists.descendants.push_back(invalidationSet); |
| + if (DescendantInvalidationSet* descendants = |
| + toSiblingInvalidationSet(*invalidationSet).siblingDescendants()) { |
| + invalidationLists.descendants.push_back(descendants); |
| + } |
| + } |
| + DCHECK(element.parentNode()); |
|
esprehn
2016/12/22 17:19:59
I personally like to put these at the top of the f
rune
2016/12/23 00:15:20
Done.
|
| + scheduleInvalidationSetsForNode(invalidationLists, *element.parentNode()); |
| +} |
| + |
| void StyleInvalidator::clearInvalidation(ContainerNode& node) { |
| if (!node.needsStyleInvalidation()) |
| return; |