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

Side by Side Diff: webkit/plugins/ppapi/plugin_object.cc

Issue 15941006: Track NPObject ownership by the originating plugins' NPP identifier. [2/3] (Chrome) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix CppBoundClass. Created 7 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « webkit/plugins/ppapi/message_channel.cc ('k') | webkit/plugins/ppapi/ppapi_plugin_instance.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "webkit/plugins/ppapi/plugin_object.h" 5 #include "webkit/plugins/ppapi/plugin_object.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 instance_->RemovePluginObject(this); 291 instance_->RemovePluginObject(this);
292 } 292 }
293 293
294 PP_Var PluginObject::Create(PluginInstance* instance, 294 PP_Var PluginObject::Create(PluginInstance* instance,
295 const PPP_Class_Deprecated* ppp_class, 295 const PPP_Class_Deprecated* ppp_class,
296 void* ppp_class_data) { 296 void* ppp_class_data) {
297 // This will internally end up calling our AllocateObjectWrapper via the 297 // This will internally end up calling our AllocateObjectWrapper via the
298 // WrapperClass_Allocated function which will have created an object wrapper 298 // WrapperClass_Allocated function which will have created an object wrapper
299 // appropriate for this class (derived from NPObject). 299 // appropriate for this class (derived from NPObject).
300 NPObjectWrapper* wrapper = static_cast<NPObjectWrapper*>( 300 NPObjectWrapper* wrapper = static_cast<NPObjectWrapper*>(
301 WebBindings::createObject(NULL, const_cast<NPClass*>(&wrapper_class))); 301 WebBindings::createObject(instance->instanceNPP(),
302 const_cast<NPClass*>(&wrapper_class)));
302 303
303 // This object will register itself both with the NPObject and with the 304 // This object will register itself both with the NPObject and with the
304 // PluginModule. The NPObject will normally handle its lifetime, and it 305 // PluginModule. The NPObject will normally handle its lifetime, and it
305 // will get deleted in the destroy method. It may also get deleted when the 306 // will get deleted in the destroy method. It may also get deleted when the
306 // plugin module is deallocated. 307 // plugin module is deallocated.
307 new PluginObject(instance, wrapper, ppp_class, ppp_class_data); 308 new PluginObject(instance, wrapper, ppp_class, ppp_class_data);
308 309
309 // We can just use a normal ObjectVar to refer to this object from the 310 // We can just use a normal ObjectVar to refer to this object from the
310 // plugin. It will hold a ref to the underlying NPObject which will in turn 311 // plugin. It will hold a ref to the underlying NPObject which will in turn
311 // hold our pluginObject. 312 // hold our pluginObject.
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 // static 352 // static
352 NPObject* PluginObject::AllocateObjectWrapper() { 353 NPObject* PluginObject::AllocateObjectWrapper() {
353 NPObjectWrapper* wrapper = new NPObjectWrapper; 354 NPObjectWrapper* wrapper = new NPObjectWrapper;
354 memset(wrapper, 0, sizeof(NPObjectWrapper)); 355 memset(wrapper, 0, sizeof(NPObjectWrapper));
355 return wrapper; 356 return wrapper;
356 } 357 }
357 358
358 } // namespace ppapi 359 } // namespace ppapi
359 } // namespace webkit 360 } // namespace webkit
360 361
OLDNEW
« no previous file with comments | « webkit/plugins/ppapi/message_channel.cc ('k') | webkit/plugins/ppapi/ppapi_plugin_instance.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698