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

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

Issue 617183003: Make sure GetAuthenticatedAccountId() returns a canonicalized id. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebased Created 6 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/signin_manager_base.cc
diff --git a/components/signin/core/browser/signin_manager_base.cc b/components/signin/core/browser/signin_manager_base.cc
index 8d6f3096cb95b86231557acfa8c1c478d3d8824b..8a47464d34df4a689bf6798214e7a191b79506ac 100644
--- a/components/signin/core/browser/signin_manager_base.cc
+++ b/components/signin/core/browser/signin_manager_base.cc
@@ -41,16 +41,8 @@ void SigninManagerBase::Initialize(PrefService* local_state) {
std::string user =
client_->GetPrefs()->GetString(prefs::kGoogleServicesUsername);
- if (!user.empty()) {
-#if defined(OS_IOS)
- // Prior to M38, Chrome on iOS did not normalize the email before setting
- // it in SigninManager. |AccountReconcilor| expects the authenticated email
- // to be normalized as it used as an account identifier and is compared
- // to the accounts available in the cookies.
- user = gaia::CanonicalizeEmail(gaia::SanitizeEmail(user));
-#endif
+ if (!user.empty())
SetAuthenticatedUsername(user);
- }
}
bool SigninManagerBase::IsInitialized() const { return initialized_; }
@@ -64,7 +56,7 @@ const std::string& SigninManagerBase::GetAuthenticatedUsername() const {
}
const std::string& SigninManagerBase::GetAuthenticatedAccountId() const {
- return GetAuthenticatedUsername();
+ return authenticated_account_id_;
}
void SigninManagerBase::SetAuthenticatedUsername(const std::string& username) {
@@ -91,6 +83,11 @@ void SigninManagerBase::SetAuthenticatedUsername(const std::string& username) {
DCHECK(pref_username.empty() || gaia::AreEmailsSame(username, pref_username))
<< "username: " << username << "; pref_username: " << pref_username;
authenticated_username_ = username;
+
+ // Some tests don't use a real email address for the username. To support
+ // these cases, don't try to canonicalize these strings.
+ authenticated_account_id_ = (username.find('@') == std::string::npos) ?
+ username : gaia::CanonicalizeEmail(username);
client_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, username);
NotifyDiagnosticsObservers(USERNAME, username);
@@ -100,12 +97,13 @@ void SigninManagerBase::SetAuthenticatedUsername(const std::string& username) {
client_->GetPrefs()->SetString(prefs::kGoogleServicesLastUsername, username);
}
-void SigninManagerBase::clear_authenticated_username() {
+void SigninManagerBase::ClearAuthenticatedUsername() {
authenticated_username_.clear();
+ authenticated_account_id_.clear();
}
bool SigninManagerBase::IsAuthenticated() const {
- return !GetAuthenticatedAccountId().empty();
+ return !authenticated_account_id_.empty();
}
bool SigninManagerBase::AuthInProgress() const {

Powered by Google App Engine
This is Rietveld 408576698