зеркало из https://github.com/mozilla/gecko-dev.git
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
This commit is contained in:
Родитель
0bf81afb2c
Коммит
b845b4e662
|
@ -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<HTMLTemplateElement*>(target)->Content();
|
||||
MOZ_ASSERT(frag);
|
||||
|
|
|
@ -8670,7 +8670,7 @@ bool nsContentUtils::SerializeNodeToMarkup(nsINode* aRoot,
|
|||
current->NodeType() == nsINode::DOCUMENT_FRAGMENT_NODE) {
|
||||
DocumentFragment* frag = static_cast<DocumentFragment*>(current);
|
||||
nsIContent* fragHost = frag->GetHost();
|
||||
if (fragHost && nsNodeUtils::IsTemplateElement(fragHost)) {
|
||||
if (fragHost && fragHost->IsTemplateElement()) {
|
||||
current = fragHost;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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(); }
|
||||
|
||||
/**
|
||||
|
|
|
@ -498,7 +498,6 @@ already_AddRefed<nsINode> nsNodeUtils::CloneAndAdopt(
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (wasRegistered && oldDoc != newDoc) {
|
||||
nsIContent* content = aNode->AsContent();
|
||||
if (auto mediaElem = HTMLMediaElement::FromNodeOrNull(content)) {
|
||||
|
@ -615,7 +614,7 @@ already_AddRefed<nsINode> nsNodeUtils::CloneAndAdopt(
|
|||
}
|
||||
|
||||
// Cloning template element.
|
||||
if (aDeep && aClone && IsTemplateElement(aNode)) {
|
||||
if (aDeep && aClone && aNode->IsTemplateElement()) {
|
||||
DocumentFragment* origContent =
|
||||
static_cast<HTMLTemplateElement*>(aNode)->Content();
|
||||
DocumentFragment* cloneContent =
|
||||
|
@ -640,16 +639,13 @@ already_AddRefed<nsINode> 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<HTMLTemplateElement*>(aNode)->Content();
|
||||
return frag->GetFirstChild();
|
||||
}
|
||||
|
||||
return aNode->GetFirstChild();
|
||||
}
|
||||
}
|
|
@ -246,13 +246,6 @@ class nsNodeUtils {
|
|||
static already_AddRefed<nsINode> 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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче