From c199dd22e6722a693ece15422ee3ec224f6d0a28 Mon Sep 17 00:00:00 2001 From: Gaming4JC Date: Sun, 19 Jan 2020 22:18:56 -0500 Subject: Bug 1406325 - Part 2: Set CustomElementData when cloning a node. Tag UXP Issue #1344 --- dom/base/nsNodeUtils.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'dom/base/nsNodeUtils.cpp') diff --git a/dom/base/nsNodeUtils.cpp b/dom/base/nsNodeUtils.cpp index 862b5db14..3670b5438 100644 --- a/dom/base/nsNodeUtils.cpp +++ b/dom/base/nsNodeUtils.cpp @@ -486,12 +486,12 @@ nsNodeUtils::CloneAndAdopt(nsINode *aNode, bool aClone, bool aDeep, CustomElementDefinition* definition = nullptr; RefPtr tagAtom = nodeInfo->NameAtom(); if (nsContentUtils::IsCustomElementName(tagAtom)) { + elem->SetCustomElementData(new CustomElementData(tagAtom)); definition = nsContentUtils::LookupCustomElementDefinition(nodeInfo->GetDocument(), nodeInfo->LocalName(), nodeInfo->NamespaceID()); if (definition) { - elem->SetCustomElementData(new CustomElementData(tagAtom)); nsContentUtils::EnqueueUpgradeReaction(elem, definition); } } else { @@ -500,14 +500,14 @@ nsNodeUtils::CloneAndAdopt(nsINode *aNode, bool aClone, bool aDeep, nsAutoString extension; if (elem->GetAttr(kNameSpaceID_None, nsGkAtoms::is, extension) && !extension.IsEmpty()) { + RefPtr typeAtom = NS_Atomize(extension); + elem->SetCustomElementData(new CustomElementData(typeAtom)); definition = nsContentUtils::LookupCustomElementDefinition(nodeInfo->GetDocument(), nodeInfo->LocalName(), nodeInfo->NamespaceID(), &extension); if (definition) { - RefPtr typeAtom = NS_Atomize(extension); - elem->SetCustomElementData(new CustomElementData(typeAtom)); nsContentUtils::EnqueueUpgradeReaction(elem, definition); } } @@ -549,7 +549,7 @@ nsNodeUtils::CloneAndAdopt(nsINode *aNode, bool aClone, bool aDeep, // shadow-including inclusive descendants that is custom. Element* element = aNode->IsElement() ? aNode->AsElement() : nullptr; if (element) { - RefPtr data = element->GetCustomElementData(); + CustomElementData* data = element->GetCustomElementData(); if (data && data->mState == CustomElementData::State::eCustom) { LifecycleAdoptedCallbackArgs args = { oldDoc, -- cgit v1.2.3