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 485016214c0ad4f49680b449844dc7de05dd1cd4..c8104f767934026b1f38cad2b6f9dca25e9876b5 100644 |
--- a/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc |
+++ b/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc |
@@ -144,6 +144,12 @@ extensions::ScreenlockPrivateEventRouter* GetScreenlockRouter( |
profile); |
} |
+bool IsGuestModeEnabled() { |
+ PrefService* service = g_browser_process->local_state(); |
+ DCHECK(service); |
+ return service->GetBoolean(prefs::kBrowserGuestModeEnabled); |
+} |
+ |
} // namespace |
// ProfileUpdateObserver ------------------------------------------------------ |
@@ -280,7 +286,8 @@ void UserManagerScreenHandler::Unlock(const std::string& user_email) { |
void UserManagerScreenHandler::HandleInitialize(const base::ListValue* args) { |
SendUserList(); |
- web_ui()->CallJavascriptFunction("cr.ui.Oobe.showUserManagerScreen"); |
+ web_ui()->CallJavascriptFunction("cr.ui.Oobe.showUserManagerScreen", |
+ base::FundamentalValue(IsGuestModeEnabled())); |
desktop_type_ = chrome::GetHostDesktopTypeForNativeView( |
web_ui()->GetWebContents()->GetNativeView()); |
@@ -368,9 +375,15 @@ void UserManagerScreenHandler::HandleRemoveUser(const base::ListValue* args) { |
} |
void UserManagerScreenHandler::HandleLaunchGuest(const base::ListValue* args) { |
- profiles::SwitchToGuestProfile(desktop_type_, |
- base::Bind(&OnSwitchToProfileComplete)); |
- ProfileMetrics::LogProfileSwitchUser(ProfileMetrics::SWITCH_PROFILE_GUEST); |
+ if (IsGuestModeEnabled()) { |
+ profiles::SwitchToGuestProfile(desktop_type_, |
+ base::Bind(&OnSwitchToProfileComplete)); |
+ ProfileMetrics::LogProfileSwitchUser(ProfileMetrics::SWITCH_PROFILE_GUEST); |
+ } else { |
+ // The UI should have prevented the user from allowing the selection of |
+ // guest mode. |
+ NOTREACHED(); |
+ } |
} |
void UserManagerScreenHandler::HandleLaunchUser(const base::ListValue* args) { |
@@ -624,7 +637,7 @@ void UserManagerScreenHandler::SendUserList() { |
} |
web_ui()->CallJavascriptFunction("login.AccountPickerScreen.loadUsers", |
- users_list, base::FundamentalValue(true)); |
+ users_list, base::FundamentalValue(IsGuestModeEnabled())); |
} |
void UserManagerScreenHandler::ReportAuthenticationResult( |