Chromium Code Reviews| Index: third_party/WebKit/Source/bindings/templates/methods.cpp.tmpl |
| diff --git a/third_party/WebKit/Source/bindings/templates/methods.cpp.tmpl b/third_party/WebKit/Source/bindings/templates/methods.cpp.tmpl |
| index a4fd928128f3920291e883eb4fbbffa3a45cdf77..064ef5f40527b1bc3960f99aaf6647c4e9f5a2b2 100644 |
| --- a/third_party/WebKit/Source/bindings/templates/methods.cpp.tmpl |
| +++ b/third_party/WebKit/Source/bindings/templates/methods.cpp.tmpl |
| @@ -602,14 +602,24 @@ v8SetReturnValue(info, wrapper); |
| if method.returns_promise else 'V8DOMConfiguration::CheckHolder' %} |
| {% set access_check = 'V8DOMConfiguration::CheckAccess' |
| if method.is_check_security_for_receiver else 'V8DOMConfiguration::DoNotCheckAccess' %} |
| -{"{{method.name}}", {{method_callback}}, {{method_callback_for_main_world}}, {{method.length}}, {{property_attribute}}, {{property_location(method)}}, {{holder_check}}, {{access_check}}} |
| +{% if method.is_per_world_bindings %} |
| +{% set method_callback_for_main_world = |
| + '%s::%sMethodCallbackForMainWorld' % (v8_class_or_partial, method.name) %} |
| +{"{{method.name}}", {{method_callback_for_main_world}}, {{method.length}}, {{property_attribute}}, {{property_location(method)}}, {{holder_check}}, {{access_check}}, V8DOMConfiguration::MainWorld}, |
| +{"{{method.name}}", {{method_callback}}, {{method.length}}, {{property_attribute}}, {{property_location(method)}}, {{holder_check}}, {{access_check}}, V8DOMConfiguration::AllWorlds & ~V8DOMConfiguration::MainWorld} |
|
haraken
2017/03/17 18:16:14
Isn't this equivalent to V8DOMConfiguration::NonMa
jbroman
2017/03/17 18:32:43
Yup. It just seemed to me to be saying "all worlds
|
| +{%- else %} |
| +{"{{method.name}}", {{method_callback}}, {{method.length}}, {{property_attribute}}, {{property_location(method)}}, {{holder_check}}, {{access_check}}, V8DOMConfiguration::AllWorlds} |
| +{%- endif %} |
| {%- endmacro %} |
| {######################################} |
| {% macro install_custom_signature(method, instance_template, prototype_template, interface_template, signature) %} |
| -const V8DOMConfiguration::MethodConfiguration {{method.name}}MethodConfiguration = {{method_configuration(method)}}; |
| -V8DOMConfiguration::installMethod(isolate, world, {{instance_template}}, {{prototype_template}}, {{interface_template}}, {{signature}}, {{method.name}}MethodConfiguration); |
| +const V8DOMConfiguration::MethodConfiguration {{method.name}}MethodConfiguration[] = { |
| + {{method_configuration(method) | indent(2)}} |
| +}; |
| +for (const auto& methodConfig : {{method.name}}MethodConfiguration) |
| + V8DOMConfiguration::installMethod(isolate, world, {{instance_template}}, {{prototype_template}}, {{interface_template}}, {{signature}}, methodConfig); |
| {%- endmacro %} |
| @@ -626,8 +636,11 @@ V8DOMConfiguration::installMethod(isolate, world, {{instance_template}}, {{proto |
| {% filter runtime_enabled(method.overloads.runtime_enabled_all |
| if method.overloads else |
| method.runtime_enabled_feature_name) %} |
| -const V8DOMConfiguration::MethodConfiguration {{method.name}}MethodConfiguration = {{method_configuration(method)}}; |
| -V8DOMConfiguration::installMethod(isolate, world, v8::Local<v8::Object>(), prototypeObject, interfaceObject, signature, {{method.name}}MethodConfiguration); |
| +const V8DOMConfiguration::MethodConfiguration {{method.name}}MethodConfiguration[] = { |
| + {{method_configuration(method) | indent(2)}} |
| +}; |
| +for (const auto& methodConfig : {{method.name}}MethodConfiguration) |
| + V8DOMConfiguration::installMethod(isolate, world, v8::Local<v8::Object>(), prototypeObject, interfaceObject, signature, methodConfig); |
| {% endfilter %}{# runtime_enabled() #} |
| {% endfilter %}{# exposed() #} |
| {% endfilter %}{# secure_context() #} |