From b845b4e662c1a96a197bf76159ee0eac61cfaf5c Mon Sep 17 00:00:00 2001 From: Mirko Brodesser Date: Tue, 5 Nov 2019 14:05:36 +0000 Subject: [PATCH] Bug 1593222: part 1) Move `nsNodeUtils::IsTemplateElement` to `nsINode`. r=smaug Differential Revision: https://phabricator.services.mozilla.com/D51606 --HG-- extra : moz-landing-system : lando --- dom/base/FragmentOrElement.cpp | 2 +- dom/base/nsContentUtils.cpp | 2 +- dom/base/nsINode.h | 5 +++++ dom/base/nsNodeUtils.cpp | 10 +++------- dom/base/nsNodeUtils.h | 7 ------- parser/html/nsHtml5TreeOperation.cpp | 2 +- 6 files changed, 11 insertions(+), 17 deletions(-) diff --git a/dom/base/FragmentOrElement.cpp b/dom/base/FragmentOrElement.cpp index b5c5c1ca6fb7..47f40a033d85 100644 --- a/dom/base/FragmentOrElement.cpp +++ b/dom/base/FragmentOrElement.cpp @@ -2038,7 +2038,7 @@ void FragmentOrElement::SetInnerHTMLInternal(const nsAString& aInnerHTML, ErrorResult& aError) { FragmentOrElement* target = this; // Handle template case. - if (nsNodeUtils::IsTemplateElement(target)) { + if (target->IsTemplateElement()) { DocumentFragment* frag = static_cast(target)->Content(); MOZ_ASSERT(frag); diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp index 1d9e50ba3c85..eb692e4b9c5a 100644 --- a/dom/base/nsContentUtils.cpp +++ b/dom/base/nsContentUtils.cpp @@ -8670,7 +8670,7 @@ bool nsContentUtils::SerializeNodeToMarkup(nsINode* aRoot, current->NodeType() == nsINode::DOCUMENT_FRAGMENT_NODE) { DocumentFragment* frag = static_cast(current); nsIContent* fragHost = frag->GetHost(); - if (fragHost && nsNodeUtils::IsTemplateElement(fragHost)) { + if (fragHost && fragHost->IsTemplateElement()) { current = fragHost; } } diff --git a/dom/base/nsINode.h b/dom/base/nsINode.h index 4e4b0f761534..45dfa772c65d 100644 --- a/dom/base/nsINode.h +++ b/dom/base/nsINode.h @@ -392,6 +392,11 @@ class nsINode : public mozilla::dom::EventTarget { return IsElement() || IsDocument() || IsDocumentFragment(); } + /** + * Returns true if the node is a HTMLTemplate element. + */ + bool IsTemplateElement() const { return IsHTMLElement(nsGkAtoms::_template); } + bool IsSlotable() const { return IsElement() || IsText(); } /** diff --git a/dom/base/nsNodeUtils.cpp b/dom/base/nsNodeUtils.cpp index df861088130b..0c36cb892c58 100644 --- a/dom/base/nsNodeUtils.cpp +++ b/dom/base/nsNodeUtils.cpp @@ -498,7 +498,6 @@ already_AddRefed nsNodeUtils::CloneAndAdopt( } } } - if (wasRegistered && oldDoc != newDoc) { nsIContent* content = aNode->AsContent(); if (auto mediaElem = HTMLMediaElement::FromNodeOrNull(content)) { @@ -615,7 +614,7 @@ already_AddRefed nsNodeUtils::CloneAndAdopt( } // Cloning template element. - if (aDeep && aClone && IsTemplateElement(aNode)) { + if (aDeep && aClone && aNode->IsTemplateElement()) { DocumentFragment* origContent = static_cast(aNode)->Content(); DocumentFragment* cloneContent = @@ -640,16 +639,13 @@ already_AddRefed nsNodeUtils::CloneAndAdopt( return clone.forget(); } -bool nsNodeUtils::IsTemplateElement(const nsINode* aNode) { - return aNode->IsHTMLElement(nsGkAtoms::_template); -} nsIContent* nsNodeUtils::GetFirstChildOfTemplateOrNode(nsINode* aNode) { - if (nsNodeUtils::IsTemplateElement(aNode)) { + if (aNode->IsTemplateElement()) { DocumentFragment* frag = static_cast(aNode)->Content(); return frag->GetFirstChild(); } return aNode->GetFirstChild(); -} +} \ No newline at end of file diff --git a/dom/base/nsNodeUtils.h b/dom/base/nsNodeUtils.h index 26dea34cc139..44fe05a949ce 100644 --- a/dom/base/nsNodeUtils.h +++ b/dom/base/nsNodeUtils.h @@ -246,13 +246,6 @@ class nsNodeUtils { static already_AddRefed CloneNodeImpl(nsINode* aNode, bool aDeep, mozilla::ErrorResult& aError); - /** - * Returns a true if the node is a HTMLTemplate element. - * - * @param aNode a node to test for HTMLTemplate elementness. - */ - static bool IsTemplateElement(const nsINode* aNode); - /** * Returns the first child of a node or the first child of * a template element's content if the provided node is a diff --git a/parser/html/nsHtml5TreeOperation.cpp b/parser/html/nsHtml5TreeOperation.cpp index f0767c3f1652..cd94260fa9e1 100644 --- a/parser/html/nsHtml5TreeOperation.cpp +++ b/parser/html/nsHtml5TreeOperation.cpp @@ -295,7 +295,7 @@ static bool IsElementOrTemplateContent(nsINode* aNode) { if (aNode->IsDocumentFragment()) { // Check if the node is a template content. nsIContent* fragHost = aNode->AsDocumentFragment()->GetHost(); - if (fragHost && nsNodeUtils::IsTemplateElement(fragHost)) { + if (fragHost && fragHost->IsTemplateElement()) { return true; } }