| 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 ea3cd128bc274b0b0adcda3a57418c2bfb133e47..b7b966df8df80242c9d86c8cec44a5a95223421f 100644
|
| --- a/third_party/WebKit/Source/core/dom/Node.cpp
|
| +++ b/third_party/WebKit/Source/core/dom/Node.cpp
|
| @@ -968,6 +968,38 @@ bool Node::isSlotOrActiveInsertionPoint() const
|
| return isHTMLSlotElement(*this) || isActiveInsertionPoint(*this);
|
| }
|
|
|
| +bool Node::isInV1ShadowTree() const
|
| +{
|
| + ShadowRoot* shadowRoot = containingShadowRoot();
|
| + return shadowRoot && shadowRoot->isV1();
|
| +}
|
| +
|
| +bool Node::isInV0ShadowTree() const
|
| +{
|
| + ShadowRoot* shadowRoot = containingShadowRoot();
|
| + return shadowRoot && !shadowRoot->isV1();
|
| +}
|
| +
|
| +static ElementShadow* parentElementShadow(const Node& node)
|
| +{
|
| + Element* parent = node.parentElement();
|
| + if (!parent)
|
| + return nullptr;
|
| + return parent->shadow();
|
| +}
|
| +
|
| +bool Node::isChildOfV1ShadowHost() const
|
| +{
|
| + ElementShadow* parentShadow = parentElementShadow(*this);
|
| + return parentShadow && parentShadow->isV1();
|
| +}
|
| +
|
| +bool Node::isChildOfV0ShadowHost() const
|
| +{
|
| + ElementShadow* parentShadow = parentElementShadow(*this);
|
| + return parentShadow && !parentShadow->isV1();
|
| +}
|
| +
|
| Element* Node::shadowHost() const
|
| {
|
| if (ShadowRoot* root = containingShadowRoot())
|
| @@ -2211,10 +2243,15 @@ PassRefPtrWillBeRawPtr<StaticNodeList> Node::getDestinationInsertionPoints()
|
| HTMLSlotElement* Node::assignedSlot() const
|
| {
|
| ASSERT(!needsDistributionRecalc());
|
| - Element* parent = parentElement();
|
| - if (!parent)
|
| - return nullptr;
|
| - if (ElementShadow* shadow = parent->shadow()) {
|
| + if (ElementShadow* shadow = parentElementShadow(*this))
|
| + return shadow->assignedSlotFor(*this);
|
| + return nullptr;
|
| +}
|
| +
|
| +HTMLSlotElement* Node::assignedSlotForBinding()
|
| +{
|
| + updateDistribution();
|
| + if (ElementShadow* shadow = parentElementShadow(*this)) {
|
| if (shadow->isV1() && shadow->isOpen())
|
| return shadow->assignedSlotFor(*this);
|
| }
|
|
|