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 413203464fe98c491742509859c7ae5895ebf48d..b3b04b1bbe1ecf9a03ade387705b2824cf3c0961 100644 |
--- a/chrome/browser/sync_file_system/drive_file_sync_client.cc |
+++ b/chrome/browser/sync_file_system/drive_file_sync_client.cc |
@@ -70,6 +70,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())); |
} |
@@ -88,15 +89,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()); |
@@ -369,6 +383,11 @@ GURL DriveFileSyncClient::DirectoryTitleToOrigin(const std::string& title) { |
return extensions::Extension::GetBaseURLFromExtensionId(title); |
} |
+void DriveFileSyncClient::OnReadyToPerformOperations() { |
+ DCHECK(CalledOnValidThread()); |
+ FOR_EACH_OBSERVER(DriveFileSyncClientObserver, observers_, OnAuthenticated()); |
+} |
+ |
void DriveFileSyncClient::DidGetDocumentFeedData( |
const DocumentFeedCallback& callback, |
google_apis::GDataErrorCode error, |