| Index: bindings/scripts/compute_interfaces_info_overall.py
|
| diff --git a/bindings/scripts/compute_interfaces_info_overall.py b/bindings/scripts/compute_interfaces_info_overall.py
|
| index 658ccfade6f0124a7e48856872002d486e0ff5b6..6e311211ae92b78a02160b5ce58392bcc0f48f64 100755
|
| --- a/bindings/scripts/compute_interfaces_info_overall.py
|
| +++ b/bindings/scripts/compute_interfaces_info_overall.py
|
| @@ -81,12 +81,13 @@ import cPickle as pickle
|
| import optparse
|
| import sys
|
|
|
| -from utilities import read_pickle_files, write_pickle_file
|
| +from utilities import idl_filename_to_component, read_pickle_files, write_pickle_file
|
|
|
| INHERITED_EXTENDED_ATTRIBUTES = set([
|
| 'ActiveDOMObject',
|
| 'DependentLifetime',
|
| 'GarbageCollected',
|
| + 'NotScriptWrappable',
|
| 'WillBeGarbageCollected',
|
| ])
|
|
|
| @@ -159,6 +160,42 @@ def compute_inheritance_info(interface_name):
|
| })
|
|
|
|
|
| +def compute_global_type_info():
|
| + ancestors = {}
|
| + dictionaries = {}
|
| + component_dirs = {}
|
| + implemented_as_interfaces = {}
|
| + will_be_garbage_collected_interfaces = set()
|
| + garbage_collected_interfaces = set()
|
| + callback_interfaces = set()
|
| +
|
| + for interface_name, interface_info in interfaces_info.iteritems():
|
| + component_dirs[interface_name] = idl_filename_to_component(interface_info['full_path'])
|
| +
|
| + if interface_info['ancestors']:
|
| + ancestors[interface_name] = interface_info['ancestors']
|
| + if interface_info['is_callback_interface']:
|
| + callback_interfaces.add(interface_name)
|
| + if interface_info['is_dictionary']:
|
| + dictionaries[interface_name] = interface_info['is_dictionary']
|
| + if interface_info['implemented_as']:
|
| + implemented_as_interfaces[interface_name] = interface_info['implemented_as']
|
| +
|
| + inherited_extended_attributes = interface_info['inherited_extended_attributes']
|
| + if 'WillBeGarbageCollected' in inherited_extended_attributes:
|
| + will_be_garbage_collected_interfaces.add(interface_name)
|
| + if 'GarbageCollected' in inherited_extended_attributes:
|
| + garbage_collected_interfaces.add(interface_name)
|
| +
|
| + interfaces_info['ancestors'] = ancestors
|
| + interfaces_info['callback_interfaces'] = callback_interfaces
|
| + interfaces_info['dictionaries'] = dictionaries
|
| + interfaces_info['implemented_as_interfaces'] = implemented_as_interfaces
|
| + interfaces_info['garbage_collected_interfaces'] = garbage_collected_interfaces
|
| + interfaces_info['will_be_garbage_collected_interfaces'] = will_be_garbage_collected_interfaces
|
| + interfaces_info['component_dirs'] = component_dirs
|
| +
|
| +
|
| def compute_interfaces_info_overall(info_individuals):
|
| """Compute information about IDL files.
|
|
|
| @@ -227,10 +264,11 @@ def compute_interfaces_info_overall(info_individuals):
|
| # However, they are needed for legacy implemented interfaces that
|
| # are being treated as partial interfaces, until we remove these.
|
| # http://crbug.com/360435
|
| - implemented_interfaces_include_paths = [
|
| - implemented_interface_info['include_path']
|
| - for implemented_interface_info in implemented_interfaces_info
|
| - if implemented_interface_info['is_legacy_treat_as_partial_interface']]
|
| + implemented_interfaces_include_paths = []
|
| + for implemented_interface_info in implemented_interfaces_info:
|
| + if (implemented_interface_info['is_legacy_treat_as_partial_interface'] and
|
| + implemented_interface_info['include_path']):
|
| + implemented_interfaces_include_paths.append(implemented_interface_info['include_path'])
|
|
|
| interface_info.update({
|
| 'dependencies_full_paths': (partial_interfaces_full_paths +
|
| @@ -245,6 +283,10 @@ def compute_interfaces_info_overall(info_individuals):
|
| del interface_info['is_legacy_treat_as_partial_interface']
|
| del interface_info['parent']
|
|
|
| + # Compute global_type_info to interfaces_info so that idl_compiler does
|
| + # not need to always calculate the info in __init__.
|
| + compute_global_type_info()
|
| +
|
|
|
| ################################################################################
|
|
|
|
|