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

Unified Diff: chrome/browser/chromeos/drive/file_system/move_operation.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/file_system/move_operation.cc
diff --git a/chrome/browser/chromeos/drive/file_system/move_operation.cc b/chrome/browser/chromeos/drive/file_system/move_operation.cc
index 2210c6e8e695d97da6294896e8ebc313e631a4fd..b033384c543cabd8258ee81ca41380f7207cda25 100644
--- a/chrome/browser/chromeos/drive/file_system/move_operation.cc
+++ b/chrome/browser/chromeos/drive/file_system/move_operation.cc
@@ -6,6 +6,7 @@
#include "base/sequenced_task_runner.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/resource_metadata.h"
#include "content/public/browser/browser_thread.h"
@@ -20,7 +21,7 @@ namespace {
FileError UpdateLocalState(internal::ResourceMetadata* metadata,
const base::FilePath& src_path,
const base::FilePath& dest_path,
- std::set<base::FilePath>* changed_directories,
+ FileChange* changed_files,
std::string* local_id) {
ResourceEntry entry;
FileError error = metadata->GetResourceEntryByPath(src_path, &entry);
@@ -37,6 +38,8 @@ FileError UpdateLocalState(internal::ResourceMetadata* metadata,
if (!parent_entry.file_info().is_directory())
return FILE_ERROR_NOT_A_DIRECTORY;
+ changed_files->Update(src_path, entry, FileChange::DELETE);
+
// Strip the extension for a hosted document if necessary.
const std::string new_extension =
base::FilePath(dest_path.Extension()).AsUTF8Unsafe();
@@ -57,8 +60,7 @@ FileError UpdateLocalState(internal::ResourceMetadata* metadata,
if (error != FILE_ERROR_OK)
return error;
- changed_directories->insert(src_path.DirName());
- changed_directories->insert(dest_path.DirName());
+ changed_files->Update(dest_path, entry, FileChange::ADD_OR_UPDATE);
return FILE_ERROR_OK;
}
@@ -84,7 +86,7 @@ void MoveOperation::Move(const base::FilePath& src_file_path,
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;
std::string* local_id = new std::string;
base::PostTaskAndReplyWithResult(
blocking_task_runner_.get(),
@@ -93,28 +95,24 @@ void MoveOperation::Move(const base::FilePath& src_file_path,
metadata_,
src_file_path,
dest_file_path,
- changed_directories,
+ changed_files,
local_id),
base::Bind(&MoveOperation::MoveAfterUpdateLocalState,
weak_ptr_factory_.GetWeakPtr(),
callback,
- base::Owned(changed_directories),
+ base::Owned(changed_files),
base::Owned(local_id)));
}
void MoveOperation::MoveAfterUpdateLocalState(
const FileOperationCallback& callback,
- const std::set<base::FilePath>* changed_directories,
+ const FileChange* changed_files,
const std::string* local_id,
FileError error) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
if (error == FILE_ERROR_OK) {
// Notify the change of directory.
- for (std::set<base::FilePath>::const_iterator it =
- changed_directories->begin();
- it != changed_directories->end(); ++it)
- observer_->OnDirectoryChangedByOperation(*it);
-
+ observer_->OnFileChangedByOperation(*changed_files);
observer_->OnEntryUpdatedByOperation(*local_id);
}
callback.Run(error);

Powered by Google App Engine
This is Rietveld 408576698