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

Unified Diff: chrome/browser/chromeos/drive/file_system/remove_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/remove_operation.cc
diff --git a/chrome/browser/chromeos/drive/file_system/remove_operation.cc b/chrome/browser/chromeos/drive/file_system/remove_operation.cc
index d11efb823b379400a54749602142d35c6af21b26..f415fc08226b1f91fcbcd50cb6356cae87986218 100644
--- a/chrome/browser/chromeos/drive/file_system/remove_operation.cc
+++ b/chrome/browser/chromeos/drive/file_system/remove_operation.cc
@@ -7,6 +7,7 @@
#include "base/sequenced_task_runner.h"
#include "chrome/browser/chromeos/drive/drive.pb.h"
#include "chrome/browser/chromeos/drive/file_cache.h"
+#include "chrome/browser/chromeos/drive/file_change.h"
#include "chrome/browser/chromeos/drive/file_system/operation_observer.h"
#include "chrome/browser/chromeos/drive/file_system_util.h"
#include "chrome/browser/chromeos/drive/resource_metadata.h"
@@ -25,17 +26,17 @@ FileError UpdateLocalState(internal::ResourceMetadata* metadata,
const base::FilePath& path,
bool is_recursive,
std::string* local_id,
- base::FilePath* changed_directory_path) {
+ ResourceEntry* entry,
+ base::FilePath* changed_path) {
FileError error = metadata->GetIdByPath(path, local_id);
if (error != FILE_ERROR_OK)
return error;
- ResourceEntry entry;
- error = metadata->GetResourceEntryById(*local_id, &entry);
+ error = metadata->GetResourceEntryById(*local_id, entry);
if (error != FILE_ERROR_OK)
return error;
- if (entry.file_info().is_directory() && !is_recursive) {
+ if (entry->file_info().is_directory() && !is_recursive) {
// Check emptiness of the directory.
ResourceEntryVector entries;
error = metadata->ReadDirectoryByPath(path, &entries);
@@ -49,11 +50,11 @@ FileError UpdateLocalState(internal::ResourceMetadata* metadata,
if (error != FILE_ERROR_OK)
return error;
- *changed_directory_path = path.DirName();
+ *changed_path = path;
// Move to the trash.
- entry.set_parent_local_id(util::kDriveTrashDirLocalId);
- return metadata->RefreshEntry(entry);
+ entry->set_parent_local_id(util::kDriveTrashDirLocalId);
+ return metadata->RefreshEntry(*entry);
}
} // namespace
@@ -82,7 +83,8 @@ void RemoveOperation::Remove(const base::FilePath& path,
DCHECK(!callback.is_null());
std::string* local_id = new std::string;
- base::FilePath* changed_directory_path = new base::FilePath;
+ base::FilePath* changed_path = new base::FilePath;
+ ResourceEntry* entry = new ResourceEntry;
base::PostTaskAndReplyWithResult(
blocking_task_runner_.get(),
FROM_HERE,
@@ -92,25 +94,32 @@ void RemoveOperation::Remove(const base::FilePath& path,
path,
is_recursive,
local_id,
- changed_directory_path),
+ entry,
+ changed_path),
base::Bind(&RemoveOperation::RemoveAfterUpdateLocalState,
weak_ptr_factory_.GetWeakPtr(),
callback,
base::Owned(local_id),
- base::Owned(changed_directory_path)));
+ base::Owned(entry),
+ base::Owned(changed_path)));
}
void RemoveOperation::RemoveAfterUpdateLocalState(
const FileOperationCallback& callback,
const std::string* local_id,
- const base::FilePath* changed_directory_path,
+ const ResourceEntry* entry,
+ const base::FilePath* changed_path,
FileError error) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK(!callback.is_null());
- if (error == FILE_ERROR_OK) {
- observer_->OnDirectoryChangedByOperation(*changed_directory_path);
- observer_->OnEntryUpdatedByOperation(*local_id);
+ if (!changed_path->empty()) {
+ FileChange changed_file;
+ changed_file.Update(*changed_path, *entry, FileChange::DELETE);
+ if (error == FILE_ERROR_OK) {
+ observer_->OnFileChangedByOperation(changed_file);
+ observer_->OnEntryUpdatedByOperation(*local_id);
+ }
}
callback.Run(error);

Powered by Google App Engine
This is Rietveld 408576698