| Index: third_party/WebKit/Source/bindings/scripts/v8_utilities.py
|
| diff --git a/third_party/WebKit/Source/bindings/scripts/v8_utilities.py b/third_party/WebKit/Source/bindings/scripts/v8_utilities.py
|
| index 723bb55c77a94accf20f7910f852acb16beb121a..183763570ceb21108928d84ef7249b514e7e816e 100644
|
| --- a/third_party/WebKit/Source/bindings/scripts/v8_utilities.py
|
| +++ b/third_party/WebKit/Source/bindings/scripts/v8_utilities.py
|
| @@ -366,27 +366,44 @@ def measure_as(definition_or_member, interface):
|
| return None
|
|
|
|
|
| -def runtime_feature_name(definition_or_member):
|
| +# [OriginTrialEnabled]
|
| +def origin_trial_enabled_function_name(definition_or_member, interface):
|
| + """Returns the name of the OriginTrials enabled function.
|
| +
|
| + An exception is raised if both the OriginTrialEnabled and RuntimeEnabled
|
| + extended attributes are applied to the same IDL member. Only one of the
|
| + two attributes can be applied to any member - they are mutually exclusive.
|
| +
|
| + The returned function checks if the IDL member should be enabled.
|
| + Given extended attribute OriginTrialEnabled=FeatureName, return:
|
| + OriginTrials::{featureName}Enabled
|
| +
|
| + If the OriginTrialEnabled extended attribute is found, the includes are
|
| + also updated as a side-effect.
|
| + """
|
| extended_attributes = definition_or_member.extended_attributes
|
| - if 'RuntimeEnabled' not in extended_attributes:
|
| - return None
|
| - return extended_attributes['RuntimeEnabled']
|
| + is_origin_trial_enabled = 'OriginTrialEnabled' in extended_attributes
|
|
|
| + if (is_origin_trial_enabled and 'RuntimeEnabled' in extended_attributes):
|
| + raise Exception('[OriginTrialEnabled] and [RuntimeEnabled] must '
|
| + 'not be specified on the same definition: '
|
| + '%s.%s' % (definition_or_member.idl_name, definition_or_member.name))
|
|
|
| -def is_origin_trial_enabled(definition_or_member):
|
| - return 'OriginTrialEnabled' in definition_or_member.extended_attributes
|
| + if is_origin_trial_enabled:
|
| + includes.add('core/inspector/ConsoleMessage.h')
|
| + includes.add('core/origin_trials/OriginTrials.h')
|
|
|
| + trial_name = extended_attributes['OriginTrialEnabled']
|
| + return 'OriginTrials::%sEnabled' % uncapitalize(trial_name)
|
|
|
| -def origin_trial_name(definition_or_member):
|
| - return definition_or_member.extended_attributes['OriginTrialEnabled'] if is_origin_trial_enabled(definition_or_member) else None
|
| + return None
|
|
|
|
|
| -def origin_trial_enabled_function(definition_or_member):
|
| - trial_name = origin_trial_name(definition_or_member)
|
| - feature_name = runtime_feature_name(definition_or_member)
|
| - if not feature_name or not trial_name:
|
| - return
|
| - return 'OriginTrials::%sEnabled' % uncapitalize(feature_name)
|
| +def runtime_feature_name(definition_or_member):
|
| + extended_attributes = definition_or_member.extended_attributes
|
| + if 'RuntimeEnabled' not in extended_attributes:
|
| + return None
|
| + return extended_attributes['RuntimeEnabled']
|
|
|
|
|
| # [RuntimeEnabled]
|
| @@ -396,17 +413,16 @@ def runtime_enabled_function_name(definition_or_member):
|
| The returned function checks if a method/attribute is enabled.
|
| Given extended attribute RuntimeEnabled=FeatureName, return:
|
| RuntimeEnabledFeatures::{featureName}Enabled
|
| +
|
| + If the RuntimeEnabled extended attribute is found, the includes
|
| + are also updated as a side-effect.
|
| """
|
| feature_name = runtime_feature_name(definition_or_member)
|
|
|
| - # If an origin trial is on the method/attribute, it overrides the runtime
|
| - # enabled status. For now, we are unconditionally installing these
|
| - # attributes/methods, so we are acting as though the runtime enabled
|
| - # function doesn't exist. (It is checked in the generated OriginTrials
|
| - # function, instead)
|
| - trial_name = origin_trial_name(definition_or_member)
|
| - if not feature_name or trial_name:
|
| + if not feature_name:
|
| return
|
| +
|
| + includes.add('platform/RuntimeEnabledFeatures.h')
|
| return 'RuntimeEnabledFeatures::%sEnabled' % uncapitalize(feature_name)
|
|
|
|
|
|
|