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

Unified Diff: chrome/browser/chromeos/drive/sync/entry_revert_performer.cc

Issue 343073003: Files.app: Provide detailed change information on onDirectoryChanged event (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 6 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 side-by-side diff with in-line comments
Download patch
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..cf45e8e31b3bc483e75ea58eaec12462cd7a8b73 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,8 +54,13 @@ 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_UNKNOWN, // Undetermined type for deleted file.
+ FileChange::DELETE);
} else {
+ changed_files->Update(original_path, entry, FileChange::DELETE);
+
error = ChangeListProcessor::SetParentLocalIdOfEntry(metadata, &entry,
parent_resource_id);
if (error != FILE_ERROR_OK)
@@ -65,12 +71,12 @@ 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(new_path, entry, FileChange::ADD_OR_UPDATE);
}
return FILE_ERROR_OK;
}
@@ -143,27 +149,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_->OnFileChangedByOperation(*changed_files);
callback.Run(error);
}

Powered by Google App Engine
This is Rietveld 408576698