Bug 1469112: Use HTMLSlotElement::FromNode more consistently. r=smaug

MozReview-Commit-ID: 1k8lVazP0lR

--HG--
extra : rebase_source : fb505610b745dc414c2f28a0ba3130eec6160666
This commit is contained in:
Emilio Cobos Álvarez 2018-06-15 20:14:02 -07:00
parent e14653c613
commit 99895a902b

View File

@ -130,15 +130,15 @@ FlattenAssignedNodes(HTMLSlotElement* aSlot, nsTArray<RefPtr<nsINode>>& aNodes)
// If assignedNodes is empty, use children of slot as fallback content.
if (assignedNodes.IsEmpty()) {
for (nsIContent* child = aSlot->AsContent()->GetFirstChild();
for (nsIContent* child = aSlot->GetFirstChild();
child;
child = child->GetNextSibling()) {
if (!child->IsSlotable()) {
continue;
}
if (child->IsHTMLElement(nsGkAtoms::slot)) {
FlattenAssignedNodes(HTMLSlotElement::FromNode(child), aNodes);
if (auto* slot = HTMLSlotElement::FromNode(child)) {
FlattenAssignedNodes(slot, aNodes);
} else {
aNodes.AppendElement(child);
}
@ -146,11 +146,9 @@ FlattenAssignedNodes(HTMLSlotElement* aSlot, nsTArray<RefPtr<nsINode>>& aNodes)
return;
}
for (uint32_t i = 0; i < assignedNodes.Length(); i++) {
nsINode* assignedNode = assignedNodes[i];
if (assignedNode->IsHTMLElement(nsGkAtoms::slot)) {
FlattenAssignedNodes(
HTMLSlotElement::FromNode(assignedNode->AsContent()), aNodes);
for (const RefPtr<nsINode>& assignedNode : assignedNodes) {
if (auto* slot = HTMLSlotElement::FromNode(assignedNode)) {
FlattenAssignedNodes(slot, aNodes);
} else {
aNodes.AppendElement(assignedNode);
}