Index: third_party/WebKit/Source/core/html/HTMLSlotElement.cpp |
diff --git a/third_party/WebKit/Source/core/html/HTMLSlotElement.cpp b/third_party/WebKit/Source/core/html/HTMLSlotElement.cpp |
index cf907c221c755daa2c33147e415d07648ad7d523..a3f1e37a55b40d6af3eecd960ff06567795d1f07 100644 |
--- a/third_party/WebKit/Source/core/html/HTMLSlotElement.cpp |
+++ b/third_party/WebKit/Source/core/html/HTMLSlotElement.cpp |
@@ -31,6 +31,8 @@ |
#include "core/html/HTMLSlotElement.h" |
#include "core/HTMLNames.h" |
+#include "core/dom/NodeTraversal.h" |
+#include "core/dom/shadow/InsertionPoint.h" |
namespace blink { |
@@ -98,6 +100,21 @@ void HTMLSlotElement::detach(const AttachContext& context) |
HTMLElement::detach(context); |
} |
+void HTMLSlotElement::updateDistributedNodesWithFallback() |
+{ |
+ if (!m_distributedNodes.isEmpty()) |
+ return; |
+ for (auto& child : NodeTraversal::childrenOf(*this)) { |
+ // Insertion points are not supported as slots fallback |
+ if (isActiveInsertionPoint(child)) |
+ continue; |
+ if (isHTMLSlotElement(child)) |
+ appendDistributedNodes(toHTMLSlotElement(child).getDistributedNodes()); |
+ else |
+ appendDistributedNode(child); |
+ } |
+} |
+ |
DEFINE_TRACE(HTMLSlotElement) |
{ |
visitor->trace(m_assignedNodes); |