| Index: chrome/browser/signin/signin_manager.cc
|
| diff --git a/chrome/browser/signin/signin_manager.cc b/chrome/browser/signin/signin_manager.cc
|
| index 7af881b9066bde2cf013484238d4b82c43000c4e..6ce8633058ac6e02a45008ada205f509236831d2 100644
|
| --- a/chrome/browser/signin/signin_manager.cc
|
| +++ b/chrome/browser/signin/signin_manager.cc
|
| @@ -13,8 +13,6 @@
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "base/time/time.h"
|
| #include "chrome/browser/chrome_notification_types.h"
|
| -#include "chrome/browser/profiles/profile_io_data.h"
|
| -#include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
|
| #include "chrome/browser/signin/signin_account_id_helper.h"
|
| #include "chrome/common/pref_names.h"
|
| #include "chrome/common/profile_management_switches.h"
|
| @@ -22,6 +20,7 @@
|
| #include "components/signin/core/browser/signin_client.h"
|
| #include "components/signin/core/browser/signin_internals_util.h"
|
| #include "components/signin/core/browser/signin_manager_cookie_helper.h"
|
| +#include "components/signin/core/common/signin_pref_names.h"
|
| #include "content/public/browser/notification_service.h"
|
| #include "google_apis/gaia/gaia_auth_util.h"
|
| #include "google_apis/gaia/gaia_urls.h"
|
| @@ -61,13 +60,15 @@ bool SigninManager::IsWebBasedSigninFlowURL(const GURL& url) {
|
| .find(kChromiumSyncService) != std::string::npos;
|
| }
|
|
|
| -SigninManager::SigninManager(SigninClient* client)
|
| +SigninManager::SigninManager(SigninClient* client,
|
| + ProfileOAuth2TokenService* token_service)
|
| : SigninManagerBase(client),
|
| profile_(NULL),
|
| prohibit_signout_(false),
|
| type_(SIGNIN_TYPE_NONE),
|
| weak_pointer_factory_(this),
|
| - client_(client) {}
|
| + client_(client),
|
| + token_service_(token_service) {}
|
|
|
| void SigninManager::AddMergeSessionObserver(
|
| MergeSessionHelper::Observer* observer) {
|
| @@ -85,11 +86,9 @@ SigninManager::~SigninManager() {
|
| }
|
|
|
| void SigninManager::InitTokenService() {
|
| - ProfileOAuth2TokenService* token_service =
|
| - ProfileOAuth2TokenServiceFactory::GetForProfile(profile_);
|
| const std::string& account_id = GetAuthenticatedUsername();
|
| - if (token_service && !account_id.empty())
|
| - token_service->LoadCredentials(account_id);
|
| + if (token_service_ && !account_id.empty())
|
| + token_service_->LoadCredentials(account_id);
|
| }
|
|
|
| std::string SigninManager::SigninTypeToString(
|
| @@ -214,7 +213,7 @@ void SigninManager::SignOut() {
|
|
|
| const std::string& username = GetAuthenticatedUsername();
|
| clear_authenticated_username();
|
| - profile_->GetPrefs()->ClearPref(prefs::kGoogleServicesUsername);
|
| + client_->GetPrefs()->ClearPref(prefs::kGoogleServicesUsername);
|
|
|
| // Erase (now) stale information from AboutSigninInternals.
|
| NotifyDiagnosticsObservers(USERNAME, "");
|
| @@ -222,11 +221,9 @@ void SigninManager::SignOut() {
|
| // Revoke all tokens before sending signed_out notification, because there
|
| // may be components that don't listen for token service events when the
|
| // profile is not connected to an account.
|
| - ProfileOAuth2TokenService* token_service =
|
| - ProfileOAuth2TokenServiceFactory::GetForProfile(profile_);
|
| LOG(WARNING) << "Revoking refresh token on server. Reason: sign out, "
|
| << "IsSigninAllowed: " << IsSigninAllowed();
|
| - token_service->RevokeAllCredentials();
|
| + token_service_->RevokeAllCredentials();
|
|
|
| // TODO(blundell): Eliminate this notification send once crbug.com/333997 is
|
| // fixed.
|
| @@ -251,12 +248,13 @@ void SigninManager::Initialize(Profile* profile, PrefService* local_state) {
|
| base::Bind(&SigninManager::OnGoogleServicesUsernamePatternChanged,
|
| weak_pointer_factory_.GetWeakPtr()));
|
| }
|
| - signin_allowed_.Init(prefs::kSigninAllowed, profile_->GetPrefs(),
|
| - base::Bind(&SigninManager::OnSigninAllowedPrefChanged,
|
| - base::Unretained(this)));
|
| + signin_allowed_.Init(prefs::kSigninAllowed,
|
| + client_->GetPrefs(),
|
| + base::Bind(&SigninManager::OnSigninAllowedPrefChanged,
|
| + base::Unretained(this)));
|
|
|
| - std::string user = profile_->GetPrefs()->GetString(
|
| - prefs::kGoogleServicesUsername);
|
| + std::string user =
|
| + client_->GetPrefs()->GetString(prefs::kGoogleServicesUsername);
|
| if ((!user.empty() && !IsAllowedUsername(user)) || !IsSigninAllowed()) {
|
| // User is signed in, but the username is invalid - the administrator must
|
| // have changed the policy since the last signin, so sign out the user.
|
| @@ -264,10 +262,8 @@ void SigninManager::Initialize(Profile* profile, PrefService* local_state) {
|
| }
|
|
|
| InitTokenService();
|
| - account_id_helper_.reset(new SigninAccountIdHelper(
|
| - client_,
|
| - ProfileOAuth2TokenServiceFactory::GetForProfile(profile_),
|
| - this));
|
| + account_id_helper_.reset(
|
| + new SigninAccountIdHelper(client_, token_service_, this));
|
| }
|
|
|
| void SigninManager::Shutdown() {
|
| @@ -348,18 +344,14 @@ const std::string& SigninManager::GetUsernameForAuthInProgress() const {
|
| return possibly_invalid_username_;
|
| }
|
|
|
| -void SigninManager::DisableOneClickSignIn(Profile* profile) {
|
| - PrefService* pref_service = profile->GetPrefs();
|
| - pref_service->SetBoolean(prefs::kReverseAutologinEnabled, false);
|
| +void SigninManager::DisableOneClickSignIn(PrefService* prefs) {
|
| + prefs->SetBoolean(prefs::kReverseAutologinEnabled, false);
|
| }
|
|
|
| void SigninManager::CompletePendingSignin() {
|
| DCHECK(!possibly_invalid_username_.empty());
|
| OnSignedIn(possibly_invalid_username_);
|
|
|
| - ProfileOAuth2TokenService* token_service =
|
| - ProfileOAuth2TokenServiceFactory::GetForProfile(profile_);
|
| -
|
| // If inline sign in is enabled, but new profile management is not, perform a
|
| // merge session now to push the user's credentials into the cookie jar.
|
| bool do_merge_session_in_signin_manager =
|
| @@ -368,13 +360,13 @@ void SigninManager::CompletePendingSignin() {
|
|
|
| if (do_merge_session_in_signin_manager) {
|
| merge_session_helper_.reset(new MergeSessionHelper(
|
| - token_service, profile_->GetRequestContext(), NULL));
|
| + token_service_, client_->GetURLRequestContext(), NULL));
|
| }
|
|
|
| DCHECK(!temp_refresh_token_.empty());
|
| DCHECK(!GetAuthenticatedUsername().empty());
|
| - token_service->UpdateCredentials(GetAuthenticatedUsername(),
|
| - temp_refresh_token_);
|
| + token_service_->UpdateCredentials(GetAuthenticatedUsername(),
|
| + temp_refresh_token_);
|
| temp_refresh_token_.clear();
|
|
|
| if (do_merge_session_in_signin_manager)
|
| @@ -405,7 +397,7 @@ void SigninManager::OnSignedIn(const std::string& username) {
|
| client_->GoogleSigninSucceeded(GetAuthenticatedUsername(), password_);
|
|
|
| password_.clear(); // Don't need it anymore.
|
| - DisableOneClickSignIn(profile_); // Don't ever offer again.
|
| + DisableOneClickSignIn(client_->GetPrefs()); // Don't ever offer again.
|
| }
|
|
|
| void SigninManager::ProhibitSignout(bool prohibit_signout) {
|
|
|