OLD | NEW |
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 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 from copy import copy | 5 from copy import copy |
6 import logging | 6 import logging |
7 import os | 7 import os |
8 import posixpath | 8 import posixpath |
9 | 9 |
10 from data_source import DataSource | 10 from data_source import DataSource |
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
375 self._AddCommonProperties(function_dict, function) | 375 self._AddCommonProperties(function_dict, function) |
376 if function.returns: | 376 if function.returns: |
377 function_dict['returns'] = self._GenerateType(function.returns) | 377 function_dict['returns'] = self._GenerateType(function.returns) |
378 with self._current_node.Descend(function.simple_name): | 378 with self._current_node.Descend(function.simple_name): |
379 with self._current_node.Descend('parameters'): | 379 with self._current_node.Descend('parameters'): |
380 for param in function.params: | 380 for param in function.params: |
381 function_dict['parameters'].append(self._GenerateProperty(param)) | 381 function_dict['parameters'].append(self._GenerateProperty(param)) |
382 if function.callback is not None: | 382 if function.callback is not None: |
383 # Show the callback as an extra parameter. | 383 # Show the callback as an extra parameter. |
384 function_dict['parameters'].append( | 384 function_dict['parameters'].append( |
385 self._GenerateCallbackProperty(function.callback)) | 385 self._GenerateCallbackProperty(function.callback, |
| 386 function_dict['callback'])) |
386 if len(function_dict['parameters']) > 0: | 387 if len(function_dict['parameters']) > 0: |
387 function_dict['parameters'][-1]['last'] = True | 388 function_dict['parameters'][-1]['last'] = True |
388 return function_dict | 389 return function_dict |
389 | 390 |
390 def _GenerateEvents(self, events): | 391 def _GenerateEvents(self, events): |
391 with self._current_node.Descend('events'): | 392 with self._current_node.Descend('events'): |
392 return [self._GenerateEvent(e) for e in events.values() | 393 return [self._GenerateEvent(e) for e in events.values() |
393 if not e.supports_dom] | 394 if not e.supports_dom] |
394 | 395 |
395 def _GenerateDomEvents(self, events): | 396 def _GenerateDomEvents(self, events): |
(...skipping 26 matching lines...) Expand all Loading... |
422 # information stored in |event|. | 423 # information stored in |event|. |
423 if event.supports_listeners: | 424 if event.supports_listeners: |
424 callback_object = model.Function(parent=event, | 425 callback_object = model.Function(parent=event, |
425 name='callback', | 426 name='callback', |
426 json={}, | 427 json={}, |
427 namespace=event.parent, | 428 namespace=event.parent, |
428 origin='') | 429 origin='') |
429 callback_object.params = event.params | 430 callback_object.params = event.params |
430 if event.callback: | 431 if event.callback: |
431 callback_object.callback = event.callback | 432 callback_object.callback = event.callback |
432 callback_parameters = self._GenerateCallbackProperty(callback_object) | 433 callback = self._GenerateFunction(callback_object) |
| 434 callback_parameters = self._GenerateCallbackProperty(callback_object, |
| 435 callback) |
433 callback_parameters['last'] = True | 436 callback_parameters['last'] = True |
434 event_dict['byName']['addListener'] = { | 437 event_dict['byName']['addListener'] = { |
435 'name': 'addListener', | 438 'name': 'addListener', |
436 'callback': self._GenerateFunction(callback_object), | 439 'callback': callback, |
437 'parameters': [callback_parameters] | 440 'parameters': [callback_parameters] |
438 } | 441 } |
439 with self._current_node.Descend(event.simple_name, ignore=('properties',)): | 442 with self._current_node.Descend(event.simple_name, ignore=('properties',)): |
440 if event.supports_dom: | 443 if event.supports_dom: |
441 # Treat params as properties of the custom Event object associated with | 444 # Treat params as properties of the custom Event object associated with |
442 # this DOM Event. | 445 # this DOM Event. |
443 event_dict['properties'] += [self._GenerateProperty(param) | 446 event_dict['properties'] += [self._GenerateProperty(param) |
444 for param in event.params] | 447 for param in event.params] |
445 return event_dict | 448 return event_dict |
446 | 449 |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
507 if value is not None: | 510 if value is not None: |
508 if isinstance(value, int): | 511 if isinstance(value, int): |
509 property_dict['value'] = _FormatValue(value) | 512 property_dict['value'] = _FormatValue(value) |
510 else: | 513 else: |
511 property_dict['value'] = value | 514 property_dict['value'] = value |
512 else: | 515 else: |
513 self._RenderTypeInformation(type_, property_dict) | 516 self._RenderTypeInformation(type_, property_dict) |
514 | 517 |
515 return property_dict | 518 return property_dict |
516 | 519 |
517 def _GenerateCallbackProperty(self, callback): | 520 def _GenerateCallbackProperty(self, callback, callback_dict): |
518 property_dict = { | 521 property_dict = { |
519 'name': callback.simple_name, | 522 'name': callback.simple_name, |
520 'description': callback.description, | 523 'description': callback.description, |
521 'optional': callback.optional, | 524 'optional': callback.optional, |
522 'is_callback': True, | 525 'isCallback': True, |
| 526 'asFunction': callback_dict, |
523 'id': _CreateId(callback, 'property'), | 527 'id': _CreateId(callback, 'property'), |
524 'simple_type': 'function', | 528 'simple_type': 'function', |
525 } | 529 } |
526 if (callback.parent is not None and | 530 if (callback.parent is not None and |
527 not isinstance(callback.parent, model.Namespace)): | 531 not isinstance(callback.parent, model.Namespace)): |
528 property_dict['parentName'] = callback.parent.simple_name | 532 property_dict['parentName'] = callback.parent.simple_name |
529 return property_dict | 533 return property_dict |
530 | 534 |
531 def _RenderTypeInformation(self, type_, dst_dict): | 535 def _RenderTypeInformation(self, type_, dst_dict): |
532 with self._current_node.Descend(ignore=('types', 'properties')): | 536 with self._current_node.Descend(ignore=('types', 'properties')): |
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
815 getter = lambda: 0 | 819 getter = lambda: 0 |
816 getter.get = lambda api_name: self._GetImpl(platform, api_name).Get() | 820 getter.get = lambda api_name: self._GetImpl(platform, api_name).Get() |
817 return getter | 821 return getter |
818 | 822 |
819 def Cron(self): | 823 def Cron(self): |
820 futures = [] | 824 futures = [] |
821 for platform in GetPlatforms(): | 825 for platform in GetPlatforms(): |
822 futures += [self._GetImpl(platform, name) | 826 futures += [self._GetImpl(platform, name) |
823 for name in self._platform_bundle.GetAPIModels(platform).GetNames()] | 827 for name in self._platform_bundle.GetAPIModels(platform).GetNames()] |
824 return Collect(futures, except_pass=FileNotFoundError) | 828 return Collect(futures, except_pass=FileNotFoundError) |
OLD | NEW |