| OLD | NEW |
| 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 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 216 nullable = JavaScriptNullableParam(packed_field) | 216 nullable = JavaScriptNullableParam(packed_field) |
| 217 return "%s, %s" % (JavaScriptFieldOffset(packed_field), nullable) | 217 return "%s, %s" % (JavaScriptFieldOffset(packed_field), nullable) |
| 218 | 218 |
| 219 | 219 |
| 220 def JavaScriptValidateHandleParams(packed_field): | 220 def JavaScriptValidateHandleParams(packed_field): |
| 221 nullable = JavaScriptNullableParam(packed_field) | 221 nullable = JavaScriptNullableParam(packed_field) |
| 222 field_offset = JavaScriptFieldOffset(packed_field) | 222 field_offset = JavaScriptFieldOffset(packed_field) |
| 223 return "%s, %s" % (field_offset, nullable) | 223 return "%s, %s" % (field_offset, nullable) |
| 224 | 224 |
| 225 | 225 |
| 226 |
| 227 |
| 228 def JavaScriptProxyMethodParameterValue(parameter): |
| 229 name = parameter.name; |
| 230 if (IsInterfaceParameter(parameter)): |
| 231 type = JavaScriptType(parameter.kind) |
| 232 return "core.isHandle(%s) ? %s : connection.bindProxyClient" \ |
| 233 "(%s, %s, %s.client)" % (name, name, name, type, type) |
| 234 if (IsInterfaceRequestParameter(parameter)): |
| 235 type = JavaScriptType(parameter.kind.kind) |
| 236 return "core.isHandle(%s) ? %s : connection.bindProxyClient" \ |
| 237 "(%s, %s.client, %s)" % (name, name, name, type, type) |
| 238 return name; |
| 239 |
| 240 def JavaScriptStubMethodParameterValue(parameter): |
| 241 name = parameter.name; |
| 242 if (IsInterfaceParameter(parameter)): |
| 243 type = JavaScriptType(parameter.kind) |
| 244 return "connection.bindProxyHandle(%s, %s.client, %s)" % (name, type, type) |
| 245 if (IsInterfaceRequestParameter(parameter)): |
| 246 type = JavaScriptType(parameter.kind.kind) |
| 247 return "connection.bindProxyHandle(%s, %s, %s.client)" % (name, type, type) |
| 248 return name; |
| 249 |
| 226 def TranslateConstants(token): | 250 def TranslateConstants(token): |
| 227 if isinstance(token, (mojom.EnumValue, mojom.NamedValue)): | 251 if isinstance(token, (mojom.EnumValue, mojom.NamedValue)): |
| 228 # Both variable and enum constants are constructed like: | 252 # Both variable and enum constants are constructed like: |
| 229 # NamespaceUid.Struct[.Enum].CONSTANT_NAME | 253 # NamespaceUid.Struct[.Enum].CONSTANT_NAME |
| 230 name = [] | 254 name = [] |
| 231 if token.imported_from: | 255 if token.imported_from: |
| 232 name.append(token.imported_from["unique_name"]) | 256 name.append(token.imported_from["unique_name"]) |
| 233 if token.parent_kind: | 257 if token.parent_kind: |
| 234 name.append(token.parent_kind.name) | 258 name.append(token.parent_kind.name) |
| 235 if isinstance(token, mojom.EnumValue): | 259 if isinstance(token, mojom.EnumValue): |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 285 "field_offset": JavaScriptFieldOffset, | 309 "field_offset": JavaScriptFieldOffset, |
| 286 "has_callbacks": mojom.HasCallbacks, | 310 "has_callbacks": mojom.HasCallbacks, |
| 287 "is_array_pointer_field": IsArrayPointerField, | 311 "is_array_pointer_field": IsArrayPointerField, |
| 288 "is_map_pointer_field": IsMapPointerField, | 312 "is_map_pointer_field": IsMapPointerField, |
| 289 "is_struct_pointer_field": IsStructPointerField, | 313 "is_struct_pointer_field": IsStructPointerField, |
| 290 "is_string_pointer_field": IsStringPointerField, | 314 "is_string_pointer_field": IsStringPointerField, |
| 291 "is_handle_field": IsHandleField, | 315 "is_handle_field": IsHandleField, |
| 292 "js_type": JavaScriptType, | 316 "js_type": JavaScriptType, |
| 293 "is_interface_request_parameter": IsInterfaceRequestParameter, | 317 "is_interface_request_parameter": IsInterfaceRequestParameter, |
| 294 "is_interface_parameter": IsInterfaceParameter, | 318 "is_interface_parameter": IsInterfaceParameter, |
| 319 "js_proxy_method_parameter_value": JavaScriptProxyMethodParameterValue, |
| 320 "js_stub_method_parameter_value": JavaScriptStubMethodParameterValue, |
| 295 "stylize_method": generator.StudlyCapsToCamel, | 321 "stylize_method": generator.StudlyCapsToCamel, |
| 296 "validate_array_params": JavaScriptValidateArrayParams, | 322 "validate_array_params": JavaScriptValidateArrayParams, |
| 297 "validate_handle_params": JavaScriptValidateHandleParams, | 323 "validate_handle_params": JavaScriptValidateHandleParams, |
| 298 "validate_map_params": JavaScriptValidateMapParams, | 324 "validate_map_params": JavaScriptValidateMapParams, |
| 299 "validate_string_params": JavaScriptValidateStringParams, | 325 "validate_string_params": JavaScriptValidateStringParams, |
| 300 "validate_struct_params": JavaScriptValidateStructParams, | 326 "validate_struct_params": JavaScriptValidateStructParams, |
| 301 } | 327 } |
| 302 | 328 |
| 303 def GetParameters(self): | 329 def GetParameters(self): |
| 304 return { | 330 return { |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 345 return self.module.imports | 371 return self.module.imports |
| 346 | 372 |
| 347 def GetImportedInterfaces(self): | 373 def GetImportedInterfaces(self): |
| 348 interface_to_import = {}; | 374 interface_to_import = {}; |
| 349 for each_import in self.module.imports: | 375 for each_import in self.module.imports: |
| 350 for each_interface in each_import["module"].interfaces: | 376 for each_interface in each_import["module"].interfaces: |
| 351 name = each_interface.name | 377 name = each_interface.name |
| 352 interface_to_import[name] = each_import["unique_name"] + "." + name | 378 interface_to_import[name] = each_import["unique_name"] + "." + name |
| 353 return interface_to_import; | 379 return interface_to_import; |
| 354 | 380 |
| OLD | NEW |