Chromium Code Reviews| 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 516 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 527 | 527 |
| 528 v8::Local<v8::FunctionTemplate> methodTemplate = data->findOrCreateOperationTe mplate(world, &domTemplateKey, {{v8_class_or_partial}}::{{method.name}}MethodCal lback{{world_suffix}}, v8Undefined(), signature, {{method.length}}); | 528 v8::Local<v8::FunctionTemplate> methodTemplate = data->findOrCreateOperationTe mplate(world, &domTemplateKey, {{v8_class_or_partial}}::{{method.name}}MethodCal lback{{world_suffix}}, v8Undefined(), signature, {{method.length}}); |
| 529 // Return the function by default, unless the user script has overwritten it. | 529 // Return the function by default, unless the user script has overwritten it. |
| 530 v8SetReturnValue(info, methodTemplate->GetFunction(info.GetIsolate()->GetCurre ntContext()).ToLocalChecked()); | 530 v8SetReturnValue(info, methodTemplate->GetFunction(info.GetIsolate()->GetCurre ntContext()).ToLocalChecked()); |
| 531 | 531 |
| 532 {{cpp_class}}* impl = {{v8_class}}::toImpl(info.Holder()); | 532 {{cpp_class}}* impl = {{v8_class}}::toImpl(info.Holder()); |
| 533 if (!BindingSecurity::shouldAllowAccessTo(currentDOMWindow(info.GetIsolate()), impl, BindingSecurity::ErrorReportOption::DoNotReport)) { | 533 if (!BindingSecurity::shouldAllowAccessTo(currentDOMWindow(info.GetIsolate()), impl, BindingSecurity::ErrorReportOption::DoNotReport)) { |
| 534 return; | 534 return; |
| 535 } | 535 } |
| 536 | 536 |
| 537 v8::Local<v8::Value> hiddenValue = V8HiddenValue::getHiddenValue(ScriptState:: current(info.GetIsolate()), v8::Local<v8::Object>::Cast(info.Holder()), v8Atomic String(info.GetIsolate(), "{{method.name}}")); | 537 v8::Local<v8::Value> propertyValue = |
| 538 if (!hiddenValue.IsEmpty()) { | 538 V8PrivateProperty::createSymbol(info.GetIsolate(), "{{method.name}}") |
|
Yuki
2017/03/31 13:38:29
Could you add a comment that {{method.name}} was c
peria
2017/04/03 04:58:44
Done.
| |
| 539 v8SetReturnValue(info, hiddenValue); | 539 .getOrUndefined(v8::Local<v8::Object>::Cast(info.Holder())); |
|
Yuki
2017/03/31 13:38:30
nit: 4 space indent in addition to the level of V8
peria
2017/04/03 04:58:43
Done.
| |
| 540 if (!propertyValue->IsUndefined()) { | |
|
Yuki
2017/03/31 13:38:29
The value can be |undefined|.
peria
2017/04/03 04:58:44
Done.
| |
| 541 v8SetReturnValue(info, propertyValue); | |
| 540 } | 542 } |
| 541 } | 543 } |
| 542 {% endmacro %} | 544 {% endmacro %} |
| 543 | 545 |
| 544 {% macro origin_safe_method_getter_callback(method, world_suffix) %} | 546 {% macro origin_safe_method_getter_callback(method, world_suffix) %} |
| 545 void {{v8_class_or_partial}}::{{method.name}}OriginSafeMethodGetterCallback{{wor ld_suffix}}(v8::Local<v8::Name>, const v8::PropertyCallbackInfo<v8::Value>& info ) { | 547 void {{v8_class_or_partial}}::{{method.name}}OriginSafeMethodGetterCallback{{wor ld_suffix}}(v8::Local<v8::Name>, const v8::PropertyCallbackInfo<v8::Value>& info ) { |
| 546 {{cpp_class}}V8Internal::{{method.name}}OriginSafeMethodGetter{{world_suffix}} (info); | 548 {{cpp_class}}V8Internal::{{method.name}}OriginSafeMethodGetter{{world_suffix}} (info); |
| 547 } | 549 } |
| 548 {% endmacro %} | 550 {% endmacro %} |
| 549 | 551 |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 644 {{method_configuration(method) | indent(2)}} | 646 {{method_configuration(method) | indent(2)}} |
| 645 }; | 647 }; |
| 646 for (const auto& methodConfig : {{method.name}}MethodConfiguration) | 648 for (const auto& methodConfig : {{method.name}}MethodConfiguration) |
| 647 V8DOMConfiguration::installMethod(isolate, world, v8::Local<v8::Object>(), pro totypeObject, interfaceObject, signature, methodConfig); | 649 V8DOMConfiguration::installMethod(isolate, world, v8::Local<v8::Object>(), pro totypeObject, interfaceObject, signature, methodConfig); |
| 648 {% endfilter %}{# runtime_enabled() #} | 650 {% endfilter %}{# runtime_enabled() #} |
| 649 {% endfilter %}{# exposed() #} | 651 {% endfilter %}{# exposed() #} |
| 650 {% endfilter %}{# secure_context() #} | 652 {% endfilter %}{# secure_context() #} |
| 651 {% endfor %} | 653 {% endfor %} |
| 652 {% endif %} | 654 {% endif %} |
| 653 {%- endmacro %} | 655 {%- endmacro %} |
| OLD | NEW |