| OLD | NEW |
| 1 # Copyright (C) 2013 Google Inc. All rights reserved. | 1 # Copyright (C) 2013 Google Inc. All rights reserved. |
| 2 # | 2 # |
| 3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
| 4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
| 5 # met: | 5 # met: |
| 6 # | 6 # |
| 7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
| 8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
| 9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
| 10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 Extends IdlType with property |constructor_type_name|. | 31 Extends IdlType with property |constructor_type_name|. |
| 32 | 32 |
| 33 Design doc: http://www.chromium.org/developers/design-documents/idl-compiler | 33 Design doc: http://www.chromium.org/developers/design-documents/idl-compiler |
| 34 """ | 34 """ |
| 35 | 35 |
| 36 import idl_types | 36 import idl_types |
| 37 from idl_types import inherits_interface | 37 from idl_types import inherits_interface |
| 38 from v8_globals import includes, interfaces | 38 from v8_globals import includes, interfaces |
| 39 import v8_types | 39 import v8_types |
| 40 import v8_utilities | 40 import v8_utilities |
| 41 from v8_utilities import (capitalize, cpp_name, has_extended_attribute, | 41 from v8_utilities import (cpp_name_or_partial, capitalize, cpp_name, has_extende
d_attribute, |
| 42 has_extended_attribute_value, scoped_name, strip_suffi
x, | 42 has_extended_attribute_value, scoped_name, strip_suffi
x, |
| 43 uncapitalize, extended_attribute_value_as_list) | 43 uncapitalize, extended_attribute_value_as_list) |
| 44 | 44 |
| 45 | 45 |
| 46 def attribute_context(interface, attribute): | 46 def attribute_context(interface, attribute): |
| 47 idl_type = attribute.idl_type | 47 idl_type = attribute.idl_type |
| 48 base_idl_type = idl_type.base_type | 48 base_idl_type = idl_type.base_type |
| 49 extended_attributes = attribute.extended_attributes | 49 extended_attributes = attribute.extended_attributes |
| 50 | 50 |
| 51 idl_type.add_includes_for_type() | 51 idl_type.add_includes_for_type() |
| (...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 427 return '%s::%sAttr' % (namespace, content_attribute_name) | 427 return '%s::%sAttr' % (namespace, content_attribute_name) |
| 428 | 428 |
| 429 | 429 |
| 430 ################################################################################ | 430 ################################################################################ |
| 431 # Attribute configuration | 431 # Attribute configuration |
| 432 ################################################################################ | 432 ################################################################################ |
| 433 | 433 |
| 434 # [Replaceable] | 434 # [Replaceable] |
| 435 def setter_callback_name(interface, attribute): | 435 def setter_callback_name(interface, attribute): |
| 436 cpp_class_name = cpp_name(interface) | 436 cpp_class_name = cpp_name(interface) |
| 437 cpp_class_name_or_partial = cpp_name_or_partial(interface) |
| 438 |
| 437 extended_attributes = attribute.extended_attributes | 439 extended_attributes = attribute.extended_attributes |
| 438 if (('Replaceable' in extended_attributes and | 440 if (('Replaceable' in extended_attributes and |
| 439 'PutForwards' not in extended_attributes) or | 441 'PutForwards' not in extended_attributes) or |
| 440 is_constructor_attribute(attribute)): | 442 is_constructor_attribute(attribute)): |
| 441 return '{0}V8Internal::{0}ForceSetAttributeOnThisCallback'.format(cpp_cl
ass_name) | 443 return '%sV8Internal::%sForceSetAttributeOnThisCallback' % ( |
| 444 cpp_class_name_or_partial, cpp_class_name) |
| 442 if attribute.is_read_only and 'PutForwards' not in extended_attributes: | 445 if attribute.is_read_only and 'PutForwards' not in extended_attributes: |
| 443 return '0' | 446 return '0' |
| 444 return '%sV8Internal::%sAttributeSetterCallback' % (cpp_class_name, attribut
e.name) | 447 return '%sV8Internal::%sAttributeSetterCallback' % (cpp_class_name_or_partia
l, attribute.name) |
| 445 | 448 |
| 446 | 449 |
| 447 # [DoNotCheckSecurity], [Unforgeable] | 450 # [DoNotCheckSecurity], [Unforgeable] |
| 448 def access_control_list(attribute): | 451 def access_control_list(attribute): |
| 449 extended_attributes = attribute.extended_attributes | 452 extended_attributes = attribute.extended_attributes |
| 450 access_control = [] | 453 access_control = [] |
| 451 if 'DoNotCheckSecurity' in extended_attributes: | 454 if 'DoNotCheckSecurity' in extended_attributes: |
| 452 do_not_check_security = extended_attributes['DoNotCheckSecurity'] | 455 do_not_check_security = extended_attributes['DoNotCheckSecurity'] |
| 453 if do_not_check_security == 'Setter': | 456 if do_not_check_security == 'Setter': |
| 454 access_control.append('v8::ALL_CAN_WRITE') | 457 access_control.append('v8::ALL_CAN_WRITE') |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 498 lambda self: strip_suffix(self.base_type, 'Constructor')) | 501 lambda self: strip_suffix(self.base_type, 'Constructor')) |
| 499 | 502 |
| 500 | 503 |
| 501 def is_constructor_attribute(attribute): | 504 def is_constructor_attribute(attribute): |
| 502 # FIXME: replace this with [ConstructorAttribute] extended attribute | 505 # FIXME: replace this with [ConstructorAttribute] extended attribute |
| 503 return attribute.idl_type.name.endswith('Constructor') | 506 return attribute.idl_type.name.endswith('Constructor') |
| 504 | 507 |
| 505 | 508 |
| 506 def constructor_getter_context(interface, attribute, context): | 509 def constructor_getter_context(interface, attribute, context): |
| 507 context['needs_constructor_getter_callback'] = context['measure_as'] or cont
ext['deprecate_as'] | 510 context['needs_constructor_getter_callback'] = context['measure_as'] or cont
ext['deprecate_as'] |
| OLD | NEW |