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

Unified Diff: chrome/browser/sync_file_system/drive_file_sync_service.cc

Issue 12389017: Added function DeleteOriginDirectory to RemoteFileSyncService interface that removes the remote cop… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase for commit Created 7 years, 10 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/sync_file_system/drive_file_sync_service.cc
diff --git a/chrome/browser/sync_file_system/drive_file_sync_service.cc b/chrome/browser/sync_file_system/drive_file_sync_service.cc
index 6360c6deadec9f55d8278f6f24aec1eb5b245677..dccdfcd29177fb7df4b2dcaf9fa990fbb30e1c01 100644
--- a/chrome/browser/sync_file_system/drive_file_sync_service.cc
+++ b/chrome/browser/sync_file_system/drive_file_sync_service.cc
@@ -81,8 +81,10 @@ void EmptyStatusCallback(SyncStatusCode code) {}
void DidRemoveOrigin(const GURL& origin, SyncStatusCode status) {
// TODO(calvinlo): Disable syncing if status not ok (http://crbug.com/171611).
DCHECK_EQ(SYNC_STATUS_OK, status);
- LOG(WARNING) << "Remove origin failed for: " << origin.spec()
- << " status=" << status;
+ if (status != SYNC_STATUS_OK) {
+ LOG(WARNING) << "Remove origin failed for: " << origin.spec()
+ << " status=" << status;
+ }
}
FileChange CreateFileChange(bool is_deleted) {
@@ -404,6 +406,28 @@ void DriveFileSyncService::UnregisterOriginForTrackingChanges(
AsWeakPtr(), base::Passed(&token), callback));
}
+void DriveFileSyncService::DeleteOriginDirectory(
+ const GURL& origin,
+ const SyncStatusCallback& callback) {
+ scoped_ptr<TaskToken> token(GetToken(
+ FROM_HERE, TASK_TYPE_DATABASE, "Delete Origin Directory"));
+ if (!token) {
+ pending_tasks_.push_back(base::Bind(
+ &DriveFileSyncService::DeleteOriginDirectory,
+ AsWeakPtr(), origin, callback));
+ return;
+ }
+
+ // Convert origin's directory GURL to ResourceID and delete it. Expected MD5
+ // is empty to force delete (i.e. skip conflict resolution).
+ std::string resource_id = metadata_store_->GetResourceIdForOrigin(origin);
+ sync_client_->DeleteFile(
+ resource_id,
+ std::string(),
+ base::Bind(&DriveFileSyncService::DidDeleteOriginDirectory,
+ AsWeakPtr(), base::Passed(&token), callback));
+}
+
void DriveFileSyncService::ProcessRemoteChange(
RemoteChangeProcessor* processor,
const SyncFileCallback& callback) {
@@ -974,6 +998,15 @@ void DriveFileSyncService::DidGetDirectoryForOrigin(
callback.Run(SYNC_STATUS_OK);
}
+void DriveFileSyncService::DidDeleteOriginDirectory(
+ scoped_ptr<TaskToken> token,
+ const SyncStatusCallback& callback,
+ google_apis::GDataErrorCode error) {
+ SyncStatusCode status = GDataErrorCodeToSyncStatusCodeWrapper(error);
+ NotifyTaskDone(status, token.Pass());
+ callback.Run(status);
+}
+
void DriveFileSyncService::DidGetLargestChangeStampForBatchSync(
scoped_ptr<TaskToken> token,
const GURL& origin,
« no previous file with comments | « chrome/browser/sync_file_system/drive_file_sync_service.h ('k') | chrome/browser/sync_file_system/drive_metadata_store.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698