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

Side by Side Diff: content/browser/renderer_host/pepper/pepper_internal_file_ref_backend.cc

Issue 21966004: Pepper: Move FileRef to the "new" resource proxy. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Another rebase Created 7 years, 3 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/browser/renderer_host/pepper/pepper_internal_file_ref_backend. h" 5 #include "content/browser/renderer_host/pepper/pepper_internal_file_ref_backend. h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 GURL fs_path = fs_host_->GetRootUrl().Resolve( 64 GURL fs_path = fs_host_->GetRootUrl().Resolve(
65 net::EscapePath(path_.substr(1))); 65 net::EscapePath(path_.substr(1)));
66 scoped_refptr<fileapi::FileSystemContext> fs_context = 66 scoped_refptr<fileapi::FileSystemContext> fs_context =
67 GetFileSystemContext(); 67 GetFileSystemContext();
68 if (fs_context.get()) 68 if (fs_context.get())
69 fs_url_ = fs_context->CrackURL(fs_path); 69 fs_url_ = fs_context->CrackURL(fs_path);
70 } 70 }
71 return fs_url_; 71 return fs_url_;
72 } 72 }
73 73
74 std::string PepperInternalFileRefBackend::GetFileSystemURLSpec() const {
75 if (fs_host_.get() && fs_host_->IsOpened() &&
76 fs_host_->GetRootUrl().is_valid()) {
77 return fs_host_->GetRootUrl().Resolve(
78 net::EscapePath(path_.substr(1))).spec();
79 }
80 return std::string();
81 }
82
83 base::FilePath PepperInternalFileRefBackend::GetExternalPath() const {
84 return base::FilePath();
85 }
86
87 scoped_refptr<fileapi::FileSystemContext> 74 scoped_refptr<fileapi::FileSystemContext>
88 PepperInternalFileRefBackend::GetFileSystemContext() const { 75 PepperInternalFileRefBackend::GetFileSystemContext() const {
89 if (!fs_host_.get()) 76 if (!fs_host_.get())
90 return NULL; 77 return NULL;
91 return fs_host_->GetFileSystemContext(); 78 return fs_host_->GetFileSystemContext();
92 } 79 }
93 80
94 void PepperInternalFileRefBackend::DidFinish( 81 void PepperInternalFileRefBackend::DidFinish(
95 ppapi::host::ReplyMessageContext context, 82 ppapi::host::ReplyMessageContext context,
96 const IPC::Message& msg, 83 const IPC::Message& msg,
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 void PepperInternalFileRefBackend::ReadDirectoryComplete( 203 void PepperInternalFileRefBackend::ReadDirectoryComplete(
217 ppapi::host::ReplyMessageContext context, 204 ppapi::host::ReplyMessageContext context,
218 base::PlatformFileError error, 205 base::PlatformFileError error,
219 const fileapi::FileSystemOperation::FileEntryList& file_list, 206 const fileapi::FileSystemOperation::FileEntryList& file_list,
220 bool has_more) { 207 bool has_more) {
221 // The current filesystem backend always returns false. 208 // The current filesystem backend always returns false.
222 DCHECK(!has_more); 209 DCHECK(!has_more);
223 210
224 context.params.set_result(ppapi::PlatformFileErrorToPepperError(error)); 211 context.params.set_result(ppapi::PlatformFileErrorToPepperError(error));
225 212
226 std::vector<ppapi::FileRef_CreateInfo> infos; 213 std::vector<ppapi::FileRefCreateInfo> infos;
227 std::vector<PP_FileType> file_types; 214 std::vector<PP_FileType> file_types;
228 if (error == base::PLATFORM_FILE_OK && fs_host_.get()) { 215 if (error == base::PLATFORM_FILE_OK && fs_host_.get()) {
229 std::string dir_path = path_; 216 std::string dir_path = path_;
230 if (dir_path.empty() || dir_path[dir_path.size() - 1] != '/') 217 if (dir_path.empty() || dir_path[dir_path.size() - 1] != '/')
231 dir_path += '/'; 218 dir_path += '/';
232 219
233 for (fileapi::FileSystemOperation::FileEntryList::const_iterator it = 220 for (fileapi::FileSystemOperation::FileEntryList::const_iterator it =
234 file_list.begin(); it != file_list.end(); ++it) { 221 file_list.begin(); it != file_list.end(); ++it) {
235 if (it->is_directory) 222 if (it->is_directory)
236 file_types.push_back(PP_FILETYPE_DIRECTORY); 223 file_types.push_back(PP_FILETYPE_DIRECTORY);
237 else 224 else
238 file_types.push_back(PP_FILETYPE_REGULAR); 225 file_types.push_back(PP_FILETYPE_REGULAR);
239 226
240 ppapi::FileRef_CreateInfo info; 227 ppapi::FileRefCreateInfo info;
241 info.file_system_type = fs_type_; 228 info.file_system_type = fs_type_;
242 info.file_system_plugin_resource = fs_host_->pp_resource(); 229 info.file_system_plugin_resource = fs_host_->pp_resource();
243 std::string path = 230 std::string path =
244 dir_path + fileapi::FilePathToString(base::FilePath(it->name)); 231 dir_path + fileapi::FilePathToString(base::FilePath(it->name));
245 info.internal_path = path; 232 info.internal_path = path;
246 info.display_name = ppapi::GetNameForInternalFilePath(path); 233 info.display_name = ppapi::GetNameForInternalFilePath(path);
247 infos.push_back(info); 234 infos.push_back(info);
248 } 235 }
249 } 236 }
250 237
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 ChildProcessSecurityPolicyImpl* policy = 286 ChildProcessSecurityPolicyImpl* policy =
300 ChildProcessSecurityPolicyImpl::GetInstance(); 287 ChildProcessSecurityPolicyImpl::GetInstance();
301 if (!policy->CanReadFileSystemFile(render_process_id_, url) || 288 if (!policy->CanReadFileSystemFile(render_process_id_, url) ||
302 !policy->CanWriteFileSystemFile(render_process_id_, url)) { 289 !policy->CanWriteFileSystemFile(render_process_id_, url)) {
303 return PP_ERROR_NOACCESS; 290 return PP_ERROR_NOACCESS;
304 } 291 }
305 return PP_OK; 292 return PP_OK;
306 } 293 }
307 294
308 } // namespace content 295 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698