Chromium Code Reviews| 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( |