Chromium Code Reviews| Index: chrome/browser/signin/signin_account_id_helper.cc |
| diff --git a/chrome/browser/signin/signin_account_id_helper.cc b/chrome/browser/signin/signin_account_id_helper.cc |
| index 912e4fd80092553fc88c2efda387f24ddc368761..d588e6ef8e94d182c65eabd16036de46bdaffaa1 100644 |
| --- a/chrome/browser/signin/signin_account_id_helper.cc |
| +++ b/chrome/browser/signin/signin_account_id_helper.cc |
| @@ -5,10 +5,9 @@ |
| #include "chrome/browser/signin/signin_account_id_helper.h" |
| #include "base/prefs/pref_service.h" |
| -#include "chrome/browser/profiles/profile.h" |
| -#include "chrome/browser/signin/profile_oauth2_token_service_factory.h" |
| -#include "chrome/common/pref_names.h" |
| #include "components/signin/core/browser/profile_oauth2_token_service.h" |
| +#include "components/signin/core/browser/signin_client.h" |
| +#include "components/signin/core/common/signin_pref_names.h" |
| #include "google_apis/gaia/gaia_oauth_client.h" |
| // TODO(guohui): this class should be moved to a more generic place for reuse. |
| @@ -16,7 +15,8 @@ class SigninAccountIdHelper::GaiaIdFetcher |
| : public OAuth2TokenService::Consumer, |
| public gaia::GaiaOAuthClient::Delegate { |
| public: |
| - GaiaIdFetcher(Profile* profile, |
| + GaiaIdFetcher(SigninClient* client, |
| + ProfileOAuth2TokenService* token_service, |
| SigninManagerBase* signin_manager, |
| SigninAccountIdHelper* signin_account_id_helper); |
| virtual ~GaiaIdFetcher(); |
| @@ -36,7 +36,8 @@ class SigninAccountIdHelper::GaiaIdFetcher |
| private: |
| void Start(); |
| - Profile* profile_; |
| + SigninClient* client_; |
| + ProfileOAuth2TokenService* token_service_; |
| SigninManagerBase* signin_manager_; |
| SigninAccountIdHelper* signin_account_id_helper_; |
| @@ -47,11 +48,13 @@ class SigninAccountIdHelper::GaiaIdFetcher |
| }; |
| SigninAccountIdHelper::GaiaIdFetcher::GaiaIdFetcher( |
| - Profile* profile, |
| + SigninClient* client, |
| + ProfileOAuth2TokenService* token_service, |
| SigninManagerBase* signin_manager, |
| SigninAccountIdHelper* signin_account_id_helper) |
| : OAuth2TokenService::Consumer("gaia_id_fetcher"), |
| - profile_(profile), |
| + client_(client), |
| + token_service_(token_service), |
| signin_manager_(signin_manager), |
| signin_account_id_helper_(signin_account_id_helper) { |
| Start(); |
| @@ -60,11 +63,9 @@ SigninAccountIdHelper::GaiaIdFetcher::GaiaIdFetcher( |
| SigninAccountIdHelper::GaiaIdFetcher::~GaiaIdFetcher() {} |
| void SigninAccountIdHelper::GaiaIdFetcher::Start() { |
| - ProfileOAuth2TokenService* service = |
| - ProfileOAuth2TokenServiceFactory::GetForProfile(profile_); |
| OAuth2TokenService::ScopeSet scopes; |
| scopes.insert("https://www.googleapis.com/auth/userinfo.profile"); |
| - login_token_request_ = service->StartRequest( |
| + login_token_request_ = token_service_->StartRequest( |
| signin_manager_->GetAuthenticatedAccountId(), scopes, this); |
| } |
| @@ -75,7 +76,7 @@ void SigninAccountIdHelper::GaiaIdFetcher::OnGetTokenSuccess( |
| DCHECK_EQ(request, login_token_request_.get()); |
| gaia_oauth_client_.reset( |
| - new gaia::GaiaOAuthClient(profile_->GetRequestContext())); |
| + new gaia::GaiaOAuthClient(client_->GetURLRequestContext())); |
| const int kMaxGetUserIdRetries = 3; |
| gaia_oauth_client_->GetUserId(access_token, kMaxGetUserIdRetries, this); |
| @@ -103,39 +104,43 @@ void SigninAccountIdHelper::GaiaIdFetcher::OnNetworkError( |
| VLOG(1) << "OnNetworkError " << response_code; |
| } |
| -SigninAccountIdHelper::SigninAccountIdHelper(Profile* profile, |
| - SigninManagerBase* signin_manager) |
| - : profile_(profile), signin_manager_(signin_manager) { |
| +SigninAccountIdHelper::SigninAccountIdHelper( |
| + SigninClient* client, |
| + ProfileOAuth2TokenService* token_service, |
| + SigninManagerBase* signin_manager) |
| + : client_(client), |
| + token_service_(token_service), |
| + signin_manager_(signin_manager) { |
| + DCHECK(token_service_); |
| DCHECK(signin_manager_); |
|
Roger Tawa OOO till Jul 10th
2014/03/27 15:53:29
DCHECK client_ is not null?
blundell
2014/03/27 17:43:56
Done.
|
| signin_manager_->AddObserver(this); |
| - ProfileOAuth2TokenService* token_service = |
| - ProfileOAuth2TokenServiceFactory::GetForProfile(profile_); |
| std::string primary_email = signin_manager_->GetAuthenticatedAccountId(); |
| if (!primary_email.empty() && |
| - token_service->RefreshTokenIsAvailable(primary_email) && |
| + token_service_->RefreshTokenIsAvailable(primary_email) && |
| !disable_for_test_) { |
| - id_fetcher_.reset(new GaiaIdFetcher(profile_, signin_manager_, this)); |
| + id_fetcher_.reset( |
| + new GaiaIdFetcher(client_, token_service_, signin_manager_, this)); |
| } |
| - token_service->AddObserver(this); |
| + token_service_->AddObserver(this); |
| } |
| SigninAccountIdHelper::~SigninAccountIdHelper() { |
| signin_manager_->RemoveObserver(this); |
| - ProfileOAuth2TokenServiceFactory::GetForProfile(profile_) |
| - ->RemoveObserver(this); |
| + token_service_->RemoveObserver(this); |
| } |
| void SigninAccountIdHelper::GoogleSignedOut(const std::string& username) { |
| - profile_->GetPrefs()->ClearPref(prefs::kGoogleServicesUserAccountId); |
| + client_->GetPrefs()->ClearPref(prefs::kGoogleServicesUserAccountId); |
| } |
| void SigninAccountIdHelper::OnRefreshTokenAvailable( |
| const std::string& account_id) { |
| if (account_id == signin_manager_->GetAuthenticatedAccountId()) { |
| std::string current_gaia_id = |
| - profile_->GetPrefs()->GetString(prefs::kGoogleServicesUserAccountId); |
| + client_->GetPrefs()->GetString(prefs::kGoogleServicesUserAccountId); |
| if (current_gaia_id.empty() && !disable_for_test_) { |
| - id_fetcher_.reset(new GaiaIdFetcher(profile_, signin_manager_, this)); |
| + id_fetcher_.reset( |
| + new GaiaIdFetcher(client_, token_service_, signin_manager_, this)); |
| } |
| } |
| } |
| @@ -143,8 +148,8 @@ void SigninAccountIdHelper::OnRefreshTokenAvailable( |
| void SigninAccountIdHelper::OnPrimaryAccountIdFetched( |
| const std::string& gaia_id) { |
| if (!gaia_id.empty()) { |
| - profile_->GetPrefs()->SetString(prefs::kGoogleServicesUserAccountId, |
| - gaia_id); |
| + client_->GetPrefs()->SetString(prefs::kGoogleServicesUserAccountId, |
| + gaia_id); |
| } |
| } |