diff options
4 files changed, 27 insertions, 19 deletions
diff --git a/chrome/browser/resources/options/browser_options.html b/chrome/browser/resources/options/browser_options.html index a201f9c..2dfca69 100644 --- a/chrome/browser/resources/options/browser_options.html +++ b/chrome/browser/resources/options/browser_options.html @@ -143,7 +143,7 @@ </div> </div> </section> - <section id="sync-users-section" guest-visibility="hidden"> + <section id="sync-users-section" guest-visibility="hidden" hidden> <h3 i18n-content="sectionTitleUsers"></h3> <if expr="pp_ifdef('chromeos')"> <include src="sync_section.html"> diff --git a/chrome/browser/resources/options/browser_options.js b/chrome/browser/resources/options/browser_options.js index 5b1fc9d..8470aab 100644 --- a/chrome/browser/resources/options/browser_options.js +++ b/chrome/browser/resources/options/browser_options.js @@ -190,6 +190,7 @@ cr.define('options', function() { // Users section. if (loadTimeData.valueExists('profilesInfo')) { + $('sync-users-section').hidden = false; $('profiles-section').hidden = false; var profilesList = $('profiles-list'); @@ -867,7 +868,12 @@ cr.define('options', function() { * users. */ updateManagesSupervisedUsers_: function(value) { - $('profiles-supervised-dashboard-tip').hidden = !value; + if (value) { + $('sync-users-section').hidden = false; + $('profiles-supervised-dashboard-tip').hidden = false; + } else { + $('profiles-supervised-dashboard-tip').hidden = true; + } }, /** diff --git a/chrome/browser/ui/webui/options/browser_options_handler.cc b/chrome/browser/ui/webui/options/browser_options_handler.cc index fc0eaa0..ccb9ac5 100644 --- a/chrome/browser/ui/webui/options/browser_options_handler.cc +++ b/chrome/browser/ui/webui/options/browser_options_handler.cc @@ -136,21 +136,6 @@ using content::Referrer; namespace options { -namespace { - -bool ShouldShowMultiProfilesUserList(chrome::HostDesktopType desktop_type) { -#if defined(OS_CHROMEOS) - // On Chrome OS we use different UI for multi-profiles. - return false; -#else - if (desktop_type != chrome::HOST_DESKTOP_TYPE_NATIVE) - return false; - return profiles::IsMultipleProfilesEnabled(); -#endif -} - -} // namespace - BrowserOptionsHandler::BrowserOptionsHandler() : page_initialized_(false), template_url_service_(NULL), @@ -563,7 +548,7 @@ void BrowserOptionsHandler::GetLocalizedValues(base::DictionaryValue* values) { g_browser_process->profile_manager()->GetNumberOfProfiles() > 1); #endif - if (ShouldShowMultiProfilesUserList(helper::GetDesktopType(web_ui()))) + if (ShouldShowMultiProfilesUserList()) values->Set("profilesInfo", GetProfilesInfoList().release()); values->SetBoolean("profileIsManaged", @@ -941,6 +926,20 @@ bool BrowserOptionsHandler::ShouldShowSetDefaultBrowser() { #endif } +bool BrowserOptionsHandler::ShouldShowMultiProfilesUserList() { +#if defined(OS_CHROMEOS) + // On Chrome OS we use different UI for multi-profiles. + return false; +#else + if (helper::GetDesktopType(web_ui()) != chrome::HOST_DESKTOP_TYPE_NATIVE) + return false; + Profile* profile = Profile::FromWebUI(web_ui()); + if (profile->IsGuestSession()) + return false; + return profiles::IsMultipleProfilesEnabled(); +#endif +} + void BrowserOptionsHandler::UpdateDefaultBrowserState() { #if defined(OS_MACOSX) ShellIntegration::DefaultWebClientState state = @@ -1189,7 +1188,7 @@ scoped_ptr<base::ListValue> BrowserOptionsHandler::GetProfilesInfoList() { } void BrowserOptionsHandler::SendProfilesInfo() { - if (!ShouldShowMultiProfilesUserList(helper::GetDesktopType(web_ui()))) + if (!ShouldShowMultiProfilesUserList()) return; web_ui()->CallJavascriptFunction("BrowserOptions.setProfilesInfo", *GetProfilesInfoList()); diff --git a/chrome/browser/ui/webui/options/browser_options_handler.h b/chrome/browser/ui/webui/options/browser_options_handler.h index d1b7660..ca9cd37 100644 --- a/chrome/browser/ui/webui/options/browser_options_handler.h +++ b/chrome/browser/ui/webui/options/browser_options_handler.h @@ -137,6 +137,9 @@ class BrowserOptionsHandler // Returns if the "make Chrome default browser" button should be shown. bool ShouldShowSetDefaultBrowser(); + // Returns if profiles list should be shown on settings page. + bool ShouldShowMultiProfilesUserList(); + // Gets the current default browser state, and asynchronously reports it to // the WebUI page. void UpdateDefaultBrowserState(); |