diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/html/HTMLTemplateElement.cpp | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Source/WebCore/html/HTMLTemplateElement.cpp')
-rw-r--r-- | Source/WebCore/html/HTMLTemplateElement.cpp | 41 |
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) |