| 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 a693d5e8004d0fe75ea7daf6f71c7ad3b09e61ad..c6294facc29ba2b3d73486723c5d7bb63d37404b 100644
|
| --- a/components/signin/core/browser/about_signin_internals.cc
|
| +++ b/components/signin/core/browser/about_signin_internals.cc
|
| @@ -134,11 +134,13 @@ void ClearPref(PrefService* prefs, TimedSigninStatusField field) {
|
| AboutSigninInternals::AboutSigninInternals(
|
| ProfileOAuth2TokenService* token_service,
|
| AccountTrackerService* account_tracker,
|
| - SigninManagerBase* signin_manager)
|
| + SigninManagerBase* signin_manager,
|
| + SigninErrorController* signin_error_controller)
|
| : token_service_(token_service),
|
| account_tracker_(account_tracker),
|
| signin_manager_(signin_manager),
|
| - client_(NULL) {}
|
| + client_(NULL),
|
| + signin_error_controller_(signin_error_controller) {}
|
|
|
| AboutSigninInternals::~AboutSigninInternals() {}
|
|
|
| @@ -206,6 +208,7 @@ void AboutSigninInternals::Initialize(SigninClient* client) {
|
|
|
| RefreshSigninPrefs();
|
|
|
| + signin_error_controller_->AddObserver(this);
|
| signin_manager_->AddSigninDiagnosticsObserver(this);
|
| token_service_->AddDiagnosticsObserver(this);
|
| cookie_changed_subscription_ = client_->AddCookieChangedCallback(
|
| @@ -216,6 +219,7 @@ void AboutSigninInternals::Initialize(SigninClient* client) {
|
| }
|
|
|
| void AboutSigninInternals::Shutdown() {
|
| + signin_error_controller_->RemoveObserver(this);
|
| signin_manager_->RemoveSigninDiagnosticsObserver(this);
|
| token_service_->RemoveDiagnosticsObserver(this);
|
| cookie_changed_subscription_.reset();
|
| @@ -240,7 +244,9 @@ void AboutSigninInternals::NotifyObservers() {
|
| "422460 AboutSigninInternals::NotifyObservers 0.5"));
|
|
|
| scoped_ptr<base::DictionaryValue> signin_status_value =
|
| - signin_status_.ToValue(account_tracker_, signin_manager_,
|
| + signin_status_.ToValue(account_tracker_,
|
| + signin_manager_,
|
| + signin_error_controller_,
|
| product_version);
|
|
|
| // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is
|
| @@ -255,7 +261,9 @@ void AboutSigninInternals::NotifyObservers() {
|
| }
|
|
|
| scoped_ptr<base::DictionaryValue> AboutSigninInternals::GetSigninStatus() {
|
| - return signin_status_.ToValue(account_tracker_, signin_manager_,
|
| + return signin_status_.ToValue(account_tracker_,
|
| + signin_manager_,
|
| + signin_error_controller_,
|
| client_->GetProductVersion()).Pass();
|
| }
|
|
|
| @@ -328,6 +336,10 @@ void AboutSigninInternals::OnCookieChanged(const net::CanonicalCookie& cookie,
|
| }
|
| }
|
|
|
| +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()) {
|
| @@ -479,6 +491,7 @@ AboutSigninInternals::TokenInfo* AboutSigninInternals::SigninStatus::FindToken(
|
| scoped_ptr<base::DictionaryValue> AboutSigninInternals::SigninStatus::ToValue(
|
| AccountTrackerService* account_tracker,
|
| SigninManagerBase* signin_manager,
|
| + SigninErrorController* signin_error_controller,
|
| const std::string& product_version) {
|
| // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is
|
| // fixed.
|
| @@ -524,6 +537,14 @@ scoped_ptr<base::DictionaryValue> AboutSigninInternals::SigninStatus::ToValue(
|
| SigninStatusFieldToLabel(
|
| static_cast<UntimedSigninStatusField>(USERNAME)),
|
| signin_manager->GetAuthenticatedUsername());
|
| + if (signin_error_controller->HasError()) {
|
| + AddSectionEntry(basic_info, "Auth Error",
|
| + signin_error_controller->auth_error().ToString());
|
| + AddSectionEntry(basic_info, "Auth Error Username",
|
| + signin_error_controller->error_username());
|
| + } else {
|
| + AddSectionEntry(basic_info, "Auth Error", "None");
|
| + }
|
| }
|
|
|
| #if !defined(OS_CHROMEOS)
|
|
|