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

Side by Side Diff: Source/bindings/scripts/v8_attributes.py

Issue 618373003: [bindings] partial interfaces should not violate componentization (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fixed http/tests/serviceworker/fetch\* regression Created 6 years, 2 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 | Annotate | Revision Log
OLDNEW
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 411 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 return '%s::%sAttr' % (namespace, content_attribute_name) 422 return '%s::%sAttr' % (namespace, content_attribute_name)
423 423
424 424
425 ################################################################################ 425 ################################################################################
426 # Attribute configuration 426 # Attribute configuration
427 ################################################################################ 427 ################################################################################
428 428
429 # [Replaceable] 429 # [Replaceable]
430 def setter_callback_name(interface, attribute): 430 def setter_callback_name(interface, attribute):
431 cpp_class_name = cpp_name(interface) 431 cpp_class_name = cpp_name(interface)
432 namespace_name = [cpp_class_name]
433 if interface.original_interface:
434 namespace_name.append('Partial')
435 namespace_name.append('V8Internal')
436
432 extended_attributes = attribute.extended_attributes 437 extended_attributes = attribute.extended_attributes
433 if (('Replaceable' in extended_attributes and 438 if (('Replaceable' in extended_attributes and
434 'PutForwards' not in extended_attributes) or 439 'PutForwards' not in extended_attributes) or
435 is_constructor_attribute(attribute)): 440 is_constructor_attribute(attribute)):
436 return '{0}V8Internal::{0}ForceSetAttributeOnThisCallback'.format(cpp_cl ass_name) 441 return '%s::%sForceSetAttributeOnThisCallback' % (
442 ''.join(namespace_name), cpp_class_name)
437 if attribute.is_read_only and 'PutForwards' not in extended_attributes: 443 if attribute.is_read_only and 'PutForwards' not in extended_attributes:
438 return '0' 444 return '0'
439 return '%sV8Internal::%sAttributeSetterCallback' % (cpp_class_name, attribut e.name) 445 return '%s::%sAttributeSetterCallback' % (''.join(namespace_name), attribute .name)
440 446
441 447
442 # [DoNotCheckSecurity], [Unforgeable] 448 # [DoNotCheckSecurity], [Unforgeable]
443 def access_control_list(attribute): 449 def access_control_list(attribute):
444 extended_attributes = attribute.extended_attributes 450 extended_attributes = attribute.extended_attributes
445 access_control = [] 451 access_control = []
446 if 'DoNotCheckSecurity' in extended_attributes: 452 if 'DoNotCheckSecurity' in extended_attributes:
447 do_not_check_security = extended_attributes['DoNotCheckSecurity'] 453 do_not_check_security = extended_attributes['DoNotCheckSecurity']
448 if do_not_check_security == 'Setter': 454 if do_not_check_security == 'Setter':
449 access_control.append('v8::ALL_CAN_WRITE') 455 access_control.append('v8::ALL_CAN_WRITE')
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 lambda self: strip_suffix(self.base_type, 'Constructor')) 499 lambda self: strip_suffix(self.base_type, 'Constructor'))
494 500
495 501
496 def is_constructor_attribute(attribute): 502 def is_constructor_attribute(attribute):
497 # FIXME: replace this with [ConstructorAttribute] extended attribute 503 # FIXME: replace this with [ConstructorAttribute] extended attribute
498 return attribute.idl_type.name.endswith('Constructor') 504 return attribute.idl_type.name.endswith('Constructor')
499 505
500 506
501 def constructor_getter_context(interface, attribute, context): 507 def constructor_getter_context(interface, attribute, context):
502 context['needs_constructor_getter_callback'] = context['measure_as'] or cont ext['deprecate_as'] 508 context['needs_constructor_getter_callback'] = context['measure_as'] or cont ext['deprecate_as']
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698