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

Unified Diff: chrome/browser/signin/signin_account_id_helper.cc

Issue 205703005: Componentize SigninIdAccountHelper. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Response to review Created 6 years, 9 months 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
« no previous file with comments | « chrome/browser/signin/signin_account_id_helper.h ('k') | chrome/browser/signin/signin_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..610f88f8a44b95626796a377baf336f122da5f31 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,44 @@ 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(client_);
+ DCHECK(token_service_);
DCHECK(signin_manager_);
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 +149,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);
}
}
« no previous file with comments | « chrome/browser/signin/signin_account_id_helper.h ('k') | chrome/browser/signin/signin_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698