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 b88e63136a0c2c9c5c8f3eb62858d830116a76e3..87c8c69c79af33d8a724dabcedfa9d205b09aee8 100644 |
--- a/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc |
+++ b/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc |
@@ -11,6 +11,7 @@ |
#include "base/values.h" |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/extensions/api/screenlock_private/screenlock_private_api.h" |
+#include "chrome/browser/prefs/incognito_mode_prefs.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/profiles/profile_avatar_icon_util.h" |
#include "chrome/browser/profiles/profile_info_cache.h" |
@@ -144,6 +145,15 @@ extensions::ScreenlockPrivateEventRouter* GetScreenlockRouter( |
profile); |
} |
+bool IsGuestModeEnabled() { |
+ PrefService* service = g_browser_process->local_state(); |
+ DCHECK(service); |
+ if (IncognitoModePrefs::GetAvailability(service) == |
+ IncognitoModePrefs::DISABLED) |
+ return false; |
Nikita (slow)
2014/08/14 15:53:07
nit: Add {}
|
+ return service->GetBoolean(prefs::kBrowserGuestModeEnabled); |
+} |
+ |
} // namespace |
// ProfileUpdateObserver ------------------------------------------------------ |
@@ -284,7 +294,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()); |
@@ -372,9 +383,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) { |
@@ -628,7 +645,7 @@ void UserManagerScreenHandler::SendUserList() { |
} |
web_ui()->CallJavascriptFunction("login.AccountPickerScreen.loadUsers", |
- users_list, base::FundamentalValue(true)); |
+ users_list, base::FundamentalValue(IsGuestModeEnabled())); |
} |
void UserManagerScreenHandler::ReportAuthenticationResult( |