| 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());
|
|
|