| 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();
|
|
|