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

Unified Diff: third_party/WebKit/Source/bindings/templates/methods.cpp

Issue 1531443003: [bindings] Implement an ExperimentEnabled IDL extended attribute. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/bindings/templates/methods.cpp
diff --git a/third_party/WebKit/Source/bindings/templates/methods.cpp b/third_party/WebKit/Source/bindings/templates/methods.cpp
index c9295cdb161dd59f47fef4cb27ac0742c9f17d09..f6c0ff4306edc26d4a600f1d99690d2bd7766969 100644
--- a/third_party/WebKit/Source/bindings/templates/methods.cpp
+++ b/third_party/WebKit/Source/bindings/templates/methods.cpp
@@ -366,7 +366,7 @@ createMinimumArityTypeErrorForMethod(info.GetIsolate(), "{{method.name}}", "{{in
static int {{overloads.name}}MethodLength()
{
{% for length, runtime_enabled_functions in overloads.runtime_determined_lengths %}
- {% for runtime_enabled_function in runtime_enabled_functions %}
+{% for runtime_enabled_function in runtime_enabled_functions %}
{% filter runtime_enabled(runtime_enabled_function) %}
return {{length}};
{% endfilter %}
@@ -398,6 +398,8 @@ we must ensure either ALL or NO methods in this overload return Promise #}
{% macro overload_resolution_method(overloads, world_suffix) %}
static void {{overloads.name}}Method{{world_suffix}}(const v8::FunctionCallbackInfo<v8::Value>& info)
{
+ String errorMessage;
+ ALLOW_UNUSED_LOCAL(errorMessage);
ExceptionState exceptionState(ExceptionState::ExecutionContext, "{{overloads.name}}", "{{interface_name}}", info.Holder(), info.GetIsolate());
{% if overloads.measure_all_as %}
UseCounter::countIfNotPrivateScript(info.GetIsolate(), callingExecutionContext(info.GetIsolate()), UseCounter::{{overloads.measure_all_as}});
@@ -417,6 +419,8 @@ static void {{overloads.name}}Method{{world_suffix}}(const v8::FunctionCallbackI
{% if method.visible %}
{% filter runtime_enabled(not overloads.runtime_enabled_function_all and
method.runtime_enabled_function) %}
+ {% filter experiment_enabled(not overloads.experimental_api_name_all and
+ method.experimental_api_name, "errorMessage") %}
if ({{test}}) {
{% if method.measure_as and not overloads.measure_all_as %}
UseCounter::countIfNotPrivateScript(info.GetIsolate(), callingExecutionContext(info.GetIsolate()), UseCounter::{{method.measure_as('Method')}});
@@ -428,6 +432,7 @@ static void {{overloads.name}}Method{{world_suffix}}(const v8::FunctionCallbackI
return;
}
{% endfilter %}
+ {% endfilter %}
{% endif %}
{% endfor %}
break;
@@ -700,6 +705,8 @@ V8DOMConfiguration::installMethod(isolate, {{instance_template}}, {{prototype_te
v8::Local<v8::Signature> defaultSignature = v8::Signature::New(isolate, domTemplate(isolate));
ExecutionContext* executionContext = toExecutionContext(prototypeObject->CreationContext());
ASSERT(executionContext);
+String errorMessage;
+ALLOW_UNUSED_LOCAL(errorMessage);
{% for method in conditionally_enabled_methods %}
{% filter exposed(method.overloads.exposed_test_all
if method.overloads else
@@ -707,8 +714,12 @@ ASSERT(executionContext);
{% filter runtime_enabled(method.overloads.runtime_enabled_function_all
if method.overloads else
method.runtime_enabled_function) %}
+{% filter experiment_enabled(method.overloads.experimental_api_name_all
+ if method.overloads else
+ method.experimental_api_name, "errorMessage") %}
const V8DOMConfiguration::MethodConfiguration {{method.name}}MethodConfiguration = {{method_configuration(method)}};
V8DOMConfiguration::installMethod(isolate, v8::Local<v8::Object>(), prototypeObject, interfaceObject, defaultSignature, {{method.name}}MethodConfiguration);
+{% endfilter %}{# experiment_enabled() #}
{% endfilter %}{# runtime_enabled() #}
{% endfilter %}{# exposed() #}
{% endfor %}

Powered by Google App Engine
This is Rietveld 408576698