OLD | NEW |
---|---|
1 {% from 'utilities.cpp.tmpl' import declare_enum_validation_variable, v8_value_t o_local_cpp_value %} | 1 {% from 'utilities.cpp.tmpl' import declare_enum_validation_variable, v8_value_t o_local_cpp_value %} |
2 | 2 |
3 {##############################################################################} | 3 {##############################################################################} |
4 {% macro generate_method(method, world_suffix) %} | 4 {% macro generate_method(method, world_suffix) %} |
5 static void {{method.name}}{{method.overload_index}}Method{{world_suffix}}(const v8::FunctionCallbackInfo<v8::Value>& info) { | 5 static void {{method.name}}{{method.overload_index}}Method{{world_suffix}}(const v8::FunctionCallbackInfo<v8::Value>& info) { |
6 {% filter format_remove_duplicates([ | 6 {% filter format_remove_duplicates([ |
7 'ExceptionState exceptionState', | 7 'ExceptionState exceptionState', |
8 'ScriptState* scriptState = ']) %} | 8 'ScriptState* scriptState = ']) %} |
9 {% set define_exception_state -%} | 9 {% set define_exception_state -%} |
10 ExceptionState exceptionState(info.GetIsolate(), ExceptionState::ExecutionCont ext, "{{interface_name}}", "{{method.name}}"); | 10 ExceptionState exceptionState(info.GetIsolate(), ExceptionState::ExecutionCont ext, "{{interface_name}}", "{{method.name}}"); |
(...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
513 postMessageImpl("{{interface_name}}", {{v8_class}}::toImpl(info.Holder()), inf o); | 513 postMessageImpl("{{interface_name}}", {{v8_class}}::toImpl(info.Holder()), inf o); |
514 {% else %} | 514 {% else %} |
515 {{cpp_class_or_partial}}V8Internal::{{method.name}}Method{{world_suffix}}(info ); | 515 {{cpp_class_or_partial}}V8Internal::{{method.name}}Method{{world_suffix}}(info ); |
516 {% endif %} | 516 {% endif %} |
517 } | 517 } |
518 {% endmacro %} | 518 {% endmacro %} |
519 | 519 |
520 | 520 |
521 {##############################################################################} | 521 {##############################################################################} |
522 {% macro origin_safe_method_getter(method, world_suffix) %} | 522 {% macro origin_safe_method_getter(method, world_suffix) %} |
523 {# TODO(dcheng): This shouldn't be necessary with cross-origin interceptors, but | |
524 v8 doesn't support querying the incumbent context. For now, always | |
Yuki
2016/12/07 12:03:41
ditto
| |
525 incorrectly create per-realm representations. #} | |
523 static void {{method.name}}OriginSafeMethodGetter{{world_suffix}}(const v8::Prop ertyCallbackInfo<v8::Value>& info) { | 526 static void {{method.name}}OriginSafeMethodGetter{{world_suffix}}(const v8::Prop ertyCallbackInfo<v8::Value>& info) { |
524 static int domTemplateKey; // This address is used for a key to look up the do m template. | 527 static int domTemplateKey; // This address is used for a key to look up the do m template. |
525 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate()); | 528 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate()); |
526 const DOMWrapperWorld& world = DOMWrapperWorld::world(info.GetIsolate()->GetCu rrentContext()); | 529 const DOMWrapperWorld& world = DOMWrapperWorld::world(info.GetIsolate()->GetCu rrentContext()); |
527 v8::Local<v8::FunctionTemplate> interfaceTemplate = data->findInterfaceTemplat e(world, &{{v8_class}}::wrapperTypeInfo); | 530 v8::Local<v8::FunctionTemplate> interfaceTemplate = data->findInterfaceTemplat e(world, &{{v8_class}}::wrapperTypeInfo); |
528 v8::Local<v8::Signature> signature = v8::Signature::New(info.GetIsolate(), int erfaceTemplate); | 531 v8::Local<v8::Signature> signature = v8::Signature::New(info.GetIsolate(), int erfaceTemplate); |
529 | 532 |
530 v8::Local<v8::FunctionTemplate> methodTemplate = data->findOrCreateOperationTe mplate(world, &domTemplateKey, {{cpp_class}}V8Internal::{{method.name}}MethodCal lback{{world_suffix}}, v8Undefined(), signature, {{method.length}}); | 533 v8::Local<v8::FunctionTemplate> methodTemplate = data->findOrCreateOperationTe mplate(world, &domTemplateKey, {{cpp_class}}V8Internal::{{method.name}}MethodCal lback{{world_suffix}}, v8Undefined(), signature, {{method.length}}); |
531 // Return the function by default, unless the user script has overwritten it. | 534 // Return the function by default, unless the user script has overwritten it. |
532 v8SetReturnValue(info, methodTemplate->GetFunction(info.GetIsolate()->GetCurre ntContext()).ToLocalChecked()); | 535 v8SetReturnValue(info, methodTemplate->GetFunction(info.GetIsolate()->GetCurre ntContext()).ToLocalChecked()); |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
673 if method.overloads else | 676 if method.overloads else |
674 method.runtime_enabled_function) %} | 677 method.runtime_enabled_function) %} |
675 const V8DOMConfiguration::MethodConfiguration {{method.name}}MethodConfiguration = {{method_configuration(method)}}; | 678 const V8DOMConfiguration::MethodConfiguration {{method.name}}MethodConfiguration = {{method_configuration(method)}}; |
676 V8DOMConfiguration::installMethod(isolate, world, v8::Local<v8::Object>(), proto typeObject, interfaceObject, signature, {{method.name}}MethodConfiguration); | 679 V8DOMConfiguration::installMethod(isolate, world, v8::Local<v8::Object>(), proto typeObject, interfaceObject, signature, {{method.name}}MethodConfiguration); |
677 {% endfilter %}{# runtime_enabled() #} | 680 {% endfilter %}{# runtime_enabled() #} |
678 {% endfilter %}{# exposed() #} | 681 {% endfilter %}{# exposed() #} |
679 {% endfilter %}{# secure_context() #} | 682 {% endfilter %}{# secure_context() #} |
680 {% endfor %} | 683 {% endfor %} |
681 {% endif %} | 684 {% endif %} |
682 {%- endmacro %} | 685 {%- endmacro %} |
OLD | NEW |