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

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

Issue 11421197: Implement SyncFileSystemService::GetFileSyncStatus method (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: indent fix Created 8 years 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/sync_file_system_service.cc
diff --git a/chrome/browser/sync_file_system/sync_file_system_service.cc b/chrome/browser/sync_file_system/sync_file_system_service.cc
index 2c2d7df6c9fbb0098524eb68258e1913095b5f62..78d1aee785df6884036689aa4d746962252fc4a6 100644
--- a/chrome/browser/sync_file_system/sync_file_system_service.cc
+++ b/chrome/browser/sync_file_system/sync_file_system_service.cc
@@ -221,6 +221,36 @@ void SyncFileSystemService::GetConflictFileInfo(
url, callback_runner->CreateAssignAndRunCallback(remote_metadata));
}
+void SyncFileSystemService::GetFileSyncStatus(
+ const fileapi::FileSystemURL& url,
+ const fileapi::SyncFileStatusCallback& callback) {
+ DCHECK(local_file_service_);
+ DCHECK(remote_file_service_);
+
+ if (!ContainsKey(initialized_app_origins_, url.origin())) {
+ base::MessageLoopProxy::current()->PostTask(
+ FROM_HERE,
+ base::Bind(callback,
+ fileapi::SYNC_STATUS_NOT_INITIALIZED,
+ fileapi::SYNC_FILE_STATUS_UNKNOWN));
+ return;
+ }
+
+ if (remote_file_service_->IsConflicting(url)) {
+ base::MessageLoopProxy::current()->PostTask(
+ FROM_HERE,
+ base::Bind(callback,
+ fileapi::SYNC_STATUS_OK,
+ fileapi::SYNC_FILE_STATUS_CONFLICTING));
+ return;
+ }
+
+ local_file_service_->HasPendingLocalChanges(
+ url,
+ base::Bind(&SyncFileSystemService::DidGetLocalChangeStatus,
+ AsWeakPtr(), callback));
+}
+
void SyncFileSystemService::AddSyncEventObserver(SyncEventObserver* observer) {
observers_.AddObserver(observer);
}
@@ -385,6 +415,15 @@ void SyncFileSystemService::DidProcessLocalChange(
AsWeakPtr()));
}
+void SyncFileSystemService::DidGetLocalChangeStatus(
+ const fileapi::SyncFileStatusCallback& callback,
+ bool has_pending_local_changes) {
+ callback.Run(
+ fileapi::SYNC_STATUS_OK,
+ has_pending_local_changes ? fileapi::SYNC_FILE_STATUS_HAS_PENDING_CHANGES
+ : fileapi::SYNC_FILE_STATUS_SYNCED);
+}
+
void SyncFileSystemService::OnSyncEnabledForRemoteSync() {
is_waiting_remote_sync_enabled_ = false;
MaybeStartRemoteSync();

Powered by Google App Engine
This is Rietveld 408576698