Index: chrome/browser/ui/webui/signin/user_manager_screen_handler.cc |
diff --git a/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc b/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc |
index a56bbe86f0f4b62d786d9c086bb32c4b41c3cbb3..c34c0545d581c08c2d18acfe9f120e07313cd216 100644 |
--- a/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc |
+++ b/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc |
@@ -469,11 +469,25 @@ void UserManagerScreenHandler::HandleAuthenticatedLaunchUser( |
} |
} |
- // In order to support the upgrade case where we have a local hash but no |
- // password token, the user perform a full online reauth. |
- UserManager::ShowReauthDialog(web_ui()->GetWebContents()->GetBrowserContext(), |
- email_address_, |
+ content::BrowserContext* browser_context = |
+ web_ui()->GetWebContents()->GetBrowserContext(); |
+ |
+// In order to support the upgrade case where we have a local hash but no |
+// password token, the user perform a full online reauth. |
+// TODO(zmin): Remove the condition for MACOSX once user_manager_mac.cc is |
+// updated. |
+#if !defined(OS_MACOSX) |
+ if (!email_address_.empty()) { |
+ UserManager::ShowReauthDialog(browser_context, email_address_, |
+ signin_metrics::Reason::REASON_UNLOCK); |
+ } else { |
+ // Fresh sign in via user manager without existing email address. |
+ UserManager::ShowSigninDialog(browser_context, profile_path); |
+ } |
+#else |
+ UserManager::ShowReauthDialog(browser_context, email_address_, |
signin_metrics::Reason::REASON_UNLOCK); |
+#endif |
} |
void UserManagerScreenHandler::HandleRemoveUser(const base::ListValue* args) { |