Chromium Code Reviews| Index: webkit/plugins/ppapi/resource.h |
| diff --git a/webkit/plugins/ppapi/resource.h b/webkit/plugins/ppapi/resource.h |
| index 445fd58293b17063da36576458dff97fe25db7a6..251417766ccc91857981880f2ce158bd9d7b24e1 100644 |
| --- a/webkit/plugins/ppapi/resource.h |
| +++ b/webkit/plugins/ppapi/resource.h |
| @@ -6,14 +6,15 @@ |
| #define WEBKIT_PLUGINS_PPAPI_RESOURCE_H_ |
| #include "base/basictypes.h" |
| +#include "base/compiler_specific.h" |
| #include "ppapi/c/pp_resource.h" |
| -#include "ppapi/shared_impl/resource_object_base.h" |
| +#include "ppapi/shared_impl/resource.h" |
| #include "webkit/plugins/ppapi/resource_tracker.h" |
| namespace webkit { |
| namespace ppapi { |
| -class Resource : public ::ppapi::ResourceObjectBase { |
| +class Resource : public ::ppapi::Resource { |
|
dmichael (off chromium)
2011/08/17 20:33:44
Would it be worthwhile to rename this HostResource
brettw
2011/08/17 20:43:18
I'm going to be removing this altogether shortly i
|
| public: |
| explicit Resource(PluginInstance* instance); |
| virtual ~Resource(); |
| @@ -23,30 +24,12 @@ class Resource : public ::ppapi::ResourceObjectBase { |
| // PPAPI implementation is keeping a reference for some reason. |
| PluginInstance* instance() const { return instance_; } |
| - // Clears the instance pointer when the associated PluginInstance will be |
| - // destroyed. |
| - // |
| - // If you override this, be sure to call the base class' implementation. |
| - virtual void ClearInstance(); |
| - |
| // Returns an resource id of this object. If the object doesn't have a |
| // resource id, new one is created with plugin refcount of 1. If it does, |
| // the refcount is incremented. Use this when you need to return a new |
| // reference to the plugin. |
| PP_Resource GetReference(); |
| - // Returns the resource ID of this object OR NULL IF THERE IS NONE ASSIGNED. |
| - // This will happen if the plugin doesn't have a reference to the given |
| - // resource. The resource will not be addref'ed. |
| - // |
| - // This should only be used as an input parameter to the plugin for status |
| - // updates in the proxy layer, where if the plugin has no reference, it will |
| - // just give up since nothing needs to be updated. |
| - // |
| - // Generally you should use GetReference instead. This is why it has this |
| - // obscure name rather than pp_resource(). |
| - PP_Resource GetReferenceNoAddRef() const; |
| - |
| // When you need to ensure that a resource has a reference, but you do not |
| // want to increase the refcount (for example, if you need to call a plugin |
| // callback function with a reference), you can use this class. For example: |
| @@ -57,28 +40,16 @@ class Resource : public ::ppapi::ResourceObjectBase { |
| explicit ScopedResourceId(Resource* resource) |
| : id(resource->GetReference()) {} |
| ~ScopedResourceId() { |
| - ResourceTracker::Get()->UnrefResource(id); |
| + ResourceTracker::Get()->ReleaseResource(id); |
| } |
| const PP_Resource id; |
| }; |
| - // Called by the resource tracker when the last reference from the plugin |
| - // was released. For a few types of resources, the resource could still |
| - // stay alive if there are other references held by the PPAPI implementation |
| - // (possibly for callbacks and things). |
| - // |
| - // If you override this, be sure to call the base class' implementation. |
| - virtual void LastPluginRefWasDeleted(); |
| + // Resource implementation. |
| + virtual void LastPluginRefWasDeleted() OVERRIDE; |
| + virtual void InstanceWasDeleted() OVERRIDE; |
| private: |
| - // If referenced by a plugin, holds the id of this resource object. Do not |
| - // access this member directly, because it is possible that the plugin holds |
| - // no references to the object, and therefore the resource_id_ is zero. Use |
| - // either GetReference() to obtain a new resource_id and increase the |
| - // refcount, or TemporaryReference when you do not want to increase the |
| - // refcount. |
| - PP_Resource resource_id_; |
| - |
| // Non-owning pointer to our instance. See getter above. |
| PluginInstance* instance_; |