Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1062)

Side by Side Diff: third_party/WebKit/Source/bindings/templates/interface.cpp.tmpl

Issue 2452073002: Freeze global prototype chain per WebIDL (Closed)
Patch Set: serviceworker test, undo an unnecessary IDL change, and only freeze instances of global objects Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 {% extends 'interface_base.cpp.tmpl' %} 1 {% extends 'interface_base.cpp.tmpl' %}
2 2
3 {% set has_prepare_prototype_and_interface_object = 3 {% set has_prepare_prototype_and_interface_object =
4 unscopables or has_conditional_attributes_on_prototype or 4 unscopables or has_conditional_attributes_on_prototype or
5 methods | conditionally_exposed(is_partial) %} 5 methods | conditionally_exposed(is_partial) %}
6 {% set prepare_prototype_and_interface_object_func = 6 {% set prepare_prototype_and_interface_object_func =
7 '%s::preparePrototypeAndInterfaceObject' % v8_class 7 '%s::preparePrototypeAndInterfaceObject' % v8_class
8 if has_prepare_prototype_and_interface_object 8 if has_prepare_prototype_and_interface_object
9 else 'nullptr' %} 9 else 'nullptr' %}
10 10
(...skipping 751 matching lines...) Expand 10 before | Expand all | Expand 10 after
762 {% if has_named_properties_object %} 762 {% if has_named_properties_object %}
763 v8::Local<v8::FunctionTemplate> {{v8_class}}::domTemplateForNamedPropertiesObjec t(v8::Isolate* isolate, const DOMWrapperWorld& world) { 763 v8::Local<v8::FunctionTemplate> {{v8_class}}::domTemplateForNamedPropertiesObjec t(v8::Isolate* isolate, const DOMWrapperWorld& world) {
764 v8::Local<v8::FunctionTemplate> parentTemplate = V8{{parent_interface}}::domTe mplate(isolate, world); 764 v8::Local<v8::FunctionTemplate> parentTemplate = V8{{parent_interface}}::domTe mplate(isolate, world);
765 765
766 v8::Local<v8::FunctionTemplate> namedPropertiesObjectFunctionTemplate = v8::Fu nctionTemplate::New(isolate, V8ObjectConstructor::isValidConstructorMode); 766 v8::Local<v8::FunctionTemplate> namedPropertiesObjectFunctionTemplate = v8::Fu nctionTemplate::New(isolate, V8ObjectConstructor::isValidConstructorMode);
767 namedPropertiesObjectFunctionTemplate->SetClassName(v8AtomicString(isolate, "{ {interface_name}}Properties")); 767 namedPropertiesObjectFunctionTemplate->SetClassName(v8AtomicString(isolate, "{ {interface_name}}Properties"));
768 namedPropertiesObjectFunctionTemplate->Inherit(parentTemplate); 768 namedPropertiesObjectFunctionTemplate->Inherit(parentTemplate);
769 769
770 v8::Local<v8::ObjectTemplate> namedPropertiesObjectTemplate = namedPropertiesO bjectFunctionTemplate->PrototypeTemplate(); 770 v8::Local<v8::ObjectTemplate> namedPropertiesObjectTemplate = namedPropertiesO bjectFunctionTemplate->PrototypeTemplate();
771 namedPropertiesObjectTemplate->SetInternalFieldCount({{v8_class}}::internalFie ldCount); 771 namedPropertiesObjectTemplate->SetInternalFieldCount({{v8_class}}::internalFie ldCount);
772 // Named Properties object has SetPrototype method of Immutable Prototype Exot ic Objects
773 namedPropertiesObjectTemplate->SetImmutableProto();
772 V8DOMConfiguration::setClassString(isolate, namedPropertiesObjectTemplate, "{{ interface_name}}Properties"); 774 V8DOMConfiguration::setClassString(isolate, namedPropertiesObjectTemplate, "{{ interface_name}}Properties");
773 {{install_named_property_handler('namedPropertiesObjectTemplate') | indent(2)} } 775 {{install_named_property_handler('namedPropertiesObjectTemplate') | indent(2)} }
774 776
775 return namedPropertiesObjectFunctionTemplate; 777 return namedPropertiesObjectFunctionTemplate;
776 } 778 }
777 779
778 {% endif %} 780 {% endif %}
779 {% endblock %} 781 {% endblock %}
780 782
781 783
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
959 } 961 }
960 962
961 {% for method in methods if method.overloads and method.overloads.has_partial_ov erloads %} 963 {% for method in methods if method.overloads and method.overloads.has_partial_ov erloads %}
962 void {{v8_class}}::register{{method.name | blink_capitalize}}MethodForPartialInt erface(void (*method)(const v8::FunctionCallbackInfo<v8::Value>&)) { 964 void {{v8_class}}::register{{method.name | blink_capitalize}}MethodForPartialInt erface(void (*method)(const v8::FunctionCallbackInfo<v8::Value>&)) {
963 {{cpp_class}}V8Internal::{{method.name}}MethodForPartialInterface = method; 965 {{cpp_class}}V8Internal::{{method.name}}MethodForPartialInterface = method;
964 } 966 }
965 967
966 {% endfor %} 968 {% endfor %}
967 {% endif %} 969 {% endif %}
968 {% endblock %} 970 {% endblock %}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698