From 2dcdd6df2b47e140df7207966579617bffb60681 Mon Sep 17 00:00:00 2001 From: "antrim@chromium.org" Date: Mon, 8 Jul 2013 23:37:49 +0000 Subject: [PATCH] Special case in users/sync section for supervised users BUG=253721,253579 Review URL: https://chromiumcodereview.appspot.com/18644003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210453 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/resources/options/browser_options.js | 15 ++++++++++++++- .../resources/options/chromeos/browser_options.css | 7 +++++++ chrome/browser/resources/options/options.html | 3 +++ .../browser/ui/webui/options/browser_options_handler.cc | 6 ++++++ 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 chrome/browser/resources/options/chromeos/browser_options.css diff --git a/chrome/browser/resources/options/browser_options.js b/chrome/browser/resources/options/browser_options.js index bb936cdddcfe..7b8e03f23e8c 100644 --- a/chrome/browser/resources/options/browser_options.js +++ b/chrome/browser/resources/options/browser_options.js @@ -698,13 +698,26 @@ cr.define('options', function() { * @private */ updateSyncState_: function(syncData) { - if (!syncData.signinAllowed) { + if (!syncData.signinAllowed && !syncData.supervisedUser) { $('sync-section').hidden = true; return; } $('sync-section').hidden = false; + var subSection = $('sync-section').firstChild; + while (subSection) { + if (subSection.nodeType == Node.ELEMENT_NODE) + subSection.hidden = syncData.supervisedUser; + subSection = subSection.nextSibling; + } + + if (syncData.supervisedUser) { + $('account-picture-wrapper').hidden = false; + $('sync-general').hidden = false; + $('sync-status').hidden = true; + return; + } // If the user gets signed out or if sync gets disabled while the advanced // sync settings dialog is visible, say, due to a dashboard clear, close // the dialog. diff --git a/chrome/browser/resources/options/chromeos/browser_options.css b/chrome/browser/resources/options/chromeos/browser_options.css new file mode 100644 index 000000000000..e02cae24c7d9 --- /dev/null +++ b/chrome/browser/resources/options/chromeos/browser_options.css @@ -0,0 +1,7 @@ +/* Copyright 2013 The Chromium Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. */ + +#sync-section { + min-height: 64px; +} diff --git a/chrome/browser/resources/options/options.html b/chrome/browser/resources/options/options.html index 68e5770bea8c..d78ee8aad040 100644 --- a/chrome/browser/resources/options/options.html +++ b/chrome/browser/resources/options/options.html @@ -17,6 +17,9 @@ + + + diff --git a/chrome/browser/ui/webui/options/browser_options_handler.cc b/chrome/browser/ui/webui/options/browser_options_handler.cc index bd8667a811cd..a41c5da33b1d 100644 --- a/chrome/browser/ui/webui/options/browser_options_handler.cc +++ b/chrome/browser/ui/webui/options/browser_options_handler.cc @@ -1346,12 +1346,18 @@ void BrowserOptionsHandler::UpdateAccountPicture() { scoped_ptr BrowserOptionsHandler::GetSyncStateDictionary() { scoped_ptr sync_status(new DictionaryValue); Profile* profile = Profile::FromWebUI(web_ui()); + if (ManagedUserService::ProfileIsManaged(profile)) { + sync_status->SetBoolean("supervisedUser", true); + sync_status->SetBoolean("signinAllowed", false); + return sync_status.Pass(); + } if (profile->IsGuestSession()) { // Cannot display signin status when running in guest mode on chromeos // because there is no SigninManager. sync_status->SetBoolean("signinAllowed", false); return sync_status.Pass(); } + sync_status->SetBoolean("supervisedUser", false); bool signout_prohibited = false; #if !defined(OS_CHROMEOS) -- 2.11.4.GIT