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 "webkit/plugins/ppapi/ppb_file_ref_impl.h" | 5 #include "webkit/plugins/ppapi/ppb_file_ref_impl.h" |
6 | 6 |
7 #include "base/platform_file.h" | 7 #include "base/platform_file.h" |
8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "googleurl/src/gurl.h" | 10 #include "googleurl/src/gurl.h" |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 const std::string& path) { | 170 const std::string& path) { |
171 PluginInstance* plugin_instance = | 171 PluginInstance* plugin_instance = |
172 ResourceHelper::PPInstanceToPluginInstance(instance); | 172 ResourceHelper::PPInstanceToPluginInstance(instance); |
173 if (!plugin_instance || !plugin_instance->delegate()) | 173 if (!plugin_instance || !plugin_instance->delegate()) |
174 return 0; | 174 return 0; |
175 | 175 |
176 PP_FileSystemType type = | 176 PP_FileSystemType type = |
177 plugin_instance->delegate()->GetFileSystemType(instance, pp_file_system); | 177 plugin_instance->delegate()->GetFileSystemType(instance, pp_file_system); |
178 if (type != PP_FILESYSTEMTYPE_LOCALPERSISTENT && | 178 if (type != PP_FILESYSTEMTYPE_LOCALPERSISTENT && |
179 type != PP_FILESYSTEMTYPE_LOCALTEMPORARY && | 179 type != PP_FILESYSTEMTYPE_LOCALTEMPORARY && |
180 type != PP_FILESYSTEMTYPE_EXTERNAL) | 180 type != PP_FILESYSTEMTYPE_EXTERNAL && |
| 181 type != PP_FILESYSTEMTYPE_ISOLATED) |
181 return 0; | 182 return 0; |
182 | 183 |
183 PPB_FileRef_CreateInfo info; | 184 PPB_FileRef_CreateInfo info; |
184 info.resource = HostResource::MakeInstanceOnly(instance); | 185 info.resource = HostResource::MakeInstanceOnly(instance); |
185 info.file_system_plugin_resource = pp_file_system; | 186 info.file_system_plugin_resource = pp_file_system; |
186 info.file_system_type = type; | 187 info.file_system_type = type; |
187 | 188 |
188 // Validate the path. | 189 // Validate the path. |
189 info.path = path; | 190 info.path = path; |
190 if (!IsValidLocalPath(info.path)) | 191 if (!IsValidLocalPath(info.path)) |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
324 if (GetFileSystemType() != PP_FILESYSTEMTYPE_EXTERNAL) { | 325 if (GetFileSystemType() != PP_FILESYSTEMTYPE_EXTERNAL) { |
325 NOTREACHED(); | 326 NOTREACHED(); |
326 return base::FilePath(); | 327 return base::FilePath(); |
327 } | 328 } |
328 return external_file_system_path_; | 329 return external_file_system_path_; |
329 } | 330 } |
330 | 331 |
331 GURL PPB_FileRef_Impl::GetFileSystemURL() const { | 332 GURL PPB_FileRef_Impl::GetFileSystemURL() const { |
332 if (GetFileSystemType() != PP_FILESYSTEMTYPE_LOCALPERSISTENT && | 333 if (GetFileSystemType() != PP_FILESYSTEMTYPE_LOCALPERSISTENT && |
333 GetFileSystemType() != PP_FILESYSTEMTYPE_LOCALTEMPORARY && | 334 GetFileSystemType() != PP_FILESYSTEMTYPE_LOCALTEMPORARY && |
334 GetFileSystemType() != PP_FILESYSTEMTYPE_EXTERNAL) { | 335 GetFileSystemType() != PP_FILESYSTEMTYPE_EXTERNAL && |
| 336 GetFileSystemType() != PP_FILESYSTEMTYPE_ISOLATED) { |
335 NOTREACHED(); | 337 NOTREACHED(); |
336 return GURL(); | 338 return GURL(); |
337 } | 339 } |
338 | 340 |
339 const std::string& virtual_path = GetCreateInfo().path; | 341 const std::string& virtual_path = GetCreateInfo().path; |
340 CHECK(!virtual_path.empty()); // Should always be at least "/". | 342 CHECK(!virtual_path.empty()); // Should always be at least "/". |
341 | 343 |
342 // Since |virtual_path_| starts with a '/', it looks like an absolute path. | 344 // Since |virtual_path_| starts with a '/', it looks like an absolute path. |
343 // We need to trim off the '/' before calling Resolve, as FileSystem URLs | 345 // We need to trim off the '/' before calling Resolve, as FileSystem URLs |
344 // start with a storage type identifier that looks like a path segment. | 346 // start with a storage type identifier that looks like a path segment. |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
442 | 444 |
443 if (!plugin_instance->delegate()->ReadDirectoryEntries( | 445 if (!plugin_instance->delegate()->ReadDirectoryEntries( |
444 GetFileSystemURL(), | 446 GetFileSystemURL(), |
445 new FileCallbacks(this, callback, params))) | 447 new FileCallbacks(this, callback, params))) |
446 return PP_ERROR_FAILED; | 448 return PP_ERROR_FAILED; |
447 return PP_OK_COMPLETIONPENDING; | 449 return PP_OK_COMPLETIONPENDING; |
448 } | 450 } |
449 | 451 |
450 } // namespace ppapi | 452 } // namespace ppapi |
451 } // namespace webkit | 453 } // namespace webkit |
OLD | NEW |