Index: third_party/WebKit/Source/bindings/templates/constants.cpp |
diff --git a/third_party/WebKit/Source/bindings/templates/constants.cpp b/third_party/WebKit/Source/bindings/templates/constants.cpp |
index bac23ca38f6fa129543b54c134c7c6d3b8336fa0..e136729ffac8ac02187fe752043c8e1356b32064 100644 |
--- a/third_party/WebKit/Source/bindings/templates/constants.cpp |
+++ b/third_party/WebKit/Source/bindings/templates/constants.cpp |
@@ -34,13 +34,24 @@ const V8DOMConfiguration::ConstantConfiguration {{v8_class}}Constants[] = { |
}; |
V8DOMConfiguration::installConstants(isolate, functionTemplate, prototypeTemplate, {{v8_class}}Constants, WTF_ARRAY_LENGTH({{v8_class}}Constants)); |
{% endif %} |
+ExecutionContext* ec = currentExecutionContext(isolate); |
+ALLOW_UNUSED_LOCAL(ec); |
+String constantsErrorMessage; |
haraken
2015/12/16 02:16:41
What is the constantsErrorMessage for?
Daniel Nishi
2015/12/16 21:42:03
Removed.
|
+ALLOW_UNUSED_LOCAL(constantsErrorMessage); |
{# Runtime-enabled constants #} |
{% for constant_tuple in runtime_enabled_constants %} |
{% filter runtime_enabled(constant_tuple[0]) %} |
{% for constant in constant_tuple[1] %} |
{% set constant_name = constant.name.title().replace('_', '') %} |
+{% if constant.name in experimental_enabled_constants %} |
+if (Experiments::isApiEnabled(ec, "{{experimental_enabled_constants.get(constant.name)}}", constantsErrorMessage)) { |
+ const V8DOMConfiguration::ConstantConfiguration constant{{constant_name}}Configuration = {{constant_configuration(constant)}}; |
+ V8DOMConfiguration::installConstant(isolate, functionTemplate, prototypeTemplate, constant{{constant_name}}Configuration); |
+} |
+{% else %} |
const V8DOMConfiguration::ConstantConfiguration constant{{constant_name}}Configuration = {{constant_configuration(constant)}}; |
V8DOMConfiguration::installConstant(isolate, functionTemplate, prototypeTemplate, constant{{constant_name}}Configuration); |
+{% endif %} |
{% endfor %} |
{% endfilter %} |
{% endfor %} |
@@ -48,6 +59,13 @@ V8DOMConfiguration::installConstant(isolate, functionTemplate, prototypeTemplate |
{% for constant in special_getter_constants %} |
V8DOMConfiguration::installConstantWithGetter(isolate, functionTemplate, prototypeTemplate, "{{constant.name}}", {{cpp_class}}V8Internal::{{constant.name}}ConstantGetterCallback); |
{% endfor %} |
+{# Constants with [ExperimentEnabled] only #} |
+{% for constant in experimental_only_constants %} |
haraken
2015/12/16 02:16:42
Why do we need to distinguish experimental_only_co
Daniel Nishi
2015/12/16 21:42:03
Yes. This is being done so that they interact prop
|
+if (Experiments::isApiEnabled(ec, "{{constant['experimental_api_name']}}", constantsErrorMessage)) { |
+ const V8DOMConfiguration::ConstantConfiguration constant{{constant.name}}Configuration = {{constant_configuration(constant)}}; |
+ V8DOMConfiguration::installConstant(isolate, functionTemplate, prototypeTemplate, constant{{constant.name}}Configuration); |
+} |
+{% endfor %} |
{# Check constants #} |
{% if not do_not_check_constants %} |
{% for constant in constants %} |