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 4244531ea65f7589fc516e3401560e76928109b1..f6bc62b3c618a689a230d584a1674eb126180f8f 100644 |
--- a/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc |
+++ b/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc |
@@ -5,6 +5,7 @@ |
#include "chrome/browser/ui/webui/signin/user_manager_screen_handler.h" |
#include "base/bind.h" |
+#include "base/prefs/pref_service.h" |
#include "base/strings/utf_string_conversions.h" |
#include "base/value_conversions.h" |
#include "base/values.h" |
@@ -21,6 +22,7 @@ |
#include "chrome/browser/ui/browser_dialogs.h" |
#include "chrome/browser/ui/browser_finder.h" |
#include "chrome/browser/ui/singleton_tabs.h" |
+#include "chrome/common/pref_names.h" |
#include "chrome/common/url_constants.h" |
#include "content/public/browser/web_contents.h" |
#include "content/public/browser/web_ui.h" |
@@ -143,6 +145,12 @@ extensions::ScreenlockPrivateEventRouter* GetScreenlockRouter( |
profile); |
} |
+bool IsGuestModeEnabled() { |
+ PrefService* service = g_browser_process->local_state(); |
+ DCHECK(service); |
+ return service->GetBoolean(prefs::kBrowserGuestModeEnabled); |
+} |
+ |
} // namespace |
// ProfileUpdateObserver ------------------------------------------------------ |
@@ -283,7 +291,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()); |
@@ -370,9 +379,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 +639,7 @@ void UserManagerScreenHandler::SendUserList() { |
} |
web_ui()->CallJavascriptFunction("login.AccountPickerScreen.loadUsers", |
- users_list, base::FundamentalValue(true)); |
+ users_list, base::FundamentalValue(IsGuestModeEnabled())); |
} |
void UserManagerScreenHandler::ReportAuthenticationResult( |