| Index: chrome/browser/ui/webui/ntp/new_tab_ui.cc
|
| diff --git a/chrome/browser/ui/webui/ntp/new_tab_ui.cc b/chrome/browser/ui/webui/ntp/new_tab_ui.cc
|
| index 7fda87690b14837d7119f50c17e806553761a1e2..6f5449701ec64eac8c285734afb4243f09695a11 100644
|
| --- a/chrome/browser/ui/webui/ntp/new_tab_ui.cc
|
| +++ b/chrome/browser/ui/webui/ntp/new_tab_ui.cc
|
| @@ -6,8 +6,6 @@
|
|
|
| #include "chrome/browser/ui/webui/ntp/new_tab_ui.h"
|
|
|
| -#include <set>
|
| -
|
| #include "base/bind.h"
|
| #include "base/bind_helpers.h"
|
| #include "base/command_line.h"
|
| @@ -74,12 +72,6 @@ NewTabUI::NewTabUI(TabContents* contents)
|
| // Override some options on the Web UI.
|
| hide_favicon_ = true;
|
|
|
| - if (!NTP4BookmarkFeaturesEnabled() &&
|
| - GetProfile()->GetPrefs()->GetBoolean(prefs::kEnableBookmarkBar) &&
|
| - browser_defaults::bookmarks_enabled) {
|
| - set_force_bookmark_bar_visible(true);
|
| - }
|
| -
|
| focus_location_bar_by_default_ = true;
|
| should_hide_url_ = true;
|
| overridden_title_ = l10n_util::GetStringUTF16(IDS_NEW_TAB_TITLE);
|
| @@ -129,9 +121,8 @@ NewTabUI::NewTabUI(TabContents* contents)
|
| Source<ThemeService>(
|
| ThemeServiceFactory::GetForProfile(GetProfile())));
|
| // Listen for bookmark bar visibility changes.
|
| - registrar_.Add(this,
|
| - chrome::NOTIFICATION_BOOKMARK_BAR_VISIBILITY_PREF_CHANGED,
|
| - NotificationService::AllSources());
|
| + pref_change_registrar_.Init(GetProfile()->GetPrefs());
|
| + pref_change_registrar_.Add(prefs::kShowBookmarkBar, this);
|
| }
|
|
|
| NewTabUI::~NewTabUI() {
|
| @@ -178,6 +169,17 @@ void NewTabUI::RenderViewReused(RenderViewHost* render_view_host) {
|
| StartTimingPaint(render_view_host);
|
| }
|
|
|
| +bool NewTabUI::CanShowBookmarkBar() const {
|
| + PrefService* prefs = GetProfile()->GetPrefs();
|
| + bool disabled_by_policy =
|
| + prefs->IsManagedPreference(prefs::kShowBookmarkBar) &&
|
| + !prefs->GetBoolean(prefs::kShowBookmarkBar);
|
| + return
|
| + browser_defaults::bookmarks_enabled &&
|
| + !disabled_by_policy &&
|
| + !NTP4BookmarkFeaturesEnabled();
|
| +}
|
| +
|
| void NewTabUI::Observe(int type,
|
| const NotificationSource& source,
|
| const NotificationDetails& details) {
|
| @@ -192,16 +194,17 @@ void NewTabUI::Observe(int type,
|
| CallJavascriptFunction("themeChanged", args);
|
| break;
|
| }
|
| - case chrome::NOTIFICATION_BOOKMARK_BAR_VISIBILITY_PREF_CHANGED: {
|
| - if (GetProfile()->GetPrefs()->IsManagedPreference(
|
| - prefs::kEnableBookmarkBar)) {
|
| - break;
|
| - }
|
| - if (!NTP4Enabled()) {
|
| - if (GetProfile()->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar))
|
| - CallJavascriptFunction("bookmarkBarAttached");
|
| - else
|
| - CallJavascriptFunction("bookmarkBarDetached");
|
| + case chrome::NOTIFICATION_PREF_CHANGED: {
|
| + const std::string& pref_name = *Details<std::string>(details).ptr();
|
| + if (pref_name == prefs::kShowBookmarkBar) {
|
| + if (!NTP4Enabled() && CanShowBookmarkBar()) {
|
| + if (GetProfile()->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar))
|
| + CallJavascriptFunction("bookmarkBarAttached");
|
| + else
|
| + CallJavascriptFunction("bookmarkBarDetached");
|
| + }
|
| + } else {
|
| + NOTREACHED();
|
| }
|
| break;
|
| }
|
|
|