| Index: third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp
|
| diff --git a/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp b/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp
|
| index aabea3676888e38abbf631c0a70cf982949e3982..4d379568e1dbac73b9b58710f82c9fede316ace2 100644
|
| --- a/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp
|
| +++ b/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp
|
| @@ -61,7 +61,6 @@ ShadowRoot::ShadowRoot(Document& document, ShadowRootType type)
|
| , m_registeredWithParentShadowRoot(false)
|
| , m_descendantInsertionPointsIsValid(false)
|
| , m_delegatesFocus(false)
|
| - , m_descendantSlotsIsValid(false)
|
| {
|
| }
|
|
|
| @@ -107,16 +106,10 @@ void ShadowRoot::setOlderShadowRoot(ShadowRoot& root)
|
| SlotAssignment& ShadowRoot::ensureSlotAssignment()
|
| {
|
| if (!m_slotAssignment)
|
| - m_slotAssignment = SlotAssignment::create();
|
| + m_slotAssignment = SlotAssignment::create(*this);
|
| return *m_slotAssignment;
|
| }
|
|
|
| -HTMLSlotElement* ShadowRoot::assignedSlotFor(const Node& node) const
|
| -{
|
| - DCHECK(m_slotAssignment);
|
| - return m_slotAssignment->assignedSlotFor(node);
|
| -}
|
| -
|
| Node* ShadowRoot::cloneNode(bool, ExceptionState& exceptionState)
|
| {
|
| exceptionState.throwDOMException(NotSupportedError, "ShadowRoot nodes are not clonable.");
|
| @@ -300,63 +293,9 @@ StyleSheetList& ShadowRoot::styleSheets()
|
| return *m_styleSheetList;
|
| }
|
|
|
| -void ShadowRoot::didAddSlot()
|
| -{
|
| - ensureSlotAssignment().didAddSlot();
|
| - invalidateDescendantSlots();
|
| -}
|
| -
|
| -void ShadowRoot::didRemoveSlot()
|
| -{
|
| - DCHECK(m_slotAssignment);
|
| - m_slotAssignment->didRemoveSlot();
|
| - invalidateDescendantSlots();
|
| -}
|
| -
|
| -void ShadowRoot::invalidateDescendantSlots()
|
| -{
|
| - DCHECK(m_slotAssignment);
|
| - m_descendantSlotsIsValid = false;
|
| - m_slotAssignment->clearDescendantSlots();
|
| -}
|
| -
|
| -unsigned ShadowRoot::descendantSlotCount() const
|
| -{
|
| - return m_slotAssignment ? m_slotAssignment->descendantSlotCount() : 0;
|
| -}
|
| -
|
| -const HeapVector<Member<HTMLSlotElement>>& ShadowRoot::descendantSlots()
|
| -{
|
| - DEFINE_STATIC_LOCAL(HeapVector<Member<HTMLSlotElement>>, emptyList, (new HeapVector<Member<HTMLSlotElement>>));
|
| - if (m_descendantSlotsIsValid) {
|
| - DCHECK(m_slotAssignment);
|
| - return m_slotAssignment->descendantSlots();
|
| - }
|
| - if (descendantSlotCount() == 0)
|
| - return emptyList;
|
| -
|
| - DCHECK(m_slotAssignment);
|
| - HeapVector<Member<HTMLSlotElement>> slots;
|
| - slots.reserveCapacity(descendantSlotCount());
|
| - for (HTMLSlotElement& slot : Traversal<HTMLSlotElement>::descendantsOf(rootNode()))
|
| - slots.append(&slot);
|
| - m_slotAssignment->setDescendantSlots(slots);
|
| - m_descendantSlotsIsValid = true;
|
| - return m_slotAssignment->descendantSlots();
|
| -}
|
| -
|
| -void ShadowRoot::assignV1()
|
| -{
|
| - if (!m_slotAssignment)
|
| - m_slotAssignment = SlotAssignment::create();
|
| - m_slotAssignment->resolveAssignment(*this);
|
| -}
|
| -
|
| void ShadowRoot::distributeV1()
|
| {
|
| - if (!m_slotAssignment)
|
| - m_slotAssignment = SlotAssignment::create();
|
| - m_slotAssignment->resolveDistribution(*this);
|
| + ensureSlotAssignment().resolveDistribution();
|
| }
|
|
|
| DEFINE_TRACE(ShadowRoot)
|
|
|