Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(431)

Unified Diff: Source/build/scripts/templates/ElementWrapperFactory.cpp.tmpl

Issue 531183003: bindings: Retires manual dispatching in createV8{HTML,SVG}Wrapper, etc. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Added FIXME comments. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/build/scripts/templates/ElementWrapperFactory.cpp.tmpl
diff --git a/Source/build/scripts/templates/ElementWrapperFactory.cpp.tmpl b/Source/build/scripts/templates/ElementWrapperFactory.cpp.tmpl
index 746c64085c047840432acc6d6cc590878e336ec5..44317ae7ce3a211495aaed1ce3abbd4c18f7897d 100644
--- a/Source/build/scripts/templates/ElementWrapperFactory.cpp.tmpl
+++ b/Source/build/scripts/templates/ElementWrapperFactory.cpp.tmpl
@@ -5,7 +5,6 @@
#include "V8{{namespace}}ElementWrapperFactory.h"
#include "{{namespace}}Names.h"
-#include "bindings/core/v8/CustomElementWrapper.h"
{% for tag in tags|sort if tag.has_js_interface %}
#include "bindings/core/v8/V8{{tag.interface}}.h"
{% endfor %}
@@ -22,53 +21,6 @@ namespace blink {
using namespace {{namespace}}Names;
-typedef v8::Handle<v8::Object> (*Create{{namespace}}ElementWrapperFunction)({{namespace}}Element*, v8::Handle<v8::Object> creationContext, v8::Isolate*);
-
-static v8::Handle<v8::Object> create{{namespace}}ElementWrapper({{namespace}}Element*, v8::Handle<v8::Object>, v8::Isolate*)
-{
- ASSERT_NOT_REACHED();
- return v8::Handle<v8::Object>();
-}
-{% for js_interface, list in tags|sort|selectattr('has_js_interface')|groupby('js_interface') %}
-{% filter enable_conditional(list[0].Conditional) %}
-static v8::Handle<v8::Object> create{{js_interface}}Wrapper({{namespace}}Element* element, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
-{
- {% if list[0].runtimeEnabled %}
- if (!RuntimeEnabledFeatures::{{list[0].runtimeEnabled}}Enabled())
- return createV8{{namespace}}FallbackWrapper(to{{fallback_js_interface}}(element), creationContext, isolate);
- {% endif %}
- return wrap(static_cast<{{js_interface}}*>(element), creationContext, isolate);
-}
-{% endfilter %}
-{% endfor %}
-
-v8::Handle<v8::Object> createV8{{namespace}}Wrapper({{namespace}}Element* element, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
-{
- typedef HashMap<StringImpl*, Create{{namespace}}ElementWrapperFunction> FunctionMap;
- DEFINE_STATIC_LOCAL(FunctionMap, map, ());
- if (map.isEmpty()) {
- {% for tag in tags|sort %}
- {% filter enable_conditional(tag.Conditional) %}
- map.set({{tag|symbol}}Tag.localName().impl(), create{{tag.js_interface}}Wrapper);
- {% endfilter %}
- {% endfor %}
- }
-
- Create{{namespace}}ElementWrapperFunction createWrapperFunction = map.get(element->localName().impl());
- if (createWrapperFunction == create{{namespace}}ElementWrapper)
- createWrapperFunction = createV8{{namespace}}DirectWrapper;
- if (element->isCustomElement())
- return CustomElementWrapper<{{namespace}}Element, V8{{namespace}}Element>::wrap(element, creationContext, isolate, createWrapperFunction);
-
- if (createWrapperFunction)
- return createWrapperFunction(element, creationContext, isolate);
- {% if fallback_js_interface == namespace + 'Element' %}
- return V8{{fallback_js_interface}}::createWrapper(element, creationContext, isolate);
- {% else %}
- return wrap(to{{fallback_js_interface}}(element), creationContext, isolate);
- {% endif %}
-}
-
const WrapperTypeInfo* findWrapperTypeFor{{namespace}}TagName(const AtomicString& name)
{
typedef HashMap<StringImpl*, const WrapperTypeInfo*> NameTypeMap;
@@ -89,4 +41,4 @@ const WrapperTypeInfo* findWrapperTypeFor{{namespace}}TagName(const AtomicString
return &V8{{fallback_js_interface}}::wrapperTypeInfo;
}
-}
+} // namespace blink
« no previous file with comments | « Source/bindings/tests/results/V8TestTypedefs.cpp ('k') | Source/build/scripts/templates/ElementWrapperFactory.h.tmpl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698