| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "chrome/browser/media_galleries/fileapi/device_media_async_file_util.h" | 5 #include "chrome/browser/media_galleries/fileapi/device_media_async_file_util.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 216 OnCreateSnapshotFileError(callback, base::File::FILE_ERROR_FAILED); | 216 OnCreateSnapshotFileError(callback, base::File::FILE_ERROR_FAILED); |
| 217 return; | 217 return; |
| 218 } | 218 } |
| 219 MTPDeviceAsyncDelegate* delegate = GetMTPDeviceDelegate(url); | 219 MTPDeviceAsyncDelegate* delegate = GetMTPDeviceDelegate(url); |
| 220 if (!delegate) { | 220 if (!delegate) { |
| 221 OnCreateSnapshotFileError(callback, base::File::FILE_ERROR_NOT_FOUND); | 221 OnCreateSnapshotFileError(callback, base::File::FILE_ERROR_NOT_FOUND); |
| 222 return; | 222 return; |
| 223 } | 223 } |
| 224 delegate->CreateSnapshotFile( | 224 delegate->CreateSnapshotFile( |
| 225 url.path(), // device file path | 225 url.path(), // device file path |
| 226 snapshot_file_path, | 226 snapshot_file_path, base::Bind(&OnDidCreateSnapshotFile, callback, |
| 227 base::Bind(&OnDidCreateSnapshotFile, | 227 base::RetainedRef(context->task_runner()), |
| 228 callback, | 228 validate_media_files), |
| 229 make_scoped_refptr(context->task_runner()), | |
| 230 validate_media_files), | |
| 231 base::Bind(&OnCreateSnapshotFileError, callback)); | 229 base::Bind(&OnCreateSnapshotFileError, callback)); |
| 232 } | 230 } |
| 233 | 231 |
| 234 } // namespace | 232 } // namespace |
| 235 | 233 |
| 236 class DeviceMediaAsyncFileUtil::MediaPathFilterWrapper | 234 class DeviceMediaAsyncFileUtil::MediaPathFilterWrapper |
| 237 : public base::RefCountedThreadSafe<MediaPathFilterWrapper> { | 235 : public base::RefCountedThreadSafe<MediaPathFilterWrapper> { |
| 238 public: | 236 public: |
| 239 MediaPathFilterWrapper(); | 237 MediaPathFilterWrapper(); |
| 240 | 238 |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 312 // Returns an error if any unsupported flag is found. | 310 // Returns an error if any unsupported flag is found. |
| 313 if (file_flags & ~(base::File::FLAG_OPEN | | 311 if (file_flags & ~(base::File::FLAG_OPEN | |
| 314 base::File::FLAG_READ | | 312 base::File::FLAG_READ | |
| 315 base::File::FLAG_WRITE_ATTRIBUTES)) { | 313 base::File::FLAG_WRITE_ATTRIBUTES)) { |
| 316 callback.Run(base::File(base::File::FILE_ERROR_SECURITY), base::Closure()); | 314 callback.Run(base::File(base::File::FILE_ERROR_SECURITY), base::Closure()); |
| 317 return; | 315 return; |
| 318 } | 316 } |
| 319 CreateSnapshotFile( | 317 CreateSnapshotFile( |
| 320 std::move(context), url, | 318 std::move(context), url, |
| 321 base::Bind(&NativeMediaFileUtil::CreatedSnapshotFileForCreateOrOpen, | 319 base::Bind(&NativeMediaFileUtil::CreatedSnapshotFileForCreateOrOpen, |
| 322 make_scoped_refptr(context->task_runner()), file_flags, | 320 base::RetainedRef(context->task_runner()), file_flags, |
| 323 callback)); | 321 callback)); |
| 324 } | 322 } |
| 325 | 323 |
| 326 void DeviceMediaAsyncFileUtil::EnsureFileExists( | 324 void DeviceMediaAsyncFileUtil::EnsureFileExists( |
| 327 scoped_ptr<FileSystemOperationContext> context, | 325 scoped_ptr<FileSystemOperationContext> context, |
| 328 const FileSystemURL& url, | 326 const FileSystemURL& url, |
| 329 const EnsureFileExistsCallback& callback) { | 327 const EnsureFileExistsCallback& callback) { |
| 330 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); | 328 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
| 331 NOTIMPLEMENTED(); | 329 NOTIMPLEMENTED(); |
| 332 callback.Run(base::File::FILE_ERROR_SECURITY, false); | 330 callback.Run(base::File::FILE_ERROR_SECURITY, false); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 359 scoped_ptr<FileSystemOperationContext> context, | 357 scoped_ptr<FileSystemOperationContext> context, |
| 360 const FileSystemURL& url, | 358 const FileSystemURL& url, |
| 361 int /* flags */, | 359 int /* flags */, |
| 362 const GetFileInfoCallback& callback) { | 360 const GetFileInfoCallback& callback) { |
| 363 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); | 361 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
| 364 MTPDeviceAsyncDelegate* delegate = GetMTPDeviceDelegate(url); | 362 MTPDeviceAsyncDelegate* delegate = GetMTPDeviceDelegate(url); |
| 365 if (!delegate) { | 363 if (!delegate) { |
| 366 OnGetFileInfoError(callback, base::File::FILE_ERROR_NOT_FOUND); | 364 OnGetFileInfoError(callback, base::File::FILE_ERROR_NOT_FOUND); |
| 367 return; | 365 return; |
| 368 } | 366 } |
| 369 delegate->GetFileInfo( | 367 delegate->GetFileInfo(url.path(), |
| 370 url.path(), | 368 base::Bind(&DeviceMediaAsyncFileUtil::OnDidGetFileInfo, |
| 371 base::Bind(&DeviceMediaAsyncFileUtil::OnDidGetFileInfo, | 369 weak_ptr_factory_.GetWeakPtr(), |
| 372 weak_ptr_factory_.GetWeakPtr(), | 370 base::RetainedRef(context->task_runner()), |
| 373 make_scoped_refptr(context->task_runner()), | 371 url.path(), callback), |
| 374 url.path(), | 372 base::Bind(&OnGetFileInfoError, callback)); |
| 375 callback), | |
| 376 base::Bind(&OnGetFileInfoError, callback)); | |
| 377 } | 373 } |
| 378 | 374 |
| 379 void DeviceMediaAsyncFileUtil::ReadDirectory( | 375 void DeviceMediaAsyncFileUtil::ReadDirectory( |
| 380 scoped_ptr<FileSystemOperationContext> context, | 376 scoped_ptr<FileSystemOperationContext> context, |
| 381 const FileSystemURL& url, | 377 const FileSystemURL& url, |
| 382 const ReadDirectoryCallback& callback) { | 378 const ReadDirectoryCallback& callback) { |
| 383 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); | 379 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
| 384 MTPDeviceAsyncDelegate* delegate = GetMTPDeviceDelegate(url); | 380 MTPDeviceAsyncDelegate* delegate = GetMTPDeviceDelegate(url); |
| 385 if (!delegate) { | 381 if (!delegate) { |
| 386 OnReadDirectoryError(callback, base::File::FILE_ERROR_NOT_FOUND); | 382 OnReadDirectoryError(callback, base::File::FILE_ERROR_NOT_FOUND); |
| 387 return; | 383 return; |
| 388 } | 384 } |
| 389 | 385 |
| 390 delegate->ReadDirectory( | 386 delegate->ReadDirectory( |
| 391 url.path(), | 387 url.path(), |
| 392 base::Bind(&DeviceMediaAsyncFileUtil::OnDidReadDirectory, | 388 base::Bind(&DeviceMediaAsyncFileUtil::OnDidReadDirectory, |
| 393 weak_ptr_factory_.GetWeakPtr(), | 389 weak_ptr_factory_.GetWeakPtr(), |
| 394 make_scoped_refptr(context->task_runner()), | 390 base::RetainedRef(context->task_runner()), callback), |
| 395 callback), | |
| 396 base::Bind(&OnReadDirectoryError, callback)); | 391 base::Bind(&OnReadDirectoryError, callback)); |
| 397 } | 392 } |
| 398 | 393 |
| 399 void DeviceMediaAsyncFileUtil::Touch( | 394 void DeviceMediaAsyncFileUtil::Touch( |
| 400 scoped_ptr<FileSystemOperationContext> context, | 395 scoped_ptr<FileSystemOperationContext> context, |
| 401 const FileSystemURL& url, | 396 const FileSystemURL& url, |
| 402 const base::Time& last_access_time, | 397 const base::Time& last_access_time, |
| 403 const base::Time& last_modified_time, | 398 const base::Time& last_modified_time, |
| 404 const StatusCallback& callback) { | 399 const StatusCallback& callback) { |
| 405 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); | 400 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
| (...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 701 void DeviceMediaAsyncFileUtil::OnDidDeleteDirectory( | 696 void DeviceMediaAsyncFileUtil::OnDidDeleteDirectory( |
| 702 const StatusCallback& callback) { | 697 const StatusCallback& callback) { |
| 703 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); | 698 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
| 704 | 699 |
| 705 callback.Run(base::File::FILE_OK); | 700 callback.Run(base::File::FILE_OK); |
| 706 } | 701 } |
| 707 | 702 |
| 708 bool DeviceMediaAsyncFileUtil::validate_media_files() const { | 703 bool DeviceMediaAsyncFileUtil::validate_media_files() const { |
| 709 return media_path_filter_wrapper_.get() != NULL; | 704 return media_path_filter_wrapper_.get() != NULL; |
| 710 } | 705 } |
| OLD | NEW |