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

Unified Diff: Source/bindings/templates/interface.h

Issue 618373003: [bindings] partial interfaces should not violate componentization (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Added --target-component instead of --genearte-partial Created 6 years, 2 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/bindings/templates/interface.h
diff --git a/Source/bindings/templates/interface.h b/Source/bindings/templates/interface.h
index 8555652a59b8819a56ec8c248949c7f5007a2c55..c6a77f3fa9671e16d5ce2f30a2945a5f879910fb 100644
--- a/Source/bindings/templates/interface.h
+++ b/Source/bindings/templates/interface.h
@@ -50,7 +50,11 @@ public:
return blink::toScriptWrappableBase(object)->toImpl<{{cpp_class}}>();
}
static {{cpp_class}}* toImplWithTypeCheck(v8::Isolate*, v8::Handle<v8::Value>);
+ {% if has_partial_interface %}
+ static WrapperTypeInfo wrapperTypeInfo;
+ {% else %}
static const WrapperTypeInfo wrapperTypeInfo;
+ {% endif %}
static void refObject(ScriptWrappableBase* internalPointer);
static void derefObject(ScriptWrappableBase* internalPointer);
static WrapperPersistentNode* createPersistentHandle(ScriptWrappableBase* internalPointer);
@@ -162,12 +166,26 @@ public:
static void installConditionallyEnabledMethods(v8::Handle<v8::Object>, v8::Isolate*){% if conditionally_enabled_methods %};
{% else %} { }
{% endif %}
+ {% if has_partial_interface %}
+ static void updateWrapperTypeInfo(InstallTemplateFunction, InstallConditionallyEnabledMethodsFunction);
+ static void install{{v8_class}}Template(v8::Handle<v8::FunctionTemplate>, v8::Isolate*);
+ {% for method in methods %}
bashi 2014/10/15 05:29:23 nit: you can merge "for" and "if" block. {% for m
tasak 2014/10/15 11:24:19 Done.
+ {% if method.overloads and method.overloads.has_partial_overloads %}
+ static void register{{method.name | blink_capitalize}}MethodForPartialInterface(void (*)(const v8::FunctionCallbackInfo<v8::Value>&));
+ {% endif %}
+ {% endfor %}
+ {% endif %}
{% if not has_custom_to_v8 and not is_script_wrappable %}
private:
friend v8::Handle<v8::Object> wrap({{cpp_class}}*, v8::Handle<v8::Object> creationContext, v8::Isolate*);
static v8::Handle<v8::Object> createWrapper({{pass_cpp_type}}, v8::Handle<v8::Object> creationContext, v8::Isolate*);
{% endif %}
+ {% if has_partial_interface %}
+
+private:
+ static InstallTemplateFunction install{{v8_class}}TemplateFunction;
+ {% endif %}
};
{% if has_custom_to_v8 %}

Powered by Google App Engine
This is Rietveld 408576698