[HTMLTemplateElement] make content readonly and cloneNode(deep) clone content
https://bugs.webkit.org/show_bug.cgi?id=104181

Reviewed by Adam Barth.

Source/WebCore:

Note that this patch also adds IDL attributes/custom code to tie the lifetime
of the content DocumentFragment wrapper to the lifetime of the template element wrapper
via a hidden JS property.

Based on a patch by Rafael Weinstein.

Test: fast/dom/HTMLTemplateElement/contentWrappers.html

* DerivedSources.cpp:
* Target.pri:
* UseJSC.cmake:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSHTMLTemplateElementCustom.cpp: Copied from Source/WebCore/html/HTMLTemplateElement.idl.
(WebCore):
(WebCore::JSHTMLTemplateElement::content):
* bindings/scripts/CodeGeneratorV8.pm: Add support for new V8CacheAttributeForGC attribute.
* dom/Element.h:
(Element): Annotate cloneNode() with OVERRIDE
* html/HTMLTemplateElement.cpp:
(WebCore::HTMLTemplateElement::cloneNode):
* html/HTMLTemplateElement.h:
(HTMLTemplateElement): override cloneNode
* html/HTMLTemplateElement.idl: Make content readonly and add custom attributes.

LayoutTests:

* fast/dom/HTMLTemplateElement/cloneNode-expected.txt:
* fast/dom/HTMLTemplateElement/cloneNode.html:
* fast/dom/HTMLTemplateElement/contentWrappers-expected.txt: Added.
* fast/dom/HTMLTemplateElement/contentWrappers.html: Added.
* fast/dom/HTMLTemplateElement/ownerDocument-expected.txt:
* fast/dom/HTMLTemplateElement/ownerDocument.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136903 268f45cc-cd09-0410-ab3c-d52691b4dbfc
20 files changed