Index: Source/core/dom/NodeRenderingTraversal.cpp |
diff --git a/Source/core/dom/NodeRenderingTraversal.cpp b/Source/core/dom/NodeRenderingTraversal.cpp |
index fa67f825e242ba68373c4cbb2d617e8105731054..a04d7633ef7dc80f43faf622edbcf7f925e2d8a9 100644 |
--- a/Source/core/dom/NodeRenderingTraversal.cpp |
+++ b/Source/core/dom/NodeRenderingTraversal.cpp |
@@ -49,6 +49,9 @@ void ParentDetails::didTraverseShadowRoot(const ShadowRoot* root) |
ContainerNode* parent(const Node* node, ParentDetails* details) |
{ |
+ if (ShadowRoot* root = node->containingShadowRoot()) |
+ root->host()->ensureDistribution(); |
+ |
ComposedShadowTreeWalker walker(node, ComposedShadowTreeWalker::CrossUpperBoundary, ComposedShadowTreeWalker::CanStartFromShadowBoundary); |
ContainerNode* found = toContainerNode(walker.traverseParent(walker.get(), details)); |
return details->outOfComposition() ? 0 : found; |