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

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

Issue 1262353002: Add access checks to V8WrapperInstationScope. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Update Created 5 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 3
4 {##############################################################################} 4 {##############################################################################}
5 {% block indexed_property_getter %} 5 {% block indexed_property_getter %}
6 {% if indexed_property_getter and not indexed_property_getter.is_custom %} 6 {% if indexed_property_getter and not indexed_property_getter.is_custom %}
7 {% set getter = indexed_property_getter %} 7 {% set getter = indexed_property_getter %}
8 static void indexedPropertyGetter(uint32_t index, const v8::PropertyCallbackInfo <v8::Value>& info) 8 static void indexedPropertyGetter(uint32_t index, const v8::PropertyCallbackInfo <v8::Value>& info)
9 { 9 {
10 {{cpp_class}}* impl = {{v8_class}}::toImpl(info.Holder()); 10 {{cpp_class}}* impl = {{v8_class}}::toImpl(info.Holder());
(...skipping 542 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 {% endblock %} 553 {% endblock %}
554 554
555 555
556 {##############################################################################} 556 {##############################################################################}
557 {% block visit_dom_wrapper %} 557 {% block visit_dom_wrapper %}
558 {% if set_wrapper_reference_from or set_wrapper_reference_to %} 558 {% if set_wrapper_reference_from or set_wrapper_reference_to %}
559 void {{v8_class}}::visitDOMWrapper(v8::Isolate* isolate, ScriptWrappable* script Wrappable, const v8::Persistent<v8::Object>& wrapper) 559 void {{v8_class}}::visitDOMWrapper(v8::Isolate* isolate, ScriptWrappable* script Wrappable, const v8::Persistent<v8::Object>& wrapper)
560 { 560 {
561 {{cpp_class}}* impl = scriptWrappable->toImpl<{{cpp_class}}>(); 561 {{cpp_class}}* impl = scriptWrappable->toImpl<{{cpp_class}}>();
562 {% if set_wrapper_reference_to %} 562 {% if set_wrapper_reference_to %}
563 v8::Local<v8::Object> creationContext = v8::Local<v8::Object>::New(isolate, wrapper); 563 v8::Local<v8::Object> context = v8::Local<v8::Object>::New(isolate, wrapper) ;
564 V8WrapperInstantiationScope scope(creationContext, isolate); 564 v8::Context::Scope scope(context->CreationContext());
565 {{set_wrapper_reference_to.cpp_type}} {{set_wrapper_reference_to.name}} = im pl->{{set_wrapper_reference_to.name}}(); 565 {{set_wrapper_reference_to.cpp_type}} {{set_wrapper_reference_to.name}} = im pl->{{set_wrapper_reference_to.name}}();
566 if ({{set_wrapper_reference_to.name}}) { 566 if ({{set_wrapper_reference_to.name}}) {
567 if (DOMDataStore::containsWrapper({{set_wrapper_reference_to.name}}, iso late)) 567 if (DOMDataStore::containsWrapper({{set_wrapper_reference_to.name}}, iso late))
568 DOMDataStore::setWrapperReference(wrapper, {{set_wrapper_reference_t o.name}}, isolate); 568 DOMDataStore::setWrapperReference(wrapper, {{set_wrapper_reference_t o.name}}, isolate);
569 } 569 }
570 {% endif %} 570 {% endif %}
571 {% if set_wrapper_reference_from %} 571 {% if set_wrapper_reference_from %}
572 // The {{set_wrapper_reference_from}}() method may return a reference or a p ointer. 572 // The {{set_wrapper_reference_from}}() method may return a reference or a p ointer.
573 if (Node* owner = WTF::getPtr(impl->{{set_wrapper_reference_from}}())) { 573 if (Node* owner = WTF::getPtr(impl->{{set_wrapper_reference_from}}())) {
574 Node* root = V8GCController::opaqueRootForGC(isolate, owner); 574 Node* root = V8GCController::opaqueRootForGC(isolate, owner);
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
896 } 896 }
897 897
898 {% for method in methods if method.overloads and method.overloads.has_partial_ov erloads %} 898 {% for method in methods if method.overloads and method.overloads.has_partial_ov erloads %}
899 void {{v8_class}}::register{{method.name | blink_capitalize}}MethodForPartialInt erface(void (*method)(const v8::FunctionCallbackInfo<v8::Value>&)) 899 void {{v8_class}}::register{{method.name | blink_capitalize}}MethodForPartialInt erface(void (*method)(const v8::FunctionCallbackInfo<v8::Value>&))
900 { 900 {
901 {{cpp_class}}V8Internal::{{method.name}}MethodForPartialInterface = method; 901 {{cpp_class}}V8Internal::{{method.name}}MethodForPartialInterface = method;
902 } 902 }
903 {% endfor %} 903 {% endfor %}
904 {% endif %} 904 {% endif %}
905 {% endblock %} 905 {% endblock %}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698