summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authormnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-15 09:13:58 +0000
committermnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-15 09:13:58 +0000
commit7bef619f7f1cde7d07e5642afd5a780c15e3e6d9 (patch)
tree8b68565aacb1fea1ea1ceea7e1525dab503d8f1a /chrome
parentec5c5f2cc84954fc2e745887bea3f006c5f8e7d7 (diff)
downloadchromium_src-7bef619f7f1cde7d07e5642afd5a780c15e3e6d9.zip
chromium_src-7bef619f7f1cde7d07e5642afd5a780c15e3e6d9.tar.gz
chromium_src-7bef619f7f1cde7d07e5642afd5a780c15e3e6d9.tar.bz2
Show the managed prefs warning banner for some advanced options.
BUG=48470 TEST=Configure policy, check advanced page of preferences dialog. Review URL: http://codereview.chromium.org/2908007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52467 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/cocoa/preferences_window_controller.mm56
-rw-r--r--chrome/browser/gtk/options/advanced_page_gtk.cc7
-rw-r--r--chrome/browser/gtk/options/advanced_page_gtk.h4
-rw-r--r--chrome/browser/gtk/options/content_page_gtk.cc8
-rw-r--r--chrome/browser/gtk/options/general_page_gtk.cc11
-rw-r--r--chrome/browser/gtk/options/managed_prefs_banner_gtk.cc5
-rw-r--r--chrome/browser/gtk/options/managed_prefs_banner_gtk.h4
-rw-r--r--chrome/browser/managed_prefs_banner_base.cc47
-rw-r--r--chrome/browser/managed_prefs_banner_base.h13
-rw-r--r--chrome/browser/managed_prefs_banner_base_unittest.cc27
-rw-r--r--chrome/browser/views/options/advanced_page_view.cc6
-rw-r--r--chrome/browser/views/options/content_page_view.cc11
-rw-r--r--chrome/browser/views/options/general_page_view.cc11
-rw-r--r--chrome/browser/views/options/managed_prefs_banner_view.cc5
-rw-r--r--chrome/browser/views/options/managed_prefs_banner_view.h9
15 files changed, 99 insertions, 125 deletions
diff --git a/chrome/browser/cocoa/preferences_window_controller.mm b/chrome/browser/cocoa/preferences_window_controller.mm
index 5a075cf..a9c2cf3 100644
--- a/chrome/browser/cocoa/preferences_window_controller.mm
+++ b/chrome/browser/cocoa/preferences_window_controller.mm
@@ -70,17 +70,6 @@ static const double kBannerGradientColorBottom[3] =
{250.0 / 255.0, 230.0 / 255.0, 145.0 / 255.0};
static const double kBannerStrokeColor = 135.0 / 255.0;
-// Preferences relevant to the general page potentially constrained by policy.
-static const wchar_t* kGeneralPolicyConstrainedPrefs[] = {
- prefs::kHomePage,
- prefs::kHomePageIsNewTabPage
-};
-
-// Content page preferences that are potentially constrained by policy.
-static const wchar_t* kContentPolicyConstrainedPrefs[] = {
- prefs::kSyncManaged
-};
-
std::string GetNewTabUIURLString() {
return URLFixerUpper::FixupURL(chrome::kChromeUINewTabURL,
std::string()).possibly_invalid_spec();
@@ -402,35 +391,17 @@ class ManagedPrefsBannerState : public ManagedPrefsBannerBase {
public:
virtual ~ManagedPrefsBannerState() { }
+ explicit ManagedPrefsBannerState(PreferencesWindowController* controller,
+ OptionsPage page,
+ PrefService* prefs)
+ : ManagedPrefsBannerBase(prefs, page),
+ controller_(controller),
+ page_(page) { }
+
BOOL IsVisible() {
return DetermineVisibility() ? YES : NO;
}
- // Create a banner state tracker object suitable for use with a given |page|.
- static ManagedPrefsBannerState* CreateForPage(
- PreferencesWindowController* controller,
- OptionsPage page,
- PrefService* prefs) {
- switch (page) {
- case OPTIONS_PAGE_GENERAL:
- return new ManagedPrefsBannerState(controller, page, prefs,
- kGeneralPolicyConstrainedPrefs,
- arraysize(kGeneralPolicyConstrainedPrefs));
- case OPTIONS_PAGE_CONTENT:
- return new ManagedPrefsBannerState(controller, page, prefs,
- kContentPolicyConstrainedPrefs,
- arraysize(kContentPolicyConstrainedPrefs));
- break;
- case OPTIONS_PAGE_ADVANCED:
- break;
- case OPTIONS_PAGE_DEFAULT:
- case OPTIONS_PAGE_COUNT:
- LOG(DFATAL) << "Invalid page value " << page;
- break;
- }
- return new ManagedPrefsBannerState(controller, page, prefs, NULL, 0);
- }
-
protected:
// Overridden from ManagedPrefsBannerBase.
virtual void OnUpdateVisibility() {
@@ -438,15 +409,6 @@ class ManagedPrefsBannerState : public ManagedPrefsBannerBase {
}
private:
- explicit ManagedPrefsBannerState(PreferencesWindowController* controller,
- OptionsPage page,
- PrefService* prefs,
- const wchar_t** relevant_prefs,
- size_t count)
- : ManagedPrefsBannerBase(prefs, relevant_prefs, count),
- controller_(controller),
- page_(page) { }
-
PreferencesWindowController* controller_; // weak, owns us
OptionsPage page_; // current options page
};
@@ -1939,8 +1901,8 @@ const int kDisabledIndex = 1;
- (void)initBannerStateForPage:(OptionsPage)page {
page = [self normalizePage:page];
bannerState_.reset(
- PreferencesWindowControllerInternal::ManagedPrefsBannerState::
- CreateForPage(self, page, prefs_));
+ new PreferencesWindowControllerInternal::ManagedPrefsBannerState(
+ self, page, prefs_));
}
- (void)switchToPage:(OptionsPage)page animate:(BOOL)animate {
diff --git a/chrome/browser/gtk/options/advanced_page_gtk.cc b/chrome/browser/gtk/options/advanced_page_gtk.cc
index 168cfbf..71c8052 100644
--- a/chrome/browser/gtk/options/advanced_page_gtk.cc
+++ b/chrome/browser/gtk/options/advanced_page_gtk.cc
@@ -8,12 +8,14 @@
#include "app/l10n_util.h"
#include "chrome/browser/gtk/gtk_util.h"
#include "chrome/browser/options_util.h"
+#include "chrome/browser/profile.h"
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
AdvancedPageGtk::AdvancedPageGtk(Profile* profile)
: OptionsPageBase(profile),
- advanced_contents_(profile) {
+ advanced_contents_(profile),
+ managed_prefs_banner_(profile->GetPrefs(), OPTIONS_PAGE_ADVANCED) {
Init();
}
@@ -25,6 +27,9 @@ void AdvancedPageGtk::Init() {
gtk_container_set_border_width(GTK_CONTAINER(page_),
gtk_util::kContentAreaBorder);
+ gtk_box_pack_start(GTK_BOX(page_), managed_prefs_banner_.banner_widget(),
+ false, false, 0);
+
GtkWidget* scroll_window = gtk_scrolled_window_new(NULL, NULL);
gtk_container_add(GTK_CONTAINER(page_), scroll_window);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window),
diff --git a/chrome/browser/gtk/options/advanced_page_gtk.h b/chrome/browser/gtk/options/advanced_page_gtk.h
index a12cdf6..91be437 100644
--- a/chrome/browser/gtk/options/advanced_page_gtk.h
+++ b/chrome/browser/gtk/options/advanced_page_gtk.h
@@ -9,6 +9,7 @@
#include "app/gtk_signal.h"
#include "chrome/browser/gtk/options/advanced_contents_gtk.h"
+#include "chrome/browser/gtk/options/managed_prefs_banner_gtk.h"
#include "chrome/browser/options_page_base.h"
#include "chrome/browser/pref_member.h"
@@ -38,6 +39,9 @@ class AdvancedPageGtk : public OptionsPageBase {
// The widget containing the options for this page.
GtkWidget* page_;
+ // Tracks managed preference warning banner state.
+ ManagedPrefsBannerGtk managed_prefs_banner_;
+
DISALLOW_COPY_AND_ASSIGN(AdvancedPageGtk);
};
diff --git a/chrome/browser/gtk/options/content_page_gtk.cc b/chrome/browser/gtk/options/content_page_gtk.cc
index 4cc89ed..ef3b1a2 100644
--- a/chrome/browser/gtk/options/content_page_gtk.cc
+++ b/chrome/browser/gtk/options/content_page_gtk.cc
@@ -42,11 +42,6 @@ namespace {
// Background color for the status label when it's showing an error.
static const GdkColor kSyncLabelErrorBgColor = GDK_COLOR_RGB(0xff, 0x9a, 0x9a);
-// Set of preferences which might be unavailable for editing when managed.
-const wchar_t* kContentManagablePrefs[] = {
- prefs::kSyncManaged
-};
-
// Helper for WrapLabelAtAllocationHack.
void OnLabelAllocate(GtkWidget* label, GtkAllocation* allocation) {
gtk_widget_set_size_request(label, allocation->width, -1);
@@ -86,8 +81,7 @@ ContentPageGtk::ContentPageGtk(Profile* profile)
privacy_dashboard_link_(NULL),
initializing_(true),
sync_service_(NULL),
- managed_prefs_banner_(profile->GetPrefs(), kContentManagablePrefs,
- arraysize(kContentManagablePrefs)) {
+ managed_prefs_banner_(profile->GetPrefs(), OPTIONS_PAGE_CONTENT) {
if (profile->GetProfileSyncService()) {
sync_service_ = profile->GetProfileSyncService();
sync_service_->AddObserver(this);
diff --git a/chrome/browser/gtk/options/general_page_gtk.cc b/chrome/browser/gtk/options/general_page_gtk.cc
index 80327cc..17c10017 100644
--- a/chrome/browser/gtk/options/general_page_gtk.cc
+++ b/chrome/browser/gtk/options/general_page_gtk.cc
@@ -56,13 +56,6 @@ enum {
SEARCH_ENGINES_COL_COUNT,
};
-// All general preferences that are potentially managed by policy. We'll
-// display the warning banner if one of these have the managed bit set.
-static const wchar_t* kGeneralPolicyConstrainedPrefs[] = {
- prefs::kHomePage,
- prefs::kHomePageIsNewTabPage
-};
-
} // namespace
///////////////////////////////////////////////////////////////////////////////
@@ -75,9 +68,7 @@ GeneralPageGtk::GeneralPageGtk(Profile* profile)
initializing_(true),
default_browser_worker_(
new ShellIntegration::DefaultBrowserWorker(this)),
- managed_prefs_banner_(profile->GetPrefs(),
- kGeneralPolicyConstrainedPrefs,
- arraysize(kGeneralPolicyConstrainedPrefs)) {
+ managed_prefs_banner_(profile->GetPrefs(), OPTIONS_PAGE_GENERAL) {
scoped_ptr<OptionsLayoutBuilderGtk>
options_builder(OptionsLayoutBuilderGtk::CreateOptionallyCompactLayout());
page_ = options_builder->get_page_widget();
diff --git a/chrome/browser/gtk/options/managed_prefs_banner_gtk.cc b/chrome/browser/gtk/options/managed_prefs_banner_gtk.cc
index 71e3309..a175fad 100644
--- a/chrome/browser/gtk/options/managed_prefs_banner_gtk.cc
+++ b/chrome/browser/gtk/options/managed_prefs_banner_gtk.cc
@@ -18,9 +18,8 @@ const int kBannerPadding = 3;
}
ManagedPrefsBannerGtk::ManagedPrefsBannerGtk(PrefService* prefs,
- const wchar_t** relevant_prefs,
- size_t count)
- : ManagedPrefsBannerBase(prefs, relevant_prefs, count),
+ OptionsPage page)
+ : ManagedPrefsBannerBase(prefs, page),
banner_widget_(NULL) {
InitWidget();
OnUpdateVisibility();
diff --git a/chrome/browser/gtk/options/managed_prefs_banner_gtk.h b/chrome/browser/gtk/options/managed_prefs_banner_gtk.h
index 5007d98..499d782 100644
--- a/chrome/browser/gtk/options/managed_prefs_banner_gtk.h
+++ b/chrome/browser/gtk/options/managed_prefs_banner_gtk.h
@@ -16,9 +16,7 @@
// not settable by the user due to policy.
class ManagedPrefsBannerGtk : public ManagedPrefsBannerBase {
public:
- ManagedPrefsBannerGtk(PrefService* prefs,
- const wchar_t** relevant_prefs,
- size_t count);
+ ManagedPrefsBannerGtk(PrefService* prefs, OptionsPage page);
virtual ~ManagedPrefsBannerGtk() { }
GtkWidget* banner_widget() { return banner_widget_; }
diff --git a/chrome/browser/managed_prefs_banner_base.cc b/chrome/browser/managed_prefs_banner_base.cc
index 09dcde6..c11ec4e 100644
--- a/chrome/browser/managed_prefs_banner_base.cc
+++ b/chrome/browser/managed_prefs_banner_base.cc
@@ -8,18 +8,30 @@
#include "chrome/common/notification_details.h"
#include "chrome/common/notification_source.h"
#include "chrome/common/notification_type.h"
+#include "chrome/common/pref_names.h"
ManagedPrefsBannerBase::ManagedPrefsBannerBase(PrefService* prefs,
- const wchar_t** relevant_prefs,
- size_t count)
+ OptionsPage page)
: prefs_(prefs) {
- for (size_t i = 0; i < count; ++i) {
- // Ignore prefs that are not registered.
- const wchar_t* pref = relevant_prefs[i];
- if (prefs->FindPreference(pref)) {
- prefs_->AddPrefObserver(pref, this);
- relevant_prefs_.insert(pref);
- }
+ switch (page) {
+ case OPTIONS_PAGE_GENERAL:
+ AddPref(prefs::kHomePage);
+ AddPref(prefs::kHomePageIsNewTabPage);
+ break;
+ case OPTIONS_PAGE_CONTENT:
+ AddPref(prefs::kSyncManaged);
+ break;
+ case OPTIONS_PAGE_ADVANCED:
+ AddPref(prefs::kAlternateErrorPagesEnabled);
+ AddPref(prefs::kSearchSuggestEnabled);
+ AddPref(prefs::kDnsPrefetchingEnabled);
+ AddPref(prefs::kSafeBrowsingEnabled);
+#if defined(GOOGLE_CHROME_BUILD)
+ AddPref(prefs::kMetricsReportingEnabled);
+#endif
+ break;
+ default:
+ NOTREACHED();
}
}
@@ -39,6 +51,23 @@ void ManagedPrefsBannerBase::Observe(NotificationType type,
}
}
+void ManagedPrefsBannerBase::AddPref(const wchar_t* pref) {
+ if (!relevant_prefs_.count(pref)) {
+ if (prefs_->FindPreference(pref)) {
+ prefs_->AddPrefObserver(pref, this);
+ relevant_prefs_.insert(pref);
+ }
+ }
+}
+
+void ManagedPrefsBannerBase::RemovePref(const wchar_t* pref) {
+ PrefSet::iterator iter = relevant_prefs_.find(pref);
+ if (iter != relevant_prefs_.end()) {
+ prefs_->RemovePrefObserver(pref, this);
+ relevant_prefs_.erase(iter);
+ }
+}
+
bool ManagedPrefsBannerBase::DetermineVisibility() const {
for (PrefSet::const_iterator pref_name(relevant_prefs_.begin());
pref_name != relevant_prefs_.end(); ++pref_name) {
diff --git a/chrome/browser/managed_prefs_banner_base.h b/chrome/browser/managed_prefs_banner_base.h
index b06d0c8..bc39189 100644
--- a/chrome/browser/managed_prefs_banner_base.h
+++ b/chrome/browser/managed_prefs_banner_base.h
@@ -9,6 +9,7 @@
#include <string>
#include "base/basictypes.h"
+#include "chrome/browser/options_window.h"
#include "chrome/common/notification_observer.h"
class PrefService;
@@ -18,9 +19,10 @@ class PrefService;
// configuration policy and thus cannot be changed by the user.
class ManagedPrefsBannerBase : public NotificationObserver {
public:
- ManagedPrefsBannerBase(PrefService* prefs,
- const wchar_t** relevant_prefs,
- size_t count);
+ // Initialize the banner with a set of preferences suitable for the given
+ // options |page|. Subclasses may change that set by calling AddPref() and
+ // RemovePref() afterwards.
+ ManagedPrefsBannerBase(PrefService* prefs, OptionsPage page);
virtual ~ManagedPrefsBannerBase();
// Determine whether the banner should be visible.
@@ -32,6 +34,11 @@ class ManagedPrefsBannerBase : public NotificationObserver {
const NotificationDetails& details);
protected:
+ // Add a preference as visibility trigger.
+ void AddPref(const wchar_t* pref);
+ // Remove a preference from being a visibility trigger.
+ void RemovePref(const wchar_t* pref);
+
// Update banner visibility. This is called whenever a preference change is
// observed that may lead to changed visibility of the banner. Subclasses may
// override this in order to show/hide the banner.
diff --git a/chrome/browser/managed_prefs_banner_base_unittest.cc b/chrome/browser/managed_prefs_banner_base_unittest.cc
index 08c80a8..16c9f98 100644
--- a/chrome/browser/managed_prefs_banner_base_unittest.cc
+++ b/chrome/browser/managed_prefs_banner_base_unittest.cc
@@ -9,6 +9,12 @@
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
+namespace {
+
+const wchar_t* kDummyPref = L"dummy";
+
+} // namespace
+
// Tests whether managed preferences banner base functionality correctly
// determines banner visiblity.
class ManagedPrefsBannerBaseTest : public testing::Test {
@@ -24,6 +30,7 @@ class ManagedPrefsBannerBaseTest : public testing::Test {
default_prefs_)));
pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com");
pref_service_->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, false);
+ pref_service_->RegisterBooleanPref(kDummyPref, false);
}
scoped_ptr<PrefService> pref_service_;
@@ -33,15 +40,10 @@ class ManagedPrefsBannerBaseTest : public testing::Test {
DummyPrefStore* default_prefs_;
};
-static const wchar_t* managed_prefs[] = {
- prefs::kHomePage
-};
-
TEST_F(ManagedPrefsBannerBaseTest, VisibilityTest) {
- ManagedPrefsBannerBase banner(pref_service_.get(), managed_prefs,
- arraysize(managed_prefs));
+ ManagedPrefsBannerBase banner(pref_service_.get(), OPTIONS_PAGE_GENERAL);
EXPECT_FALSE(banner.DetermineVisibility());
- managed_prefs_->prefs()->SetBoolean(prefs::kHomePageIsNewTabPage, true);
+ managed_prefs_->prefs()->SetBoolean(kDummyPref, true);
EXPECT_FALSE(banner.DetermineVisibility());
user_prefs_->prefs()->SetString(prefs::kHomePage, "http://foo.com");
EXPECT_FALSE(banner.DetermineVisibility());
@@ -52,19 +54,16 @@ TEST_F(ManagedPrefsBannerBaseTest, VisibilityTest) {
// Mock class that allows to capture the notification callback.
class ManagedPrefsBannerBaseMock : public ManagedPrefsBannerBase {
public:
- ManagedPrefsBannerBaseMock(PrefService* pref_service,
- const wchar_t** relevant_prefs,
- size_t count)
- : ManagedPrefsBannerBase(pref_service, relevant_prefs, count) { }
+ ManagedPrefsBannerBaseMock(PrefService* pref_service, OptionsPage page)
+ : ManagedPrefsBannerBase(pref_service, page) { }
MOCK_METHOD0(OnUpdateVisibility, void());
};
TEST_F(ManagedPrefsBannerBaseTest, NotificationTest) {
- ManagedPrefsBannerBaseMock banner(pref_service_.get(), managed_prefs,
- arraysize(managed_prefs));
+ ManagedPrefsBannerBaseMock banner(pref_service_.get(), OPTIONS_PAGE_GENERAL);
EXPECT_CALL(banner, OnUpdateVisibility()).Times(0);
- pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, true);
+ pref_service_->SetBoolean(kDummyPref, true);
EXPECT_CALL(banner, OnUpdateVisibility()).Times(1);
pref_service_->SetString(prefs::kHomePage, "http://foo.com");
}
diff --git a/chrome/browser/views/options/advanced_page_view.cc b/chrome/browser/views/options/advanced_page_view.cc
index f506400..9c75994 100644
--- a/chrome/browser/views/options/advanced_page_view.cc
+++ b/chrome/browser/views/options/advanced_page_view.cc
@@ -9,7 +9,9 @@
#include "base/string_util.h"
#include "base/values.h"
#include "chrome/browser/options_util.h"
+#include "chrome/browser/profile.h"
#include "chrome/browser/views/options/advanced_contents_view.h"
+#include "chrome/browser/views/options/managed_prefs_banner_view.h"
#include "chrome/common/chrome_constants.h"
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
@@ -130,6 +132,10 @@ void AdvancedPageView::InitControlLayout() {
ColumnSet* column_set = layout->AddColumnSet(single_column_view_set_id);
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(), OPTIONS_PAGE_ADVANCED));
+
layout->StartRow(1, single_column_view_set_id);
layout->AddView(advanced_scroll_view_);
layout->AddPaddingRow(0, kRelatedControlVerticalSpacing);
diff --git a/chrome/browser/views/options/content_page_view.cc b/chrome/browser/views/options/content_page_view.cc
index 093c90d..1a368e7 100644
--- a/chrome/browser/views/options/content_page_view.cc
+++ b/chrome/browser/views/options/content_page_view.cc
@@ -50,12 +50,6 @@ 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);
}
@@ -206,9 +200,8 @@ void ContentPageView::InitControlLayout() {
layout->StartRow(0, single_column_view_set_id);
layout->AddView(
- new ManagedPrefsBannerView(profile()->GetPrefs(),
- kContentPolicyConstrainedPrefs,
- arraysize(kContentPolicyConstrainedPrefs)));
+ new ManagedPrefsBannerView(profile()->GetPrefs(), OPTIONS_PAGE_CONTENT));
+
if (sync_service_) {
layout->StartRow(0, single_column_view_set_id);
InitSyncGroup();
diff --git a/chrome/browser/views/options/general_page_view.cc b/chrome/browser/views/options/general_page_view.cc
index d7c36a7..be464b4 100644
--- a/chrome/browser/views/options/general_page_view.cc
+++ b/chrome/browser/views/options/general_page_view.cc
@@ -44,13 +44,6 @@ const SkColor kDefaultBrowserLabelColor = SkColorSetRGB(0, 135, 0);
const SkColor kNotDefaultBrowserLabelColor = SkColorSetRGB(135, 0, 0);
const int kHomePageTextfieldWidthChars = 40;
-// All general 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* kGeneralPolicyConstrainedPrefs[] = {
- prefs::kHomePage,
- prefs::kHomePageIsNewTabPage
-};
-
} // namespace
///////////////////////////////////////////////////////////////////////////////
@@ -318,9 +311,7 @@ void GeneralPageView::InitControlLayout() {
layout->StartRow(0, single_column_view_set_id);
layout->AddView(
- new ManagedPrefsBannerView(profile()->GetPrefs(),
- kGeneralPolicyConstrainedPrefs,
- arraysize(kGeneralPolicyConstrainedPrefs)));
+ new ManagedPrefsBannerView(profile()->GetPrefs(), OPTIONS_PAGE_GENERAL));
layout->StartRow(0, single_column_view_set_id);
InitStartupGroup();
diff --git a/chrome/browser/views/options/managed_prefs_banner_view.cc b/chrome/browser/views/options/managed_prefs_banner_view.cc
index 020617c..09febc4 100644
--- a/chrome/browser/views/options/managed_prefs_banner_view.cc
+++ b/chrome/browser/views/options/managed_prefs_banner_view.cc
@@ -19,9 +19,8 @@ static const int kPrefsBannerPadding = 3;
static const int kPrefsBannerBorderSize = 1;
ManagedPrefsBannerView::ManagedPrefsBannerView(PrefService* prefs,
- const wchar_t** relevant_prefs,
- size_t count)
- : ManagedPrefsBannerBase(prefs, relevant_prefs, count) {
+ OptionsPage page)
+ : ManagedPrefsBannerBase(prefs, page) {
content_ = new views::View;
SkColor border_color = color_utils::GetSysSkColor(COLOR_3DSHADOW);
views::Border* border = views::Border::CreateSolidBorder(
diff --git a/chrome/browser/views/options/managed_prefs_banner_view.h b/chrome/browser/views/options/managed_prefs_banner_view.h
index 60c9953..6002ada 100644
--- a/chrome/browser/views/options/managed_prefs_banner_view.h
+++ b/chrome/browser/views/options/managed_prefs_banner_view.h
@@ -19,12 +19,9 @@ class Label;
class ManagedPrefsBannerView : public ManagedPrefsBannerBase,
public views::View {
public:
- // Initialize the banner. |relevant_prefs| is an array of |count| prefs
- // holding names of the preferences that control the banner visibility
- // through their managed flag.
- ManagedPrefsBannerView(PrefService* pref_service,
- const wchar_t** relevant_prefs,
- size_t count);
+ // Initialize the banner. |page| is used to determine the names of the
+ // preferences that control the banner visibility through their managed flag.
+ ManagedPrefsBannerView(PrefService* pref_service, OptionsPage page);
virtual ~ManagedPrefsBannerView() {}
private: