Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 234 const std::string product_version = client_->GetProductVersion(); | 234 const std::string product_version = client_->GetProductVersion(); |
| 235 | 235 |
| 236 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is | 236 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is |
| 237 // fixed. | 237 // fixed. |
| 238 tracked_objects::ScopedTracker tracking_profile05( | 238 tracked_objects::ScopedTracker tracking_profile05( |
| 239 FROM_HERE_WITH_EXPLICIT_FUNCTION( | 239 FROM_HERE_WITH_EXPLICIT_FUNCTION( |
| 240 "422460 AboutSigninInternals::NotifyObservers 0.5")); | 240 "422460 AboutSigninInternals::NotifyObservers 0.5")); |
| 241 | 241 |
| 242 scoped_ptr<base::DictionaryValue> signin_status_value = | 242 scoped_ptr<base::DictionaryValue> signin_status_value = |
| 243 signin_status_.ToValue(account_tracker_, signin_manager_, | 243 signin_status_.ToValue(account_tracker_, signin_manager_, |
| 244 token_service_, | |
| 244 product_version); | 245 product_version); |
| 245 | 246 |
| 246 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is | 247 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is |
| 247 // fixed. | 248 // fixed. |
| 248 tracked_objects::ScopedTracker tracking_profile1( | 249 tracked_objects::ScopedTracker tracking_profile1( |
| 249 FROM_HERE_WITH_EXPLICIT_FUNCTION( | 250 FROM_HERE_WITH_EXPLICIT_FUNCTION( |
| 250 "422460 AboutSigninInternals::NotifyObservers1")); | 251 "422460 AboutSigninInternals::NotifyObservers1")); |
| 251 | 252 |
| 252 FOR_EACH_OBSERVER(AboutSigninInternals::Observer, | 253 FOR_EACH_OBSERVER(AboutSigninInternals::Observer, |
| 253 signin_observers_, | 254 signin_observers_, |
| 254 OnSigninStateChanged(signin_status_value.get())); | 255 OnSigninStateChanged(signin_status_value.get())); |
| 255 } | 256 } |
| 256 | 257 |
| 257 scoped_ptr<base::DictionaryValue> AboutSigninInternals::GetSigninStatus() { | 258 scoped_ptr<base::DictionaryValue> AboutSigninInternals::GetSigninStatus() { |
| 258 return signin_status_.ToValue(account_tracker_, signin_manager_, | 259 return signin_status_.ToValue(account_tracker_, signin_manager_, |
| 260 token_service_, | |
| 259 client_->GetProductVersion()).Pass(); | 261 client_->GetProductVersion()).Pass(); |
| 260 } | 262 } |
| 261 | 263 |
| 262 void AboutSigninInternals::OnAccessTokenRequested( | 264 void AboutSigninInternals::OnAccessTokenRequested( |
| 263 const std::string& account_id, | 265 const std::string& account_id, |
| 264 const std::string& consumer_id, | 266 const std::string& consumer_id, |
| 265 const OAuth2TokenService::ScopeSet& scopes) { | 267 const OAuth2TokenService::ScopeSet& scopes) { |
| 266 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is | 268 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is |
| 267 // fixed. | 269 // fixed. |
| 268 tracked_objects::ScopedTracker tracking_profile( | 270 tracked_objects::ScopedTracker tracking_profile( |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 400 : consumer_id(consumer_id), | 402 : consumer_id(consumer_id), |
| 401 scopes(scopes), | 403 scopes(scopes), |
| 402 request_time(base::Time::Now()), | 404 request_time(base::Time::Now()), |
| 403 error(GoogleServiceAuthError::AuthErrorNone()), | 405 error(GoogleServiceAuthError::AuthErrorNone()), |
| 404 removed_(false) {} | 406 removed_(false) {} |
| 405 | 407 |
| 406 AboutSigninInternals::TokenInfo::~TokenInfo() {} | 408 AboutSigninInternals::TokenInfo::~TokenInfo() {} |
| 407 | 409 |
| 408 bool AboutSigninInternals::TokenInfo::LessThan(const TokenInfo* a, | 410 bool AboutSigninInternals::TokenInfo::LessThan(const TokenInfo* a, |
| 409 const TokenInfo* b) { | 411 const TokenInfo* b) { |
| 410 return a->consumer_id < b->consumer_id || | 412 if (a->request_time == b->request_time) { |
| 411 (a->consumer_id == b->consumer_id && a->scopes < b->scopes); | 413 if (a->consumer_id == b->consumer_id) { |
| 414 return a->scopes < b->scopes; | |
| 415 } | |
| 416 return a->consumer_id < b->consumer_id; | |
| 417 } | |
| 418 return a->request_time < b->request_time; | |
| 412 } | 419 } |
| 413 | 420 |
| 414 void AboutSigninInternals::TokenInfo::Invalidate() { removed_ = true; } | 421 void AboutSigninInternals::TokenInfo::Invalidate() { removed_ = true; } |
| 415 | 422 |
| 416 base::DictionaryValue* AboutSigninInternals::TokenInfo::ToValue() const { | 423 base::DictionaryValue* AboutSigninInternals::TokenInfo::ToValue() const { |
| 417 scoped_ptr<base::DictionaryValue> token_info(new base::DictionaryValue()); | 424 scoped_ptr<base::DictionaryValue> token_info(new base::DictionaryValue()); |
| 418 token_info->SetString("service", consumer_id); | 425 token_info->SetString("service", consumer_id); |
| 419 | 426 |
| 420 std::string scopes_str; | 427 std::string scopes_str; |
| 421 for (OAuth2TokenService::ScopeSet::const_iterator it = scopes.begin(); | 428 for (OAuth2TokenService::ScopeSet::const_iterator it = scopes.begin(); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 472 TokenInfo* tmp = token_info_map[account_id][i]; | 479 TokenInfo* tmp = token_info_map[account_id][i]; |
| 473 if (tmp->consumer_id == consumer_id && tmp->scopes == scopes) | 480 if (tmp->consumer_id == consumer_id && tmp->scopes == scopes) |
| 474 return tmp; | 481 return tmp; |
| 475 } | 482 } |
| 476 return NULL; | 483 return NULL; |
| 477 } | 484 } |
| 478 | 485 |
| 479 scoped_ptr<base::DictionaryValue> AboutSigninInternals::SigninStatus::ToValue( | 486 scoped_ptr<base::DictionaryValue> AboutSigninInternals::SigninStatus::ToValue( |
| 480 AccountTrackerService* account_tracker, | 487 AccountTrackerService* account_tracker, |
| 481 SigninManagerBase* signin_manager, | 488 SigninManagerBase* signin_manager, |
| 489 ProfileOAuth2TokenService* token_service, | |
| 482 const std::string& product_version) { | 490 const std::string& product_version) { |
| 483 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is | 491 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460 is |
| 484 // fixed. | 492 // fixed. |
| 485 tracked_objects::ScopedTracker tracking_profile1( | 493 tracked_objects::ScopedTracker tracking_profile1( |
| 486 FROM_HERE_WITH_EXPLICIT_FUNCTION( | 494 FROM_HERE_WITH_EXPLICIT_FUNCTION( |
| 487 "422460 AboutSigninInternals::SigninStatus::ToValue1")); | 495 "422460 AboutSigninInternals::SigninStatus::ToValue1")); |
| 488 | 496 |
| 489 scoped_ptr<base::DictionaryValue> signin_status(new base::DictionaryValue()); | 497 scoped_ptr<base::DictionaryValue> signin_status(new base::DictionaryValue()); |
| 490 base::ListValue* signin_info = new base::ListValue(); | 498 base::ListValue* signin_info = new base::ListValue(); |
| 491 signin_status->Set("signin_info", signin_info); | 499 signin_status->Set("signin_info", signin_info); |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 581 tracked_objects::ScopedTracker tracking_profile43( | 589 tracked_objects::ScopedTracker tracking_profile43( |
| 582 FROM_HERE_WITH_EXPLICIT_FUNCTION( | 590 FROM_HERE_WITH_EXPLICIT_FUNCTION( |
| 583 "422460 AboutSigninInternals::SigninStatus::ToValue43")); | 591 "422460 AboutSigninInternals::SigninStatus::ToValue43")); |
| 584 | 592 |
| 585 for (size_t i = 0; i < tokens.size(); ++i) { | 593 for (size_t i = 0; i < tokens.size(); ++i) { |
| 586 base::DictionaryValue* token_info = tokens[i]->ToValue(); | 594 base::DictionaryValue* token_info = tokens[i]->ToValue(); |
| 587 token_details->Append(token_info); | 595 token_details->Append(token_info); |
| 588 } | 596 } |
| 589 } | 597 } |
| 590 | 598 |
| 599 base::ListValue* account_info = new base::ListValue(); | |
| 600 signin_status->Set("account_info", account_info); | |
|
James Hawkins
2015/04/01 16:19:44
nit: accountInfo, since this is ultimately a JS va
anthonyvd
2015/04/07 15:16:06
Done.
| |
| 601 const std::vector<std::string>& accounts_in_token_service = | |
| 602 token_service->GetAccounts(); | |
| 603 | |
| 604 if(accounts_in_token_service.size() == 0) { | |
| 605 base::DictionaryValue* no_token_entry = new base::DictionaryValue(); | |
| 606 no_token_entry->SetString("account_id", "No token in Token Service."); | |
|
James Hawkins
2015/04/01 16:19:44
nit: accountId, since this is ultimately a JS vari
anthonyvd
2015/04/07 15:16:06
Done.
| |
| 607 account_info->Append(no_token_entry); | |
| 608 } | |
| 609 | |
| 610 for(const std::string& account_id : accounts_in_token_service) { | |
| 611 base::DictionaryValue* entry = new base::DictionaryValue(); | |
| 612 entry->SetString("account_id", account_id); | |
|
James Hawkins
2015/04/01 16:19:44
nit: accountId, since this is ultimately a JS vari
anthonyvd
2015/04/07 15:16:06
Done.
| |
| 613 account_info->Append(entry); | |
| 614 } | |
| 615 | |
| 591 return signin_status.Pass(); | 616 return signin_status.Pass(); |
| 592 } | 617 } |
| OLD | NEW |