Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(196)

Unified Diff: third_party/WebKit/Source/core/dom/shadow/ComposedTreeTraversal.cpp

Issue 1649983003: Remove the forced layout in getComputedStyle for elements in Shadow DOM (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Look at ShadowRoots when walking up the tree in updateLayoutTreeForNodeIfNeeded. Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/dom/shadow/ComposedTreeTraversal.cpp
diff --git a/third_party/WebKit/Source/core/dom/shadow/ComposedTreeTraversal.cpp b/third_party/WebKit/Source/core/dom/shadow/ComposedTreeTraversal.cpp
index cf529209898854c93f3c5d9b727c4ea9740ff308..1e292e5b557e660dc0a0d092125d0c7a12ae5021 100644
--- a/third_party/WebKit/Source/core/dom/shadow/ComposedTreeTraversal.cpp
+++ b/third_party/WebKit/Source/core/dom/shadow/ComposedTreeTraversal.cpp
@@ -155,7 +155,7 @@ ContainerNode* ComposedTreeTraversal::traverseParent(const Node& node, ParentTra
HTMLSlotElement* slot = finalDestinationSlotFor(node);
if (!slot)
return nullptr;
- return traverseParent(*slot);
+ return traverseParent(*slot, details);
}
Element* parent = node.parentElement();
@@ -170,7 +170,7 @@ ContainerNode* ComposedTreeTraversal::traverseParent(const Node& node, ParentTra
return traverseParentForV0(node, details);
ASSERT(!shadowWhereNodeCanBeDistributed(node));
- return traverseParentOrHost(node);
+ return traverseParentOrHost(node, details);
}
ContainerNode* ComposedTreeTraversal::traverseParentForV0(const Node& node, ParentTraversalDetails* details)
@@ -178,21 +178,21 @@ ContainerNode* ComposedTreeTraversal::traverseParentForV0(const Node& node, Pare
if (shadowWhereNodeCanBeDistributed(node)) {
if (const InsertionPoint* insertionPoint = resolveReprojection(&node)) {
if (details)
- details->didTraverseInsertionPoint(insertionPoint);
+ details->didTraverseInsertionPoint();
// The node is distributed. But the distribution was stopped at this insertion point.
if (shadowWhereNodeCanBeDistributed(*insertionPoint))
return nullptr;
- return traverseParent(*insertionPoint);
+ return traverseParent(*insertionPoint, details);
}
return nullptr;
}
- ContainerNode* parent = traverseParentOrHost(node);
+ ContainerNode* parent = traverseParentOrHost(node, details);
if (isActiveInsertionPoint(*parent))
return nullptr;
return parent;
}
-ContainerNode* ComposedTreeTraversal::traverseParentOrHost(const Node& node)
+ContainerNode* ComposedTreeTraversal::traverseParentOrHost(const Node& node, ParentTraversalDetails* details)
{
ContainerNode* parent = node.parentNode();
if (!parent)
@@ -200,6 +200,8 @@ ContainerNode* ComposedTreeTraversal::traverseParentOrHost(const Node& node)
if (!parent->isShadowRoot())
return parent;
ShadowRoot* shadowRoot = toShadowRoot(parent);
+ if (details)
+ details->didTraverseShadowRoot(shadowRoot);
ASSERT(!shadowRoot->shadowInsertionPointOfYoungerShadowRoot());
if (!shadowRoot->isYoungest())
return nullptr;

Powered by Google App Engine
This is Rietveld 408576698