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

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

Issue 1166373006: Prefer to use the AccountID to the Email from ListAccounts. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comment Created 5 years, 6 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_reconcilor.cc
diff --git a/components/signin/core/browser/account_reconcilor.cc b/components/signin/core/browser/account_reconcilor.cc
index 34738b74420ee52768d64d2452c45acf3b446e27..934458da1d24b04edd00f3d552bf55d521d4df7d 100644
--- a/components/signin/core/browser/account_reconcilor.cc
+++ b/components/signin/core/browser/account_reconcilor.cc
@@ -24,34 +24,23 @@
namespace {
-class EmailEqualToFunc : public std::equal_to<gaia::ListedAccount> {
+class AccountEqualToFunc : public std::equal_to<gaia::ListedAccount> {
public:
bool operator()(const gaia::ListedAccount& p1,
const gaia::ListedAccount& p2) const;
};
-bool EmailEqualToFunc::operator()(
+bool AccountEqualToFunc::operator()(
const gaia::ListedAccount& p1,
const gaia::ListedAccount& p2) const {
- return p1.valid == p2.valid && gaia::AreEmailsSame(p1.email, p2.email);
+ return p1.valid == p2.valid && p1.id == p2.id;
}
-class AreEmailsSameFunc : public std::equal_to<std::string> {
- public:
- bool operator()(const std::string& p1,
- const std::string& p2) const;
-};
-
-bool AreEmailsSameFunc::operator()(
- const std::string& p1,
- const std::string& p2) const {
- return gaia::AreEmailsSame(p1, p2);
-}
-
-gaia::ListedAccount AccountFromEmail(const std::string& email) {
+gaia::ListedAccount AccountForId(const std::string& account_id) {
gaia::ListedAccount account;
- account.email = email;
+ account.id = account_id;
account.gaia_id = std::string();
+ account.email = std::string();
account.valid = true;
return account;
}
@@ -339,19 +328,17 @@ void AccountReconcilor::FinishReconcile() {
DCHECK(add_to_cookie_.empty());
int number_gaia_accounts = gaia_accounts_.size();
bool are_primaries_equal = number_gaia_accounts > 0 &&
- gaia::AreEmailsSame(primary_account_, gaia_accounts_[0].email);
+ primary_account_ == gaia_accounts_[0].id;
// If there are any accounts in the gaia cookie but not in chrome, then
// those accounts need to be removed from the cookie. This means we need
// to blow the cookie away.
int removed_from_cookie = 0;
for (size_t i = 0; i < gaia_accounts_.size(); ++i) {
- const std::string& gaia_account = gaia_accounts_[i].email;
if (gaia_accounts_[i].valid &&
- chrome_accounts_.end() ==
- std::find_if(chrome_accounts_.begin(),
- chrome_accounts_.end(),
- std::bind1st(AreEmailsSameFunc(), gaia_account))) {
+ chrome_accounts_.end() == std::find(chrome_accounts_.begin(),
+ chrome_accounts_.end(),
+ gaia_accounts_[i].id)) {
++removed_from_cookie;
}
}
@@ -387,9 +374,8 @@ void AccountReconcilor::FinishReconcile() {
if (gaia_accounts_.end() !=
std::find_if(gaia_accounts_.begin(),
gaia_accounts_.end(),
- std::bind1st(EmailEqualToFunc(),
- AccountFromEmail(add_to_cookie_copy[i]
- )))) {
+ std::bind1st(AccountEqualToFunc(),
+ AccountForId(add_to_cookie_copy[i])))) {
cookie_manager_service_->SignalComplete(
add_to_cookie_copy[i],
GoogleServiceAuthError::AuthErrorNone());
@@ -398,9 +384,8 @@ void AccountReconcilor::FinishReconcile() {
if (original_gaia_accounts.end() ==
std::find_if(original_gaia_accounts.begin(),
original_gaia_accounts.end(),
- std::bind1st(EmailEqualToFunc(),
- AccountFromEmail(add_to_cookie_copy[i]
- )))) {
+ std::bind1st(AccountEqualToFunc(),
+ AccountForId(add_to_cookie_copy[i])))) {
added_to_cookie++;
}
}

Powered by Google App Engine
This is Rietveld 408576698