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..18cfa3296d6b368c8aaacdd6e367fa41894f434b 100644 |
--- a/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc |
+++ b/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc |
@@ -469,12 +469,24 @@ 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_, |
- signin_metrics::Reason::REASON_UNLOCK); |
+ 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. |
+#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 existed 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) { |
DCHECK(args); |