| Index: Source/bindings/templates/interface.cpp
 | 
| diff --git a/Source/bindings/templates/interface.cpp b/Source/bindings/templates/interface.cpp
 | 
| index fb4ac2b50a6888caa821791479fb8ccc13c105cc..d131de3a22a14497346f7b7ee58b668407bf4b85 100644
 | 
| --- a/Source/bindings/templates/interface.cpp
 | 
| +++ b/Source/bindings/templates/interface.cpp
 | 
| @@ -79,6 +79,25 @@ static void {{interface_name}}ReplaceableAttributeSetterCallback(v8::Local<v8::S
 | 
|  
 | 
|  
 | 
|  {##############################################################################}
 | 
| +{% block security_check_functions %}
 | 
| +{% if is_check_security and interface_name != 'Window' %}
 | 
| +bool indexedSecurityCheck(v8::Local<v8::Object> host, uint32_t index, v8::AccessType type, v8::Local<v8::Value>)
 | 
| +{
 | 
| +    {{cpp_class_name}}* imp =  {{v8_class_name}}::toNative(host);
 | 
| +    return BindingSecurity::shouldAllowAccessToFrame(imp->frame(), DoNotReportSecurityError);
 | 
| +}
 | 
| +
 | 
| +bool namedSecurityCheck(v8::Local<v8::Object> host, v8::Local<v8::Value> key, v8::AccessType type, v8::Local<v8::Value>)
 | 
| +{
 | 
| +    {{cpp_class_name}}* imp =  {{v8_class_name}}::toNative(host);
 | 
| +    return BindingSecurity::shouldAllowAccessToFrame(imp->frame(), DoNotReportSecurityError);
 | 
| +}
 | 
| +
 | 
| +{% endif %}
 | 
| +{% endblock %}
 | 
| +
 | 
| +
 | 
| +{##############################################################################}
 | 
|  {% block class_attributes %}
 | 
|  {# FIXME: rename to install_attributes and put into configure_class_template #}
 | 
|  {% if attributes %}
 | 
| @@ -115,13 +134,9 @@ static const V8DOMConfiguration::AccessorConfiguration {{v8_class_name}}Accessor
 | 
|  {##############################################################################}
 | 
|  {% block class_methods %}
 | 
|  {# FIXME: rename to install_methods and put into configure_class_template #}
 | 
| -{% if methods %}
 | 
| +{% if has_method_configuration %}
 | 
|  static const V8DOMConfiguration::MethodConfiguration {{v8_class_name}}Methods[] = {
 | 
| -    {% for method in methods
 | 
| -       if method.do_not_check_signature and
 | 
| -          not method.per_context_enabled_function_name and
 | 
| -          (not method.overload_index or method.overload_index == 1) %}
 | 
| -    {# For overloaded methods, only generate one accessor #}
 | 
| +    {% for method in methods if method.do_generate_method_configuration %}
 | 
|      {% filter conditional(method.conditional_string) %}
 | 
|      {{method_configuration(method)}},
 | 
|      {% endfilter %}
 | 
| @@ -153,7 +168,7 @@ static v8::Handle<v8::FunctionTemplate> Configure{{v8_class_name}}Template(v8::H
 | 
|          {% set methods_name, methods_length =
 | 
|                 ('%sMethods' % v8_class_name,
 | 
|                  'WTF_ARRAY_LENGTH(%sMethods)' % v8_class_name)
 | 
| -           if methods else (0, 0) %}
 | 
| +           if has_method_configuration else (0, 0) %}
 | 
|          {{attributes_name}}, {{attributes_length}},
 | 
|          {{accessors_name}}, {{accessors_length}},
 | 
|          {{methods_name}}, {{methods_length}},
 | 
| @@ -163,6 +178,9 @@ static v8::Handle<v8::FunctionTemplate> Configure{{v8_class_name}}Template(v8::H
 | 
|      v8::Local<v8::ObjectTemplate> prototypeTemplate = functionTemplate->PrototypeTemplate();
 | 
|      UNUSED_PARAM(instanceTemplate);
 | 
|      UNUSED_PARAM(prototypeTemplate);
 | 
| +    {% if is_check_security and interface_name != 'Window' %}
 | 
| +    instanceTemplate->SetAccessCheckCallbacks({{cpp_class_name}}V8Internal::namedSecurityCheck, {{cpp_class_name}}V8Internal::indexedSecurityCheck, v8::External::New(isolate, const_cast<WrapperTypeInfo*>(&{{v8_class_name}}::wrapperTypeInfo)));
 | 
| +    {% endif %}
 | 
|      {% for attribute in attributes if attribute.runtime_enabled_function_name %}
 | 
|      {% filter conditional(attribute.conditional_string) %}
 | 
|      if ({{attribute.runtime_enabled_function_name}}()) {
 | 
| 
 |