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

Unified Diff: mojo/public/tools/bindings/generators/js_templates/interface_definition.tmpl

Issue 2820783002: Add associated interfaces & bindings. (Closed)
Patch Set: Remove changes to vibration-iframe-expected.txt because it was removed in master. Created 3 years, 8 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: mojo/public/tools/bindings/generators/js_templates/interface_definition.tmpl
diff --git a/mojo/public/tools/bindings/generators/js_templates/interface_definition.tmpl b/mojo/public/tools/bindings/generators/js_templates/interface_definition.tmpl
index 11e319c1f7c819840a6f2a323f1021f2acacce8f..c4400ea0325cf3ae7b2f40eb3ac4ebef35eb108a 100644
--- a/mojo/public/tools/bindings/generators/js_templates/interface_definition.tmpl
+++ b/mojo/public/tools/bindings/generators/js_templates/interface_definition.tmpl
@@ -7,6 +7,11 @@
handleOrPtrInfo);
}
+ function Associated{{interface.name}}Ptr(associatedInterfacePtrInfo) {
+ this.ptr = new associatedBindings.AssociatedInterfacePtrController(
+ {{interface.name}}, associatedInterfacePtrInfo);
+ }
+
function {{interface.name}}Proxy(receiver) {
this.receiver_ = receiver;
}
@@ -17,6 +22,11 @@
.apply(this.ptr.getProxy(), arguments);
};
+ Associated{{interface.name}}Ptr.prototype.{{method.name|stylize_method}} = function() {
yzshen1 2017/04/19 21:11:34 (1) < 80 chars please. (2) The definition is exact
wangjimmy 2017/04/20 15:36:44 Removed and done using inheritance. + Associated{{
+ return {{interface.name}}Proxy.prototype.{{method.name|stylize_method}}
+ .apply(this.ptr.getProxy(), arguments);
+ };
+
{{interface.name}}Proxy.prototype.{{method.name|stylize_method}} = function(
{%- for parameter in method.parameters -%}
{{parameter.name}}{% if not loop.last %}, {% endif %}
@@ -28,19 +38,34 @@
{%- endfor %}
{%- if method.response_parameters == None %}
+{%- if method|method_passes_associated_kinds and not use_new_js_bindings %}
yzshen1 2017/04/19 21:11:34 Two more spaces indent in front of "if", like this
wangjimmy 2017/04/20 15:36:44 Done.
yzshen1 2017/04/20 18:12:13 This comment hasn't been completely addressed.
+ var builder = new codec.MessageV2Builder(
+ k{{interface.name}}_{{method.name}}_Name,
+ codec.align({{interface.name}}_{{method.name}}_Params.encodedSize));
+ builder.setPayload({{interface.name}}_{{method.name}}_Params, params);
+{%- else %}
var builder = new codec.MessageBuilder(
k{{interface.name}}_{{method.name}}_Name,
codec.align({{interface.name}}_{{method.name}}_Params.encodedSize));
builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params);
+{%- endif %}
var message = builder.finish();
this.receiver_.accept(message);
{%- else %}
return new Promise(function(resolve, reject) {
+{%- if method|method_passes_associated_kinds and not use_new_js_bindings %}
+ var builder = new codec.MessageV2Builder(
+ k{{interface.name}}_{{method.name}}_Name,
+ codec.align({{interface.name}}_{{method.name}}_Params.encodedSize),
+ codec.kMessageExpectsResponse, 0);
+ builder.setPayload({{interface.name}}_{{method.name}}_Params, params);
+{%- else %}
var builder = new codec.MessageWithRequestIDBuilder(
k{{interface.name}}_{{method.name}}_Name,
codec.align({{interface.name}}_{{method.name}}_Params.encodedSize),
codec.kMessageExpectsResponse, 0);
builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params);
+{%- endif %}
var message = builder.finish();
this.receiver_.acceptAndExpectResponse(message).then(function(message) {
var reader = new codec.MessageReader(message);
@@ -102,12 +127,21 @@ params.{{parameter.name}}{% if not loop.last %}, {% endif -%}
{%- for parameter in method.response_parameters %}
responseParams.{{parameter.name}} = response.{{parameter.name}};
{%- endfor %}
+{%- if method|method_passes_associated_kinds and not use_new_js_bindings %}
+ var builder = new codec.MessageV2Builder(
+ k{{interface.name}}_{{method.name}}_Name,
+ codec.align({{interface.name}}_{{method.name}}_ResponseParams.encodedSize),
yzshen1 2017/04/19 21:11:34 80 chars, please. (I understand the existing code
wangjimmy 2017/04/20 15:36:44 Acknowledged. Do you want me to line break this co
yzshen1 2017/04/20 18:12:13 Sounds good. Yeah, I understand that the generate
+ codec.kMessageIsResponse, reader.requestID);
+ builder.setPayload({{interface.name}}_{{method.name}}_ResponseParams,
+ responseParams);
+{%- else %}
var builder = new codec.MessageWithRequestIDBuilder(
k{{interface.name}}_{{method.name}}_Name,
codec.align({{interface.name}}_{{method.name}}_ResponseParams.encodedSize),
codec.kMessageIsResponse, reader.requestID);
builder.encodeStruct({{interface.name}}_{{method.name}}_ResponseParams,
responseParams);
+{%- endif %}
var message = builder.finish();
responder.accept(message);
});

Powered by Google App Engine
This is Rietveld 408576698