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

Side by Side Diff: components/signin/core/browser/about_signin_internals.cc

Issue 1025323004: Show SigninErrorController username and status in AboutSigninInternals (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address feedback. Created 5 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 unified diff | Download patch
« no previous file with comments | « components/signin/core/browser/about_signin_internals.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/about_signin_internals.h" 5 #include "components/signin/core/browser/about_signin_internals.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/hash.h" 8 #include "base/hash.h"
9 #include "base/i18n/time_formatting.h" 9 #include "base/i18n/time_formatting.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 std::string time_pref = SigninStatusFieldToString(field) + ".time"; 127 std::string time_pref = SigninStatusFieldToString(field) + ".time";
128 prefs->ClearPref(value_pref); 128 prefs->ClearPref(value_pref);
129 prefs->ClearPref(time_pref); 129 prefs->ClearPref(time_pref);
130 } 130 }
131 131
132 } // anonymous namespace 132 } // anonymous namespace
133 133
134 AboutSigninInternals::AboutSigninInternals( 134 AboutSigninInternals::AboutSigninInternals(
135 ProfileOAuth2TokenService* token_service, 135 ProfileOAuth2TokenService* token_service,
136 AccountTrackerService* account_tracker, 136 AccountTrackerService* account_tracker,
137 SigninManagerBase* signin_manager) 137 SigninManagerBase* signin_manager,
138 SigninErrorController* signin_error_controller)
138 : token_service_(token_service), 139 : token_service_(token_service),
139 account_tracker_(account_tracker), 140 account_tracker_(account_tracker),
140 signin_manager_(signin_manager), 141 signin_manager_(signin_manager),
141 client_(NULL) {} 142 client_(NULL),
143 signin_error_controller_(signin_error_controller) {}
142 144
143 AboutSigninInternals::~AboutSigninInternals() {} 145 AboutSigninInternals::~AboutSigninInternals() {}
144 146
145 void AboutSigninInternals::AddSigninObserver( 147 void AboutSigninInternals::AddSigninObserver(
146 AboutSigninInternals::Observer* observer) { 148 AboutSigninInternals::Observer* observer) {
147 signin_observers_.AddObserver(observer); 149 signin_observers_.AddObserver(observer);
148 } 150 }
149 151
150 void AboutSigninInternals::RemoveSigninObserver( 152 void AboutSigninInternals::RemoveSigninObserver(
151 AboutSigninInternals::Observer* observer) { 153 AboutSigninInternals::Observer* observer) {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 201
200 NotifyObservers(); 202 NotifyObservers();
201 } 203 }
202 204
203 void AboutSigninInternals::Initialize(SigninClient* client) { 205 void AboutSigninInternals::Initialize(SigninClient* client) {
204 DCHECK(!client_); 206 DCHECK(!client_);
205 client_ = client; 207 client_ = client;
206 208
207 RefreshSigninPrefs(); 209 RefreshSigninPrefs();
208 210
211 signin_error_controller_->AddObserver(this);
209 signin_manager_->AddSigninDiagnosticsObserver(this); 212 signin_manager_->AddSigninDiagnosticsObserver(this);
210 token_service_->AddDiagnosticsObserver(this); 213 token_service_->AddDiagnosticsObserver(this);
211 cookie_changed_subscription_ = client_->AddCookieChangedCallback( 214 cookie_changed_subscription_ = client_->AddCookieChangedCallback(
212 GaiaUrls::GetInstance()->gaia_url(), 215 GaiaUrls::GetInstance()->gaia_url(),
213 "LSID", 216 "LSID",
214 base::Bind(&AboutSigninInternals::OnCookieChanged, 217 base::Bind(&AboutSigninInternals::OnCookieChanged,
215 base::Unretained(this))); 218 base::Unretained(this)));
216 } 219 }
217 220
218 void AboutSigninInternals::Shutdown() { 221 void AboutSigninInternals::Shutdown() {
222 signin_error_controller_->RemoveObserver(this);
219 signin_manager_->RemoveSigninDiagnosticsObserver(this); 223 signin_manager_->RemoveSigninDiagnosticsObserver(this);
220 token_service_->RemoveDiagnosticsObserver(this); 224 token_service_->RemoveDiagnosticsObserver(this);
221 cookie_changed_subscription_.reset(); 225 cookie_changed_subscription_.reset();
222 } 226 }
223 227
224 void AboutSigninInternals::NotifyObservers() { 228 void AboutSigninInternals::NotifyObservers() {
225 if (!signin_observers_.might_have_observers()) 229 if (!signin_observers_.might_have_observers())
226 return; 230 return;
227 231
228 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is 232 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is
229 // fixed. 233 // fixed.
230 tracked_objects::ScopedTracker tracking_profile( 234 tracked_objects::ScopedTracker tracking_profile(
231 FROM_HERE_WITH_EXPLICIT_FUNCTION( 235 FROM_HERE_WITH_EXPLICIT_FUNCTION(
232 "422460 AboutSigninInternals::NotifyObservers")); 236 "422460 AboutSigninInternals::NotifyObservers"));
233 237
234 const std::string product_version = client_->GetProductVersion(); 238 const std::string product_version = client_->GetProductVersion();
235 239
236 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is 240 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is
237 // fixed. 241 // fixed.
238 tracked_objects::ScopedTracker tracking_profile05( 242 tracked_objects::ScopedTracker tracking_profile05(
239 FROM_HERE_WITH_EXPLICIT_FUNCTION( 243 FROM_HERE_WITH_EXPLICIT_FUNCTION(
240 "422460 AboutSigninInternals::NotifyObservers 0.5")); 244 "422460 AboutSigninInternals::NotifyObservers 0.5"));
241 245
242 scoped_ptr<base::DictionaryValue> signin_status_value = 246 scoped_ptr<base::DictionaryValue> signin_status_value =
243 signin_status_.ToValue(account_tracker_, signin_manager_, 247 signin_status_.ToValue(account_tracker_,
248 signin_manager_,
249 signin_error_controller_,
244 product_version); 250 product_version);
245 251
246 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is 252 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is
247 // fixed. 253 // fixed.
248 tracked_objects::ScopedTracker tracking_profile1( 254 tracked_objects::ScopedTracker tracking_profile1(
249 FROM_HERE_WITH_EXPLICIT_FUNCTION( 255 FROM_HERE_WITH_EXPLICIT_FUNCTION(
250 "422460 AboutSigninInternals::NotifyObservers1")); 256 "422460 AboutSigninInternals::NotifyObservers1"));
251 257
252 FOR_EACH_OBSERVER(AboutSigninInternals::Observer, 258 FOR_EACH_OBSERVER(AboutSigninInternals::Observer,
253 signin_observers_, 259 signin_observers_,
254 OnSigninStateChanged(signin_status_value.get())); 260 OnSigninStateChanged(signin_status_value.get()));
255 } 261 }
256 262
257 scoped_ptr<base::DictionaryValue> AboutSigninInternals::GetSigninStatus() { 263 scoped_ptr<base::DictionaryValue> AboutSigninInternals::GetSigninStatus() {
258 return signin_status_.ToValue(account_tracker_, signin_manager_, 264 return signin_status_.ToValue(account_tracker_,
265 signin_manager_,
266 signin_error_controller_,
259 client_->GetProductVersion()).Pass(); 267 client_->GetProductVersion()).Pass();
260 } 268 }
261 269
262 void AboutSigninInternals::OnAccessTokenRequested( 270 void AboutSigninInternals::OnAccessTokenRequested(
263 const std::string& account_id, 271 const std::string& account_id,
264 const std::string& consumer_id, 272 const std::string& consumer_id,
265 const OAuth2TokenService::ScopeSet& scopes) { 273 const OAuth2TokenService::ScopeSet& scopes) {
266 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is 274 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is
267 // fixed. 275 // fixed.
268 tracked_objects::ScopedTracker tracking_profile( 276 tracked_objects::ScopedTracker tracking_profile(
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 329
322 void AboutSigninInternals::OnCookieChanged(const net::CanonicalCookie& cookie, 330 void AboutSigninInternals::OnCookieChanged(const net::CanonicalCookie& cookie,
323 bool removed) { 331 bool removed) {
324 DCHECK_EQ("LSID", cookie.Name()); 332 DCHECK_EQ("LSID", cookie.Name());
325 DCHECK_EQ(GaiaUrls::GetInstance()->gaia_url().host(), cookie.Domain()); 333 DCHECK_EQ(GaiaUrls::GetInstance()->gaia_url().host(), cookie.Domain());
326 if (cookie.IsSecure() && cookie.IsHttpOnly()) { 334 if (cookie.IsSecure() && cookie.IsHttpOnly()) {
327 GetCookieAccountsAsync(); 335 GetCookieAccountsAsync();
328 } 336 }
329 } 337 }
330 338
339 void AboutSigninInternals::OnErrorChanged() {
340 NotifyObservers();
341 }
342
331 void AboutSigninInternals::GetCookieAccountsAsync() { 343 void AboutSigninInternals::GetCookieAccountsAsync() {
332 // Don't bother calling /ListAccounts if no one will observe the response. 344 // Don't bother calling /ListAccounts if no one will observe the response.
333 if (!gaia_fetcher_ && signin_observers_.might_have_observers()) { 345 if (!gaia_fetcher_ && signin_observers_.might_have_observers()) {
334 // There is no list account request in flight. 346 // There is no list account request in flight.
335 gaia_fetcher_.reset(new GaiaAuthFetcher( 347 gaia_fetcher_.reset(new GaiaAuthFetcher(
336 this, GaiaConstants::kChromeSource, client_->GetURLRequestContext())); 348 this, GaiaConstants::kChromeSource, client_->GetURLRequestContext()));
337 gaia_fetcher_->StartListAccounts(); 349 gaia_fetcher_->StartListAccounts();
338 } 350 }
339 } 351 }
340 352
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 TokenInfo* tmp = token_info_map[account_id][i]; 484 TokenInfo* tmp = token_info_map[account_id][i];
473 if (tmp->consumer_id == consumer_id && tmp->scopes == scopes) 485 if (tmp->consumer_id == consumer_id && tmp->scopes == scopes)
474 return tmp; 486 return tmp;
475 } 487 }
476 return NULL; 488 return NULL;
477 } 489 }
478 490
479 scoped_ptr<base::DictionaryValue> AboutSigninInternals::SigninStatus::ToValue( 491 scoped_ptr<base::DictionaryValue> AboutSigninInternals::SigninStatus::ToValue(
480 AccountTrackerService* account_tracker, 492 AccountTrackerService* account_tracker,
481 SigninManagerBase* signin_manager, 493 SigninManagerBase* signin_manager,
494 SigninErrorController* signin_error_controller,
482 const std::string& product_version) { 495 const std::string& product_version) {
483 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is 496 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is
484 // fixed. 497 // fixed.
485 tracked_objects::ScopedTracker tracking_profile1( 498 tracked_objects::ScopedTracker tracking_profile1(
486 FROM_HERE_WITH_EXPLICIT_FUNCTION( 499 FROM_HERE_WITH_EXPLICIT_FUNCTION(
487 "422460 AboutSigninInternals::SigninStatus::ToValue1")); 500 "422460 AboutSigninInternals::SigninStatus::ToValue1"));
488 501
489 scoped_ptr<base::DictionaryValue> signin_status(new base::DictionaryValue()); 502 scoped_ptr<base::DictionaryValue> signin_status(new base::DictionaryValue());
490 base::ListValue* signin_info = new base::ListValue(); 503 base::ListValue* signin_info = new base::ListValue();
491 signin_status->Set("signin_info", signin_info); 504 signin_status->Set("signin_info", signin_info);
(...skipping 25 matching lines...) Expand all
517 static_cast<UntimedSigninStatusField>(ACCOUNT_ID)), 530 static_cast<UntimedSigninStatusField>(ACCOUNT_ID)),
518 account_id); 531 account_id);
519 AddSectionEntry(basic_info, 532 AddSectionEntry(basic_info,
520 SigninStatusFieldToLabel( 533 SigninStatusFieldToLabel(
521 static_cast<UntimedSigninStatusField>(GAIA_ID)), 534 static_cast<UntimedSigninStatusField>(GAIA_ID)),
522 account_tracker->GetAccountInfo(account_id).gaia); 535 account_tracker->GetAccountInfo(account_id).gaia);
523 AddSectionEntry(basic_info, 536 AddSectionEntry(basic_info,
524 SigninStatusFieldToLabel( 537 SigninStatusFieldToLabel(
525 static_cast<UntimedSigninStatusField>(USERNAME)), 538 static_cast<UntimedSigninStatusField>(USERNAME)),
526 signin_manager->GetAuthenticatedUsername()); 539 signin_manager->GetAuthenticatedUsername());
540 if (signin_error_controller->HasError()) {
541 AddSectionEntry(basic_info, "Auth Error",
542 signin_error_controller->auth_error().ToString());
543 AddSectionEntry(basic_info, "Auth Error Username",
544 signin_error_controller->error_username());
545 } else {
546 AddSectionEntry(basic_info, "Auth Error", "None");
547 }
527 } 548 }
528 549
529 #if !defined(OS_CHROMEOS) 550 #if !defined(OS_CHROMEOS)
530 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is 551 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is
531 // fixed. 552 // fixed.
532 tracked_objects::ScopedTracker tracking_profile3( 553 tracked_objects::ScopedTracker tracking_profile3(
533 FROM_HERE_WITH_EXPLICIT_FUNCTION( 554 FROM_HERE_WITH_EXPLICIT_FUNCTION(
534 "422460 AboutSigninInternals::SigninStatus::ToValue3")); 555 "422460 AboutSigninInternals::SigninStatus::ToValue3"));
535 556
536 // Time and status information of the possible sign in types. 557 // Time and status information of the possible sign in types.
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
583 "422460 AboutSigninInternals::SigninStatus::ToValue43")); 604 "422460 AboutSigninInternals::SigninStatus::ToValue43"));
584 605
585 for (size_t i = 0; i < tokens.size(); ++i) { 606 for (size_t i = 0; i < tokens.size(); ++i) {
586 base::DictionaryValue* token_info = tokens[i]->ToValue(); 607 base::DictionaryValue* token_info = tokens[i]->ToValue();
587 token_details->Append(token_info); 608 token_details->Append(token_info);
588 } 609 }
589 } 610 }
590 611
591 return signin_status.Pass(); 612 return signin_status.Pass();
592 } 613 }
OLDNEW
« no previous file with comments | « components/signin/core/browser/about_signin_internals.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698