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

Side by Side Diff: ppapi/proxy/ppb_file_ref_proxy.cc

Issue 13726024: Refactor FileSystem (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 8 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 unified diff | Download patch
OLDNEW
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698