summaryrefslogtreecommitdiff
path: root/Source/WebCore/html/HTMLTemplateElement.cpp
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
commit1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch)
tree46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/html/HTMLTemplateElement.cpp
parent32761a6cee1d0dee366b885b7b9c777e67885688 (diff)
downloadWebKitGtk-tarball-master.tar.gz
Diffstat (limited to 'Source/WebCore/html/HTMLTemplateElement.cpp')
-rw-r--r--Source/WebCore/html/HTMLTemplateElement.cpp41
1 files changed, 21 insertions, 20 deletions
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> HTMLTemplateElement::create(const QualifiedName& tagName, Document& document)
+Ref<HTMLTemplateElement> 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<Node> HTMLTemplateElement::cloneNode(bool deep)
+Ref<Node> HTMLTemplateElement::cloneNodeInternal(Document& targetDocument, CloningOperation type)
{
- if (!deep)
- return cloneElementWithoutChildren();
-
- RefPtr<Node> clone = cloneElementWithChildren();
+ RefPtr<Node> 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<HTMLTemplateElement>(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)