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

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

Issue 2779493002: Mojo JS bindings: support auto-loading mojom.js deps. (Closed)
Patch Set: . 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 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 import os
10 from mojom.generate.template_expander import UseJinja 11 from mojom.generate.template_expander import UseJinja
11 12
12 _kind_to_javascript_default_value = { 13 _kind_to_javascript_default_value = {
13 mojom.BOOL: "false", 14 mojom.BOOL: "false",
14 mojom.INT8: "0", 15 mojom.INT8: "0",
15 mojom.UINT8: "0", 16 mojom.UINT8: "0",
16 mojom.INT16: "0", 17 mojom.INT16: "0",
17 mojom.UINT16: "0", 18 mojom.UINT16: "0",
18 mojom.INT32: "0", 19 mojom.INT32: "0",
19 mojom.UINT32: "0", 20 mojom.UINT32: "0",
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 318
318 def IsObjectField(field): 319 def IsObjectField(field):
319 return mojom.IsObjectKind(field.kind) 320 return mojom.IsObjectKind(field.kind)
320 321
321 def IsAnyHandleOrInterfaceField(field): 322 def IsAnyHandleOrInterfaceField(field):
322 return mojom.IsAnyHandleOrInterfaceKind(field.kind) 323 return mojom.IsAnyHandleOrInterfaceKind(field.kind)
323 324
324 def IsEnumField(field): 325 def IsEnumField(field):
325 return mojom.IsEnumKind(field.kind) 326 return mojom.IsEnumKind(field.kind)
326 327
328 def GetRelativePath(module, base_module):
329 return os.path.relpath(module.path, os.path.dirname(base_module.path))
330
327 331
328 class Generator(generator.Generator): 332 class Generator(generator.Generator):
329 333
330 js_filters = { 334 js_filters = {
331 "decode_snippet": JavaScriptDecodeSnippet, 335 "decode_snippet": JavaScriptDecodeSnippet,
332 "default_value": JavaScriptDefaultValue, 336 "default_value": JavaScriptDefaultValue,
333 "encode_snippet": JavaScriptEncodeSnippet, 337 "encode_snippet": JavaScriptEncodeSnippet,
334 "expression_to_text": ExpressionToText, 338 "expression_to_text": ExpressionToText,
335 "field_offset": JavaScriptFieldOffset, 339 "field_offset": JavaScriptFieldOffset,
336 "has_callbacks": mojom.HasCallbacks, 340 "has_callbacks": mojom.HasCallbacks,
337 "is_any_handle_or_interface_field": IsAnyHandleOrInterfaceField, 341 "is_any_handle_or_interface_field": IsAnyHandleOrInterfaceField,
338 "is_array_pointer_field": IsArrayPointerField, 342 "is_array_pointer_field": IsArrayPointerField,
339 "is_bool_field": IsBoolField, 343 "is_bool_field": IsBoolField,
340 "is_enum_field": IsEnumField, 344 "is_enum_field": IsEnumField,
341 "is_handle_field": IsHandleField, 345 "is_handle_field": IsHandleField,
342 "is_interface_field": IsInterfaceField, 346 "is_interface_field": IsInterfaceField,
343 "is_interface_request_field": IsInterfaceRequestField, 347 "is_interface_request_field": IsInterfaceRequestField,
344 "is_map_pointer_field": IsMapPointerField, 348 "is_map_pointer_field": IsMapPointerField,
345 "is_object_field": IsObjectField, 349 "is_object_field": IsObjectField,
346 "is_string_pointer_field": IsStringPointerField, 350 "is_string_pointer_field": IsStringPointerField,
347 "is_struct_pointer_field": IsStructPointerField, 351 "is_struct_pointer_field": IsStructPointerField,
348 "is_union_field": IsUnionField, 352 "is_union_field": IsUnionField,
349 "js_type": JavaScriptType, 353 "js_type": JavaScriptType,
350 "payload_size": JavaScriptPayloadSize, 354 "payload_size": JavaScriptPayloadSize,
355 "get_relative_path": GetRelativePath,
351 "stylize_method": generator.StudlyCapsToCamel, 356 "stylize_method": generator.StudlyCapsToCamel,
352 "union_decode_snippet": JavaScriptUnionDecodeSnippet, 357 "union_decode_snippet": JavaScriptUnionDecodeSnippet,
353 "union_encode_snippet": JavaScriptUnionEncodeSnippet, 358 "union_encode_snippet": JavaScriptUnionEncodeSnippet,
354 "validate_array_params": JavaScriptValidateArrayParams, 359 "validate_array_params": JavaScriptValidateArrayParams,
355 "validate_enum_params": JavaScriptValidateEnumParams, 360 "validate_enum_params": JavaScriptValidateEnumParams,
356 "validate_map_params": JavaScriptValidateMapParams, 361 "validate_map_params": JavaScriptValidateMapParams,
357 "validate_nullable_params": JavaScriptNullableParam, 362 "validate_nullable_params": JavaScriptNullableParam,
358 "validate_struct_params": JavaScriptValidateStructParams, 363 "validate_struct_params": JavaScriptValidateStructParams,
359 "validate_union_params": JavaScriptValidateUnionParams, 364 "validate_union_params": JavaScriptValidateUnionParams,
360 } 365 }
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 return self.module.imports 416 return self.module.imports
412 417
413 def GetImportedInterfaces(self): 418 def GetImportedInterfaces(self):
414 interface_to_import = {}; 419 interface_to_import = {};
415 for each_import in self.module.imports: 420 for each_import in self.module.imports:
416 for each_interface in each_import["module"].interfaces: 421 for each_interface in each_import["module"].interfaces:
417 name = each_interface.name 422 name = each_interface.name
418 interface_to_import[name] = each_import["unique_name"] + "." + name 423 interface_to_import[name] = each_import["unique_name"] + "." + name
419 return interface_to_import; 424 return interface_to_import;
420 425
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698