| 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 d7c10777df616708af0742c68009dcf71e6f56d2..ec21740ccb822aca9100c342ec93c77e62d4bb6c 100644
|
| --- a/components/signin/core/browser/about_signin_internals.cc
|
| +++ b/components/signin/core/browser/about_signin_internals.cc
|
| @@ -6,12 +6,14 @@
|
|
|
| #include <stddef.h>
|
|
|
| +#include <tuple>
|
| #include <utility>
|
|
|
| #include "base/command_line.h"
|
| #include "base/hash.h"
|
| #include "base/i18n/time_formatting.h"
|
| #include "base/logging.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/profiler/scoped_tracker.h"
|
| #include "base/strings/stringprintf.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| @@ -306,8 +308,8 @@ void AboutSigninInternals::OnAccessTokenRequested(
|
| if (token) {
|
| *token = TokenInfo(consumer_id, scopes);
|
| } else {
|
| - token = new TokenInfo(consumer_id, scopes);
|
| - signin_status_.token_info_map[account_id].push_back(token);
|
| + signin_status_.token_info_map[account_id].push_back(
|
| + base::MakeUnique<TokenInfo>(consumer_id, scopes));
|
| }
|
|
|
| NotifyObservers();
|
| @@ -335,9 +337,8 @@ void AboutSigninInternals::OnFetchAccessTokenComplete(
|
| void AboutSigninInternals::OnTokenRemoved(
|
| const std::string& account_id,
|
| const OAuth2TokenService::ScopeSet& scopes) {
|
| - for (size_t i = 0; i < signin_status_.token_info_map[account_id].size();
|
| - ++i) {
|
| - TokenInfo* token = signin_status_.token_info_map[account_id][i];
|
| + for (const std::unique_ptr<TokenInfo>& token :
|
| + signin_status_.token_info_map[account_id]) {
|
| if (token->scopes == scopes)
|
| token->Invalidate();
|
| }
|
| @@ -414,15 +415,11 @@ AboutSigninInternals::TokenInfo::TokenInfo(
|
|
|
| AboutSigninInternals::TokenInfo::~TokenInfo() {}
|
|
|
| -bool AboutSigninInternals::TokenInfo::LessThan(const TokenInfo* a,
|
| - const TokenInfo* b) {
|
| - if (a->request_time == b->request_time) {
|
| - if (a->consumer_id == b->consumer_id) {
|
| - return a->scopes < b->scopes;
|
| - }
|
| - return a->consumer_id < b->consumer_id;
|
| - }
|
| - return a->request_time < b->request_time;
|
| +bool AboutSigninInternals::TokenInfo::LessThan(
|
| + const std::unique_ptr<TokenInfo>& a,
|
| + const std::unique_ptr<TokenInfo>& b) {
|
| + return std::tie(a->request_time, a->consumer_id, a->scopes) <
|
| + std::tie(b->request_time, b->consumer_id, b->scopes);
|
| }
|
|
|
| void AboutSigninInternals::TokenInfo::Invalidate() { removed_ = true; }
|
| @@ -476,24 +473,17 @@ AboutSigninInternals::TokenInfo::ToValue() const {
|
| AboutSigninInternals::SigninStatus::SigninStatus()
|
| : timed_signin_fields(TIMED_FIELDS_COUNT) {}
|
|
|
| -AboutSigninInternals::SigninStatus::~SigninStatus() {
|
| - for (TokenInfoMap::iterator it = token_info_map.begin();
|
| - it != token_info_map.end();
|
| - ++it) {
|
| - base::STLDeleteElements(&it->second);
|
| - }
|
| -}
|
| +AboutSigninInternals::SigninStatus::~SigninStatus() {}
|
|
|
| AboutSigninInternals::TokenInfo* AboutSigninInternals::SigninStatus::FindToken(
|
| const std::string& account_id,
|
| const std::string& consumer_id,
|
| const OAuth2TokenService::ScopeSet& scopes) {
|
| - for (size_t i = 0; i < token_info_map[account_id].size(); ++i) {
|
| - TokenInfo* tmp = token_info_map[account_id][i];
|
| - if (tmp->consumer_id == consumer_id && tmp->scopes == scopes)
|
| - return tmp;
|
| + for (const std::unique_ptr<TokenInfo>& token : token_info_map[account_id]) {
|
| + if (token->consumer_id == consumer_id && token->scopes == scopes)
|
| + return token.get();
|
| }
|
| - return NULL;
|
| + return nullptr;
|
| }
|
|
|
| std::unique_ptr<base::DictionaryValue>
|
| @@ -625,9 +615,7 @@ AboutSigninInternals::SigninStatus::ToValue(
|
| // Token information for all services.
|
| base::ListValue* token_info = new base::ListValue();
|
| signin_status->Set("token_info", token_info);
|
| - for (TokenInfoMap::iterator it = token_info_map.begin();
|
| - it != token_info_map.end();
|
| - ++it) {
|
| + for (auto it = token_info_map.begin(); it != token_info_map.end(); ++it) {
|
| // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460
|
| // is fixed.
|
| tracked_objects::ScopedTracker tracking_profile41(
|
| @@ -643,7 +631,7 @@ AboutSigninInternals::SigninStatus::ToValue(
|
| "422460 AboutSigninInternals::SigninStatus::ToValue42"));
|
|
|
| std::sort(it->second.begin(), it->second.end(), TokenInfo::LessThan);
|
| - const std::vector<TokenInfo*>& tokens = it->second;
|
| + const auto& tokens = it->second;
|
|
|
| // TODO(robliao): Remove ScopedTracker below once https://crbug.com/422460
|
| // is fixed.
|
| @@ -651,8 +639,8 @@ AboutSigninInternals::SigninStatus::ToValue(
|
| FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| "422460 AboutSigninInternals::SigninStatus::ToValue43"));
|
|
|
| - for (size_t i = 0; i < tokens.size(); ++i) {
|
| - token_details->Append(tokens[i]->ToValue());
|
| + for (const std::unique_ptr<TokenInfo>& token : tokens) {
|
| + token_details->Append(token->ToValue());
|
| }
|
| }
|
|
|
|
|