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

Side by Side Diff: chrome/browser/media_galleries/fileapi/native_media_file_util.cc

Issue 145303002: Convert Media Galleries to use base::File (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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 (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 "chrome/browser/media_galleries/fileapi/native_media_file_util.h" 5 #include "chrome/browser/media_galleries/fileapi/native_media_file_util.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 77
78 NativeMediaFileUtil::NativeMediaFileUtil(MediaPathFilter* media_path_filter) 78 NativeMediaFileUtil::NativeMediaFileUtil(MediaPathFilter* media_path_filter)
79 : media_path_filter_(media_path_filter), 79 : media_path_filter_(media_path_filter),
80 weak_factory_(this) { 80 weak_factory_(this) {
81 } 81 }
82 82
83 NativeMediaFileUtil::~NativeMediaFileUtil() { 83 NativeMediaFileUtil::~NativeMediaFileUtil() {
84 } 84 }
85 85
86 // static 86 // static
87 base::PlatformFileError NativeMediaFileUtil::IsMediaFile( 87 base::File::Error NativeMediaFileUtil::IsMediaFile(
88 const base::FilePath& path) { 88 const base::FilePath& path) {
89 base::PlatformFile file_handle; 89 base::PlatformFile file_handle;
90 const int flags = base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ; 90 const int flags = base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ;
91 base::PlatformFileError error = 91 base::File::Error error =
92 fileapi::NativeFileUtil::CreateOrOpen(path, flags, &file_handle, NULL); 92 fileapi::NativeFileUtil::CreateOrOpen(path, flags, &file_handle, NULL);
93 if (error != base::PLATFORM_FILE_OK) 93 if (error != base::File::FILE_OK)
94 return error; 94 return error;
95 95
96 base::ScopedPlatformFileCloser scoped_platform_file(&file_handle); 96 base::ScopedPlatformFileCloser scoped_platform_file(&file_handle);
97 char buffer[net::kMaxBytesToSniff]; 97 char buffer[net::kMaxBytesToSniff];
98 98
99 // Read as much as net::SniffMimeTypeFromLocalData() will bother looking at. 99 // Read as much as net::SniffMimeTypeFromLocalData() will bother looking at.
100 int64 len = 100 int64 len =
101 base::ReadPlatformFile(file_handle, 0, buffer, net::kMaxBytesToSniff); 101 base::ReadPlatformFile(file_handle, 0, buffer, net::kMaxBytesToSniff);
102 if (len < 0) 102 if (len < 0)
103 return base::PLATFORM_FILE_ERROR_FAILED; 103 return base::File::FILE_ERROR_FAILED;
104 if (len == 0) 104 if (len == 0)
105 return base::PLATFORM_FILE_ERROR_SECURITY; 105 return base::File::FILE_ERROR_SECURITY;
106 106
107 std::string mime_type; 107 std::string mime_type;
108 if (!net::SniffMimeTypeFromLocalData(buffer, len, &mime_type)) 108 if (!net::SniffMimeTypeFromLocalData(buffer, len, &mime_type))
109 return base::PLATFORM_FILE_ERROR_SECURITY; 109 return base::File::FILE_ERROR_SECURITY;
110 110
111 if (StartsWithASCII(mime_type, "image/", true) || 111 if (StartsWithASCII(mime_type, "image/", true) ||
112 StartsWithASCII(mime_type, "audio/", true) || 112 StartsWithASCII(mime_type, "audio/", true) ||
113 StartsWithASCII(mime_type, "video/", true) || 113 StartsWithASCII(mime_type, "video/", true) ||
114 mime_type == "application/x-shockwave-flash") { 114 mime_type == "application/x-shockwave-flash") {
115 return base::PLATFORM_FILE_OK; 115 return base::File::FILE_OK;
116 } 116 }
117 return base::PLATFORM_FILE_ERROR_SECURITY; 117 return base::File::FILE_ERROR_SECURITY;
118 } 118 }
119 119
120 void NativeMediaFileUtil::CreateOrOpen( 120 void NativeMediaFileUtil::CreateOrOpen(
121 scoped_ptr<fileapi::FileSystemOperationContext> context, 121 scoped_ptr<fileapi::FileSystemOperationContext> context,
122 const fileapi::FileSystemURL& url, 122 const fileapi::FileSystemURL& url,
123 int file_flags, 123 int file_flags,
124 const CreateOrOpenCallback& callback) { 124 const CreateOrOpenCallback& callback) {
125 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 125 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
126 // Only called by NaCl, which should not have access to media file systems. 126 // Only called by NaCl, which should not have access to media file systems.
127 base::PlatformFile invalid_file(base::kInvalidPlatformFileValue); 127 base::PlatformFile invalid_file(base::kInvalidPlatformFileValue);
128 callback.Run(base::PLATFORM_FILE_ERROR_SECURITY, 128 callback.Run(base::File::FILE_ERROR_SECURITY,
129 base::PassPlatformFile(&invalid_file), 129 base::PassPlatformFile(&invalid_file),
130 base::Closure()); 130 base::Closure());
131 } 131 }
132 132
133 void NativeMediaFileUtil::EnsureFileExists( 133 void NativeMediaFileUtil::EnsureFileExists(
134 scoped_ptr<fileapi::FileSystemOperationContext> context, 134 scoped_ptr<fileapi::FileSystemOperationContext> context,
135 const fileapi::FileSystemURL& url, 135 const fileapi::FileSystemURL& url,
136 const EnsureFileExistsCallback& callback) { 136 const EnsureFileExistsCallback& callback) {
137 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 137 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
138 callback.Run(base::PLATFORM_FILE_ERROR_SECURITY, false); 138 callback.Run(base::File::FILE_ERROR_SECURITY, false);
139 } 139 }
140 140
141 void NativeMediaFileUtil::CreateDirectory( 141 void NativeMediaFileUtil::CreateDirectory(
142 scoped_ptr<fileapi::FileSystemOperationContext> context, 142 scoped_ptr<fileapi::FileSystemOperationContext> context,
143 const fileapi::FileSystemURL& url, 143 const fileapi::FileSystemURL& url,
144 bool exclusive, 144 bool exclusive,
145 bool recursive, 145 bool recursive,
146 const StatusCallback& callback) { 146 const StatusCallback& callback) {
147 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 147 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
148 fileapi::FileSystemOperationContext* context_ptr = context.get(); 148 fileapi::FileSystemOperationContext* context_ptr = context.get();
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 DCHECK(success); 182 DCHECK(success);
183 } 183 }
184 184
185 void NativeMediaFileUtil::Touch( 185 void NativeMediaFileUtil::Touch(
186 scoped_ptr<fileapi::FileSystemOperationContext> context, 186 scoped_ptr<fileapi::FileSystemOperationContext> context,
187 const fileapi::FileSystemURL& url, 187 const fileapi::FileSystemURL& url,
188 const base::Time& last_access_time, 188 const base::Time& last_access_time,
189 const base::Time& last_modified_time, 189 const base::Time& last_modified_time,
190 const StatusCallback& callback) { 190 const StatusCallback& callback) {
191 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 191 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
192 callback.Run(base::PLATFORM_FILE_ERROR_SECURITY); 192 callback.Run(base::File::FILE_ERROR_SECURITY);
193 } 193 }
194 194
195 void NativeMediaFileUtil::Truncate( 195 void NativeMediaFileUtil::Truncate(
196 scoped_ptr<fileapi::FileSystemOperationContext> context, 196 scoped_ptr<fileapi::FileSystemOperationContext> context,
197 const fileapi::FileSystemURL& url, 197 const fileapi::FileSystemURL& url,
198 int64 length, 198 int64 length,
199 const StatusCallback& callback) { 199 const StatusCallback& callback) {
200 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 200 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
201 callback.Run(base::PLATFORM_FILE_ERROR_SECURITY); 201 callback.Run(base::File::FILE_ERROR_SECURITY);
202 } 202 }
203 203
204 void NativeMediaFileUtil::CopyFileLocal( 204 void NativeMediaFileUtil::CopyFileLocal(
205 scoped_ptr<fileapi::FileSystemOperationContext> context, 205 scoped_ptr<fileapi::FileSystemOperationContext> context,
206 const fileapi::FileSystemURL& src_url, 206 const fileapi::FileSystemURL& src_url,
207 const fileapi::FileSystemURL& dest_url, 207 const fileapi::FileSystemURL& dest_url,
208 CopyOrMoveOption option, 208 CopyOrMoveOption option,
209 const CopyFileProgressCallback& progress_callback, 209 const CopyFileProgressCallback& progress_callback,
210 const StatusCallback& callback) { 210 const StatusCallback& callback) {
211 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 211 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 weak_factory_.GetWeakPtr(), base::Passed(&context), 276 weak_factory_.GetWeakPtr(), base::Passed(&context),
277 url, callback)); 277 url, callback));
278 DCHECK(success); 278 DCHECK(success);
279 } 279 }
280 280
281 void NativeMediaFileUtil::DeleteRecursively( 281 void NativeMediaFileUtil::DeleteRecursively(
282 scoped_ptr<fileapi::FileSystemOperationContext> context, 282 scoped_ptr<fileapi::FileSystemOperationContext> context,
283 const fileapi::FileSystemURL& url, 283 const fileapi::FileSystemURL& url,
284 const StatusCallback& callback) { 284 const StatusCallback& callback) {
285 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 285 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
286 callback.Run(base::PLATFORM_FILE_ERROR_INVALID_OPERATION); 286 callback.Run(base::File::FILE_ERROR_INVALID_OPERATION);
287 } 287 }
288 288
289 void NativeMediaFileUtil::CreateSnapshotFile( 289 void NativeMediaFileUtil::CreateSnapshotFile(
290 scoped_ptr<fileapi::FileSystemOperationContext> context, 290 scoped_ptr<fileapi::FileSystemOperationContext> context,
291 const fileapi::FileSystemURL& url, 291 const fileapi::FileSystemURL& url,
292 const CreateSnapshotFileCallback& callback) { 292 const CreateSnapshotFileCallback& callback) {
293 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 293 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
294 fileapi::FileSystemOperationContext* context_ptr = context.get(); 294 fileapi::FileSystemOperationContext* context_ptr = context.get();
295 const bool success = context_ptr->task_runner()->PostTask( 295 const bool success = context_ptr->task_runner()->PostTask(
296 FROM_HERE, 296 FROM_HERE,
297 base::Bind(&NativeMediaFileUtil::CreateSnapshotFileOnTaskRunnerThread, 297 base::Bind(&NativeMediaFileUtil::CreateSnapshotFileOnTaskRunnerThread,
298 weak_factory_.GetWeakPtr(), base::Passed(&context), 298 weak_factory_.GetWeakPtr(), base::Passed(&context),
299 url, callback)); 299 url, callback));
300 DCHECK(success); 300 DCHECK(success);
301 } 301 }
302 302
303 void NativeMediaFileUtil::CreateDirectoryOnTaskRunnerThread( 303 void NativeMediaFileUtil::CreateDirectoryOnTaskRunnerThread(
304 scoped_ptr<fileapi::FileSystemOperationContext> context, 304 scoped_ptr<fileapi::FileSystemOperationContext> context,
305 const fileapi::FileSystemURL& url, 305 const fileapi::FileSystemURL& url,
306 bool exclusive, 306 bool exclusive,
307 bool recursive, 307 bool recursive,
308 const StatusCallback& callback) { 308 const StatusCallback& callback) {
309 DCHECK(IsOnTaskRunnerThread(context.get())); 309 DCHECK(IsOnTaskRunnerThread(context.get()));
310 base::PlatformFileError error = 310 base::File::Error error =
311 CreateDirectorySync(context.get(), url, exclusive, recursive); 311 CreateDirectorySync(context.get(), url, exclusive, recursive);
312 content::BrowserThread::PostTask( 312 content::BrowserThread::PostTask(
313 content::BrowserThread::IO, 313 content::BrowserThread::IO,
314 FROM_HERE, 314 FROM_HERE,
315 base::Bind(callback, error)); 315 base::Bind(callback, error));
316 } 316 }
317 317
318 void NativeMediaFileUtil::GetFileInfoOnTaskRunnerThread( 318 void NativeMediaFileUtil::GetFileInfoOnTaskRunnerThread(
319 scoped_ptr<fileapi::FileSystemOperationContext> context, 319 scoped_ptr<fileapi::FileSystemOperationContext> context,
320 const fileapi::FileSystemURL& url, 320 const fileapi::FileSystemURL& url,
321 const GetFileInfoCallback& callback) { 321 const GetFileInfoCallback& callback) {
322 DCHECK(IsOnTaskRunnerThread(context.get())); 322 DCHECK(IsOnTaskRunnerThread(context.get()));
323 base::PlatformFileInfo file_info; 323 base::File::Info file_info;
324 base::PlatformFileError error = 324 base::File::Error error =
325 GetFileInfoSync(context.get(), url, &file_info, NULL); 325 GetFileInfoSync(context.get(), url, &file_info, NULL);
326 content::BrowserThread::PostTask( 326 content::BrowserThread::PostTask(
327 content::BrowserThread::IO, 327 content::BrowserThread::IO,
328 FROM_HERE, 328 FROM_HERE,
329 base::Bind(callback, error, file_info)); 329 base::Bind(callback, error, file_info));
330 } 330 }
331 331
332 void NativeMediaFileUtil::ReadDirectoryOnTaskRunnerThread( 332 void NativeMediaFileUtil::ReadDirectoryOnTaskRunnerThread(
333 scoped_ptr<fileapi::FileSystemOperationContext> context, 333 scoped_ptr<fileapi::FileSystemOperationContext> context,
334 const fileapi::FileSystemURL& url, 334 const fileapi::FileSystemURL& url,
335 const ReadDirectoryCallback& callback) { 335 const ReadDirectoryCallback& callback) {
336 DCHECK(IsOnTaskRunnerThread(context.get())); 336 DCHECK(IsOnTaskRunnerThread(context.get()));
337 EntryList entry_list; 337 EntryList entry_list;
338 base::PlatformFileError error = 338 base::File::Error error =
339 ReadDirectorySync(context.get(), url, &entry_list); 339 ReadDirectorySync(context.get(), url, &entry_list);
340 content::BrowserThread::PostTask( 340 content::BrowserThread::PostTask(
341 content::BrowserThread::IO, 341 content::BrowserThread::IO,
342 FROM_HERE, 342 FROM_HERE,
343 base::Bind(callback, error, entry_list, false /* has_more */)); 343 base::Bind(callback, error, entry_list, false /* has_more */));
344 } 344 }
345 345
346 void NativeMediaFileUtil::CopyOrMoveFileLocalOnTaskRunnerThread( 346 void NativeMediaFileUtil::CopyOrMoveFileLocalOnTaskRunnerThread(
347 scoped_ptr<fileapi::FileSystemOperationContext> context, 347 scoped_ptr<fileapi::FileSystemOperationContext> context,
348 const fileapi::FileSystemURL& src_url, 348 const fileapi::FileSystemURL& src_url,
349 const fileapi::FileSystemURL& dest_url, 349 const fileapi::FileSystemURL& dest_url,
350 CopyOrMoveOption option, 350 CopyOrMoveOption option,
351 bool copy, 351 bool copy,
352 const StatusCallback& callback) { 352 const StatusCallback& callback) {
353 DCHECK(IsOnTaskRunnerThread(context.get())); 353 DCHECK(IsOnTaskRunnerThread(context.get()));
354 base::PlatformFileError error = 354 base::File::Error error =
355 CopyOrMoveFileSync(context.get(), src_url, dest_url, option, copy); 355 CopyOrMoveFileSync(context.get(), src_url, dest_url, option, copy);
356 content::BrowserThread::PostTask( 356 content::BrowserThread::PostTask(
357 content::BrowserThread::IO, 357 content::BrowserThread::IO,
358 FROM_HERE, 358 FROM_HERE,
359 base::Bind(callback, error)); 359 base::Bind(callback, error));
360 } 360 }
361 361
362 void NativeMediaFileUtil::CopyInForeignFileOnTaskRunnerThread( 362 void NativeMediaFileUtil::CopyInForeignFileOnTaskRunnerThread(
363 scoped_ptr<fileapi::FileSystemOperationContext> context, 363 scoped_ptr<fileapi::FileSystemOperationContext> context,
364 const base::FilePath& src_file_path, 364 const base::FilePath& src_file_path,
365 const fileapi::FileSystemURL& dest_url, 365 const fileapi::FileSystemURL& dest_url,
366 const StatusCallback& callback) { 366 const StatusCallback& callback) {
367 DCHECK(IsOnTaskRunnerThread(context.get())); 367 DCHECK(IsOnTaskRunnerThread(context.get()));
368 base::PlatformFileError error = 368 base::File::Error error =
369 CopyInForeignFileSync(context.get(), src_file_path, dest_url); 369 CopyInForeignFileSync(context.get(), src_file_path, dest_url);
370 content::BrowserThread::PostTask( 370 content::BrowserThread::PostTask(
371 content::BrowserThread::IO, 371 content::BrowserThread::IO,
372 FROM_HERE, 372 FROM_HERE,
373 base::Bind(callback, error)); 373 base::Bind(callback, error));
374 } 374 }
375 375
376 void NativeMediaFileUtil::DeleteFileOnTaskRunnerThread( 376 void NativeMediaFileUtil::DeleteFileOnTaskRunnerThread(
377 scoped_ptr<fileapi::FileSystemOperationContext> context, 377 scoped_ptr<fileapi::FileSystemOperationContext> context,
378 const fileapi::FileSystemURL& url, 378 const fileapi::FileSystemURL& url,
379 const StatusCallback& callback) { 379 const StatusCallback& callback) {
380 DCHECK(IsOnTaskRunnerThread(context.get())); 380 DCHECK(IsOnTaskRunnerThread(context.get()));
381 base::PlatformFileError error = DeleteFileSync(context.get(), url); 381 base::File::Error error = DeleteFileSync(context.get(), url);
382 content::BrowserThread::PostTask( 382 content::BrowserThread::PostTask(
383 content::BrowserThread::IO, 383 content::BrowserThread::IO,
384 FROM_HERE, 384 FROM_HERE,
385 base::Bind(callback, error)); 385 base::Bind(callback, error));
386 } 386 }
387 387
388 void NativeMediaFileUtil::DeleteDirectoryOnTaskRunnerThread( 388 void NativeMediaFileUtil::DeleteDirectoryOnTaskRunnerThread(
389 scoped_ptr<fileapi::FileSystemOperationContext> context, 389 scoped_ptr<fileapi::FileSystemOperationContext> context,
390 const fileapi::FileSystemURL& url, 390 const fileapi::FileSystemURL& url,
391 const StatusCallback& callback) { 391 const StatusCallback& callback) {
392 DCHECK(IsOnTaskRunnerThread(context.get())); 392 DCHECK(IsOnTaskRunnerThread(context.get()));
393 base::PlatformFileError error = DeleteDirectorySync(context.get(), url); 393 base::File::Error error = DeleteDirectorySync(context.get(), url);
394 content::BrowserThread::PostTask( 394 content::BrowserThread::PostTask(
395 content::BrowserThread::IO, 395 content::BrowserThread::IO,
396 FROM_HERE, 396 FROM_HERE,
397 base::Bind(callback, error)); 397 base::Bind(callback, error));
398 } 398 }
399 399
400 void NativeMediaFileUtil::CreateSnapshotFileOnTaskRunnerThread( 400 void NativeMediaFileUtil::CreateSnapshotFileOnTaskRunnerThread(
401 scoped_ptr<fileapi::FileSystemOperationContext> context, 401 scoped_ptr<fileapi::FileSystemOperationContext> context,
402 const fileapi::FileSystemURL& url, 402 const fileapi::FileSystemURL& url,
403 const CreateSnapshotFileCallback& callback) { 403 const CreateSnapshotFileCallback& callback) {
404 DCHECK(IsOnTaskRunnerThread(context.get())); 404 DCHECK(IsOnTaskRunnerThread(context.get()));
405 base::PlatformFileInfo file_info; 405 base::File::Info file_info;
406 base::FilePath platform_path; 406 base::FilePath platform_path;
407 scoped_refptr<webkit_blob::ShareableFileReference> file_ref; 407 scoped_refptr<webkit_blob::ShareableFileReference> file_ref;
408 base::PlatformFileError error = 408 base::File::Error error =
409 CreateSnapshotFileSync(context.get(), url, &file_info, &platform_path, 409 CreateSnapshotFileSync(context.get(), url, &file_info, &platform_path,
410 &file_ref); 410 &file_ref);
411 content::BrowserThread::PostTask( 411 content::BrowserThread::PostTask(
412 content::BrowserThread::IO, 412 content::BrowserThread::IO,
413 FROM_HERE, 413 FROM_HERE,
414 base::Bind(callback, error, file_info, platform_path, file_ref)); 414 base::Bind(callback, error, file_info, platform_path, file_ref));
415 } 415 }
416 416
417 base::PlatformFileError NativeMediaFileUtil::CreateDirectorySync( 417 base::File::Error NativeMediaFileUtil::CreateDirectorySync(
418 fileapi::FileSystemOperationContext* context, 418 fileapi::FileSystemOperationContext* context,
419 const fileapi::FileSystemURL& url, 419 const fileapi::FileSystemURL& url,
420 bool exclusive, 420 bool exclusive,
421 bool recursive) { 421 bool recursive) {
422 base::FilePath file_path; 422 base::FilePath file_path;
423 base::PlatformFileError error = GetLocalFilePath(context, url, &file_path); 423 base::File::Error error = GetLocalFilePath(context, url, &file_path);
424 if (error != base::PLATFORM_FILE_OK) 424 if (error != base::File::FILE_OK)
425 return error; 425 return error;
426 return fileapi::NativeFileUtil::CreateDirectory(file_path, exclusive, 426 return fileapi::NativeFileUtil::CreateDirectory(file_path, exclusive,
427 recursive); 427 recursive);
428 } 428 }
429 429
430 base::PlatformFileError NativeMediaFileUtil::CopyOrMoveFileSync( 430 base::File::Error NativeMediaFileUtil::CopyOrMoveFileSync(
431 fileapi::FileSystemOperationContext* context, 431 fileapi::FileSystemOperationContext* context,
432 const fileapi::FileSystemURL& src_url, 432 const fileapi::FileSystemURL& src_url,
433 const fileapi::FileSystemURL& dest_url, 433 const fileapi::FileSystemURL& dest_url,
434 CopyOrMoveOption option, 434 CopyOrMoveOption option,
435 bool copy) { 435 bool copy) {
436 DCHECK(IsOnTaskRunnerThread(context)); 436 DCHECK(IsOnTaskRunnerThread(context));
437 base::FilePath src_file_path; 437 base::FilePath src_file_path;
438 base::PlatformFileError error = 438 base::File::Error error =
439 GetFilteredLocalFilePathForExistingFileOrDirectory( 439 GetFilteredLocalFilePathForExistingFileOrDirectory(
440 context, src_url, 440 context, src_url,
441 base::PLATFORM_FILE_ERROR_NOT_FOUND, 441 base::File::FILE_ERROR_NOT_FOUND,
442 &src_file_path); 442 &src_file_path);
443 if (error != base::PLATFORM_FILE_OK) 443 if (error != base::File::FILE_OK)
444 return error; 444 return error;
445 if (fileapi::NativeFileUtil::DirectoryExists(src_file_path)) 445 if (fileapi::NativeFileUtil::DirectoryExists(src_file_path))
446 return base::PLATFORM_FILE_ERROR_NOT_A_FILE; 446 return base::File::FILE_ERROR_NOT_A_FILE;
447 447
448 base::FilePath dest_file_path; 448 base::FilePath dest_file_path;
449 error = GetLocalFilePath(context, dest_url, &dest_file_path); 449 error = GetLocalFilePath(context, dest_url, &dest_file_path);
450 if (error != base::PLATFORM_FILE_OK) 450 if (error != base::File::FILE_OK)
451 return error; 451 return error;
452 base::PlatformFileInfo file_info; 452 base::File::Info file_info;
453 error = fileapi::NativeFileUtil::GetFileInfo(dest_file_path, &file_info); 453 error = fileapi::NativeFileUtil::GetFileInfo(dest_file_path, &file_info);
454 if (error != base::PLATFORM_FILE_OK && 454 if (error != base::File::FILE_OK &&
455 error != base::PLATFORM_FILE_ERROR_NOT_FOUND) 455 error != base::File::FILE_ERROR_NOT_FOUND) {
456 return error; 456 return error;
457 if (error == base::PLATFORM_FILE_OK && file_info.is_directory) 457 }
458 return base::PLATFORM_FILE_ERROR_INVALID_OPERATION; 458 if (error == base::File::FILE_OK && file_info.is_directory)
459 return base::File::FILE_ERROR_INVALID_OPERATION;
459 if (!media_path_filter_->Match(dest_file_path)) 460 if (!media_path_filter_->Match(dest_file_path))
460 return base::PLATFORM_FILE_ERROR_SECURITY; 461 return base::File::FILE_ERROR_SECURITY;
461 462
462 return fileapi::NativeFileUtil::CopyOrMoveFile( 463 return fileapi::NativeFileUtil::CopyOrMoveFile(
463 src_file_path, dest_file_path, option, 464 src_file_path, dest_file_path, option,
464 fileapi::NativeFileUtil::CopyOrMoveModeForDestination(dest_url, copy)); 465 fileapi::NativeFileUtil::CopyOrMoveModeForDestination(dest_url, copy));
465 } 466 }
466 467
467 base::PlatformFileError NativeMediaFileUtil::CopyInForeignFileSync( 468 base::File::Error NativeMediaFileUtil::CopyInForeignFileSync(
468 fileapi::FileSystemOperationContext* context, 469 fileapi::FileSystemOperationContext* context,
469 const base::FilePath& src_file_path, 470 const base::FilePath& src_file_path,
470 const fileapi::FileSystemURL& dest_url) { 471 const fileapi::FileSystemURL& dest_url) {
471 DCHECK(IsOnTaskRunnerThread(context)); 472 DCHECK(IsOnTaskRunnerThread(context));
472 if (src_file_path.empty()) 473 if (src_file_path.empty())
473 return base::PLATFORM_FILE_ERROR_INVALID_OPERATION; 474 return base::File::FILE_ERROR_INVALID_OPERATION;
474 475
475 base::FilePath dest_file_path; 476 base::FilePath dest_file_path;
476 base::PlatformFileError error = 477 base::File::Error error =
477 GetFilteredLocalFilePath(context, dest_url, &dest_file_path); 478 GetFilteredLocalFilePath(context, dest_url, &dest_file_path);
478 if (error != base::PLATFORM_FILE_OK) 479 if (error != base::File::FILE_OK)
479 return error; 480 return error;
480 return fileapi::NativeFileUtil::CopyOrMoveFile( 481 return fileapi::NativeFileUtil::CopyOrMoveFile(
481 src_file_path, dest_file_path, 482 src_file_path, dest_file_path,
482 fileapi::FileSystemOperation::OPTION_NONE, 483 fileapi::FileSystemOperation::OPTION_NONE,
483 fileapi::NativeFileUtil::CopyOrMoveModeForDestination(dest_url, 484 fileapi::NativeFileUtil::CopyOrMoveModeForDestination(dest_url,
484 true /* copy */)); 485 true /* copy */));
485 } 486 }
486 487
487 base::PlatformFileError NativeMediaFileUtil::GetFileInfoSync( 488 base::File::Error NativeMediaFileUtil::GetFileInfoSync(
488 fileapi::FileSystemOperationContext* context, 489 fileapi::FileSystemOperationContext* context,
489 const fileapi::FileSystemURL& url, 490 const fileapi::FileSystemURL& url,
490 base::PlatformFileInfo* file_info, 491 base::File::Info* file_info,
491 base::FilePath* platform_path) { 492 base::FilePath* platform_path) {
492 DCHECK(context); 493 DCHECK(context);
493 DCHECK(IsOnTaskRunnerThread(context)); 494 DCHECK(IsOnTaskRunnerThread(context));
494 DCHECK(file_info); 495 DCHECK(file_info);
495 496
496 base::FilePath file_path; 497 base::FilePath file_path;
497 base::PlatformFileError error = GetLocalFilePath(context, url, &file_path); 498 base::File::Error error = GetLocalFilePath(context, url, &file_path);
498 if (error != base::PLATFORM_FILE_OK) 499 if (error != base::File::FILE_OK)
499 return error; 500 return error;
500 if (base::IsLink(file_path)) 501 if (base::IsLink(file_path))
501 return base::PLATFORM_FILE_ERROR_NOT_FOUND; 502 return base::File::FILE_ERROR_NOT_FOUND;
502 error = fileapi::NativeFileUtil::GetFileInfo(file_path, file_info); 503 error = fileapi::NativeFileUtil::GetFileInfo(file_path, file_info);
503 if (error != base::PLATFORM_FILE_OK) 504 if (error != base::File::FILE_OK)
504 return error; 505 return error;
505 506
506 if (platform_path) 507 if (platform_path)
507 *platform_path = file_path; 508 *platform_path = file_path;
508 if (file_info->is_directory || 509 if (file_info->is_directory ||
509 media_path_filter_->Match(file_path)) { 510 media_path_filter_->Match(file_path)) {
510 return base::PLATFORM_FILE_OK; 511 return base::File::FILE_OK;
511 } 512 }
512 return base::PLATFORM_FILE_ERROR_NOT_FOUND; 513 return base::File::FILE_ERROR_NOT_FOUND;
513 } 514 }
514 515
515 base::PlatformFileError NativeMediaFileUtil::GetLocalFilePath( 516 base::File::Error NativeMediaFileUtil::GetLocalFilePath(
516 fileapi::FileSystemOperationContext* context, 517 fileapi::FileSystemOperationContext* context,
517 const fileapi::FileSystemURL& url, 518 const fileapi::FileSystemURL& url,
518 base::FilePath* local_file_path) { 519 base::FilePath* local_file_path) {
519 DCHECK(local_file_path); 520 DCHECK(local_file_path);
520 DCHECK(url.is_valid()); 521 DCHECK(url.is_valid());
521 if (url.path().empty()) { 522 if (url.path().empty()) {
522 // Root direcory case, which should not be accessed. 523 // Root direcory case, which should not be accessed.
523 return base::PLATFORM_FILE_ERROR_ACCESS_DENIED; 524 return base::File::FILE_ERROR_ACCESS_DENIED;
524 } 525 }
525 *local_file_path = url.path(); 526 *local_file_path = url.path();
526 return base::PLATFORM_FILE_OK; 527 return base::File::FILE_OK;
527 } 528 }
528 529
529 base::PlatformFileError NativeMediaFileUtil::ReadDirectorySync( 530 base::File::Error NativeMediaFileUtil::ReadDirectorySync(
530 fileapi::FileSystemOperationContext* context, 531 fileapi::FileSystemOperationContext* context,
531 const fileapi::FileSystemURL& url, 532 const fileapi::FileSystemURL& url,
532 EntryList* file_list) { 533 EntryList* file_list) {
533 DCHECK(IsOnTaskRunnerThread(context)); 534 DCHECK(IsOnTaskRunnerThread(context));
534 DCHECK(file_list); 535 DCHECK(file_list);
535 DCHECK(file_list->empty()); 536 DCHECK(file_list->empty());
536 base::PlatformFileInfo file_info; 537 base::File::Info file_info;
537 base::FilePath dir_path; 538 base::FilePath dir_path;
538 base::PlatformFileError error = 539 base::File::Error error =
539 GetFileInfoSync(context, url, &file_info, &dir_path); 540 GetFileInfoSync(context, url, &file_info, &dir_path);
540 541
541 if (error != base::PLATFORM_FILE_OK) 542 if (error != base::File::FILE_OK)
542 return error; 543 return error;
543 544
544 if (!file_info.is_directory) 545 if (!file_info.is_directory)
545 return base::PLATFORM_FILE_ERROR_NOT_A_DIRECTORY; 546 return base::File::FILE_ERROR_NOT_A_DIRECTORY;
546 547
547 base::FileEnumerator file_enum( 548 base::FileEnumerator file_enum(
548 dir_path, 549 dir_path,
549 false /* recursive */, 550 false /* recursive */,
550 base::FileEnumerator::FILES | base::FileEnumerator::DIRECTORIES); 551 base::FileEnumerator::FILES | base::FileEnumerator::DIRECTORIES);
551 for (base::FilePath enum_path = file_enum.Next(); 552 for (base::FilePath enum_path = file_enum.Next();
552 !enum_path.empty(); 553 !enum_path.empty();
553 enum_path = file_enum.Next()) { 554 enum_path = file_enum.Next()) {
554 // Skip symlinks. 555 // Skip symlinks.
555 if (base::IsLink(enum_path)) 556 if (base::IsLink(enum_path))
556 continue; 557 continue;
557 558
558 base::FileEnumerator::FileInfo info = file_enum.GetInfo(); 559 base::FileEnumerator::FileInfo info = file_enum.GetInfo();
559 560
560 // NativeMediaFileUtil skip criteria. 561 // NativeMediaFileUtil skip criteria.
561 if (ShouldSkip(enum_path)) 562 if (ShouldSkip(enum_path))
562 continue; 563 continue;
563 if (!info.IsDirectory() && !media_path_filter_->Match(enum_path)) 564 if (!info.IsDirectory() && !media_path_filter_->Match(enum_path))
564 continue; 565 continue;
565 566
566 fileapi::DirectoryEntry entry; 567 fileapi::DirectoryEntry entry;
567 entry.is_directory = info.IsDirectory(); 568 entry.is_directory = info.IsDirectory();
568 entry.name = enum_path.BaseName().value(); 569 entry.name = enum_path.BaseName().value();
569 entry.size = info.GetSize(); 570 entry.size = info.GetSize();
570 entry.last_modified_time = info.GetLastModifiedTime(); 571 entry.last_modified_time = info.GetLastModifiedTime();
571 572
572 file_list->push_back(entry); 573 file_list->push_back(entry);
573 } 574 }
574 575
575 return base::PLATFORM_FILE_OK; 576 return base::File::FILE_OK;
576 } 577 }
577 578
578 base::PlatformFileError NativeMediaFileUtil::DeleteFileSync( 579 base::File::Error NativeMediaFileUtil::DeleteFileSync(
579 fileapi::FileSystemOperationContext* context, 580 fileapi::FileSystemOperationContext* context,
580 const fileapi::FileSystemURL& url) { 581 const fileapi::FileSystemURL& url) {
581 DCHECK(IsOnTaskRunnerThread(context)); 582 DCHECK(IsOnTaskRunnerThread(context));
582 base::PlatformFileInfo file_info; 583 base::File::Info file_info;
583 base::FilePath file_path; 584 base::FilePath file_path;
584 base::PlatformFileError error = 585 base::File::Error error =
585 GetFileInfoSync(context, url, &file_info, &file_path); 586 GetFileInfoSync(context, url, &file_info, &file_path);
586 if (error != base::PLATFORM_FILE_OK) 587 if (error != base::File::FILE_OK)
587 return error; 588 return error;
588 if (file_info.is_directory) 589 if (file_info.is_directory)
589 return base::PLATFORM_FILE_ERROR_NOT_A_FILE; 590 return base::File::FILE_ERROR_NOT_A_FILE;
590 return fileapi::NativeFileUtil::DeleteFile(file_path); 591 return fileapi::NativeFileUtil::DeleteFile(file_path);
591 } 592 }
592 593
593 base::PlatformFileError NativeMediaFileUtil::DeleteDirectorySync( 594 base::File::Error NativeMediaFileUtil::DeleteDirectorySync(
594 fileapi::FileSystemOperationContext* context, 595 fileapi::FileSystemOperationContext* context,
595 const fileapi::FileSystemURL& url) { 596 const fileapi::FileSystemURL& url) {
596 DCHECK(IsOnTaskRunnerThread(context)); 597 DCHECK(IsOnTaskRunnerThread(context));
597 base::FilePath file_path; 598 base::FilePath file_path;
598 base::PlatformFileError error = GetLocalFilePath(context, url, &file_path); 599 base::File::Error error = GetLocalFilePath(context, url, &file_path);
599 if (error != base::PLATFORM_FILE_OK) 600 if (error != base::File::FILE_OK)
600 return error; 601 return error;
601 return fileapi::NativeFileUtil::DeleteDirectory(file_path); 602 return fileapi::NativeFileUtil::DeleteDirectory(file_path);
602 } 603 }
603 604
604 base::PlatformFileError NativeMediaFileUtil::CreateSnapshotFileSync( 605 base::File::Error NativeMediaFileUtil::CreateSnapshotFileSync(
605 fileapi::FileSystemOperationContext* context, 606 fileapi::FileSystemOperationContext* context,
606 const fileapi::FileSystemURL& url, 607 const fileapi::FileSystemURL& url,
607 base::PlatformFileInfo* file_info, 608 base::File::Info* file_info,
608 base::FilePath* platform_path, 609 base::FilePath* platform_path,
609 scoped_refptr<webkit_blob::ShareableFileReference>* file_ref) { 610 scoped_refptr<webkit_blob::ShareableFileReference>* file_ref) {
610 DCHECK(IsOnTaskRunnerThread(context)); 611 DCHECK(IsOnTaskRunnerThread(context));
611 base::PlatformFileError error = 612 base::File::Error error =
612 GetFileInfoSync(context, url, file_info, platform_path); 613 GetFileInfoSync(context, url, file_info, platform_path);
613 if (error == base::PLATFORM_FILE_OK && file_info->is_directory) 614 if (error == base::File::FILE_OK && file_info->is_directory)
614 error = base::PLATFORM_FILE_ERROR_NOT_A_FILE; 615 error = base::File::FILE_ERROR_NOT_A_FILE;
615 if (error == base::PLATFORM_FILE_OK) 616 if (error == base::File::FILE_OK)
616 error = NativeMediaFileUtil::IsMediaFile(*platform_path); 617 error = NativeMediaFileUtil::IsMediaFile(*platform_path);
617 618
618 // We're just returning the local file information. 619 // We're just returning the local file information.
619 *file_ref = scoped_refptr<webkit_blob::ShareableFileReference>(); 620 *file_ref = scoped_refptr<webkit_blob::ShareableFileReference>();
620 621
621 return error; 622 return error;
622 } 623 }
623 624
624 base::PlatformFileError NativeMediaFileUtil::GetFilteredLocalFilePath( 625 base::File::Error NativeMediaFileUtil::GetFilteredLocalFilePath(
625 fileapi::FileSystemOperationContext* context, 626 fileapi::FileSystemOperationContext* context,
626 const fileapi::FileSystemURL& file_system_url, 627 const fileapi::FileSystemURL& file_system_url,
627 base::FilePath* local_file_path) { 628 base::FilePath* local_file_path) {
628 DCHECK(IsOnTaskRunnerThread(context)); 629 DCHECK(IsOnTaskRunnerThread(context));
629 base::FilePath file_path; 630 base::FilePath file_path;
630 base::PlatformFileError error = 631 base::File::Error error =
631 GetLocalFilePath(context, file_system_url, &file_path); 632 GetLocalFilePath(context, file_system_url, &file_path);
632 if (error != base::PLATFORM_FILE_OK) 633 if (error != base::File::FILE_OK)
633 return error; 634 return error;
634 if (!media_path_filter_->Match(file_path)) 635 if (!media_path_filter_->Match(file_path))
635 return base::PLATFORM_FILE_ERROR_SECURITY; 636 return base::File::FILE_ERROR_SECURITY;
636 637
637 *local_file_path = file_path; 638 *local_file_path = file_path;
638 return base::PLATFORM_FILE_OK; 639 return base::File::FILE_OK;
639 } 640 }
640 641
641 base::PlatformFileError 642 base::File::Error
642 NativeMediaFileUtil::GetFilteredLocalFilePathForExistingFileOrDirectory( 643 NativeMediaFileUtil::GetFilteredLocalFilePathForExistingFileOrDirectory(
643 fileapi::FileSystemOperationContext* context, 644 fileapi::FileSystemOperationContext* context,
644 const fileapi::FileSystemURL& file_system_url, 645 const fileapi::FileSystemURL& file_system_url,
645 base::PlatformFileError failure_error, 646 base::File::Error failure_error,
646 base::FilePath* local_file_path) { 647 base::FilePath* local_file_path) {
647 DCHECK(IsOnTaskRunnerThread(context)); 648 DCHECK(IsOnTaskRunnerThread(context));
648 base::FilePath file_path; 649 base::FilePath file_path;
649 base::PlatformFileError error = 650 base::File::Error error =
650 GetLocalFilePath(context, file_system_url, &file_path); 651 GetLocalFilePath(context, file_system_url, &file_path);
651 if (error != base::PLATFORM_FILE_OK) 652 if (error != base::File::FILE_OK)
652 return error; 653 return error;
653 654
654 if (!base::PathExists(file_path)) 655 if (!base::PathExists(file_path))
655 return failure_error; 656 return failure_error;
656 base::File::Info file_info; 657 base::File::Info file_info;
657 if (!base::GetFileInfo(file_path, &file_info)) 658 if (!base::GetFileInfo(file_path, &file_info))
658 return base::PLATFORM_FILE_ERROR_FAILED; 659 return base::File::FILE_ERROR_FAILED;
659 660
660 if (!file_info.is_directory && 661 if (!file_info.is_directory &&
661 !media_path_filter_->Match(file_path)) { 662 !media_path_filter_->Match(file_path)) {
662 return failure_error; 663 return failure_error;
663 } 664 }
664 665
665 *local_file_path = file_path; 666 *local_file_path = file_path;
666 return base::PLATFORM_FILE_OK; 667 return base::File::FILE_OK;
667 } 668 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698