diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-02-13 15:05:36 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-02-14 10:33:47 +0000 |
commit | e684a3455bcc29a6e3e66a004e352dea4e1141e7 (patch) | |
tree | d55b4003bde34d7d05f558f02cfd82b2a66a7aac /chromium/third_party/blink/renderer/core/dom/slot_assignment.cc | |
parent | 2b94bfe47ccb6c08047959d1c26e392919550e86 (diff) | |
download | qtwebengine-chromium-e684a3455bcc29a6e3e66a004e352dea4e1141e7.tar.gz |
BASELINE: Update Chromium to 72.0.3626.110 and Ninja to 1.9.0
Change-Id: Ic57220b00ecc929a893c91f5cc552f5d3e99e922
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/third_party/blink/renderer/core/dom/slot_assignment.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/core/dom/slot_assignment.cc | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/chromium/third_party/blink/renderer/core/dom/slot_assignment.cc b/chromium/third_party/blink/renderer/core/dom/slot_assignment.cc index fd2164fd0e8..bd70c6e1626 100644 --- a/chromium/third_party/blink/renderer/core/dom/slot_assignment.cc +++ b/chromium/third_party/blink/renderer/core/dom/slot_assignment.cc @@ -9,6 +9,7 @@ #include "third_party/blink/renderer/core/dom/node_traversal.h" #include "third_party/blink/renderer/core/dom/shadow_root.h" #include "third_party/blink/renderer/core/dom/slot_assignment_engine.h" +#include "third_party/blink/renderer/core/dom/slot_assignment_recalc_forbidden_scope.h" #include "third_party/blink/renderer/core/html/forms/html_opt_group_element.h" #include "third_party/blink/renderer/core/html/forms/html_select_element.h" #include "third_party/blink/renderer/core/html/html_details_element.h" @@ -226,10 +227,13 @@ void SlotAssignment::RecalcAssignment() { #if DCHECK_IS_ON() DCHECK(!owner_->GetDocument().IsSlotAssignmentRecalcForbidden()); #endif + // To detect recursive RecalcAssignment, which shouldn't happen. + SlotAssignmentRecalcForbiddenScope forbid_slot_recalc(owner_->GetDocument()); + needs_assignment_recalc_ = false; for (Member<HTMLSlotElement> slot : Slots()) - slot->ClearAssignedNodes(); + slot->WillRecalcAssignedNodes(); const bool is_user_agent = owner_->IsUserAgent(); @@ -266,10 +270,12 @@ void SlotAssignment::RecalcAssignment() { } } - if (slot) + if (slot) { slot->AppendAssignedNode(child); - else + } else { + child.ClearFlatTreeNodeData(); child.LazyReattachIfAttached(); + } } if (owner_->isConnected()) { @@ -279,7 +285,7 @@ void SlotAssignment::RecalcAssignment() { } for (auto& slot : Slots()) - slot->RecalcFlatTreeChildren(); + slot->DidRecalcAssignedNodes(); } const HeapVector<Member<HTMLSlotElement>>& SlotAssignment::Slots() { |