| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ppapi/proxy/ppb_file_ref_proxy.h" | 5 #include "ppapi/proxy/ppb_file_ref_proxy.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "ppapi/c/pp_errors.h" | 10 #include "ppapi/c/pp_errors.h" |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 197 | 197 |
| 198 PPB_FileRef_Proxy::PPB_FileRef_Proxy(Dispatcher* dispatcher) | 198 PPB_FileRef_Proxy::PPB_FileRef_Proxy(Dispatcher* dispatcher) |
| 199 : InterfaceProxy(dispatcher), | 199 : InterfaceProxy(dispatcher), |
| 200 callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { | 200 callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { |
| 201 } | 201 } |
| 202 | 202 |
| 203 PPB_FileRef_Proxy::~PPB_FileRef_Proxy() { | 203 PPB_FileRef_Proxy::~PPB_FileRef_Proxy() { |
| 204 } | 204 } |
| 205 | 205 |
| 206 // static | 206 // static |
| 207 PP_Resource PPB_FileRef_Proxy::CreateProxyResource(PP_Resource file_system, | 207 PP_Resource PPB_FileRef_Proxy::CreateProxyResource(PP_Instance instance, |
| 208 PP_Resource file_system, |
| 208 const char* path) { | 209 const char* path) { |
| 209 Resource* file_system_object = | |
| 210 PpapiGlobals::Get()->GetResourceTracker()->GetResource(file_system); | |
| 211 if (!file_system_object) | |
| 212 return 0; | |
| 213 | |
| 214 PPB_FileRef_CreateInfo create_info; | 210 PPB_FileRef_CreateInfo create_info; |
| 215 PluginDispatcher::GetForResource(file_system_object)->Send( | 211 PluginDispatcher::GetForInstance(instance)->Send( |
| 216 new PpapiHostMsg_PPBFileRef_Create( | 212 new PpapiHostMsg_PPBFileRef_Create( |
| 217 API_ID_PPB_FILE_REF, file_system_object->host_resource(), | 213 API_ID_PPB_FILE_REF, instance, file_system, path, &create_info)); |
| 218 path, &create_info)); | |
| 219 return PPB_FileRef_Proxy::DeserializeFileRef(create_info); | 214 return PPB_FileRef_Proxy::DeserializeFileRef(create_info); |
| 220 } | 215 } |
| 221 | 216 |
| 222 bool PPB_FileRef_Proxy::OnMessageReceived(const IPC::Message& msg) { | 217 bool PPB_FileRef_Proxy::OnMessageReceived(const IPC::Message& msg) { |
| 223 bool handled = true; | 218 bool handled = true; |
| 224 IPC_BEGIN_MESSAGE_MAP(PPB_FileRef_Proxy, msg) | 219 IPC_BEGIN_MESSAGE_MAP(PPB_FileRef_Proxy, msg) |
| 225 #if !defined(OS_NACL) | 220 #if !defined(OS_NACL) |
| 226 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFileRef_Create, OnMsgCreate) | 221 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFileRef_Create, OnMsgCreate) |
| 227 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFileRef_GetParent, OnMsgGetParent) | 222 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFileRef_GetParent, OnMsgGetParent) |
| 228 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFileRef_MakeDirectory, | 223 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFileRef_MakeDirectory, |
| (...skipping 25 matching lines...) Expand all Loading... |
| 254 | 249 |
| 255 // static | 250 // static |
| 256 PP_Resource PPB_FileRef_Proxy::DeserializeFileRef( | 251 PP_Resource PPB_FileRef_Proxy::DeserializeFileRef( |
| 257 const PPB_FileRef_CreateInfo& serialized) { | 252 const PPB_FileRef_CreateInfo& serialized) { |
| 258 if (serialized.resource.is_null()) | 253 if (serialized.resource.is_null()) |
| 259 return 0; // Resource invalid. | 254 return 0; // Resource invalid. |
| 260 return (new FileRef(serialized))->GetReference(); | 255 return (new FileRef(serialized))->GetReference(); |
| 261 } | 256 } |
| 262 | 257 |
| 263 #if !defined(OS_NACL) | 258 #if !defined(OS_NACL) |
| 264 void PPB_FileRef_Proxy::OnMsgCreate(const HostResource& file_system, | 259 void PPB_FileRef_Proxy::OnMsgCreate(PP_Instance pp_instance, |
| 260 PP_Resource file_system, |
| 265 const std::string& path, | 261 const std::string& path, |
| 266 PPB_FileRef_CreateInfo* result) { | 262 PPB_FileRef_CreateInfo* result) { |
| 267 thunk::EnterResourceCreation enter(file_system.instance()); | 263 thunk::EnterResourceCreation enter(pp_instance); |
| 268 if (enter.failed()) | 264 if (enter.failed()) |
| 269 return; | 265 return; |
| 266 |
| 270 PP_Resource resource = enter.functions()->CreateFileRef( | 267 PP_Resource resource = enter.functions()->CreateFileRef( |
| 271 file_system.host_resource(), path.c_str()); | 268 pp_instance, file_system, path.c_str()); |
| 272 if (!resource) | 269 if (!resource) |
| 273 return; // CreateInfo default constructor initializes to 0. | 270 return; // CreateInfo default constructor initializes to 0. |
| 274 SerializeFileRef(resource, result); | 271 SerializeFileRef(resource, result); |
| 275 } | 272 } |
| 276 | 273 |
| 277 void PPB_FileRef_Proxy::OnMsgGetParent(const HostResource& host_resource, | 274 void PPB_FileRef_Proxy::OnMsgGetParent(const HostResource& host_resource, |
| 278 PPB_FileRef_CreateInfo* result) { | 275 PPB_FileRef_CreateInfo* result) { |
| 279 EnterHostFromHostResource<PPB_FileRef_API> enter(host_resource); | 276 EnterHostFromHostResource<PPB_FileRef_API> enter(host_resource); |
| 280 if (enter.succeeded()) | 277 if (enter.succeeded()) |
| 281 SerializeFileRef(enter.object()->GetParent(), result); | 278 SerializeFileRef(enter.object()->GetParent(), result); |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 384 const HostResource& host_resource, | 381 const HostResource& host_resource, |
| 385 base::internal::OwnedWrapper<PP_FileInfo> info, | 382 base::internal::OwnedWrapper<PP_FileInfo> info, |
| 386 uint32_t callback_id) { | 383 uint32_t callback_id) { |
| 387 Send(new PpapiMsg_PPBFileRef_QueryCallbackComplete( | 384 Send(new PpapiMsg_PPBFileRef_QueryCallbackComplete( |
| 388 API_ID_PPB_FILE_REF, host_resource, *info.get(), callback_id, result)); | 385 API_ID_PPB_FILE_REF, host_resource, *info.get(), callback_id, result)); |
| 389 } | 386 } |
| 390 #endif // !defined(OS_NACL) | 387 #endif // !defined(OS_NACL) |
| 391 | 388 |
| 392 } // namespace proxy | 389 } // namespace proxy |
| 393 } // namespace ppapi | 390 } // namespace ppapi |
| OLD | NEW |