| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/signin/core/browser/signin_account_id_helper.h" | 5 #include "components/signin/core/browser/signin_account_id_helper.h" |
| 6 | 6 |
| 7 #include "base/prefs/pref_service.h" | 7 #include "base/prefs/pref_service.h" |
| 8 #include "base/profiler/scoped_profile.h" | 8 #include "base/profiler/scoped_tracker.h" |
| 9 #include "components/signin/core/browser/profile_oauth2_token_service.h" | 9 #include "components/signin/core/browser/profile_oauth2_token_service.h" |
| 10 #include "components/signin/core/browser/signin_client.h" | 10 #include "components/signin/core/browser/signin_client.h" |
| 11 #include "components/signin/core/common/signin_pref_names.h" | 11 #include "components/signin/core/common/signin_pref_names.h" |
| 12 #include "google_apis/gaia/gaia_oauth_client.h" | 12 #include "google_apis/gaia/gaia_oauth_client.h" |
| 13 | 13 |
| 14 // TODO(guohui): this class should be moved to a more generic place for reuse. | 14 // TODO(guohui): this class should be moved to a more generic place for reuse. |
| 15 class SigninAccountIdHelper::GaiaIdFetcher | 15 class SigninAccountIdHelper::GaiaIdFetcher |
| 16 : public OAuth2TokenService::Consumer, | 16 : public OAuth2TokenService::Consumer, |
| 17 public gaia::GaiaOAuthClient::Delegate { | 17 public gaia::GaiaOAuthClient::Delegate { |
| 18 public: | 18 public: |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 token_service_->RemoveObserver(this); | 130 token_service_->RemoveObserver(this); |
| 131 } | 131 } |
| 132 | 132 |
| 133 void SigninAccountIdHelper::GoogleSignedOut(const std::string& account_id, | 133 void SigninAccountIdHelper::GoogleSignedOut(const std::string& account_id, |
| 134 const std::string& username) { | 134 const std::string& username) { |
| 135 client_->GetPrefs()->ClearPref(prefs::kGoogleServicesUserAccountId); | 135 client_->GetPrefs()->ClearPref(prefs::kGoogleServicesUserAccountId); |
| 136 } | 136 } |
| 137 | 137 |
| 138 void SigninAccountIdHelper::OnRefreshTokenAvailable( | 138 void SigninAccountIdHelper::OnRefreshTokenAvailable( |
| 139 const std::string& account_id) { | 139 const std::string& account_id) { |
| 140 // TODO(vadimt): Remove ScopedProfile below once crbug.com/422460 is fixed. | 140 // TODO(vadimt): Remove ScopedTracker below once crbug.com/422460 is fixed. |
| 141 tracked_objects::ScopedProfile tracking_profile( | 141 tracked_objects::ScopedTracker tracking_profile( |
| 142 FROM_HERE_WITH_EXPLICIT_FUNCTION( | 142 FROM_HERE_WITH_EXPLICIT_FUNCTION( |
| 143 "422460 SigninAccountIdHelper::OnRefreshTokenAvailable")); | 143 "422460 SigninAccountIdHelper::OnRefreshTokenAvailable")); |
| 144 | 144 |
| 145 if (account_id == signin_manager_->GetAuthenticatedAccountId()) { | 145 if (account_id == signin_manager_->GetAuthenticatedAccountId()) { |
| 146 std::string current_gaia_id = | 146 std::string current_gaia_id = |
| 147 client_->GetPrefs()->GetString(prefs::kGoogleServicesUserAccountId); | 147 client_->GetPrefs()->GetString(prefs::kGoogleServicesUserAccountId); |
| 148 if (current_gaia_id.empty() && !disable_for_test_) { | 148 if (current_gaia_id.empty() && !disable_for_test_) { |
| 149 id_fetcher_.reset( | 149 id_fetcher_.reset( |
| 150 new GaiaIdFetcher(client_, token_service_, signin_manager_, this)); | 150 new GaiaIdFetcher(client_, token_service_, signin_manager_, this)); |
| 151 } | 151 } |
| 152 } | 152 } |
| 153 } | 153 } |
| 154 | 154 |
| 155 void SigninAccountIdHelper::OnPrimaryAccountIdFetched( | 155 void SigninAccountIdHelper::OnPrimaryAccountIdFetched( |
| 156 const std::string& gaia_id) { | 156 const std::string& gaia_id) { |
| 157 if (!gaia_id.empty()) { | 157 if (!gaia_id.empty()) { |
| 158 client_->GetPrefs()->SetString(prefs::kGoogleServicesUserAccountId, | 158 client_->GetPrefs()->SetString(prefs::kGoogleServicesUserAccountId, |
| 159 gaia_id); | 159 gaia_id); |
| 160 } | 160 } |
| 161 } | 161 } |
| 162 | 162 |
| 163 // static | 163 // static |
| 164 bool SigninAccountIdHelper::disable_for_test_ = false; | 164 bool SigninAccountIdHelper::disable_for_test_ = false; |
| 165 | 165 |
| 166 // static | 166 // static |
| 167 void SigninAccountIdHelper::SetDisableForTest(bool disable_for_test) { | 167 void SigninAccountIdHelper::SetDisableForTest(bool disable_for_test) { |
| 168 disable_for_test_ = disable_for_test; | 168 disable_for_test_ = disable_for_test; |
| 169 } | 169 } |
| OLD | NEW |