| 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 cb770bb9492051f5897afb10dd0e83c8c1c585f9..151e1891495e27bf37c67bed300395cdb28f96e8 100644
|
| --- a/third_party/WebKit/Source/bindings/scripts/v8_utilities.py
|
| +++ b/third_party/WebKit/Source/bindings/scripts/v8_utilities.py
|
| @@ -380,6 +380,29 @@ def measure_as(definition_or_member, interface):
|
| return None
|
|
|
|
|
| +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']
|
| +
|
| +
|
| +def is_api_experiment_enabled(definition_or_member):
|
| + return 'APIExperimentEnabled' in definition_or_member.extended_attributes
|
| +
|
| +
|
| +def api_experiment_name(definition_or_member):
|
| + return definition_or_member.extended_attributes['APIExperimentEnabled'] if is_api_experiment_enabled(definition_or_member) else None
|
| +
|
| +
|
| +def api_experiment_enabled_function(definition_or_member):
|
| + experiment_name = api_experiment_name(definition_or_member)
|
| + feature_name = runtime_feature_name(definition_or_member)
|
| + if not feature_name or not experiment_name:
|
| + return
|
| + return 'ExperimentalFeatures::%sEnabled' % uncapitalize(feature_name)
|
| +
|
| +
|
| # [RuntimeEnabled]
|
| def runtime_enabled_function_name(definition_or_member):
|
| """Returns the name of the RuntimeEnabledFeatures function.
|
| @@ -388,10 +411,16 @@ def runtime_enabled_function_name(definition_or_member):
|
| Given extended attribute RuntimeEnabled=FeatureName, return:
|
| RuntimeEnabledFeatures::{featureName}Enabled
|
| """
|
| - extended_attributes = definition_or_member.extended_attributes
|
| - if 'RuntimeEnabled' not in extended_attributes:
|
| - return None
|
| - feature_name = extended_attributes['RuntimeEnabled']
|
| + feature_name = runtime_feature_name(definition_or_member)
|
| +
|
| + # If an API experiment is on the method/attribute, it overrides the runtime
|
| + # enabled status. For now, we are unconditionally installing experimental
|
| + # attributes/methods, so we are acting as though the runtime enabled
|
| + # function doesn't exist. (It is checked in the generated
|
| + # ExperimentalFeatures function, instead)
|
| + experiment_name = api_experiment_name(definition_or_member)
|
| + if not feature_name or experiment_name:
|
| + return
|
| return 'RuntimeEnabledFeatures::%sEnabled' % uncapitalize(feature_name)
|
|
|
|
|
|
|