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

Side by Side Diff: third_party/WebKit/Source/bindings/scripts/v8_methods.py

Issue 2707243006: [SharedArrayBuffer] Prevent SharedArrayBuffer being used in Web APIs (Closed)
Patch Set: remove unused checks Created 3 years, 8 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
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 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 idl_type.is_explicit_nullable) 101 idl_type.is_explicit_nullable)
102 102
103 103
104 def method_context(interface, method, is_visible=True): 104 def method_context(interface, method, is_visible=True):
105 arguments = method.arguments 105 arguments = method.arguments
106 extended_attributes = method.extended_attributes 106 extended_attributes = method.extended_attributes
107 idl_type = method.idl_type 107 idl_type = method.idl_type
108 is_static = method.is_static 108 is_static = method.is_static
109 name = method.name 109 name = method.name
110 110
111 # TODO(binji): better way to do this?
112 if idl_type.is_explicit_nullable:
113 this_cpp_type = v8_types.cpp_template_type('Nullable',
114 idl_type.cpp_type)
115 elif idl_type.is_array_buffer_view_or_typed_array:
116 this_cpp_type = '%s::TypedArrayType*' % idl_type.cpp_type
haraken 2017/04/06 08:43:54 How is this type used? I cannot find this type in
binji 2017/04/09 00:40:02 This happens when a interface method returns an Ar
117 else:
118 this_cpp_type = idl_type.cpp_type
119
111 if is_visible: 120 if is_visible:
112 idl_type.add_includes_for_type(extended_attributes) 121 idl_type.add_includes_for_type(extended_attributes)
113 122
114 this_cpp_value = cpp_value(interface, method, len(arguments)) 123 this_cpp_value = cpp_value(interface, method, len(arguments))
115 124
116 is_call_with_script_arguments = has_extended_attribute_value(method, 'CallWi th', 'ScriptArguments') 125 is_call_with_script_arguments = has_extended_attribute_value(method, 'CallWi th', 'ScriptArguments')
117 if is_call_with_script_arguments: 126 if is_call_with_script_arguments:
118 includes.update(['bindings/core/v8/ScriptCallStack.h', 127 includes.update(['bindings/core/v8/ScriptCallStack.h',
119 'core/inspector/ScriptArguments.h']) 128 'core/inspector/ScriptArguments.h'])
120 is_call_with_script_state = has_extended_attribute_value(method, 'CallWith', 'ScriptState') 129 is_call_with_script_state = has_extended_attribute_value(method, 'CallWith', 'ScriptState')
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 if 'LenientThis' in extended_attributes: 161 if 'LenientThis' in extended_attributes:
153 raise Exception('[LenientThis] is not supported for operations.') 162 raise Exception('[LenientThis] is not supported for operations.')
154 163
155 argument_contexts = [ 164 argument_contexts = [
156 argument_context(interface, method, argument, index, is_visible=is_visib le) 165 argument_context(interface, method, argument, index, is_visible=is_visib le)
157 for index, argument in enumerate(arguments)] 166 for index, argument in enumerate(arguments)]
158 167
159 return { 168 return {
160 'activity_logging_world_list': v8_utilities.activity_logging_world_list( method), # [ActivityLogging] 169 'activity_logging_world_list': v8_utilities.activity_logging_world_list( method), # [ActivityLogging]
161 'arguments': argument_contexts, 170 'arguments': argument_contexts,
162 'cpp_type': (v8_types.cpp_template_type('Nullable', idl_type.cpp_type) 171 'cpp_type': this_cpp_type,
163 if idl_type.is_explicit_nullable else idl_type.cpp_type),
164 'cpp_value': this_cpp_value, 172 'cpp_value': this_cpp_value,
165 'cpp_type_initializer': idl_type.cpp_type_initializer, 173 'cpp_type_initializer': idl_type.cpp_type_initializer,
166 'deprecate_as': v8_utilities.deprecate_as(method), # [DeprecateAs] 174 'deprecate_as': v8_utilities.deprecate_as(method), # [DeprecateAs]
167 'do_not_test_new_object': 'DoNotTestNewObject' in extended_attributes, 175 'do_not_test_new_object': 'DoNotTestNewObject' in extended_attributes,
168 'exposed_test': v8_utilities.exposed(method, interface), # [Exposed] 176 'exposed_test': v8_utilities.exposed(method, interface), # [Exposed]
169 'has_exception_state': 177 'has_exception_state':
170 is_raises_exception or 178 is_raises_exception or
171 is_check_security_for_receiver or 179 is_check_security_for_receiver or
172 any(argument for argument in arguments 180 any(argument for argument in arguments
173 if (argument.idl_type.name == 'SerializedScriptValue' or 181 if (argument.idl_type.name == 'SerializedScriptValue' or
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 return method.idl_type and method.idl_type.name == 'Promise' 454 return method.idl_type and method.idl_type.name == 'Promise'
447 455
448 IdlOperation.returns_promise = property(method_returns_promise) 456 IdlOperation.returns_promise = property(method_returns_promise)
449 457
450 458
451 def argument_conversion_needs_exception_state(method, argument): 459 def argument_conversion_needs_exception_state(method, argument):
452 idl_type = argument.idl_type 460 idl_type = argument.idl_type
453 return (idl_type.v8_conversion_needs_exception_state or 461 return (idl_type.v8_conversion_needs_exception_state or
454 argument.is_variadic or 462 argument.is_variadic or
455 (method.returns_promise and idl_type.is_string_type)) 463 (method.returns_promise and idl_type.is_string_type))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698