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

Unified Diff: components/signin/core/browser/account_tracker_service.cc

Issue 1380103004: Delay fetching account info until OnRefreshTokensLoaded(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 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 side-by-side diff with in-line comments
Download patch
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 b57c58500e897372df481d6608843af8b5d09cb5..3176fc344b995eca7797b350b0e3a49e65ef32c4 100644
--- a/components/signin/core/browser/account_tracker_service.cc
+++ b/components/signin/core/browser/account_tracker_service.cc
@@ -141,6 +141,24 @@ AccountInfo AccountTrackerService::FindAccountInfoByEmail(
return AccountInfo();
}
+bool AccountTrackerService::IsTrackingAccount(
+ const std::string& account_id) const {
+ return ContainsKey(accounts_, account_id);
+}
+
+bool AccountTrackerService::HasIdNameMappingForAccount(
+ const std::string& account_id) const {
+ return !GetAccountInfo(account_id).email.empty();
Roger Tawa OOO till Jul 10th 2015/10/13 12:40:56 This should check if both gaiaid and email are not
knn 2015/10/13 13:15:42 Done.
+}
+
+bool AccountTrackerService::HasIdNameMappingForAllAccounts() const {
+ for (const auto& account : accounts_) {
+ if (account.second.info.email.empty())
Roger Tawa OOO till Jul 10th 2015/10/13 12:40:56 Same as previous comment.
knn 2015/10/13 13:15:41 Done.
+ return false;
+ }
+ return true;
+}
Roger Tawa OOO till Jul 10th 2015/10/13 12:40:56 Seems like this function is the same as IsMigratab
knn 2015/10/13 13:15:42 My bad. Do you think it makes sense to call this f
+
AccountTrackerService::AccountIdMigrationState
AccountTrackerService::GetMigrationState() const {
return GetMigrationState(signin_client_->GetPrefs());
@@ -182,7 +200,7 @@ void AccountTrackerService::NotifyAccountRemoved(const AccountState& state) {
void AccountTrackerService::StartTrackingAccount(
const std::string& account_id) {
- if (!ContainsKey(accounts_, account_id)) {
+ if (!IsTrackingAccount(account_id)) {
DVLOG(1) << "StartTracking " << account_id;
AccountState state;
state.info.account_id = account_id;
@@ -193,7 +211,7 @@ void AccountTrackerService::StartTrackingAccount(
void AccountTrackerService::StopTrackingAccount(const std::string& account_id) {
DVLOG(1) << "StopTracking " << account_id;
- if (ContainsKey(accounts_, account_id)) {
+ if (IsTrackingAccount(account_id)) {
AccountState& state = accounts_[account_id];
RemoveFromPrefs(state);
if (!state.info.gaia.empty())
@@ -206,7 +224,7 @@ void AccountTrackerService::StopTrackingAccount(const std::string& account_id) {
void AccountTrackerService::SetAccountStateFromUserInfo(
const std::string& account_id,
const base::DictionaryValue* user_info) {
- DCHECK(ContainsKey(accounts_, account_id));
+ DCHECK(IsTrackingAccount(account_id));
AccountState& state = accounts_[account_id];
std::string gaia_id;
@@ -241,7 +259,7 @@ void AccountTrackerService::SetAccountStateFromUserInfo(
void AccountTrackerService::SetIsChildAccount(const std::string& account_id,
const bool& is_child_account) {
- DCHECK(ContainsKey(accounts_, account_id));
+ DCHECK(IsTrackingAccount(account_id));
AccountState& state = accounts_[account_id];
if (state.info.is_child_account == is_child_account)
return;
@@ -276,7 +294,7 @@ void AccountTrackerService::MigrateToGaiaId() {
std::string account_id = it->first;
if (account_id != state.info.gaia) {
std::string new_account_id = state.info.gaia;
- if (!ContainsKey(accounts_, new_account_id)) {
+ if (!IsTrackingAccount(new_account_id)) {
AccountState new_state = state;
new_state.info.account_id = new_account_id;
migrated_accounts.insert(make_pair(new_account_id, new_state));
@@ -288,7 +306,7 @@ void AccountTrackerService::MigrateToGaiaId() {
// Remove any obsolete account.
for (auto account_id : to_remove) {
- if (ContainsKey(accounts_, account_id)) {
+ if (IsTrackingAccount(account_id)) {
AccountState& state = accounts_[account_id];
RemoveFromPrefs(state);
accounts_.erase(account_id);
@@ -466,7 +484,7 @@ std::string AccountTrackerService::PickAccountIdForAccount(
std::string AccountTrackerService::SeedAccountInfo(const std::string& gaia,
const std::string& email) {
const std::string account_id = PickAccountIdForAccount(gaia, email);
- const bool already_exists = ContainsKey(accounts_, account_id);
+ const bool already_exists = IsTrackingAccount(account_id);
StartTrackingAccount(account_id);
AccountState& state = accounts_[account_id];
DCHECK(!already_exists || state.info.gaia.empty() || state.info.gaia == gaia);
@@ -489,7 +507,7 @@ void AccountTrackerService::SeedAccountInfo(AccountInfo info) {
}
if(info.IsValid()) {
- if(!ContainsKey(accounts_, info.account_id)) {
+ if (!IsTrackingAccount(info.account_id)) {
SeedAccountInfo(info.gaia, info.email);
}

Powered by Google App Engine
This is Rietveld 408576698