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); |
+} |