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

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

Issue 2273683003: Use visitDOMWrapper to preserve WebGL JS object wrappers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 3 months 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' %} 1 {% extends 'interface_base.cpp' %}
2 2
3 {% set has_prepare_prototype_and_interface_object = 3 {% set has_prepare_prototype_and_interface_object =
4 unscopeables or has_conditional_attributes_on_prototype or 4 unscopeables 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 548 matching lines...) Expand 10 before | Expand all | Expand 10 after
559 559
560 {% endif %} 560 {% endif %}
561 {% endblock %} 561 {% endblock %}
562 562
563 {##############################################################################} 563 {##############################################################################}
564 {% block visit_dom_wrapper %} 564 {% block visit_dom_wrapper %}
565 {% if set_wrapper_reference_from or set_wrapper_reference_to %} 565 {% if set_wrapper_reference_from or set_wrapper_reference_to %}
566 void {{v8_class}}::visitDOMWrapper(v8::Isolate* isolate, ScriptWrappable* script Wrappable, const v8::Persistent<v8::Object>& wrapper) 566 void {{v8_class}}::visitDOMWrapper(v8::Isolate* isolate, ScriptWrappable* script Wrappable, const v8::Persistent<v8::Object>& wrapper)
567 { 567 {
568 {{cpp_class}}* impl = scriptWrappable->toImpl<{{cpp_class}}>(); 568 {{cpp_class}}* impl = scriptWrappable->toImpl<{{cpp_class}}>();
569 {% if has_visit_dom_wrapper_extra %}
570 {{v8_class}}::visitDOMWrapperExtra(isolate, impl, wrapper);
571 {% endif %}
569 {% if set_wrapper_reference_to %} 572 {% if set_wrapper_reference_to %}
570 {{set_wrapper_reference_to.cpp_type}} {{set_wrapper_reference_to.name}} = im pl->{{set_wrapper_reference_to.name}}(); 573 {{set_wrapper_reference_to.cpp_type}} {{set_wrapper_reference_to.name}} = im pl->{{set_wrapper_reference_to.name}}();
571 if ({{set_wrapper_reference_to.name}}) { 574 if ({{set_wrapper_reference_to.name}}) {
572 DOMWrapperWorld::setWrapperReferencesInAllWorlds(wrapper, {{set_wrapper_ reference_to.name}}, isolate); 575 DOMWrapperWorld::setWrapperReferencesInAllWorlds(wrapper, {{set_wrapper_ reference_to.name}}, isolate);
573 } 576 }
574 {% endif %} 577 {% endif %}
575 {% if set_wrapper_reference_from %} 578 {% if set_wrapper_reference_from %}
576 // The {{set_wrapper_reference_from}}() method may return a reference or a p ointer. 579 // The {{set_wrapper_reference_from}}() method may return a reference or a p ointer.
577 if (Node* owner = WTF::getPtr(impl->{{set_wrapper_reference_from}}())) { 580 if (Node* owner = WTF::getPtr(impl->{{set_wrapper_reference_from}}())) {
578 Node* root = V8GCController::opaqueRootForGC(isolate, owner); 581 Node* root = V8GCController::opaqueRootForGC(isolate, owner);
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
929 932
930 {% for method in methods if method.overloads and method.overloads.has_partial_ov erloads %} 933 {% for method in methods if method.overloads and method.overloads.has_partial_ov erloads %}
931 void {{v8_class}}::register{{method.name | blink_capitalize}}MethodForPartialInt erface(void (*method)(const v8::FunctionCallbackInfo<v8::Value>&)) 934 void {{v8_class}}::register{{method.name | blink_capitalize}}MethodForPartialInt erface(void (*method)(const v8::FunctionCallbackInfo<v8::Value>&))
932 { 935 {
933 {{cpp_class}}V8Internal::{{method.name}}MethodForPartialInterface = method; 936 {{cpp_class}}V8Internal::{{method.name}}MethodForPartialInterface = method;
934 } 937 }
935 938
936 {% endfor %} 939 {% endfor %}
937 {% endif %} 940 {% endif %}
938 {% endblock %} 941 {% endblock %}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698