Chromium Code Reviews| Index: components/signin/core/browser/account_tracker_service.cc |
| diff --git a/components/signin/core/browser/account_tracker_service.cc b/components/signin/core/browser/account_tracker_service.cc |
| index 4a6fdc6573ea81b18030b606bf0c7c07e3d0a626..5330ffb37f980e25ea455d13a4e1ae6370b05baf 100644 |
| --- a/components/signin/core/browser/account_tracker_service.cc |
| +++ b/components/signin/core/browser/account_tracker_service.cc |
| @@ -442,3 +442,42 @@ void AccountTrackerService::LoadFromTokenService() { |
| OnRefreshTokenAvailable(*it); |
| } |
| } |
| + |
| +std::string AccountTrackerService::PickAccountIdForAccount( |
| + const std::string& gaia, |
| + const std::string& email) { |
| + return PickAccountIdForAccount(pref_service_, gaia, email); |
| +} |
| + |
| +// static |
| +std::string AccountTrackerService::PickAccountIdForAccount( |
| + PrefService* pref_service, |
| + const std::string& gaia, |
| + const std::string& email) { |
| + DCHECK(!gaia.empty()); |
|
bartfab (slow)
2014/10/14 17:12:38
Nit: #include "base/logging.h"
Roger Tawa OOO till Jul 10th
2014/10/16 02:39:32
Done.
|
| + DCHECK(!email.empty()); |
| + switch(GetMigrationState(pref_service)) { |
| + case MIGRATION_NOT_STARTED: |
| + case MIGRATION_IN_PROGRESS: |
| + return gaia::CanonicalizeEmail(gaia::SanitizeEmail(email)); |
| + case MIGRATION_DONE: |
| + return gaia; |
| + default: |
| + NOTREACHED(); |
| + return email; |
| + } |
| +} |
| + |
| +void AccountTrackerService::SeedAccountInfo(const std::string& gaia, |
| + const std::string& email) { |
| + DCHECK(!gaia.empty()); |
| + DCHECK(!email.empty()); |
| + const std::string account_id = PickAccountIdForAccount(gaia, email); |
| + bool already_exists = ContainsKey(accounts_, account_id); |
|
bartfab (slow)
2014/10/14 17:12:38
Nit: const.
Roger Tawa OOO till Jul 10th
2014/10/16 02:39:32
Done.
|
| + StartTrackingAccount(account_id); |
| + AccountState& state = accounts_[account_id]; |
| + DCHECK(!already_exists || state.info.gaia == gaia); |
| + state.info.gaia = gaia; |
| + state.info.email = email; |
| + SaveToPrefs(state); |
| +} |