| Index: third_party/WebKit/Source/core/dom/Node.cpp
|
| diff --git a/third_party/WebKit/Source/core/dom/Node.cpp b/third_party/WebKit/Source/core/dom/Node.cpp
|
| index cbc5281a0e8e4324bd92f5e5cdd5b1e76f40b19c..a8db4d8a9e89710da17fd00e4ae89cb333f140ad 100644
|
| --- a/third_party/WebKit/Source/core/dom/Node.cpp
|
| +++ b/third_party/WebKit/Source/core/dom/Node.cpp
|
| @@ -636,6 +636,25 @@ Node& Node::shadowIncludingRoot() const
|
| return *root;
|
| }
|
|
|
| +bool Node::isUnclosedNodeOf(const Node& other) const
|
| +{
|
| + if (!isInShadowTree() || treeScope() == other.treeScope())
|
| + return true;
|
| +
|
| + const TreeScope* scope = &treeScope();
|
| + for (; scope->parentTreeScope(); scope = scope->parentTreeScope()) {
|
| + const ContainerNode& root = scope->rootNode();
|
| + if (root.isShadowRoot() && !toShadowRoot(root).isOpenOrV0())
|
| + break;
|
| + }
|
| +
|
| + for (TreeScope* otherScope = &other.treeScope(); otherScope; otherScope = otherScope->parentTreeScope()) {
|
| + if (otherScope == scope)
|
| + return true;
|
| + }
|
| + return false;
|
| +}
|
| +
|
| bool Node::needsDistributionRecalc() const
|
| {
|
| return shadowIncludingRoot().childNeedsDistributionRecalc();
|
|
|