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

Unified Diff: ppapi/proxy/ppb_file_ref_proxy.cc

Issue 7629017: Add a unified resource tracker shared between the proxy and the impl. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address review comments Created 9 years, 4 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
Index: ppapi/proxy/ppb_file_ref_proxy.cc
diff --git a/ppapi/proxy/ppb_file_ref_proxy.cc b/ppapi/proxy/ppb_file_ref_proxy.cc
index a72519ddb5b7273c32d5ce54400113e2e4b6bbb9..7a101530605c6cd42d101d061e22d2fd2b1a05c6 100644
--- a/ppapi/proxy/ppb_file_ref_proxy.cc
+++ b/ppapi/proxy/ppb_file_ref_proxy.cc
@@ -10,7 +10,6 @@
#include "ppapi/proxy/enter_proxy.h"
#include "ppapi/proxy/host_dispatcher.h"
#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/plugin_resource.h"
#include "ppapi/proxy/ppapi_messages.h"
#include "ppapi/proxy/serialized_var.h"
#include "ppapi/thunk/ppb_file_ref_api.h"
@@ -18,6 +17,7 @@
#include "ppapi/thunk/thunk.h"
using ppapi::HostResource;
+using ppapi::Resource;
using ppapi::thunk::EnterFunctionNoLock;
using ppapi::thunk::EnterResourceNoLock;
using ppapi::thunk::PPB_FileRef_API;
@@ -35,12 +35,12 @@ InterfaceProxy* CreateFileRefProxy(Dispatcher* dispatcher,
} // namespace
-class FileRef : public PluginResource, public PPB_FileRef_API {
+class FileRef : public Resource, public PPB_FileRef_API {
public:
explicit FileRef(const PPBFileRef_CreateInfo& info);
virtual ~FileRef();
- // ResourceObjectBase overrides.
+ // Resource overrides.
virtual PPB_FileRef_API* AsPPB_FileRef_API() OVERRIDE;
// PPB_FileRef_API implementation.
@@ -58,6 +58,10 @@ class FileRef : public PluginResource, public PPB_FileRef_API {
PP_CompletionCallback callback) OVERRIDE;
private:
+ PluginDispatcher* GetDispatcher() const {
+ return PluginDispatcher::GetForResource(this);
+ }
+
PP_FileSystemType file_system_type_;
PP_Var path_;
PP_Var name_;
@@ -66,8 +70,8 @@ class FileRef : public PluginResource, public PPB_FileRef_API {
};
FileRef::FileRef(const PPBFileRef_CreateInfo& info)
- : PluginResource(info.resource) {
- Dispatcher* dispatcher = PluginDispatcher::GetForInstance(instance());
+ : Resource(info.resource) {
+ Dispatcher* dispatcher = PluginDispatcher::GetForInstance(pp_instance());
file_system_type_ = static_cast<PP_FileSystemType>(info.file_system_type);
@@ -134,10 +138,10 @@ int32_t FileRef::Delete(PP_CompletionCallback callback) {
int32_t FileRef::Rename(PP_Resource new_file_ref,
PP_CompletionCallback callback) {
- PluginResource* new_file_ref_object =
- PluginResourceTracker::GetInstance()->GetResourceObject(new_file_ref);
+ Resource* new_file_ref_object =
+ PluginResourceTracker::GetInstance()->GetResource(new_file_ref);
if (!new_file_ref_object ||
- new_file_ref_object->host_resource().instance() != instance())
+ new_file_ref_object->host_resource().instance() != pp_instance())
return PP_ERROR_BADRESOURCE;
GetDispatcher()->Send(new PpapiHostMsg_PPBFileRef_Rename(
@@ -169,15 +173,16 @@ const InterfaceProxy::Info* PPB_FileRef_Proxy::GetInfo() {
// static
PP_Resource PPB_FileRef_Proxy::CreateProxyResource(PP_Resource file_system,
const char* path) {
- PluginResource* file_system_object =
- PluginResourceTracker::GetInstance()->GetResourceObject(file_system);
+ Resource* file_system_object =
+ PluginResourceTracker::GetInstance()->GetResource(file_system);
if (!file_system_object)
return 0;
PPBFileRef_CreateInfo create_info;
- file_system_object->GetDispatcher()->Send(new PpapiHostMsg_PPBFileRef_Create(
- INTERFACE_ID_PPB_FILE_REF, file_system_object->host_resource(),
- path, &create_info));
+ PluginDispatcher::GetForResource(file_system_object)->Send(
+ new PpapiHostMsg_PPBFileRef_Create(
+ INTERFACE_ID_PPB_FILE_REF, file_system_object->host_resource(),
+ path, &create_info));
return PPB_FileRef_Proxy::DeserializeFileRef(create_info);
}
@@ -228,9 +233,7 @@ PP_Resource PPB_FileRef_Proxy::DeserializeFileRef(
const PPBFileRef_CreateInfo& serialized) {
if (serialized.resource.is_null())
return 0; // Resource invalid.
-
- return PluginResourceTracker::GetInstance()->AddResource(
- new FileRef(serialized));
+ return (new FileRef(serialized))->GetReference();
}
void PPB_FileRef_Proxy::OnMsgCreate(const HostResource& file_system,

Powered by Google App Engine
This is Rietveld 408576698