| Index: google_apis/gaia/oauth2_token_service.cc
|
| diff --git a/google_apis/gaia/oauth2_token_service.cc b/google_apis/gaia/oauth2_token_service.cc
|
| index 34dfc1bda906b2f52bb2006153a91b17568740ac..0355fcbf7fb2f412618577309c1b3193569b0daa 100644
|
| --- a/google_apis/gaia/oauth2_token_service.cc
|
| +++ b/google_apis/gaia/oauth2_token_service.cc
|
| @@ -17,6 +17,7 @@
|
| #include "google_apis/gaia/gaia_urls.h"
|
| #include "google_apis/gaia/google_service_auth_error.h"
|
| #include "google_apis/gaia/oauth2_access_token_fetcher_impl.h"
|
| +#include "google_apis/gaia/oauth2_token_service_delegate.h"
|
| #include "net/url_request/url_request_context_getter.h"
|
|
|
| int OAuth2TokenService::max_fetch_retry_num_ = 5;
|
| @@ -78,16 +79,6 @@ void OAuth2TokenService::RequestImpl::InformConsumer(
|
| consumer_->OnGetTokenFailure(this, error);
|
| }
|
|
|
| -OAuth2TokenService::ScopedBatchChange::ScopedBatchChange(
|
| - OAuth2TokenService* token_service) : token_service_(token_service) {
|
| - DCHECK(token_service_);
|
| - token_service_->StartBatchChanges();
|
| -}
|
| -
|
| -OAuth2TokenService::ScopedBatchChange::~ScopedBatchChange() {
|
| - token_service_->EndBatchChanges();
|
| -}
|
| -
|
| // Class that fetches an OAuth2 access token for a given account id and set of
|
| // scopes.
|
| //
|
| @@ -384,7 +375,9 @@ OAuth2TokenService::Consumer::Consumer(const std::string& id)
|
| OAuth2TokenService::Consumer::~Consumer() {
|
| }
|
|
|
| -OAuth2TokenService::OAuth2TokenService() : batch_change_depth_(0) {
|
| +OAuth2TokenService::OAuth2TokenService(OAuth2TokenServiceDelegate* delegate)
|
| + : delegate_(delegate) {
|
| + DCHECK(delegate_);
|
| }
|
|
|
| OAuth2TokenService::~OAuth2TokenService() {
|
| @@ -393,12 +386,16 @@ OAuth2TokenService::~OAuth2TokenService() {
|
| pending_fetchers_.begin(), pending_fetchers_.end());
|
| }
|
|
|
| +OAuth2TokenServiceDelegate* OAuth2TokenService::GetDelegate() {
|
| + return delegate_.get();
|
| +}
|
| +
|
| void OAuth2TokenService::AddObserver(Observer* observer) {
|
| - observer_list_.AddObserver(observer);
|
| + delegate_->AddObserver(observer);
|
| }
|
|
|
| void OAuth2TokenService::RemoveObserver(Observer* observer) {
|
| - observer_list_.RemoveObserver(observer);
|
| + delegate_->RemoveObserver(observer);
|
| }
|
|
|
| void OAuth2TokenService::AddDiagnosticsObserver(DiagnosticsObserver* observer) {
|
| @@ -410,10 +407,6 @@ void OAuth2TokenService::RemoveDiagnosticsObserver(
|
| diagnostics_observer_list_.RemoveObserver(observer);
|
| }
|
|
|
| -std::vector<std::string> OAuth2TokenService::GetAccounts() {
|
| - return std::vector<std::string>();
|
| -}
|
| -
|
| scoped_ptr<OAuth2TokenService::Request> OAuth2TokenService::StartRequest(
|
| const std::string& account_id,
|
| const OAuth2TokenService::ScopeSet& scopes,
|
| @@ -560,6 +553,13 @@ void OAuth2TokenService::FetchOAuth2Token(RequestImpl* request,
|
| request->AsWeakPtr());
|
| }
|
|
|
| +OAuth2AccessTokenFetcher* OAuth2TokenService::CreateAccessTokenFetcher(
|
| + const std::string& account_id,
|
| + net::URLRequestContextGetter* getter,
|
| + OAuth2AccessTokenConsumer* consumer) {
|
| + return delegate_->CreateAccessTokenFetcher(account_id, getter, consumer);
|
| +}
|
| +
|
| void OAuth2TokenService::StartCacheLookupRequest(
|
| RequestImpl* request,
|
| const OAuth2TokenService::RequestParameters& request_parameters,
|
| @@ -581,6 +581,21 @@ void OAuth2TokenService::StartCacheLookupRequest(
|
| cache_entry->expiration_date));
|
| }
|
|
|
| +std::vector<std::string> OAuth2TokenService::GetAccounts() {
|
| + return delegate_->GetAccounts();
|
| +}
|
| +
|
| +bool OAuth2TokenService::RefreshTokenIsAvailable(
|
| + const std::string& account_id) const {
|
| + return delegate_->RefreshTokenIsAvailable(account_id);
|
| +}
|
| +
|
| +void OAuth2TokenService::RevokeAllCredentials() {
|
| + CancelAllRequests();
|
| + ClearCache();
|
| + delegate_->RevokeAllCredentials();
|
| +}
|
| +
|
| void OAuth2TokenService::InvalidateToken(const std::string& account_id,
|
| const ScopeSet& scopes,
|
| const std::string& access_token) {
|
| @@ -703,6 +718,10 @@ bool OAuth2TokenService::RemoveCacheEntry(
|
| }
|
| return false;
|
| }
|
| +void OAuth2TokenService::UpdateAuthError(const std::string& account_id,
|
| + const GoogleServiceAuthError& error) {
|
| + delegate_->UpdateAuthError(account_id, error);
|
| +}
|
|
|
| void OAuth2TokenService::RegisterCacheEntry(
|
| const std::string& client_id,
|
| @@ -719,12 +738,6 @@ void OAuth2TokenService::RegisterCacheEntry(
|
| token.expiration_date = expiration_date;
|
| }
|
|
|
| -void OAuth2TokenService::UpdateAuthError(
|
| - const std::string& account_id,
|
| - const GoogleServiceAuthError& error) {
|
| - // Default implementation does nothing.
|
| -}
|
| -
|
| void OAuth2TokenService::ClearCache() {
|
| DCHECK(CalledOnValidThread());
|
| for (TokenCache::iterator iter = token_cache_.begin();
|
| @@ -786,47 +799,6 @@ void OAuth2TokenService::CancelFetchers(
|
| }
|
| }
|
|
|
| -void OAuth2TokenService::FireRefreshTokenAvailable(
|
| - const std::string& account_id) {
|
| - // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is
|
| - // fixed.
|
| - tracked_objects::ScopedTracker tracking_profile(
|
| - FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| - "422460 OAuth2TokenService::FireRefreshTokenAvailable"));
|
| -
|
| - FOR_EACH_OBSERVER(Observer, observer_list_,
|
| - OnRefreshTokenAvailable(account_id));
|
| -}
|
| -
|
| -void OAuth2TokenService::FireRefreshTokenRevoked(
|
| - const std::string& account_id) {
|
| - FOR_EACH_OBSERVER(Observer, observer_list_,
|
| - OnRefreshTokenRevoked(account_id));
|
| -}
|
| -
|
| -void OAuth2TokenService::FireRefreshTokensLoaded() {
|
| - // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is
|
| - // fixed.
|
| - tracked_objects::ScopedTracker tracking_profile(
|
| - FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| - "422460 OAuth2TokenService::FireRefreshTokensLoaded"));
|
| -
|
| - FOR_EACH_OBSERVER(Observer, observer_list_, OnRefreshTokensLoaded());
|
| -}
|
| -
|
| -void OAuth2TokenService::StartBatchChanges() {
|
| - ++batch_change_depth_;
|
| - if (batch_change_depth_ == 1)
|
| - FOR_EACH_OBSERVER(Observer, observer_list_, OnStartBatchChanges());
|
| -}
|
| -
|
| -void OAuth2TokenService::EndBatchChanges() {
|
| - --batch_change_depth_;
|
| - DCHECK_LE(0, batch_change_depth_);
|
| - if (batch_change_depth_ == 0)
|
| - FOR_EACH_OBSERVER(Observer, observer_list_, OnEndBatchChanges());
|
| -}
|
| -
|
| int OAuth2TokenService::cache_size_for_testing() const {
|
| return token_cache_.size();
|
| }
|
|
|