Index: ppapi/proxy/plugin_resource.h |
=================================================================== |
--- ppapi/proxy/plugin_resource.h (revision 72840) |
+++ ppapi/proxy/plugin_resource.h (working copy) |
@@ -7,6 +7,7 @@ |
#include "base/basictypes.h" |
#include "ppapi/c/pp_instance.h" |
+#include "ppapi/proxy/host_resource.h" |
#include "ppapi/proxy/plugin_dispatcher.h" |
#include "ppapi/proxy/plugin_resource_tracker.h" |
@@ -18,6 +19,7 @@ |
F(Font) \ |
F(Graphics2D) \ |
F(ImageData) \ |
+ F(MockResource) \ |
F(PrivateFontFile) \ |
F(URLLoader) \ |
F(URLRequestInfo)\ |
@@ -33,7 +35,7 @@ |
class PluginResource { |
public: |
- PluginResource(PP_Instance instance); |
+ PluginResource(const HostResource& resource); |
virtual ~PluginResource(); |
// Returns NULL if the resource is invalid or is a different type. |
@@ -45,8 +47,13 @@ |
template <typename T> T* Cast() { return NULL; } |
- PP_Instance instance() const { return instance_; } |
+ PP_Instance instance() const { return host_resource_.instance(); } |
+ // Returns the host resource ID for sending to the host process. |
+ const HostResource& host_resource() const { |
+ return host_resource_; |
+ } |
+ |
private: |
// Type-specific getters for individual resource types. These will return |
// NULL if the resource does not match the specified type. Used by the Cast() |
@@ -56,8 +63,11 @@ |
FOR_ALL_PLUGIN_RESOURCES(DEFINE_TYPE_GETTER) |
#undef DEFINE_TYPE_GETTER |
- // Instance this resource is associated with. |
- PP_Instance instance_; |
+ // The resource ID in the host that this object corresponds to. Inside the |
+ // plugin we'll remap the resource IDs so we can have many host processes |
+ // each independently generating resources (which may conflict) but the IDs |
+ // in the plugin will all be unique. |
+ HostResource host_resource_; |
DISALLOW_COPY_AND_ASSIGN(PluginResource); |
}; |