summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/gdata/gdata_wapi_service.cc
diff options
context:
space:
mode:
authorhashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-05 21:02:44 +0000
committerhashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-05 21:02:44 +0000
commit3383a9334b18ae0c38743880996b4d3fa3bebe0f (patch)
tree6faaa461409d2e8aad482d3c7af08f8fe2237892 /chrome/browser/chromeos/gdata/gdata_wapi_service.cc
parent31f8cbeecdb40346cd74076c4d2c582c4b2c2a2f (diff)
downloadchromium_src-3383a9334b18ae0c38743880996b4d3fa3bebe0f.zip
chromium_src-3383a9334b18ae0c38743880996b4d3fa3bebe0f.tar.gz
chromium_src-3383a9334b18ae0c38743880996b4d3fa3bebe0f.tar.bz2
drive: Add DriveServiceInterface::OnOperationReadinessChanged()
Add OnOperationReadinessChanged() to initiate operation on startup Remove unused OperationRunner::OnOAuth2RefreshTokenChanged() Add DriveServiceInterface::CanStartOperation(). Even if it is an alias of HasRefreshToken(), it's added since user code should not care about detail of OAuth tokens. BUG=145903 TEST=unit_tests --gtest_filter="GData*" Review URL: https://chromiumcodereview.appspot.com/10909074 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155015 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos/gdata/gdata_wapi_service.cc')
-rw-r--r--chrome/browser/chromeos/gdata/gdata_wapi_service.cc25
1 files changed, 24 insertions, 1 deletions
diff --git a/chrome/browser/chromeos/gdata/gdata_wapi_service.cc b/chrome/browser/chromeos/gdata/gdata_wapi_service.cc
index 464f163..ba84c87 100644
--- a/chrome/browser/chromeos/gdata/gdata_wapi_service.cc
+++ b/chrome/browser/chromeos/gdata/gdata_wapi_service.cc
@@ -74,6 +74,8 @@ GDataWapiService::GDataWapiService()
GDataWapiService::~GDataWapiService() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ if (runner_.get())
+ runner_->auth_service()->RemoveObserver(this);
}
AuthService* GDataWapiService::auth_service_for_testing() {
@@ -92,12 +94,28 @@ void GDataWapiService::Initialize(Profile* profile) {
scopes.push_back(kDriveAppsScope);
runner_.reset(new OperationRunner(profile, scopes));
runner_->Initialize();
+
+ runner_->auth_service()->AddObserver(this);
+}
+
+void GDataWapiService::AddObserver(DriveServiceObserver* observer) {
+ observers_.AddObserver(observer);
+}
+
+void GDataWapiService::RemoveObserver(DriveServiceObserver* observer) {
+ observers_.RemoveObserver(observer);
}
OperationRegistry* GDataWapiService::operation_registry() const {
return runner_->operation_registry();
}
+bool GDataWapiService::CanStartOperation() const {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+
+ return HasRefreshToken();
+}
+
void GDataWapiService::CancelAll() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
runner_->CancelAll();
@@ -274,7 +292,6 @@ void GDataWapiService::ResumeUpload(const ResumeUploadParams& params,
new ResumeUploadOperation(operation_registry(), callback, params));
}
-
void GDataWapiService::AuthorizeApp(const GURL& resource_url,
const std::string& app_ids,
const GetDataCallback& callback) {
@@ -297,4 +314,10 @@ bool GDataWapiService::HasRefreshToken() const {
return runner_->auth_service()->HasRefreshToken();
}
+void GDataWapiService::OnOAuth2RefreshTokenChanged() {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ FOR_EACH_OBSERVER(
+ DriveServiceObserver, observers_, OnOperationReadinessChanged());
+}
+
} // namespace gdata