Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / components / signin / core / browser / signin_manager_base.cc
index 52172e8..8d6f309 100644 (file)
@@ -41,8 +41,16 @@ void SigninManagerBase::Initialize(PrefService* local_state) {
 
   std::string user =
       client_->GetPrefs()->GetString(prefs::kGoogleServicesUsername);
-  if (!user.empty())
+  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
     SetAuthenticatedUsername(user);
+  }
 }
 
 bool SigninManagerBase::IsInitialized() const { return initialized_; }
@@ -96,6 +104,10 @@ void SigninManagerBase::clear_authenticated_username() {
   authenticated_username_.clear();
 }
 
+bool SigninManagerBase::IsAuthenticated() const {
+  return !GetAuthenticatedAccountId().empty();
+}
+
 bool SigninManagerBase::AuthInProgress() const {
   // SigninManagerBase never kicks off auth processes itself.
   return false;