| Index: third_party/WebKit/Source/bindings/scripts/v8_attributes.py
|
| diff --git a/third_party/WebKit/Source/bindings/scripts/v8_attributes.py b/third_party/WebKit/Source/bindings/scripts/v8_attributes.py
|
| index d28bb73b68382f9b7faf5127494a391d5881177a..5100dc8da228c2b0754d3b45c2d05c0b85cac273 100644
|
| --- a/third_party/WebKit/Source/bindings/scripts/v8_attributes.py
|
| +++ b/third_party/WebKit/Source/bindings/scripts/v8_attributes.py
|
| @@ -68,14 +68,19 @@ def attribute_context(interface, attribute, interfaces):
|
| includes.add('core/inspector/ConsoleMessage.h')
|
|
|
| # [CheckSecurity]
|
| - is_do_not_check_security = 'DoNotCheckSecurity' in extended_attributes
|
| + is_cross_origin = 'CrossOrigin' in extended_attributes
|
| + # TODO(dcheng): It doesn't seem to make sense for this to be mutually
|
| + # exclusive from CrossOrigin.
|
| is_check_security_for_receiver = (
|
| has_extended_attribute_value(interface, 'CheckSecurity', 'Receiver') and
|
| - not is_do_not_check_security)
|
| + not is_cross_origin)
|
| is_check_security_for_return_value = (
|
| has_extended_attribute_value(attribute, 'CheckSecurity', 'ReturnValue'))
|
| if is_check_security_for_receiver or is_check_security_for_return_value:
|
| includes.add('bindings/core/v8/BindingSecurity.h')
|
| + # [CrossOrigin]
|
| + if has_extended_attribute_value(attribute, 'CrossOrigin', 'Setter'):
|
| + includes.add('bindings/core/v8/V8CrossOriginSetterInfo.h')
|
| # [Constructor]
|
| # TODO(yukishiino): Constructors are much like methods although constructors
|
| # are not methods. Constructors must be data-type properties, and we can
|
| @@ -133,6 +138,10 @@ def attribute_context(interface, attribute, interfaces):
|
| 'enum_type': idl_type.enum_type,
|
| 'enum_values': idl_type.enum_values,
|
| 'exposed_test': v8_utilities.exposed(attribute, interface), # [Exposed]
|
| + 'has_cross_origin_getter':
|
| + has_extended_attribute_value(attribute, 'CrossOrigin', None) or
|
| + has_extended_attribute_value(attribute, 'CrossOrigin', 'Getter'),
|
| + 'has_cross_origin_setter': has_extended_attribute_value(attribute, 'CrossOrigin', 'Setter'),
|
| 'has_custom_getter': has_custom_getter(attribute),
|
| 'has_custom_setter': has_custom_setter(attribute),
|
| 'has_setter': has_setter(interface, attribute),
|
| @@ -532,18 +541,10 @@ def has_setter(interface, attribute):
|
| return is_writable(attribute)
|
|
|
|
|
| -# [DoNotCheckSecurity], [Unforgeable]
|
| +# [Unforgeable]
|
| def access_control_list(interface, attribute):
|
| extended_attributes = attribute.extended_attributes
|
| access_control = []
|
| - if 'DoNotCheckSecurity' in extended_attributes:
|
| - do_not_check_security = extended_attributes['DoNotCheckSecurity']
|
| - if do_not_check_security == 'Setter':
|
| - access_control.append('v8::ALL_CAN_WRITE')
|
| - else:
|
| - access_control.append('v8::ALL_CAN_READ')
|
| - if has_setter(interface, attribute):
|
| - access_control.append('v8::ALL_CAN_WRITE')
|
| if is_unforgeable(interface, attribute):
|
| access_control.append('v8::PROHIBITS_OVERWRITING')
|
| return access_control or ['v8::DEFAULT']
|
|
|