Index: components/signin/core/browser/about_signin_internals.cc |
diff --git a/components/signin/core/browser/about_signin_internals.cc b/components/signin/core/browser/about_signin_internals.cc |
index 81a7e61406634566482e85541d6437d69474d854..74c3979bfe00baae87ba26937a050bf9306c21dc 100644 |
--- a/components/signin/core/browser/about_signin_internals.cc |
+++ b/components/signin/core/browser/about_signin_internals.cc |
@@ -20,11 +20,6 @@ |
#include "components/signin/core/browser/signin_manager.h" |
#include "components/signin/core/common/profile_management_switches.h" |
#include "components/signin/core/common/signin_switches.h" |
-#include "google_apis/gaia/gaia_auth_fetcher.h" |
-#include "google_apis/gaia/gaia_auth_util.h" |
-#include "google_apis/gaia/gaia_constants.h" |
-#include "google_apis/gaia/gaia_urls.h" |
-#include "net/cookies/canonical_cookie.h" |
using base::Time; |
using namespace signin_internals_util; |
@@ -135,12 +130,14 @@ AboutSigninInternals::AboutSigninInternals( |
ProfileOAuth2TokenService* token_service, |
AccountTrackerService* account_tracker, |
SigninManagerBase* signin_manager, |
- SigninErrorController* signin_error_controller) |
+ SigninErrorController* signin_error_controller, |
+ GaiaCookieManagerService* cookie_manager_service) |
: token_service_(token_service), |
account_tracker_(account_tracker), |
signin_manager_(signin_manager), |
client_(NULL), |
- signin_error_controller_(signin_error_controller) {} |
+ signin_error_controller_(signin_error_controller), |
+ cookie_manager_service_(cookie_manager_service) {} |
AboutSigninInternals::~AboutSigninInternals() {} |
@@ -211,18 +208,14 @@ void AboutSigninInternals::Initialize(SigninClient* client) { |
signin_error_controller_->AddObserver(this); |
signin_manager_->AddSigninDiagnosticsObserver(this); |
token_service_->AddDiagnosticsObserver(this); |
- cookie_changed_subscription_ = client_->AddCookieChangedCallback( |
- GaiaUrls::GetInstance()->gaia_url(), |
- "LSID", |
- base::Bind(&AboutSigninInternals::OnCookieChanged, |
- base::Unretained(this))); |
+ cookie_manager_service_->AddObserver(this); |
} |
void AboutSigninInternals::Shutdown() { |
signin_error_controller_->RemoveObserver(this); |
signin_manager_->RemoveSigninDiagnosticsObserver(this); |
token_service_->RemoveDiagnosticsObserver(this); |
- cookie_changed_subscription_.reset(); |
+ cookie_manager_service_->RemoveObserver(this); |
} |
void AboutSigninInternals::NotifyObservers() { |
@@ -329,48 +322,10 @@ void AboutSigninInternals::OnAuthenticationResultReceived(std::string status) { |
NotifySigninValueChanged(AUTHENTICATION_RESULT_RECEIVED, status); |
} |
-void AboutSigninInternals::OnCookieChanged(const net::CanonicalCookie& cookie, |
- bool removed) { |
- DCHECK_EQ("LSID", cookie.Name()); |
- DCHECK_EQ(GaiaUrls::GetInstance()->gaia_url().host(), cookie.Domain()); |
- if (cookie.IsSecure() && cookie.IsHttpOnly()) { |
- GetCookieAccountsAsync(); |
- } |
-} |
- |
void AboutSigninInternals::OnErrorChanged() { |
NotifyObservers(); |
} |
-void AboutSigninInternals::GetCookieAccountsAsync() { |
- // Don't bother calling /ListAccounts if no one will observe the response. |
- if (!gaia_fetcher_ && signin_observers_.might_have_observers()) { |
- // There is no list account request in flight. |
- gaia_fetcher_.reset(new GaiaAuthFetcher( |
- this, GaiaConstants::kChromeSource, client_->GetURLRequestContext())); |
- gaia_fetcher_->StartListAccounts(); |
- } |
-} |
- |
-void AboutSigninInternals::OnListAccountsSuccess(const std::string& data) { |
- gaia_fetcher_.reset(); |
- |
- // Get account information from response data. |
- std::vector<std::pair<std::string, bool> > gaia_accounts; |
- bool valid_json = gaia::ParseListAccountsData(data, &gaia_accounts); |
- if (!valid_json) { |
- VLOG(1) << "AboutSigninInternals::OnListAccountsSuccess: parsing error"; |
- } else { |
- OnListAccountsComplete(gaia_accounts); |
- } |
-} |
- |
-void AboutSigninInternals::OnListAccountsFailure( |
- const GoogleServiceAuthError& error) { |
- gaia_fetcher_.reset(); |
- VLOG(1) << "AboutSigninInternals::OnListAccountsFailure:" << error.ToString(); |
-} |
- |
void AboutSigninInternals::GoogleSigninFailed( |
const GoogleServiceAuthError& error) { |
NotifyObservers(); |
@@ -387,8 +342,12 @@ void AboutSigninInternals::GoogleSignedOut(const std::string& account_id, |
NotifyObservers(); |
} |
-void AboutSigninInternals::OnListAccountsComplete( |
- std::vector<std::pair<std::string, bool> >& gaia_accounts) { |
+void AboutSigninInternals::OnGaiaAccountsInCookieUpdated( |
+ const std::vector<std::pair<std::string, bool> >& gaia_accounts, |
+ const GoogleServiceAuthError& error) { |
+ if (error.state() != GoogleServiceAuthError::NONE) |
+ return; |
+ |
base::DictionaryValue cookie_status; |
base::ListValue* cookie_info = new base::ListValue(); |
cookie_status.Set("cookie_info", cookie_info); |