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

Side by Side Diff: mojo/public/tools/bindings/generators/mojom_js_generator.py

Issue 2405093003: [WIP] Mojo native bindings interface.
Patch Set: cleanup 2 Created 4 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 unified diff | Download patch
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Generates JavaScript source files from a mojom.Module.""" 5 """Generates JavaScript source files from a mojom.Module."""
6 6
7 import mojom.generate.generator as generator 7 import mojom.generate.generator as generator
8 import mojom.generate.module as mojom 8 import mojom.generate.module as mojom
9 import mojom.generate.pack as pack 9 import mojom.generate.pack as pack
10 from mojom.generate.template_expander import UseJinja 10 from mojom.generate.template_expander import UseJinja
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 nullable = JavaScriptNullableParam(field) 268 nullable = JavaScriptNullableParam(field)
269 return "%s" % (nullable) 269 return "%s" % (nullable)
270 270
271 def JavaScriptValidateInterfaceParams(field): 271 def JavaScriptValidateInterfaceParams(field):
272 return JavaScriptValidateHandleParams(field) 272 return JavaScriptValidateHandleParams(field)
273 273
274 def JavaScriptProxyMethodParameterValue(parameter): 274 def JavaScriptProxyMethodParameterValue(parameter):
275 name = parameter.name; 275 name = parameter.name;
276 if (mojom.IsInterfaceKind(parameter.kind)): 276 if (mojom.IsInterfaceKind(parameter.kind)):
277 type = JavaScriptType(parameter.kind) 277 type = JavaScriptType(parameter.kind)
278 return "core.isHandle(%s) ? %s : connection.bindImpl" \ 278 return "%s instanceof MojoHandle ? %s : connection.bindImpl" \
279 "(%s, %s)" % (name, name, name, type) 279 "(%s, %s)" % (name, name, name, type)
280 if (mojom.IsInterfaceRequestKind(parameter.kind)): 280 if (mojom.IsInterfaceRequestKind(parameter.kind)):
281 type = JavaScriptType(parameter.kind.kind) 281 type = JavaScriptType(parameter.kind.kind)
282 return "core.isHandle(%s) ? %s : connection.bindProxy" \ 282 return "%s instanceof MojoHandle ? %s : connection.bindProxy" \
283 "(%s, %s)" % (name, name, name, type) 283 "(%s, %s)" % (name, name, name, type)
284 return name; 284 return name;
285 285
286 286
287 def JavaScriptStubMethodParameterValue(parameter): 287 def JavaScriptStubMethodParameterValue(parameter):
288 name = parameter.name; 288 name = parameter.name;
289 if (mojom.IsInterfaceKind(parameter.kind)): 289 if (mojom.IsInterfaceKind(parameter.kind)):
290 type = JavaScriptType(parameter.kind) 290 type = JavaScriptType(parameter.kind)
291 return "connection.bindHandleToProxy(%s, %s)" % (name, type) 291 return "connection.bindHandleToProxy(%s, %s)" % (name, type)
292 if (mojom.IsInterfaceRequestKind(parameter.kind)): 292 if (mojom.IsInterfaceRequestKind(parameter.kind)):
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
453 return self.module.imports 453 return self.module.imports
454 454
455 def GetImportedInterfaces(self): 455 def GetImportedInterfaces(self):
456 interface_to_import = {}; 456 interface_to_import = {};
457 for each_import in self.module.imports: 457 for each_import in self.module.imports:
458 for each_interface in each_import["module"].interfaces: 458 for each_interface in each_import["module"].interfaces:
459 name = each_interface.name 459 name = each_interface.name
460 interface_to_import[name] = each_import["unique_name"] + "." + name 460 interface_to_import[name] = each_import["unique_name"] + "." + name
461 return interface_to_import; 461 return interface_to_import;
462 462
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698