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

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

Issue 11414253: DriveFileSyncService listens to OnAuthenticated event to recover from unavailable state (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Created 8 years, 1 month 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_client.cc
diff --git a/chrome/browser/sync_file_system/drive_file_sync_client.cc b/chrome/browser/sync_file_system/drive_file_sync_client.cc
index a192849b9078c6614b7c01ee72ed5e04a9d599a3..f7a52f062db5457f0d4b452657ea5e0680367550 100644
--- a/chrome/browser/sync_file_system/drive_file_sync_client.cc
+++ b/chrome/browser/sync_file_system/drive_file_sync_client.cc
@@ -68,6 +68,7 @@ DriveFileSyncClient::DriveFileSyncClient(Profile* profile) {
GURL(google_apis::GDataWapiUrlGenerator::kBaseUrlForProduction),
"" /* custom_user_agent */));
drive_service_->Initialize(profile);
+ drive_service_->AddObserver(this);
drive_uploader_.reset(new google_apis::DriveUploader(drive_service_.get()));
}
@@ -86,15 +87,28 @@ DriveFileSyncClient::DriveFileSyncClient(
scoped_ptr<google_apis::DriveUploaderInterface> drive_uploader) {
drive_service_ = drive_service.Pass();
drive_service_->Initialize(profile);
+ drive_service_->AddObserver(this);
drive_uploader_ = drive_uploader.Pass();
}
DriveFileSyncClient::~DriveFileSyncClient() {
DCHECK(CalledOnValidThread());
+ drive_service_->RemoveObserver(this);
drive_service_->CancelAll();
}
+void DriveFileSyncClient::AddObserver(DriveFileSyncClientObserver* observer) {
+ DCHECK(CalledOnValidThread());
+ observers_.AddObserver(observer);
+}
+
+void DriveFileSyncClient::RemoveObserver(
+ DriveFileSyncClientObserver* observer) {
+ DCHECK(CalledOnValidThread());
+ observers_.RemoveObserver(observer);
+}
+
void DriveFileSyncClient::GetDriveDirectoryForSyncRoot(
const ResourceIdCallback& callback) {
DCHECK(CalledOnValidThread());
@@ -356,6 +370,11 @@ void DriveFileSyncClient::DeleteFile(
AsWeakPtr(), remote_file_md5, callback)));
}
+void DriveFileSyncClient::OnReadyToPerformOperations() {
+ DCHECK(CalledOnValidThread());
+ FOR_EACH_OBSERVER(DriveFileSyncClientObserver, observers_, OnAuthenticated());
+}
+
void DriveFileSyncClient::DidGetDocumentFeedData(
const DocumentFeedCallback& callback,
google_apis::GDataErrorCode error,

Powered by Google App Engine
This is Rietveld 408576698