| Index: third_party/WebKit/Source/core/dom/shadow/ElementShadow.h
|
| diff --git a/third_party/WebKit/Source/core/dom/shadow/ElementShadow.h b/third_party/WebKit/Source/core/dom/shadow/ElementShadow.h
|
| index ea06f7786de792acfe1a44ddf5d0918c224697e7..bd67343226c0eea6d9d0c7e1dd60c6bc74069c69 100644
|
| --- a/third_party/WebKit/Source/core/dom/shadow/ElementShadow.h
|
| +++ b/third_party/WebKit/Source/core/dom/shadow/ElementShadow.h
|
| @@ -31,6 +31,7 @@
|
| #include "core/dom/shadow/InsertionPoint.h"
|
| #include "core/dom/shadow/SelectRuleFeatureSet.h"
|
| #include "core/dom/shadow/ShadowRoot.h"
|
| +#include "core/dom/shadow/SlotAssignment.h"
|
| #include "platform/heap/Handle.h"
|
| #include "wtf/DoublyLinkedList.h"
|
| #include "wtf/HashMap.h"
|
| @@ -51,6 +52,19 @@ public:
|
| ShadowRoot* oldestShadowRoot() const { return m_shadowRoots.tail(); }
|
| ElementShadow* containingShadow() const;
|
|
|
| + ShadowRoot* shadowRootIfV1() const
|
| + {
|
| + if (isV1())
|
| + return &youngestShadowRoot();
|
| + return nullptr;
|
| + }
|
| +
|
| + HTMLSlotElement* assignedSlotFor(const Node& node) const
|
| + {
|
| + ASSERT(m_slotAssignment);
|
| + return m_slotAssignment->assignedSlotFor(node);
|
| + }
|
| +
|
| ShadowRoot& addShadowRoot(Element& shadowHost, ShadowRootType);
|
|
|
| bool hasSameStyles(const ElementShadow*) const;
|
| @@ -69,6 +83,8 @@ public:
|
|
|
| void didDistributeNode(const Node*, InsertionPoint*);
|
|
|
| + bool isV1() const { return youngestShadowRoot().isV1(); };
|
| +
|
| DECLARE_TRACE();
|
|
|
| private:
|
| @@ -90,8 +106,6 @@ private:
|
| bool needsSelectFeatureSet() const { return m_needsSelectFeatureSet; }
|
| void setNeedsSelectFeatureSet() { m_needsSelectFeatureSet = true; }
|
|
|
| - bool isV1() const { return youngestShadowRoot().type() == ShadowRootType::Open || youngestShadowRoot().type() == ShadowRootType::Closed; };
|
| -
|
| #if ENABLE(OILPAN)
|
| // The cost of |new| in Oilpan is lower than non-Oilpan. We should reduce
|
| // the size of HashMap entry.
|
| @@ -106,6 +120,9 @@ private:
|
| DoublyLinkedList<ShadowRoot> m_shadowRoots;
|
| bool m_needsDistributionRecalc;
|
| bool m_needsSelectFeatureSet;
|
| +
|
| + // TODO(hayato): ShadowRoot should be an owner of SlotAssigment
|
| + OwnPtr<SlotAssignment> m_slotAssignment;
|
| };
|
|
|
| inline Element* ElementShadow::host() const
|
| @@ -128,6 +145,13 @@ inline ShadowRoot* Element::youngestShadowRoot() const
|
| return 0;
|
| }
|
|
|
| +inline ShadowRoot* Element::shadowRootIfV1() const
|
| +{
|
| + if (ElementShadow* shadow = this->shadow())
|
| + return shadow->shadowRootIfV1();
|
| + return nullptr;
|
| +}
|
| +
|
| inline ElementShadow* ElementShadow::containingShadow() const
|
| {
|
| if (ShadowRoot* parentRoot = host()->containingShadowRoot())
|
|
|