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

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

Issue 457483002: Blink-in-JS: Support partial interfaces in private scripts Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 4 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
« no previous file with comments | « Source/bindings/core/v8/PrivateScriptRunner.js ('k') | Source/bindings/scripts/v8_methods.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 if 'ImplementedInPrivateScript' in attribute.extended_attributes: 226 if 'ImplementedInPrivateScript' in attribute.extended_attributes:
227 arguments.append('toFrameIfNotDetached(info.GetIsolate()->GetCurrentCont ext())') 227 arguments.append('toFrameIfNotDetached(info.GetIsolate()->GetCurrentCont ext())')
228 arguments.append('impl') 228 arguments.append('impl')
229 arguments.append('&result') 229 arguments.append('&result')
230 arguments.extend(v8_utilities.call_with_arguments( 230 arguments.extend(v8_utilities.call_with_arguments(
231 attribute.extended_attributes.get('CallWith'))) 231 attribute.extended_attributes.get('CallWith')))
232 # Members of IDL partial interface definitions are implemented in C++ as 232 # Members of IDL partial interface definitions are implemented in C++ as
233 # static member functions, which for instance members (non-static members) 233 # static member functions, which for instance members (non-static members)
234 # take *impl as their first argument 234 # take *impl as their first argument
235 if ('PartialInterfaceImplementedAs' in attribute.extended_attributes and 235 if ('PartialInterfaceImplementedAs' in attribute.extended_attributes and
236 not 'ImplementedInPrivateScript' in attribute.extended_attributes and
236 not attribute.is_static): 237 not attribute.is_static):
237 arguments.append('*impl') 238 arguments.append('*impl')
238 if attribute.idl_type.is_explicit_nullable: 239 if attribute.idl_type.is_explicit_nullable:
239 arguments.append('isNull') 240 arguments.append('isNull')
240 if context['is_getter_raises_exception']: 241 if context['is_getter_raises_exception']:
241 arguments.append('exceptionState') 242 arguments.append('exceptionState')
242 return '%s(%s)' % (getter_name, ', '.join(arguments)) 243 return '%s(%s)' % (getter_name, ', '.join(arguments))
243 244
244 245
245 CONTENT_ATTRIBUTE_GETTER_NAMES = { 246 CONTENT_ATTRIBUTE_GETTER_NAMES = {
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
354 extended_attributes.get('SetterCallWith') or 355 extended_attributes.get('SetterCallWith') or
355 extended_attributes.get('CallWith')) 356 extended_attributes.get('CallWith'))
356 357
357 this_setter_base_name = setter_base_name(interface, attribute, arguments) 358 this_setter_base_name = setter_base_name(interface, attribute, arguments)
358 setter_name = scoped_name(interface, attribute, this_setter_base_name) 359 setter_name = scoped_name(interface, attribute, this_setter_base_name)
359 360
360 # Members of IDL partial interface definitions are implemented in C++ as 361 # Members of IDL partial interface definitions are implemented in C++ as
361 # static member functions, which for instance members (non-static members) 362 # static member functions, which for instance members (non-static members)
362 # take *impl as their first argument 363 # take *impl as their first argument
363 if ('PartialInterfaceImplementedAs' in extended_attributes and 364 if ('PartialInterfaceImplementedAs' in extended_attributes and
365 not 'ImplementedInPrivateScript' in extended_attributes and
364 not attribute.is_static): 366 not attribute.is_static):
365 arguments.append('*impl') 367 arguments.append('*impl')
366 idl_type = attribute.idl_type 368 idl_type = attribute.idl_type
367 if 'ImplementedInPrivateScript' in extended_attributes: 369 if 'ImplementedInPrivateScript' in extended_attributes:
368 arguments.append('toFrameIfNotDetached(info.GetIsolate()->GetCurrentCont ext())') 370 arguments.append('toFrameIfNotDetached(info.GetIsolate()->GetCurrentCont ext())')
369 arguments.append('impl') 371 arguments.append('impl')
370 arguments.append('cppValue') 372 arguments.append('cppValue')
371 elif idl_type.base_type == 'EventHandler': 373 elif idl_type.base_type == 'EventHandler':
372 getter_name = scoped_name(interface, attribute, cpp_name(attribute)) 374 getter_name = scoped_name(interface, attribute, cpp_name(attribute))
373 context['event_handler_getter_expression'] = '%s(%s)' % ( 375 context['event_handler_getter_expression'] = '%s(%s)' % (
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 lambda self: strip_suffix(self.base_type, 'Constructor')) 484 lambda self: strip_suffix(self.base_type, 'Constructor'))
483 485
484 486
485 def is_constructor_attribute(attribute): 487 def is_constructor_attribute(attribute):
486 # FIXME: replace this with [ConstructorAttribute] extended attribute 488 # FIXME: replace this with [ConstructorAttribute] extended attribute
487 return attribute.idl_type.base_type.endswith('Constructor') 489 return attribute.idl_type.base_type.endswith('Constructor')
488 490
489 491
490 def constructor_getter_context(interface, attribute, context): 492 def constructor_getter_context(interface, attribute, context):
491 context['needs_constructor_getter_callback'] = context['measure_as'] or cont ext['deprecate_as'] 493 context['needs_constructor_getter_callback'] = context['measure_as'] or cont ext['deprecate_as']
OLDNEW
« no previous file with comments | « Source/bindings/core/v8/PrivateScriptRunner.js ('k') | Source/bindings/scripts/v8_methods.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698