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

Unified Diff: webkit/plugins/ppapi/ppapi_plugin_instance.h

Issue 7189045: Make o.o.p. proxy handle PPP_Instance versions 0.4 and 0.5. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merged Created 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/plugins/ppapi/plugin_module.cc ('k') | webkit/plugins/ppapi/ppapi_plugin_instance.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/plugins/ppapi/ppapi_plugin_instance.h
diff --git a/webkit/plugins/ppapi/ppapi_plugin_instance.h b/webkit/plugins/ppapi/ppapi_plugin_instance.h
index 2ef4710bce289cad90420d4e5f62838cdf2d8cc0..8cbcaa2515160337d24bcd9a1deef67eca8ec269 100644
--- a/webkit/plugins/ppapi/ppapi_plugin_instance.h
+++ b/webkit/plugins/ppapi/ppapi_plugin_instance.h
@@ -24,6 +24,7 @@
#include "ppapi/c/pp_var.h"
#include "ppapi/c/ppp_instance.h"
#include "ppapi/shared_impl/function_group_base.h"
+#include "ppapi/shared_impl/ppp_instance_combined.h"
#include "ppapi/thunk/ppb_instance_api.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "third_party/skia/include/core/SkRefCnt.h"
@@ -55,6 +56,10 @@ class WebInputEvent;
class WebPluginContainer;
}
+namespace ppapi {
+struct PPP_Instance_Combined;
+}
+
namespace webkit {
namespace ppapi {
@@ -79,11 +84,17 @@ class PluginInstance : public base::RefCounted<PluginInstance>,
public ::ppapi::FunctionGroupBase,
public ::ppapi::thunk::PPB_Instance_FunctionAPI {
public:
- struct PPP_Instance_Combined;
-
- PluginInstance(PluginDelegate* delegate,
- PluginModule* module,
- PPP_Instance_Combined* instance_interface);
+ // Create and return a PluginInstance object which supports the
+ // PPP_Instance_0_5 interface.
+ static PluginInstance* Create0_5(PluginDelegate* delegate,
+ PluginModule* module,
+ const void* ppp_instance_if_0_5);
+
+ // Create and return a PluginInstance object which supports the
+ // PPP_Instance_0_4 interface.
+ static PluginInstance* Create0_4(PluginDelegate* delegate,
+ PluginModule* module,
+ const void* ppp_instance_if_0_4);
// Delete should be called by the WebPlugin before this destructor.
virtual ~PluginInstance();
@@ -256,21 +267,6 @@ class PluginInstance : public base::RefCounted<PluginInstance>,
return fullscreen_container_;
}
- // TODO(dmichael): Remove this when all plugins are ported to use scripting
- // from private interfaces.
- struct PPP_Instance_Combined : public PPP_Instance_0_5 {
- PPP_Instance_Combined(const PPP_Instance_0_5& instance_if);
- PPP_Instance_Combined(const PPP_Instance_0_4& instance_if);
-
- struct PP_Var (*const GetInstanceObject_0_4)(PP_Instance instance);
- };
- template <class InterfaceType>
- static PPP_Instance_Combined* new_instance_interface(
- const void* interface_object) {
- return new PPP_Instance_Combined(
- *static_cast<const InterfaceType*>(interface_object));
- }
-
// FunctionGroupBase overrides.
virtual ::ppapi::thunk::PPB_Instance_FunctionAPI* AsPPB_Instance_FunctionAPI()
OVERRIDE;
@@ -290,6 +286,14 @@ class PluginInstance : public base::RefCounted<PluginInstance>,
virtual PP_Bool GetScreenSize(PP_Instance instance, PP_Size* size) OVERRIDE;
private:
+ // See the static Create functions above for creating PluginInstance objects.
+ // This constructor is private so that we can hide the PPP_Instance_Combined
+ // details while still having 1 constructor to maintain for member
+ // initialization.
+ PluginInstance(PluginDelegate* delegate,
+ PluginModule* module,
+ ::ppapi::PPP_Instance_Combined* instance_interface);
+
bool LoadFindInterface();
bool LoadMessagingInterface();
bool LoadPdfInterface();
@@ -343,7 +347,7 @@ class PluginInstance : public base::RefCounted<PluginInstance>,
PluginDelegate* delegate_;
scoped_refptr<PluginModule> module_;
- scoped_ptr<PPP_Instance_Combined> instance_interface_;
+ scoped_ptr< ::ppapi::PPP_Instance_Combined> instance_interface_;
PP_Instance pp_instance_;
« no previous file with comments | « webkit/plugins/ppapi/plugin_module.cc ('k') | webkit/plugins/ppapi/ppapi_plugin_instance.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698