Chromium Code Reviews| Index: chrome/browser/chromeos/drive/sync/entry_revert_performer.cc |
| diff --git a/chrome/browser/chromeos/drive/sync/entry_revert_performer.cc b/chrome/browser/chromeos/drive/sync/entry_revert_performer.cc |
| index 2dc5d2fa710a25488a409b06cfce29b54c43ffb4..a192c2ee0dcd69a679e1499b33bef5b394510430 100644 |
| --- a/chrome/browser/chromeos/drive/sync/entry_revert_performer.cc |
| +++ b/chrome/browser/chromeos/drive/sync/entry_revert_performer.cc |
| @@ -6,6 +6,7 @@ |
| #include "chrome/browser/chromeos/drive/change_list_processor.h" |
| #include "chrome/browser/chromeos/drive/drive.pb.h" |
| +#include "chrome/browser/chromeos/drive/file_change.h" |
| #include "chrome/browser/chromeos/drive/file_system/operation_observer.h" |
| #include "chrome/browser/chromeos/drive/job_scheduler.h" |
| #include "chrome/browser/chromeos/drive/resource_entry_conversion.h" |
| @@ -24,7 +25,7 @@ FileError FinishRevert(ResourceMetadata* metadata, |
| const std::string& local_id, |
| google_apis::GDataErrorCode status, |
| scoped_ptr<google_apis::FileResource> file_resource, |
| - std::set<base::FilePath>* changed_directories) { |
| + FileChange* changed_files) { |
| ResourceEntry entry; |
| std::string parent_resource_id; |
| FileError error = GDataToFileError(status); |
| @@ -53,7 +54,9 @@ FileError FinishRevert(ResourceMetadata* metadata, |
| if (error != FILE_ERROR_OK) |
| return error; |
| - changed_directories->insert(original_path.DirName()); |
| + changed_files->Update(original_path, |
| + FileChange::FILE_TYPE_FILE, |
|
kinaba
2014/06/23 05:37:43
File type may be FILE or DIRECTORY here.
yoshiki
2014/06/24 02:02:22
Done.
|
| + FileChange::DELETE); |
| } else { |
| error = ChangeListProcessor::SetParentLocalIdOfEntry(metadata, &entry, |
| parent_resource_id); |
| @@ -65,12 +68,17 @@ FileError FinishRevert(ResourceMetadata* metadata, |
| if (error != FILE_ERROR_OK) |
| return error; |
| - base::FilePath new_parent_path; |
| - error = metadata->GetFilePath(entry.parent_local_id(), &new_parent_path); |
| + base::FilePath new_path; |
| + error = metadata->GetFilePath(local_id, &new_path); |
| if (error != FILE_ERROR_OK) |
| return error; |
| - changed_directories->insert(new_parent_path); |
| - changed_directories->insert(original_path.DirName()); |
| + |
| + changed_files->Update(original_path, |
| + FileChange::FILE_TYPE_FILE, |
|
kinaba
2014/06/23 05:37:43
ditto
yoshiki
2014/06/24 02:02:22
Done.
|
| + FileChange::DELETE); |
| + changed_files->Update(new_path, |
| + FileChange::FILE_TYPE_FILE, |
| + FileChange::ADD_OR_UPDATE); |
| } |
| return FILE_ERROR_OK; |
| } |
| @@ -143,27 +151,30 @@ void EntryRevertPerformer::RevertEntryAfterGetFileResource( |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| DCHECK(!callback.is_null()); |
| - std::set<base::FilePath>* changed_directories = new std::set<base::FilePath>; |
| + FileChange* changed_files = new FileChange; |
| base::PostTaskAndReplyWithResult( |
| blocking_task_runner_.get(), |
| FROM_HERE, |
| - base::Bind(&FinishRevert, metadata_, local_id, status, |
| - base::Passed(&entry), changed_directories), |
| + base::Bind(&FinishRevert, |
| + metadata_, |
| + local_id, |
| + status, |
| + base::Passed(&entry), |
| + changed_files), |
| base::Bind(&EntryRevertPerformer::RevertEntryAfterFinishRevert, |
| - weak_ptr_factory_.GetWeakPtr(), callback, |
| - base::Owned(changed_directories))); |
| + weak_ptr_factory_.GetWeakPtr(), |
| + callback, |
| + base::Owned(changed_files))); |
| } |
| void EntryRevertPerformer::RevertEntryAfterFinishRevert( |
| const FileOperationCallback& callback, |
| - const std::set<base::FilePath>* changed_directories, |
| + const FileChange* changed_files, |
| FileError error) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| DCHECK(!callback.is_null()); |
| - for (std::set<base::FilePath>::const_iterator it = |
| - changed_directories->begin(); it != changed_directories->end(); ++it) |
| - observer_->OnDirectoryChangedByOperation(*it); |
| + observer_->OnDirectoryChangedByOperation(*changed_files); |
| callback.Run(error); |
| } |