From 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Tue, 27 Jun 2017 06:07:23 +0000 Subject: webkitgtk-2.16.5 --- Source/WebCore/html/HTMLTemplateElement.cpp | 41 +++++++++++++++-------------- 1 file changed, 21 insertions(+), 20 deletions(-) (limited to 'Source/WebCore/html/HTMLTemplateElement.cpp') diff --git a/Source/WebCore/html/HTMLTemplateElement.cpp b/Source/WebCore/html/HTMLTemplateElement.cpp index 17e4c0807..31e855e27 100644 --- a/Source/WebCore/html/HTMLTemplateElement.cpp +++ b/Source/WebCore/html/HTMLTemplateElement.cpp @@ -29,12 +29,8 @@ */ #include "config.h" - -#if ENABLE(TEMPLATE_ELEMENT) - #include "HTMLTemplateElement.h" -#include "DOMImplementation.h" #include "DocumentFragment.h" #include "HTMLDocument.h" #include "TemplateContentDocumentFragment.h" @@ -55,38 +51,43 @@ HTMLTemplateElement::~HTMLTemplateElement() m_content->clearHost(); } -PassRefPtr HTMLTemplateElement::create(const QualifiedName& tagName, Document& document) +Ref HTMLTemplateElement::create(const QualifiedName& tagName, Document& document) { - return adoptRef(new HTMLTemplateElement(tagName, document)); + return adoptRef(*new HTMLTemplateElement(tagName, document)); } -DocumentFragment* HTMLTemplateElement::content() const +DocumentFragment& HTMLTemplateElement::content() const { if (!m_content) - m_content = TemplateContentDocumentFragment::create(*document().ensureTemplateDocument(), this); + m_content = TemplateContentDocumentFragment::create(document().ensureTemplateDocument(), this); - return m_content.get(); + return *m_content; } -PassRefPtr HTMLTemplateElement::cloneNode(bool deep) +Ref HTMLTemplateElement::cloneNodeInternal(Document& targetDocument, CloningOperation type) { - if (!deep) - return cloneElementWithoutChildren(); - - RefPtr clone = cloneElementWithChildren(); + RefPtr clone; + switch (type) { + case CloningOperation::OnlySelf: + return cloneElementWithoutChildren(targetDocument); + case CloningOperation::SelfWithTemplateContent: + clone = cloneElementWithoutChildren(targetDocument); + break; + case CloningOperation::Everything: + clone = cloneElementWithChildren(targetDocument); + break; + } if (m_content) - content()->cloneChildNodes(toHTMLTemplateElement(clone.get())->content()); - return clone.release(); + content().cloneChildNodes(downcast(clone.get())->content()); + return clone.releaseNonNull(); } -void HTMLTemplateElement::didMoveToNewDocument(Document* oldDocument) +void HTMLTemplateElement::didMoveToNewDocument(Document& oldDocument) { HTMLElement::didMoveToNewDocument(oldDocument); if (!m_content) return; - document().ensureTemplateDocument()->adoptIfNeeded(m_content.get()); + document().ensureTemplateDocument().adoptIfNeeded(*m_content); } } // namespace WebCore - -#endif // ENABLE(TEMPLATE_ELEMENT) -- cgit v1.2.1