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

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

Issue 2780093003: V8 bindings gen: Error if OriginTrialEnabled and SecureContext together. (Closed)
Patch Set: 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
« no previous file with comments | « third_party/WebKit/Source/bindings/modules/v8/ConditionalFeaturesForModules.cpp ('k') | no next file » | 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 368 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 if interface is not None: 379 if interface is not None:
380 measure_as_name = '%s_%s' % (capitalize(interface.name), measure_as_ name) 380 measure_as_name = '%s_%s' % (capitalize(interface.name), measure_as_ name)
381 return lambda suffix: 'V8%s_%s' % (measure_as_name, suffix) 381 return lambda suffix: 'V8%s_%s' % (measure_as_name, suffix)
382 return None 382 return None
383 383
384 384
385 # [OriginTrialEnabled] 385 # [OriginTrialEnabled]
386 def origin_trial_enabled_function_name(definition_or_member): 386 def origin_trial_enabled_function_name(definition_or_member):
387 """Returns the name of the OriginTrials enabled function. 387 """Returns the name of the OriginTrials enabled function.
388 388
389 An exception is raised if both the OriginTrialEnabled and RuntimeEnabled 389 An exception is raised if OriginTrialEnabled is used in conjunction with any
390 extended attributes are applied to the same IDL member. Only one of the 390 of the following (which must be mutually exclusive with origin trials):
391 two attributes can be applied to any member - they are mutually exclusive. 391 - RuntimeEnabled
392 - SecureContext
392 393
393 The returned function checks if the IDL member should be enabled. 394 The returned function checks if the IDL member should be enabled.
394 Given extended attribute OriginTrialEnabled=FeatureName, return: 395 Given extended attribute OriginTrialEnabled=FeatureName, return:
395 OriginTrials::{featureName}Enabled 396 OriginTrials::{featureName}Enabled
396 397
397 If the OriginTrialEnabled extended attribute is found, the includes are 398 If the OriginTrialEnabled extended attribute is found, the includes are
398 also updated as a side-effect. 399 also updated as a side-effect.
399 """ 400 """
400 extended_attributes = definition_or_member.extended_attributes 401 extended_attributes = definition_or_member.extended_attributes
401 is_origin_trial_enabled = 'OriginTrialEnabled' in extended_attributes 402 is_origin_trial_enabled = 'OriginTrialEnabled' in extended_attributes
402 403
403 if is_origin_trial_enabled and 'RuntimeEnabled' in extended_attributes: 404 if is_origin_trial_enabled and 'RuntimeEnabled' in extended_attributes:
404 raise Exception('[OriginTrialEnabled] and [RuntimeEnabled] must ' 405 raise Exception('[OriginTrialEnabled] and [RuntimeEnabled] must '
405 'not be specified on the same definition: ' 406 'not be specified on the same definition: %s'
406 '%s.%s' % (definition_or_member.idl_name, definition_or_ member.name)) 407 % definition_or_member.name)
Matt Giuca 2017/03/29 05:09:33 This was crashing on idl_name... idl_name was remo
408
409 if is_origin_trial_enabled and 'SecureContext' in extended_attributes:
410 raise Exception('[OriginTrialEnabled] and [SecureContext] must '
411 'not be specified on the same definition '
412 '(see https://crbug.com/695123 for workaround): %s'
413 % definition_or_member.name)
407 414
408 if is_origin_trial_enabled: 415 if is_origin_trial_enabled:
409 trial_name = extended_attributes['OriginTrialEnabled'] 416 trial_name = extended_attributes['OriginTrialEnabled']
410 return 'OriginTrials::%sEnabled' % uncapitalize(trial_name) 417 return 'OriginTrials::%sEnabled' % uncapitalize(trial_name)
411 418
412 is_feature_policy_enabled = 'FeaturePolicy' in extended_attributes 419 is_feature_policy_enabled = 'FeaturePolicy' in extended_attributes
Matt Giuca 2017/03/29 05:09:33 This looks like exactly the same logic as OriginTr
Yuki 2017/03/29 06:38:06 Looks like [FeaturePolicy] is deprecated and actua
haraken 2017/03/29 06:43:11 This looks interesting. +iclelland What's your pl
413 420
414 if is_feature_policy_enabled and 'RuntimeEnabled' in extended_attributes: 421 if is_feature_policy_enabled and 'RuntimeEnabled' in extended_attributes:
415 raise Exception('[FeaturePolicy] and [RuntimeEnabled] must ' 422 raise Exception('[FeaturePolicy] and [RuntimeEnabled] must '
416 'not be specified on the same definition: ' 423 'not be specified on the same definition: %s'
417 '%s.%s' % (definition_or_member.idl_name, definition_or_ member.name)) 424 % definition_or_member.name)
418 425
419 if is_feature_policy_enabled: 426 if is_feature_policy_enabled:
420 includes.add('bindings/core/v8/ScriptState.h') 427 includes.add('bindings/core/v8/ScriptState.h')
421 includes.add('platform/feature_policy/FeaturePolicy.h') 428 includes.add('platform/feature_policy/FeaturePolicy.h')
422 429
423 trial_name = extended_attributes['FeaturePolicy'] 430 trial_name = extended_attributes['FeaturePolicy']
424 return 'FeaturePolicy::%sEnabled' % uncapitalize(trial_name) 431 return 'FeaturePolicy::%sEnabled' % uncapitalize(trial_name)
425 432
426 return None 433 return None
427 434
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
645 return None 652 return None
646 653
647 654
648 IdlInterface.legacy_caller = property(legacy_caller) 655 IdlInterface.legacy_caller = property(legacy_caller)
649 IdlInterface.indexed_property_getter = property(indexed_property_getter) 656 IdlInterface.indexed_property_getter = property(indexed_property_getter)
650 IdlInterface.indexed_property_setter = property(indexed_property_setter) 657 IdlInterface.indexed_property_setter = property(indexed_property_setter)
651 IdlInterface.indexed_property_deleter = property(indexed_property_deleter) 658 IdlInterface.indexed_property_deleter = property(indexed_property_deleter)
652 IdlInterface.named_property_getter = property(named_property_getter) 659 IdlInterface.named_property_getter = property(named_property_getter)
653 IdlInterface.named_property_setter = property(named_property_setter) 660 IdlInterface.named_property_setter = property(named_property_setter)
654 IdlInterface.named_property_deleter = property(named_property_deleter) 661 IdlInterface.named_property_deleter = property(named_property_deleter)
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/bindings/modules/v8/ConditionalFeaturesForModules.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698