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

Side by Side Diff: storage/browser/fileapi/copy_or_move_operation_delegate.cc

Issue 1455403003: Add an option to specify requested fields for fetching metadata. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cleaned up. Created 5 years, 1 month 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
OLDNEW
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 "storage/browser/fileapi/copy_or_move_operation_delegate.h" 5 #include "storage/browser/fileapi/copy_or_move_operation_delegate.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "net/base/io_buffer.h" 9 #include "net/base/io_buffer.h"
10 #include "net/base/net_errors.h" 10 #include "net/base/net_errors.h"
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 file_progress_callback_(file_progress_callback), 384 file_progress_callback_(file_progress_callback),
385 cancel_requested_(false), 385 cancel_requested_(false),
386 weak_factory_(this) {} 386 weak_factory_(this) {}
387 387
388 void Run( 388 void Run(
389 const CopyOrMoveOperationDelegate::StatusCallback& callback) override { 389 const CopyOrMoveOperationDelegate::StatusCallback& callback) override {
390 // Reader can be created even if the entry does not exist or the entry is 390 // Reader can be created even if the entry does not exist or the entry is
391 // a directory. To check errors before destination file creation, 391 // a directory. To check errors before destination file creation,
392 // check metadata first. 392 // check metadata first.
393 operation_runner_->GetMetadata( 393 operation_runner_->GetMetadata(
394 src_url_, 394 src_url_, FileSystemOperation::GET_METADATA_FIELD_IS_DIRECTORY |
395 FileSystemOperation::GET_METADATA_FIELD_LAST_MODIFIED,
395 base::Bind(&StreamCopyOrMoveImpl::RunAfterGetMetadataForSource, 396 base::Bind(&StreamCopyOrMoveImpl::RunAfterGetMetadataForSource,
396 weak_factory_.GetWeakPtr(), callback)); 397 weak_factory_.GetWeakPtr(), callback));
397 } 398 }
398 399
399 void Cancel() override { 400 void Cancel() override {
400 cancel_requested_ = true; 401 cancel_requested_ = true;
401 if (copy_helper_) 402 if (copy_helper_)
402 copy_helper_->Cancel(); 403 copy_helper_->Cancel();
403 } 404 }
404 405
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after
877 void CopyOrMoveOperationDelegate::PostProcessDirectory( 878 void CopyOrMoveOperationDelegate::PostProcessDirectory(
878 const FileSystemURL& src_url, 879 const FileSystemURL& src_url,
879 const StatusCallback& callback) { 880 const StatusCallback& callback) {
880 if (option_ == FileSystemOperation::OPTION_NONE) { 881 if (option_ == FileSystemOperation::OPTION_NONE) {
881 PostProcessDirectoryAfterTouchFile( 882 PostProcessDirectoryAfterTouchFile(
882 src_url, callback, base::File::FILE_OK); 883 src_url, callback, base::File::FILE_OK);
883 return; 884 return;
884 } 885 }
885 886
886 operation_runner()->GetMetadata( 887 operation_runner()->GetMetadata(
887 src_url, 888 src_url, FileSystemOperation::GET_METADATA_FIELD_LAST_MODIFIED,
888 base::Bind( 889 base::Bind(
889 &CopyOrMoveOperationDelegate::PostProcessDirectoryAfterGetMetadata, 890 &CopyOrMoveOperationDelegate::PostProcessDirectoryAfterGetMetadata,
890 weak_factory_.GetWeakPtr(), src_url, callback)); 891 weak_factory_.GetWeakPtr(), src_url, callback));
891 } 892 }
892 893
893 void CopyOrMoveOperationDelegate::OnCancel() { 894 void CopyOrMoveOperationDelegate::OnCancel() {
894 // Request to cancel all running Copy/Move file. 895 // Request to cancel all running Copy/Move file.
895 for (std::set<CopyOrMoveImpl*>::iterator iter = running_copy_set_.begin(); 896 for (std::set<CopyOrMoveImpl*>::iterator iter = running_copy_set_.begin();
896 iter != running_copy_set_.end(); ++iter) 897 iter != running_copy_set_.end(); ++iter)
897 (*iter)->Cancel(); 898 (*iter)->Cancel();
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
1027 base::FilePath relative = dest_root_.virtual_path(); 1028 base::FilePath relative = dest_root_.virtual_path();
1028 src_root_.virtual_path().AppendRelativePath(src_url.virtual_path(), 1029 src_root_.virtual_path().AppendRelativePath(src_url.virtual_path(),
1029 &relative); 1030 &relative);
1030 return file_system_context()->CreateCrackedFileSystemURL( 1031 return file_system_context()->CreateCrackedFileSystemURL(
1031 dest_root_.origin(), 1032 dest_root_.origin(),
1032 dest_root_.mount_type(), 1033 dest_root_.mount_type(),
1033 relative); 1034 relative);
1034 } 1035 }
1035 1036
1036 } // namespace storage 1037 } // namespace storage
OLDNEW
« no previous file with comments | « storage/browser/fileapi/async_file_util_adapter.cc ('k') | storage/browser/fileapi/file_system_context.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698