Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(657)

Unified Diff: chrome/browser/views/options/content_page_view.cc

Issue 2905003: Implement support for disabling sync through configuration management. (Closed)
Patch Set: Fix PrefsControllerTest on MAC. Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/views/bookmark_bar_view.cc ('k') | chrome/common/pref_names.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/views/options/content_page_view.cc
diff --git a/chrome/browser/views/options/content_page_view.cc b/chrome/browser/views/options/content_page_view.cc
index 19eabfca0013b69af5f2cebf7fafb61c09a3552e..66393745e67d30538be05d32720c49416c4ab215 100644
--- a/chrome/browser/views/options/content_page_view.cc
+++ b/chrome/browser/views/options/content_page_view.cc
@@ -24,6 +24,7 @@
#include "chrome/browser/sync/sync_ui_util.h"
#include "chrome/browser/sync/sync_setup_wizard.h"
#include "chrome/browser/views/importer_view.h"
+#include "chrome/browser/views/options/managed_prefs_banner_view.h"
#include "chrome/browser/views/options/options_group_view.h"
#include "chrome/browser/views/options/passwords_exceptions_window_view.h"
#include "chrome/common/chrome_switches.h"
@@ -49,6 +50,12 @@ const int kFormAutofillRadioGroup = 202;
// Background color for the status label when it's showing an error.
static const SkColor kSyncLabelErrorBgColor = SkColorSetRGB(0xff, 0x9a, 0x9a);
+// All content related preferences that are potentially managed by policy. We'll
+// display the warning banner if one of these have the managed bit set.
+const wchar_t* kContentPolicyConstrainedPrefs[] = {
+ prefs::kSyncManaged
+};
+
static views::Background* CreateErrorBackground() {
return views::Background::CreateSolidBackground(kSyncLabelErrorBgColor);
}
@@ -135,7 +142,7 @@ void ContentPageView::ButtonPressed(
gfx::Rect(),
new ImporterView(profile(), importer::ALL))->Show();
} else if (sender == sync_start_stop_button_) {
- DCHECK(sync_service_);
+ DCHECK(sync_service_ && !sync_service_->IsManaged());
if (sync_service_->HasSyncSetupCompleted()) {
ConfirmMessageBoxDialog::RunWithCustomConfiguration(
@@ -169,7 +176,7 @@ void ContentPageView::LinkActivated(views::Link* source, int event_flags) {
return;
}
DCHECK_EQ(source, sync_action_link_);
- DCHECK(sync_service_);
+ DCHECK(sync_service_ && !sync_service_->IsManaged());
sync_service_->ShowLoginDialog();
}
@@ -189,6 +196,11 @@ void ContentPageView::InitControlLayout() {
column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 1,
GridLayout::USE_PREF, 0, 0);
+ layout->StartRow(0, single_column_view_set_id);
+ layout->AddView(
+ new ManagedPrefsBannerView(profile()->GetPrefs(),
+ kContentPolicyConstrainedPrefs,
+ arraysize(kContentPolicyConstrainedPrefs)));
if (sync_service_) {
layout->StartRow(0, single_column_view_set_id);
InitSyncGroup();
@@ -469,6 +481,7 @@ void ContentPageView::UpdateSyncControls() {
std::wstring link_label;
std::wstring customize_button_label;
std::wstring button_label;
+ bool managed = sync_service_->IsManaged();
bool sync_setup_completed = sync_service_->HasSyncSetupCompleted();
bool status_has_error = sync_ui_util::GetStatusLabels(sync_service_,
&status_label, &link_label) == sync_ui_util::SYNC_ERROR;
@@ -483,12 +496,15 @@ void ContentPageView::UpdateSyncControls() {
}
sync_status_label_->SetText(status_label);
- sync_start_stop_button_->SetEnabled(!sync_service_->WizardIsVisible());
+ sync_start_stop_button_->SetEnabled(
+ !sync_service_->WizardIsVisible() && !managed);
sync_start_stop_button_->SetLabel(button_label);
sync_customize_button_->SetLabel(customize_button_label);
sync_customize_button_->SetVisible(sync_setup_completed && !status_has_error);
+ sync_customize_button_->SetEnabled(!managed);
sync_action_link_->SetText(link_label);
sync_action_link_->SetVisible(!link_label.empty());
+ sync_action_link_->SetEnabled(!managed);
if (status_has_error) {
sync_status_label_->set_background(CreateErrorBackground());
« no previous file with comments | « chrome/browser/views/bookmark_bar_view.cc ('k') | chrome/common/pref_names.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698