| 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_system_proxy.h" | 5 #include "ppapi/proxy/ppb_file_system_proxy.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
| 9 #include "ppapi/c/pp_errors.h" | 9 #include "ppapi/c/pp_errors.h" |
| 10 #include "ppapi/c/ppb_file_system.h" | 10 #include "ppapi/c/ppb_file_system.h" |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 dispatcher->Send(new PpapiHostMsg_PPBFileSystem_Create( | 128 dispatcher->Send(new PpapiHostMsg_PPBFileSystem_Create( |
| 129 API_ID_PPB_FILE_SYSTEM, instance, type, &result)); | 129 API_ID_PPB_FILE_SYSTEM, instance, type, &result)); |
| 130 if (result.is_null()) | 130 if (result.is_null()) |
| 131 return 0; | 131 return 0; |
| 132 return (new FileSystem(result, type))->GetReference(); | 132 return (new FileSystem(result, type))->GetReference(); |
| 133 } | 133 } |
| 134 | 134 |
| 135 bool PPB_FileSystem_Proxy::OnMessageReceived(const IPC::Message& msg) { | 135 bool PPB_FileSystem_Proxy::OnMessageReceived(const IPC::Message& msg) { |
| 136 bool handled = true; | 136 bool handled = true; |
| 137 IPC_BEGIN_MESSAGE_MAP(PPB_FileSystem_Proxy, msg) | 137 IPC_BEGIN_MESSAGE_MAP(PPB_FileSystem_Proxy, msg) |
| 138 #if !defined(OS_NACL) |
| 138 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFileSystem_Create, OnMsgCreate) | 139 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFileSystem_Create, OnMsgCreate) |
| 139 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFileSystem_Open, OnMsgOpen) | 140 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFileSystem_Open, OnMsgOpen) |
| 141 #endif |
| 140 IPC_MESSAGE_HANDLER(PpapiMsg_PPBFileSystem_OpenComplete, OnMsgOpenComplete) | 142 IPC_MESSAGE_HANDLER(PpapiMsg_PPBFileSystem_OpenComplete, OnMsgOpenComplete) |
| 141 IPC_MESSAGE_UNHANDLED(handled = false) | 143 IPC_MESSAGE_UNHANDLED(handled = false) |
| 142 IPC_END_MESSAGE_MAP() | 144 IPC_END_MESSAGE_MAP() |
| 143 return handled; | 145 return handled; |
| 144 } | 146 } |
| 145 | 147 |
| 148 #if !defined(OS_NACL) |
| 146 void PPB_FileSystem_Proxy::OnMsgCreate(PP_Instance instance, | 149 void PPB_FileSystem_Proxy::OnMsgCreate(PP_Instance instance, |
| 147 int type, | 150 int type, |
| 148 HostResource* result) { | 151 HostResource* result) { |
| 149 thunk::EnterResourceCreation enter(instance); | 152 thunk::EnterResourceCreation enter(instance); |
| 150 if (enter.failed()) | 153 if (enter.failed()) |
| 151 return; | 154 return; |
| 152 PP_Resource resource = enter.functions()->CreateFileSystem( | 155 PP_Resource resource = enter.functions()->CreateFileSystem( |
| 153 instance, static_cast<PP_FileSystemType>(type)); | 156 instance, static_cast<PP_FileSystemType>(type)); |
| 154 if (!resource) | 157 if (!resource) |
| 155 return; // CreateInfo default constructor initializes to 0. | 158 return; // CreateInfo default constructor initializes to 0. |
| 156 result->SetHostResource(instance, resource); | 159 result->SetHostResource(instance, resource); |
| 157 } | 160 } |
| 158 | 161 |
| 159 void PPB_FileSystem_Proxy::OnMsgOpen(const HostResource& host_resource, | 162 void PPB_FileSystem_Proxy::OnMsgOpen(const HostResource& host_resource, |
| 160 int64_t expected_size) { | 163 int64_t expected_size) { |
| 161 EnterHostFromHostResourceForceCallback<PPB_FileSystem_API> enter( | 164 EnterHostFromHostResourceForceCallback<PPB_FileSystem_API> enter( |
| 162 host_resource, callback_factory_, | 165 host_resource, callback_factory_, |
| 163 &PPB_FileSystem_Proxy::OpenCompleteInHost, host_resource); | 166 &PPB_FileSystem_Proxy::OpenCompleteInHost, host_resource); |
| 164 if (enter.succeeded()) | 167 if (enter.succeeded()) |
| 165 enter.SetResult(enter.object()->Open(expected_size, enter.callback())); | 168 enter.SetResult(enter.object()->Open(expected_size, enter.callback())); |
| 166 } | 169 } |
| 170 #endif // !defined(OS_NACL) |
| 167 | 171 |
| 168 // Called in the plugin to handle the open callback. | 172 // Called in the plugin to handle the open callback. |
| 169 void PPB_FileSystem_Proxy::OnMsgOpenComplete(const HostResource& host_resource, | 173 void PPB_FileSystem_Proxy::OnMsgOpenComplete(const HostResource& host_resource, |
| 170 int32_t result) { | 174 int32_t result) { |
| 171 EnterPluginFromHostResource<PPB_FileSystem_API> enter(host_resource); | 175 EnterPluginFromHostResource<PPB_FileSystem_API> enter(host_resource); |
| 172 if (enter.succeeded()) | 176 if (enter.succeeded()) |
| 173 static_cast<FileSystem*>(enter.object())->OpenComplete(result); | 177 static_cast<FileSystem*>(enter.object())->OpenComplete(result); |
| 174 } | 178 } |
| 175 | 179 |
| 180 #if !defined(OS_NACL) |
| 176 void PPB_FileSystem_Proxy::OpenCompleteInHost( | 181 void PPB_FileSystem_Proxy::OpenCompleteInHost( |
| 177 int32_t result, | 182 int32_t result, |
| 178 const HostResource& host_resource) { | 183 const HostResource& host_resource) { |
| 179 dispatcher()->Send(new PpapiMsg_PPBFileSystem_OpenComplete( | 184 dispatcher()->Send(new PpapiMsg_PPBFileSystem_OpenComplete( |
| 180 API_ID_PPB_FILE_SYSTEM, host_resource, result)); | 185 API_ID_PPB_FILE_SYSTEM, host_resource, result)); |
| 181 } | 186 } |
| 187 #endif // !defined(OS_NACL) |
| 182 | 188 |
| 183 } // namespace proxy | 189 } // namespace proxy |
| 184 } // namespace ppapi | 190 } // namespace ppapi |
| OLD | NEW |