| OLD | NEW |
| 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_number_conversions.h" | 10 #include "base/string_number_conversions.h" |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 NPVariant* result) { | 70 NPVariant* result) { |
| 71 NPObjectAccessorWithIdentifier accessor(object, method_name, false); | 71 NPObjectAccessorWithIdentifier accessor(object, method_name, false); |
| 72 if (!accessor.is_valid()) | 72 if (!accessor.is_valid()) |
| 73 return false; | 73 return false; |
| 74 | 74 |
| 75 PPResultAndExceptionToNPResult result_converter( | 75 PPResultAndExceptionToNPResult result_converter( |
| 76 accessor.object()->GetNPObject(), result); | 76 accessor.object()->GetNPObject(), result); |
| 77 PPVarArrayFromNPVariantArray args(accessor.object()->instance(), | 77 PPVarArrayFromNPVariantArray args(accessor.object()->instance(), |
| 78 argc, argv); | 78 argc, argv); |
| 79 | 79 |
| 80 // For the OOP plugin case we need to grab a reference on the plugin module |
| 81 // object to ensure that it is not destroyed courtsey an incoming |
| 82 // ExecuteScript call which destroys the plugin module and in turn the |
| 83 // dispatcher. |
| 84 scoped_refptr<webkit::ppapi::PluginModule> ref( |
| 85 accessor.object()->instance()->module()); |
| 86 |
| 80 return result_converter.SetResult(accessor.object()->ppp_class()->Call( | 87 return result_converter.SetResult(accessor.object()->ppp_class()->Call( |
| 81 accessor.object()->ppp_class_data(), accessor.identifier(), | 88 accessor.object()->ppp_class_data(), accessor.identifier(), |
| 82 argc, args.array(), result_converter.exception())); | 89 argc, args.array(), result_converter.exception())); |
| 83 } | 90 } |
| 84 | 91 |
| 85 bool WrapperClass_InvokeDefault(NPObject* np_object, const NPVariant* argv, | 92 bool WrapperClass_InvokeDefault(NPObject* np_object, const NPVariant* argv, |
| 86 uint32_t argc, NPVariant* result) { | 93 uint32_t argc, NPVariant* result) { |
| 87 PluginObject* obj = PluginObject::FromNPObject(np_object); | 94 PluginObject* obj = PluginObject::FromNPObject(np_object); |
| 88 if (!obj) | 95 if (!obj) |
| 89 return false; | 96 return false; |
| 90 | 97 |
| 91 PPVarArrayFromNPVariantArray args(obj->instance(), argc, argv); | 98 PPVarArrayFromNPVariantArray args(obj->instance(), argc, argv); |
| 92 PPResultAndExceptionToNPResult result_converter(obj->GetNPObject(), result); | 99 PPResultAndExceptionToNPResult result_converter(obj->GetNPObject(), result); |
| 93 | 100 |
| 101 // For the OOP plugin case we need to grab a reference on the plugin module |
| 102 // object to ensure that it is not destroyed courtsey an incoming |
| 103 // ExecuteScript call which destroys the plugin module and in turn the |
| 104 // dispatcher. |
| 105 scoped_refptr<webkit::ppapi::PluginModule> ref( |
| 106 obj->instance()->module()); |
| 107 |
| 94 result_converter.SetResult(obj->ppp_class()->Call( | 108 result_converter.SetResult(obj->ppp_class()->Call( |
| 95 obj->ppp_class_data(), PP_MakeUndefined(), argc, args.array(), | 109 obj->ppp_class_data(), PP_MakeUndefined(), argc, args.array(), |
| 96 result_converter.exception())); | 110 result_converter.exception())); |
| 97 return result_converter.success(); | 111 return result_converter.success(); |
| 98 } | 112 } |
| 99 | 113 |
| 100 bool WrapperClass_HasProperty(NPObject* object, NPIdentifier property_name) { | 114 bool WrapperClass_HasProperty(NPObject* object, NPIdentifier property_name) { |
| 101 NPObjectAccessorWithIdentifier accessor(object, property_name, true); | 115 NPObjectAccessorWithIdentifier accessor(object, property_name, true); |
| 102 if (!accessor.is_valid()) | 116 if (!accessor.is_valid()) |
| 103 return false; | 117 return false; |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 334 // static | 348 // static |
| 335 NPObject* PluginObject::AllocateObjectWrapper() { | 349 NPObject* PluginObject::AllocateObjectWrapper() { |
| 336 NPObjectWrapper* wrapper = new NPObjectWrapper; | 350 NPObjectWrapper* wrapper = new NPObjectWrapper; |
| 337 memset(wrapper, 0, sizeof(NPObjectWrapper)); | 351 memset(wrapper, 0, sizeof(NPObjectWrapper)); |
| 338 return wrapper; | 352 return wrapper; |
| 339 } | 353 } |
| 340 | 354 |
| 341 } // namespace ppapi | 355 } // namespace ppapi |
| 342 } // namespace webkit | 356 } // namespace webkit |
| 343 | 357 |
| OLD | NEW |