Bug 856140 - Sync our document.registerElement implementation to the current version of the spec. r=mrbkap
This commit is contained in:
@@ -563,6 +563,12 @@ FragmentOrElement::nsDOMSlots::Traverse(nsCycleCollectionTraversalCallback &cb,
|
||||
|
||||
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "mSlots->mClassList");
|
||||
cb.NoteXPCOMChild(mClassList.get());
|
||||
|
||||
if (mCustomElementData) {
|
||||
for (uint32_t i = 0; i < mCustomElementData->mCallbackQueue.Length(); i++) {
|
||||
mCustomElementData->mCallbackQueue[i]->Traverse(cb);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
@@ -582,6 +588,7 @@ FragmentOrElement::nsDOMSlots::Unlink(bool aIsXUL)
|
||||
mContainingShadow = nullptr;
|
||||
mChildrenList = nullptr;
|
||||
mUndoManager = nullptr;
|
||||
mCustomElementData = nullptr;
|
||||
if (mClassList) {
|
||||
mClassList->DropReference();
|
||||
mClassList = nullptr;
|
||||
@@ -1013,6 +1020,24 @@ FragmentOrElement::SetXBLInsertionParent(nsIContent* aContent)
|
||||
slots->mXBLInsertionParent = aContent;
|
||||
}
|
||||
|
||||
CustomElementData*
|
||||
FragmentOrElement::GetCustomElementData() const
|
||||
{
|
||||
nsDOMSlots *slots = GetExistingDOMSlots();
|
||||
if (slots) {
|
||||
return slots->mCustomElementData;
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void
|
||||
FragmentOrElement::SetCustomElementData(CustomElementData* aData)
|
||||
{
|
||||
nsDOMSlots *slots = DOMSlots();
|
||||
MOZ_ASSERT(!slots->mCustomElementData, "Custom element data may not be changed once set.");
|
||||
slots->mCustomElementData = aData;
|
||||
}
|
||||
|
||||
nsresult
|
||||
FragmentOrElement::InsertChildAt(nsIContent* aKid,
|
||||
uint32_t aIndex,
|
||||
|
||||
Reference in New Issue
Block a user