Index: chrome/browser/bookmarks/bookmark_model.cc |
diff --git a/chrome/browser/bookmarks/bookmark_model.cc b/chrome/browser/bookmarks/bookmark_model.cc |
index 18bb942634bbef2690ff2c309bdbd2174d864480..3b3d45b74dfac51770cfefbc63b74f5aecea4f4f 100644 |
--- a/chrome/browser/bookmarks/bookmark_model.cc |
+++ b/chrome/browser/bookmarks/bookmark_model.cc |
@@ -124,6 +124,9 @@ BookmarkModel::BookmarkModel(Profile* profile) |
if (!profile_) { |
// Profile is null during testing. |
DoneLoading(CreateLoadDetails()); |
+ } else { |
+ pref_change_registrar_.Init(profile_->GetPrefs()); |
+ pref_change_registrar_.Add(prefs::kShowBookmarkBar, this); |
} |
} |
@@ -792,6 +795,20 @@ void BookmarkModel::Observe(int type, |
break; |
} |
+ case chrome::NOTIFICATION_PREF_CHANGED: { |
sky
2011/10/05 16:59:12
In theory there need not be a bookmarkmodel create
Joao da Silva
2011/10/06 19:45:38
I thought of that but felt lazy :-) It's been done
|
+ std::string* pref = Details<std::string>(details).ptr(); |
+ if (*pref == prefs::kShowBookmarkBar) { |
+ Source<Profile> source(profile_); |
+ NotificationService::current()->Notify( |
+ chrome::NOTIFICATION_BOOKMARK_BAR_VISIBILITY_PREF_CHANGED, |
+ source, |
+ NotificationService::NoDetails()); |
+ } else { |
+ NOTREACHED(); |
+ } |
+ break; |
+ } |
+ |
default: |
NOTREACHED(); |
break; |