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

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

Issue 2231753002: components: Use stl utilities from the base namespace (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: One more call site Created 4 years, 4 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/account_tracker_service.h" 5 #include "components/signin/core/browser/account_tracker_service.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 } 178 }
179 179
180 void AccountTrackerService::NotifyAccountRemoved(const AccountState& state) { 180 void AccountTrackerService::NotifyAccountRemoved(const AccountState& state) {
181 DCHECK(!state.info.gaia.empty()); 181 DCHECK(!state.info.gaia.empty());
182 FOR_EACH_OBSERVER( 182 FOR_EACH_OBSERVER(
183 Observer, observer_list_, OnAccountRemoved(state.info)); 183 Observer, observer_list_, OnAccountRemoved(state.info));
184 } 184 }
185 185
186 void AccountTrackerService::StartTrackingAccount( 186 void AccountTrackerService::StartTrackingAccount(
187 const std::string& account_id) { 187 const std::string& account_id) {
188 if (!ContainsKey(accounts_, account_id)) { 188 if (!base::ContainsKey(accounts_, account_id)) {
189 DVLOG(1) << "StartTracking " << account_id; 189 DVLOG(1) << "StartTracking " << account_id;
190 AccountState state; 190 AccountState state;
191 state.info.account_id = account_id; 191 state.info.account_id = account_id;
192 state.info.is_child_account = false; 192 state.info.is_child_account = false;
193 accounts_.insert(make_pair(account_id, state)); 193 accounts_.insert(make_pair(account_id, state));
194 } 194 }
195 } 195 }
196 196
197 void AccountTrackerService::StopTrackingAccount(const std::string& account_id) { 197 void AccountTrackerService::StopTrackingAccount(const std::string& account_id) {
198 DVLOG(1) << "StopTracking " << account_id; 198 DVLOG(1) << "StopTracking " << account_id;
199 if (ContainsKey(accounts_, account_id)) { 199 if (base::ContainsKey(accounts_, account_id)) {
200 AccountState& state = accounts_[account_id]; 200 AccountState& state = accounts_[account_id];
201 RemoveFromPrefs(state); 201 RemoveFromPrefs(state);
202 if (!state.info.gaia.empty()) 202 if (!state.info.gaia.empty())
203 NotifyAccountRemoved(state); 203 NotifyAccountRemoved(state);
204 204
205 accounts_.erase(account_id); 205 accounts_.erase(account_id);
206 } 206 }
207 } 207 }
208 208
209 void AccountTrackerService::SetAccountStateFromUserInfo( 209 void AccountTrackerService::SetAccountStateFromUserInfo(
210 const std::string& account_id, 210 const std::string& account_id,
211 const base::DictionaryValue* user_info) { 211 const base::DictionaryValue* user_info) {
212 DCHECK(ContainsKey(accounts_, account_id)); 212 DCHECK(base::ContainsKey(accounts_, account_id));
213 AccountState& state = accounts_[account_id]; 213 AccountState& state = accounts_[account_id];
214 214
215 std::string gaia_id; 215 std::string gaia_id;
216 std::string email; 216 std::string email;
217 if (user_info->GetString("id", &gaia_id) && 217 if (user_info->GetString("id", &gaia_id) &&
218 user_info->GetString("email", &email)) { 218 user_info->GetString("email", &email)) {
219 state.info.gaia = gaia_id; 219 state.info.gaia = gaia_id;
220 state.info.email = email; 220 state.info.email = email;
221 221
222 std::string hosted_domain; 222 std::string hosted_domain;
(...skipping 14 matching lines...) Expand all
237 state.info.picture_url = kNoPictureURLFound; 237 state.info.picture_url = kNoPictureURLFound;
238 } 238 }
239 } 239 }
240 if (state.info.IsValid()) 240 if (state.info.IsValid())
241 NotifyAccountUpdated(state); 241 NotifyAccountUpdated(state);
242 SaveToPrefs(state); 242 SaveToPrefs(state);
243 } 243 }
244 244
245 void AccountTrackerService::SetIsChildAccount(const std::string& account_id, 245 void AccountTrackerService::SetIsChildAccount(const std::string& account_id,
246 const bool& is_child_account) { 246 const bool& is_child_account) {
247 DCHECK(ContainsKey(accounts_, account_id)); 247 DCHECK(base::ContainsKey(accounts_, account_id));
248 AccountState& state = accounts_[account_id]; 248 AccountState& state = accounts_[account_id];
249 if (state.info.is_child_account == is_child_account) 249 if (state.info.is_child_account == is_child_account)
250 return; 250 return;
251 state.info.is_child_account = is_child_account; 251 state.info.is_child_account = is_child_account;
252 if (state.info.IsValid()) 252 if (state.info.IsValid())
253 NotifyAccountUpdated(state); 253 NotifyAccountUpdated(state);
254 SaveToPrefs(state); 254 SaveToPrefs(state);
255 } 255 }
256 256
257 bool AccountTrackerService::IsMigratable() const { 257 bool AccountTrackerService::IsMigratable() const {
(...skipping 14 matching lines...) Expand all
272 void AccountTrackerService::MigrateToGaiaId() { 272 void AccountTrackerService::MigrateToGaiaId() {
273 std::set<std::string> to_remove; 273 std::set<std::string> to_remove;
274 std::map<std::string, AccountState> migrated_accounts; 274 std::map<std::string, AccountState> migrated_accounts;
275 for (std::map<std::string, AccountState>::const_iterator it = 275 for (std::map<std::string, AccountState>::const_iterator it =
276 accounts_.begin(); 276 accounts_.begin();
277 it != accounts_.end(); ++it) { 277 it != accounts_.end(); ++it) {
278 const AccountState& state = it->second; 278 const AccountState& state = it->second;
279 std::string account_id = it->first; 279 std::string account_id = it->first;
280 if (account_id != state.info.gaia) { 280 if (account_id != state.info.gaia) {
281 std::string new_account_id = state.info.gaia; 281 std::string new_account_id = state.info.gaia;
282 if (!ContainsKey(accounts_, new_account_id)) { 282 if (!base::ContainsKey(accounts_, new_account_id)) {
283 AccountState new_state = state; 283 AccountState new_state = state;
284 new_state.info.account_id = new_account_id; 284 new_state.info.account_id = new_account_id;
285 migrated_accounts.insert(make_pair(new_account_id, new_state)); 285 migrated_accounts.insert(make_pair(new_account_id, new_state));
286 SaveToPrefs(new_state); 286 SaveToPrefs(new_state);
287 } 287 }
288 to_remove.insert(account_id); 288 to_remove.insert(account_id);
289 } 289 }
290 } 290 }
291 291
292 // Remove any obsolete account. 292 // Remove any obsolete account.
293 for (auto account_id : to_remove) { 293 for (auto account_id : to_remove) {
294 if (ContainsKey(accounts_, account_id)) { 294 if (base::ContainsKey(accounts_, account_id)) {
295 AccountState& state = accounts_[account_id]; 295 AccountState& state = accounts_[account_id];
296 RemoveFromPrefs(state); 296 RemoveFromPrefs(state);
297 accounts_.erase(account_id); 297 accounts_.erase(account_id);
298 } 298 }
299 } 299 }
300 300
301 for (std::map<std::string, AccountState>::const_iterator it = 301 for (std::map<std::string, AccountState>::const_iterator it =
302 migrated_accounts.begin(); 302 migrated_accounts.begin();
303 it != migrated_accounts.end(); ++it) { 303 it != migrated_accounts.end(); ++it) {
304 accounts_.insert(*it); 304 accounts_.insert(*it);
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 return gaia; 462 return gaia;
463 default: 463 default:
464 NOTREACHED(); 464 NOTREACHED();
465 return email; 465 return email;
466 } 466 }
467 } 467 }
468 468
469 std::string AccountTrackerService::SeedAccountInfo(const std::string& gaia, 469 std::string AccountTrackerService::SeedAccountInfo(const std::string& gaia,
470 const std::string& email) { 470 const std::string& email) {
471 const std::string account_id = PickAccountIdForAccount(gaia, email); 471 const std::string account_id = PickAccountIdForAccount(gaia, email);
472 const bool already_exists = ContainsKey(accounts_, account_id); 472 const bool already_exists = base::ContainsKey(accounts_, account_id);
473 StartTrackingAccount(account_id); 473 StartTrackingAccount(account_id);
474 AccountState& state = accounts_[account_id]; 474 AccountState& state = accounts_[account_id];
475 DCHECK(!already_exists || state.info.gaia.empty() || state.info.gaia == gaia); 475 DCHECK(!already_exists || state.info.gaia.empty() || state.info.gaia == gaia);
476 state.info.gaia = gaia; 476 state.info.gaia = gaia;
477 state.info.email = email; 477 state.info.email = email;
478 SaveToPrefs(state); 478 SaveToPrefs(state);
479 479
480 DVLOG(1) << "AccountTrackerService::SeedAccountInfo" 480 DVLOG(1) << "AccountTrackerService::SeedAccountInfo"
481 << " account_id=" << account_id 481 << " account_id=" << account_id
482 << " gaia_id=" << gaia 482 << " gaia_id=" << gaia
483 << " email=" << email; 483 << " email=" << email;
484 484
485 return account_id; 485 return account_id;
486 } 486 }
487 487
488 std::string AccountTrackerService::SeedAccountInfo(AccountInfo info) { 488 std::string AccountTrackerService::SeedAccountInfo(AccountInfo info) {
489 info.account_id = PickAccountIdForAccount(info.gaia, info.email); 489 info.account_id = PickAccountIdForAccount(info.gaia, info.email);
490 490
491 if (!ContainsKey(accounts_, info.account_id)) { 491 if (!base::ContainsKey(accounts_, info.account_id)) {
492 StartTrackingAccount(info.account_id); 492 StartTrackingAccount(info.account_id);
493 } 493 }
494 494
495 AccountState& state = accounts_[info.account_id]; 495 AccountState& state = accounts_[info.account_id];
496 // Update the missing fields in |state.info| with |info|. 496 // Update the missing fields in |state.info| with |info|.
497 if (state.info.UpdateWith(info)) { 497 if (state.info.UpdateWith(info)) {
498 if (state.info.IsValid()) { 498 if (state.info.IsValid()) {
499 // Notify only if the account info is fully updated, as it is equivalent 499 // Notify only if the account info is fully updated, as it is equivalent
500 // to having the account fully fetched. 500 // to having the account fully fetched.
501 NotifyAccountUpdated(state); 501 NotifyAccountUpdated(state);
502 } 502 }
503 SaveToPrefs(state); 503 SaveToPrefs(state);
504 } 504 }
505 return info.account_id; 505 return info.account_id;
506 } 506 }
507 507
508 void AccountTrackerService::RemoveAccount(const std::string& account_id) { 508 void AccountTrackerService::RemoveAccount(const std::string& account_id) {
509 StopTrackingAccount(account_id); 509 StopTrackingAccount(account_id);
510 } 510 }
OLDNEW
« no previous file with comments | « components/signin/core/browser/about_signin_internals.cc ('k') | components/spellcheck/renderer/spellcheck.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698