| Index: third_party/WebKit/Source/bindings/templates/interface_base.cpp.tmpl
|
| diff --git a/third_party/WebKit/Source/bindings/templates/interface_base.cpp.tmpl b/third_party/WebKit/Source/bindings/templates/interface_base.cpp.tmpl
|
| index 008729d5f1802e74455337176bb62f3d434a4c67..0f9744bdcef8aea0ab3eb9ab6bc50b8f58166fa8 100644
|
| --- a/third_party/WebKit/Source/bindings/templates/interface_base.cpp.tmpl
|
| +++ b/third_party/WebKit/Source/bindings/templates/interface_base.cpp.tmpl
|
| @@ -119,21 +119,20 @@ static void (*{{method.name}}MethodForPartialInterface)(const v8::FunctionCallba
|
| {##############################################################################}
|
| {% block security_check_functions %}
|
| {% if has_access_check_callbacks and not is_partial %}
|
| -bool securityCheck(v8::Local<v8::Context> accessingContext, v8::Local<v8::Object> accessedObject, v8::Local<v8::Value> data)
|
| -{
|
| - {% if interface_name == 'Window' %}
|
| - v8::Isolate* isolate = v8::Isolate::GetCurrent();
|
| - v8::Local<v8::Object> window = V8Window::findInstanceInPrototypeChain(accessedObject, isolate);
|
| - if (window.IsEmpty())
|
| - return false; // the frame is gone.
|
| +bool securityCheck(v8::Local<v8::Context> accessingContext, v8::Local<v8::Object> accessedObject, v8::Local<v8::Value> data) {
|
| + {% if interface_name == 'Window' %}
|
| + v8::Isolate* isolate = v8::Isolate::GetCurrent();
|
| + v8::Local<v8::Object> window = V8Window::findInstanceInPrototypeChain(accessedObject, isolate);
|
| + if (window.IsEmpty())
|
| + return false; // the frame is gone.
|
|
|
| - const DOMWindow* targetWindow = V8Window::toImpl(window);
|
| - return BindingSecurity::shouldAllowAccessTo(toLocalDOMWindow(toDOMWindow(accessingContext)), targetWindow, BindingSecurity::ErrorReportOption::DoNotReport);
|
| - {% else %}{# if interface_name == 'Window' #}
|
| - {# Not 'Window' means it\'s Location. #}
|
| - {{cpp_class}}* impl = {{v8_class}}::toImpl(accessedObject);
|
| - return BindingSecurity::shouldAllowAccessTo(toLocalDOMWindow(toDOMWindow(accessingContext)), impl, BindingSecurity::ErrorReportOption::DoNotReport);
|
| - {% endif %}{# if interface_name == 'Window' #}
|
| + const DOMWindow* targetWindow = V8Window::toImpl(window);
|
| + return BindingSecurity::shouldAllowAccessTo(toLocalDOMWindow(toDOMWindow(accessingContext)), targetWindow, BindingSecurity::ErrorReportOption::DoNotReport);
|
| + {% else %}{# if interface_name == 'Window' #}
|
| + {# Not 'Window' means it\'s Location. #}
|
| + {{cpp_class}}* impl = {{v8_class}}::toImpl(accessedObject);
|
| + return BindingSecurity::shouldAllowAccessTo(toLocalDOMWindow(toDOMWindow(accessingContext)), impl, BindingSecurity::ErrorReportOption::DoNotReport);
|
| + {% endif %}{# if interface_name == 'Window' #}
|
| }
|
|
|
| {% endif %}
|
| @@ -166,7 +165,7 @@ bool securityCheck(v8::Local<v8::Context> accessingContext, v8::Local<v8::Object
|
| {# Document about the following condition: #}
|
| {# https://docs.google.com/document/d/1qBC7Therp437Jbt_QYAtNYMZs6zQ_7_tnMkNUG_ACqs/edit?usp=sharing #}
|
| {% if (method.overloads and method.overloads.visible and
|
| - (not method.overloads.has_partial_overloads or not is_partial)) or
|
| + (not method.overloads.has_partial_overloads or not is_partial)) or
|
| (not method.overloads and method.visible) %}
|
| {# A single callback is generated for overloaded methods #}
|
| {# with considering partial overloads #}
|
| @@ -266,126 +265,121 @@ const V8DOMConfiguration::MethodConfiguration {{v8_class}}Methods[] = {
|
| {% from 'constants.cpp.tmpl' import install_constants with context %}
|
| {% from 'methods.cpp.tmpl' import method_configuration with context %}
|
| {% if has_partial_interface or is_partial %}
|
| -void {{v8_class_or_partial}}::install{{v8_class}}Template(v8::Isolate* isolate, const DOMWrapperWorld& world, v8::Local<v8::FunctionTemplate> interfaceTemplate)
|
| +void {{v8_class_or_partial}}::install{{v8_class}}Template(v8::Isolate* isolate, const DOMWrapperWorld& world, v8::Local<v8::FunctionTemplate> interfaceTemplate) {
|
| {% else %}
|
| -static void install{{v8_class}}Template(v8::Isolate* isolate, const DOMWrapperWorld& world, v8::Local<v8::FunctionTemplate> interfaceTemplate)
|
| +static void install{{v8_class}}Template(v8::Isolate* isolate, const DOMWrapperWorld& world, v8::Local<v8::FunctionTemplate> interfaceTemplate) {
|
| {% endif %}
|
| -{
|
| - {% set newline = '' %}
|
| - // Initialize the interface object's template.
|
| - {% if is_partial %}
|
| - {{v8_class}}::install{{v8_class}}Template(isolate, world, interfaceTemplate);
|
| - {% else %}
|
| - {% set parent_interface_template =
|
| - '%s::domTemplateForNamedPropertiesObject(isolate, world)' % v8_class
|
| - if has_named_properties_object else
|
| - 'V8%s::domTemplate(isolate, world)' % parent_interface
|
| - if parent_interface else
|
| - 'v8::Local<v8::FunctionTemplate>()' %}
|
| - V8DOMConfiguration::initializeDOMInterfaceTemplate(isolate, interfaceTemplate, {{v8_class}}::wrapperTypeInfo.interfaceName, {{parent_interface_template}}, {{v8_class}}::internalFieldCount);
|
| - {% if constructors or has_custom_constructor or has_event_constructor or has_html_constructor %}
|
| - interfaceTemplate->SetCallHandler({{v8_class}}::constructorCallback);
|
| - interfaceTemplate->SetLength({{interface_length}});
|
| - {% endif %}
|
| - {% endif %}{# is_partial #}
|
| - v8::Local<v8::Signature> signature = v8::Signature::New(isolate, interfaceTemplate);
|
| - ALLOW_UNUSED_LOCAL(signature);
|
| - v8::Local<v8::ObjectTemplate> instanceTemplate = interfaceTemplate->InstanceTemplate();
|
| - ALLOW_UNUSED_LOCAL(instanceTemplate);
|
| - v8::Local<v8::ObjectTemplate> prototypeTemplate = interfaceTemplate->PrototypeTemplate();
|
| - ALLOW_UNUSED_LOCAL(prototypeTemplate);
|
| + {% set newline = '' %}
|
| + // Initialize the interface object's template.
|
| + {% if is_partial %}
|
| + {{v8_class}}::install{{v8_class}}Template(isolate, world, interfaceTemplate);
|
| + {% else %}
|
| + {% set parent_interface_template =
|
| + '%s::domTemplateForNamedPropertiesObject(isolate, world)' % v8_class
|
| + if has_named_properties_object else
|
| + 'V8%s::domTemplate(isolate, world)' % parent_interface
|
| + if parent_interface else
|
| + 'v8::Local<v8::FunctionTemplate>()' %}
|
| + V8DOMConfiguration::initializeDOMInterfaceTemplate(isolate, interfaceTemplate, {{v8_class}}::wrapperTypeInfo.interfaceName, {{parent_interface_template}}, {{v8_class}}::internalFieldCount);
|
| + {% if constructors or has_custom_constructor or has_event_constructor or has_html_constructor %}
|
| + interfaceTemplate->SetCallHandler({{v8_class}}::constructorCallback);
|
| + interfaceTemplate->SetLength({{interface_length}});
|
| + {% endif %}
|
| + {% endif %}{# is_partial #}
|
| + v8::Local<v8::Signature> signature = v8::Signature::New(isolate, interfaceTemplate);
|
| + ALLOW_UNUSED_LOCAL(signature);
|
| + v8::Local<v8::ObjectTemplate> instanceTemplate = interfaceTemplate->InstanceTemplate();
|
| + ALLOW_UNUSED_LOCAL(instanceTemplate);
|
| + v8::Local<v8::ObjectTemplate> prototypeTemplate = interfaceTemplate->PrototypeTemplate();
|
| + ALLOW_UNUSED_LOCAL(prototypeTemplate);
|
|
|
| - {%- if interface_name == 'Window' and not is_partial %}{{newline}}
|
| - prototypeTemplate->SetInternalFieldCount(V8Window::internalFieldCount);
|
| - {% endif %}
|
| + {%- if interface_name == 'Window' and not is_partial %}{{newline}}
|
| + prototypeTemplate->SetInternalFieldCount(V8Window::internalFieldCount);
|
| + {% endif %}
|
|
|
| - // Register DOM constants, attributes and operations.
|
| - {% filter runtime_enabled(runtime_enabled_function) %}
|
| - {% if constants %}
|
| - {{install_constants() | indent}}
|
| - {% endif %}
|
| - {% if attributes | has_attribute_configuration %}
|
| - V8DOMConfiguration::installAttributes(isolate, world, instanceTemplate, prototypeTemplate, {{'%sAttributes' % v8_class}}, {{'WTF_ARRAY_LENGTH(%sAttributes)' % v8_class}});
|
| - {% endif %}
|
| - {% if attributes | has_accessor_configuration %}
|
| - V8DOMConfiguration::installAccessors(isolate, world, instanceTemplate, prototypeTemplate, interfaceTemplate, signature, {{'%sAccessors' % v8_class}}, {{'WTF_ARRAY_LENGTH(%sAccessors)' % v8_class}});
|
| - {% endif %}
|
| - {% if methods | has_method_configuration(is_partial) %}
|
| - V8DOMConfiguration::installMethods(isolate, world, instanceTemplate, prototypeTemplate, interfaceTemplate, signature, {{'%sMethods' % v8_class}}, {{'WTF_ARRAY_LENGTH(%sMethods)' % v8_class}});
|
| - {% endif %}
|
| - {% endfilter %}
|
| - {%- if has_access_check_callbacks and not is_partial %}{{newline}}
|
| - // Cross-origin access check
|
| - instanceTemplate->SetAccessCheckCallback({{cpp_class}}V8Internal::securityCheck, v8::External::New(isolate, const_cast<WrapperTypeInfo*>(&{{v8_class}}::wrapperTypeInfo)));
|
| - {% endif %}
|
| + // Register DOM constants, attributes and operations.
|
| + {% filter runtime_enabled(runtime_enabled_function) %}
|
| + {% if constants %}
|
| + {{install_constants() | indent(2)}}
|
| + {% endif %}
|
| + {% if attributes | has_attribute_configuration %}
|
| + V8DOMConfiguration::installAttributes(isolate, world, instanceTemplate, prototypeTemplate, {{'%sAttributes' % v8_class}}, {{'WTF_ARRAY_LENGTH(%sAttributes)' % v8_class}});
|
| + {% endif %}
|
| + {% if attributes | has_accessor_configuration %}
|
| + V8DOMConfiguration::installAccessors(isolate, world, instanceTemplate, prototypeTemplate, interfaceTemplate, signature, {{'%sAccessors' % v8_class}}, {{'WTF_ARRAY_LENGTH(%sAccessors)' % v8_class}});
|
| + {% endif %}
|
| + {% if methods | has_method_configuration(is_partial) %}
|
| + V8DOMConfiguration::installMethods(isolate, world, instanceTemplate, prototypeTemplate, interfaceTemplate, signature, {{'%sMethods' % v8_class}}, {{'WTF_ARRAY_LENGTH(%sMethods)' % v8_class}});
|
| + {% endif %}
|
| + {% endfilter %}
|
| + {%- if has_access_check_callbacks and not is_partial %}{{newline}}
|
| + // Cross-origin access check
|
| + instanceTemplate->SetAccessCheckCallback({{cpp_class}}V8Internal::securityCheck, v8::External::New(isolate, const_cast<WrapperTypeInfo*>(&{{v8_class}}::wrapperTypeInfo)));
|
| + {% endif %}
|
|
|
| - {%- for group in attributes | purely_runtime_enabled_attributes | groupby('runtime_feature_name') %}{{newline}}
|
| - if ({{group.list[0].runtime_enabled_function}}()) {
|
| - {% for attribute in group.list | unique_by('name') | sort %}
|
| - {% if attribute.is_data_type_property %}
|
| - const V8DOMConfiguration::AttributeConfiguration attribute{{attribute.name}}Configuration = \
|
| - {{attribute_configuration(attribute)}};
|
| - V8DOMConfiguration::installAttribute(isolate, world, instanceTemplate, prototypeTemplate, attribute{{attribute.name}}Configuration);
|
| - {% else %}
|
| - const V8DOMConfiguration::AccessorConfiguration accessor{{attribute.name}}Configuration = \
|
| - {{attribute_configuration(attribute)}};
|
| - V8DOMConfiguration::installAccessor(isolate, world, instanceTemplate, prototypeTemplate, interfaceTemplate, signature, accessor{{attribute.name}}Configuration);
|
| - {% endif %}
|
| - {% endfor %}
|
| - }
|
| + {%- for group in attributes | purely_runtime_enabled_attributes | groupby('runtime_feature_name') %}{{newline}}
|
| + if ({{group.list[0].runtime_enabled_function}}()) {
|
| + {% for attribute in group.list | unique_by('name') | sort %}
|
| + {% if attribute.is_data_type_property %}
|
| + const V8DOMConfiguration::AttributeConfiguration attribute{{attribute.name}}Configuration = {{attribute_configuration(attribute)}};
|
| + V8DOMConfiguration::installAttribute(isolate, world, instanceTemplate, prototypeTemplate, attribute{{attribute.name}}Configuration);
|
| + {% else %}
|
| + const V8DOMConfiguration::AccessorConfiguration accessor{{attribute.name}}Configuration = {{attribute_configuration(attribute)}};
|
| + V8DOMConfiguration::installAccessor(isolate, world, instanceTemplate, prototypeTemplate, interfaceTemplate, signature, accessor{{attribute.name}}Configuration);
|
| + {% endif %}
|
| {% endfor %}
|
| + }
|
| + {% endfor %}
|
|
|
| - {% if (indexed_property_getter or named_property_getter) and not is_partial %}
|
| - // Indexed properties
|
| - {{install_indexed_property_handler('instanceTemplate') | indent}}
|
| - {% endif %}
|
| - {% if named_property_getter and not is_partial and not has_named_properties_object %}
|
| - // Named properties
|
| - {{install_named_property_handler('instanceTemplate') | indent}}
|
| - {% endif %}
|
| + {% if (indexed_property_getter or named_property_getter) and not is_partial %}
|
| + // Indexed properties
|
| + {{install_indexed_property_handler('instanceTemplate') | indent(2)}}
|
| + {% endif %}
|
| + {% if named_property_getter and not is_partial and not has_named_properties_object %}
|
| + // Named properties
|
| + {{install_named_property_handler('instanceTemplate') | indent(2)}}
|
| + {% endif %}
|
|
|
| - {% if has_array_iterator and not is_partial %}
|
| - // Array iterator (@@iterator)
|
| - {%+ if is_global %}instanceTemplate{% else %}prototypeTemplate{% endif %}->SetIntrinsicDataProperty(v8::Symbol::GetIterator(isolate), v8::kArrayProto_values, v8::DontEnum);
|
| - {% endif %}
|
| + {% if has_array_iterator and not is_partial %}
|
| + // Array iterator (@@iterator)
|
| + {%+ if is_global %}instanceTemplate{% else %}prototypeTemplate{% endif %}->SetIntrinsicDataProperty(v8::Symbol::GetIterator(isolate), v8::kArrayProto_values, v8::DontEnum);
|
| + {% endif %}
|
|
|
| - {% if iterator_method %}
|
| - {% filter exposed(iterator_method.exposed_test) %}
|
| - {% filter runtime_enabled(iterator_method.runtime_enabled_function) %}
|
| - // Iterator (@@iterator)
|
| - const V8DOMConfiguration::SymbolKeyedMethodConfiguration symbolKeyedIteratorConfiguration = { v8::Symbol::GetIterator, {{cpp_class_or_partial}}V8Internal::iteratorMethodCallback, 0, v8::DontEnum, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype };
|
| - V8DOMConfiguration::installMethod(isolate, world, prototypeTemplate, signature, symbolKeyedIteratorConfiguration);
|
| - {% endfilter %}
|
| - {% endfilter %}
|
| - {% endif %}
|
| + {% if iterator_method %}
|
| + {% filter exposed(iterator_method.exposed_test) %}
|
| + {% filter runtime_enabled(iterator_method.runtime_enabled_function) %}
|
| + // Iterator (@@iterator)
|
| + const V8DOMConfiguration::SymbolKeyedMethodConfiguration symbolKeyedIteratorConfiguration = { v8::Symbol::GetIterator, {{cpp_class_or_partial}}V8Internal::iteratorMethodCallback, 0, v8::DontEnum, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype };
|
| + V8DOMConfiguration::installMethod(isolate, world, prototypeTemplate, signature, symbolKeyedIteratorConfiguration);
|
| + {% endfilter %}
|
| + {% endfilter %}
|
| + {% endif %}
|
|
|
| - {%- if has_custom_legacy_call_as_function and not is_partial %}{{newline}}
|
| - instanceTemplate->SetCallAsFunctionHandler({{v8_class}}::legacyCallCustom);
|
| - {% endif %}
|
| + {%- if has_custom_legacy_call_as_function and not is_partial %}{{newline}}
|
| + instanceTemplate->SetCallAsFunctionHandler({{v8_class}}::legacyCallCustom);
|
| + {% endif %}
|
|
|
| - {%- if interface_name == 'HTMLAllCollection' and not is_partial %}{{newline}}
|
| - // Needed for legacy support of document.all
|
| - instanceTemplate->MarkAsUndetectable();
|
| - {% endif %}
|
| + {%- if interface_name == 'HTMLAllCollection' and not is_partial %}{{newline}}
|
| + // Needed for legacy support of document.all
|
| + instanceTemplate->MarkAsUndetectable();
|
| + {% endif %}
|
|
|
| - {%- if methods | custom_registration(is_partial) %}{{newline}}
|
| - {% for method in methods | custom_registration(is_partial) %}
|
| - {# install_custom_signature #}
|
| - {% filter exposed(method.overloads.exposed_test_all
|
| - if method.overloads else
|
| - method.exposed_test) %}
|
| - {% filter runtime_enabled(method.overloads.runtime_enabled_function_all
|
| - if method.overloads else
|
| - method.runtime_enabled_function) %}
|
| - {% if method.is_do_not_check_security %}
|
| - {{install_do_not_check_security_method(method, '', 'instanceTemplate', 'prototypeTemplate') | indent}}
|
| - {% else %}
|
| - {{install_custom_signature(method, 'instanceTemplate', 'prototypeTemplate', 'interfaceTemplate', 'signature') | indent}}
|
| - {% endif %}
|
| - {% endfilter %}
|
| - {% endfilter %}
|
| - {% endfor %}
|
| - {% endif %}
|
| + {%- if methods | custom_registration(is_partial) %}{{newline}}
|
| + {% for method in methods | custom_registration(is_partial) %}
|
| + {# install_custom_signature #}
|
| + {% filter exposed(method.overloads.exposed_test_all
|
| + if method.overloads else method.exposed_test) %}
|
| + {% filter runtime_enabled(method.overloads.runtime_enabled_function_all
|
| + if method.overloads else method.runtime_enabled_function) %}
|
| + {% if method.is_do_not_check_security %}
|
| + {{install_do_not_check_security_method(method, '', 'instanceTemplate', 'prototypeTemplate') | indent(2)}}
|
| + {% else %}
|
| + {{install_custom_signature(method, 'instanceTemplate', 'prototypeTemplate', 'interfaceTemplate', 'signature') | indent(2)}}
|
| + {% endif %}
|
| + {% endfilter %}
|
| + {% endfilter %}
|
| + {% endfor %}
|
| + {% endif %}
|
| }
|
|
|
| {% endif %}{# not is_array_buffer_or_view #}
|
| @@ -396,53 +390,48 @@ static void install{{v8_class}}Template(v8::Isolate* isolate, const DOMWrapperWo
|
| {% from 'constants.cpp.tmpl' import constant_configuration with context %}
|
| {% from 'methods.cpp.tmpl' import method_configuration with context %}
|
| {% for origin_trial_feature in origin_trial_features %}{{newline}}
|
| -void {{v8_class_or_partial}}::install{{origin_trial_feature.name}}(v8::Isolate* isolate, const DOMWrapperWorld& world, v8::Local<v8::Object> instance, v8::Local<v8::Object> prototype, v8::Local<v8::Function> interface)
|
| -{
|
| - {% if attributes | for_origin_trial_feature(origin_trial_feature.name) or
|
| - methods | method_for_origin_trial_feature(origin_trial_feature.name, is_partial) %}
|
| - v8::Local<v8::FunctionTemplate> interfaceTemplate = {{v8_class}}::wrapperTypeInfo.domTemplate(isolate, world);
|
| - v8::Local<v8::Signature> signature = v8::Signature::New(isolate, interfaceTemplate);
|
| - ALLOW_UNUSED_LOCAL(signature);
|
| - {% endif %}
|
| - {# Origin-Trial-enabled attributes #}
|
| - {% for attribute in attributes | for_origin_trial_feature(origin_trial_feature.name) | unique_by('name') | sort %}
|
| - {% if attribute.is_data_type_property %}
|
| - const V8DOMConfiguration::AttributeConfiguration attribute{{attribute.name}}Configuration = \
|
| - {{attribute_configuration(attribute)}};
|
| - V8DOMConfiguration::installAttribute(isolate, world, instance, prototype, attribute{{attribute.name}}Configuration);
|
| - {% else %}
|
| - const V8DOMConfiguration::AccessorConfiguration accessor{{attribute.name}}Configuration = \
|
| - {{attribute_configuration(attribute)}};
|
| - V8DOMConfiguration::installAccessor(isolate, world, instance, prototype, interface, signature, accessor{{attribute.name}}Configuration);
|
| - {% endif %}
|
| - {% endfor %}
|
| - {# Origin-Trial-enabled constants #}
|
| - {% for constant in constants | for_origin_trial_feature(origin_trial_feature.name) | unique_by('name') | sort %}
|
| - {% set constant_name = constant.name.title().replace('_', '') %}
|
| - const V8DOMConfiguration::ConstantConfiguration constant{{constant_name}}Configuration = {{constant_configuration(constant)}};
|
| - V8DOMConfiguration::installConstant(isolate, interface, prototype, constant{{constant_name}}Configuration);
|
| - {% endfor %}
|
| - {# Origin-Trial-enabled methods (no overloads) #}
|
| - {% for method in methods | method_for_origin_trial_feature(origin_trial_feature.name, is_partial) | unique_by('name') | sort %}
|
| - {% set method_name = method.name.title().replace('_', '') %}
|
| - const V8DOMConfiguration::MethodConfiguration method{{method_name}}Configuration = {{method_configuration(method)}};
|
| - V8DOMConfiguration::installMethod(isolate, world, instance, prototype, interface, signature, method{{method_name}}Configuration);
|
| - {% endfor %}
|
| +void {{v8_class_or_partial}}::install{{origin_trial_feature.name}}(v8::Isolate* isolate, const DOMWrapperWorld& world, v8::Local<v8::Object> instance, v8::Local<v8::Object> prototype, v8::Local<v8::Function> interface) {
|
| + {% if attributes | for_origin_trial_feature(origin_trial_feature.name) or
|
| + methods | method_for_origin_trial_feature(origin_trial_feature.name, is_partial) %}
|
| + v8::Local<v8::FunctionTemplate> interfaceTemplate = {{v8_class}}::wrapperTypeInfo.domTemplate(isolate, world);
|
| + v8::Local<v8::Signature> signature = v8::Signature::New(isolate, interfaceTemplate);
|
| + ALLOW_UNUSED_LOCAL(signature);
|
| + {% endif %}
|
| + {# Origin-Trial-enabled attributes #}
|
| + {% for attribute in attributes | for_origin_trial_feature(origin_trial_feature.name) | unique_by('name') | sort %}
|
| + {% if attribute.is_data_type_property %}
|
| + const V8DOMConfiguration::AttributeConfiguration attribute{{attribute.name}}Configuration = {{attribute_configuration(attribute)}};
|
| + V8DOMConfiguration::installAttribute(isolate, world, instance, prototype, attribute{{attribute.name}}Configuration);
|
| + {% else %}
|
| + const V8DOMConfiguration::AccessorConfiguration accessor{{attribute.name}}Configuration = {{attribute_configuration(attribute)}};
|
| + V8DOMConfiguration::installAccessor(isolate, world, instance, prototype, interface, signature, accessor{{attribute.name}}Configuration);
|
| + {% endif %}
|
| + {% endfor %}
|
| + {# Origin-Trial-enabled constants #}
|
| + {% for constant in constants | for_origin_trial_feature(origin_trial_feature.name) | unique_by('name') | sort %}
|
| + {% set constant_name = constant.name.title().replace('_', '') %}
|
| + const V8DOMConfiguration::ConstantConfiguration constant{{constant_name}}Configuration = {{constant_configuration(constant)}};
|
| + V8DOMConfiguration::installConstant(isolate, interface, prototype, constant{{constant_name}}Configuration);
|
| + {% endfor %}
|
| + {# Origin-Trial-enabled methods (no overloads) #}
|
| + {% for method in methods | method_for_origin_trial_feature(origin_trial_feature.name, is_partial) | unique_by('name') | sort %}
|
| + {% set method_name = method.name.title().replace('_', '') %}
|
| + const V8DOMConfiguration::MethodConfiguration method{{method_name}}Configuration = {{method_configuration(method)}};
|
| + V8DOMConfiguration::installMethod(isolate, world, instance, prototype, interface, signature, method{{method_name}}Configuration);
|
| + {% endfor %}
|
| }
|
|
|
| -void {{v8_class_or_partial}}::install{{origin_trial_feature.name}}(ScriptState* scriptState, v8::Local<v8::Object> instance)
|
| -{
|
| - V8PerContextData* perContextData = V8PerContextData::from(scriptState->context());
|
| - v8::Local<v8::Object> prototype = perContextData->prototypeForType(&{{v8_class}}::wrapperTypeInfo);
|
| - v8::Local<v8::Function> interface = perContextData->constructorForType(&{{v8_class}}::wrapperTypeInfo);
|
| - ALLOW_UNUSED_LOCAL(interface);
|
| - install{{origin_trial_feature.name}}(scriptState->isolate(), scriptState->world(), instance, prototype, interface);
|
| +void {{v8_class_or_partial}}::install{{origin_trial_feature.name}}(ScriptState* scriptState, v8::Local<v8::Object> instance) {
|
| + V8PerContextData* perContextData = V8PerContextData::from(scriptState->context());
|
| + v8::Local<v8::Object> prototype = perContextData->prototypeForType(&{{v8_class}}::wrapperTypeInfo);
|
| + v8::Local<v8::Function> interface = perContextData->constructorForType(&{{v8_class}}::wrapperTypeInfo);
|
| + ALLOW_UNUSED_LOCAL(interface);
|
| + install{{origin_trial_feature.name}}(scriptState->isolate(), scriptState->world(), instance, prototype, interface);
|
| }
|
| {% if not origin_trial_feature.needs_instance %}
|
|
|
| -void {{v8_class_or_partial}}::install{{origin_trial_feature.name}}(ScriptState* scriptState)
|
| -{
|
| - install{{origin_trial_feature.name}}(scriptState, v8::Local<v8::Object>());
|
| +void {{v8_class_or_partial}}::install{{origin_trial_feature.name}}(ScriptState* scriptState) {
|
| + install{{origin_trial_feature.name}}(scriptState, v8::Local<v8::Object>());
|
| }
|
| {% endif %}
|
| {% endfor %}
|
| @@ -466,6 +455,6 @@ void {{v8_class_or_partial}}::install{{origin_trial_feature.name}}(ScriptState*
|
| {% endif %}
|
| {% endfor %}
|
| {% block partial_interface %}{% endblock %}
|
| -} // namespace blink
|
| +} // namespace blink
|
|
|
| {% endfilter %}{# format_blink_cpp_source_code #}
|
|
|