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

Unified Diff: chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm

Issue 11345008: Remove content::NotificationObserver dependency from most Prefs code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 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
Index: chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
diff --git a/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm b/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
index 91f2fee891bd7819d3ff6f9c11d132b77ed89a43..7748a1dd1ca28319d4d19eb088147342f60f0d0b 100644
--- a/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
+++ b/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
@@ -9,6 +9,7 @@
#include "base/mac/bundle_locations.h"
#include "base/mac/mac_util.h"
#include "base/memory/singleton.h"
+#include "base/prefs/public/pref_observer.h"
#include "base/string_util.h"
#include "base/sys_string_conversions.h"
#include "base/utf_string_conversions.h"
@@ -105,7 +106,9 @@ namespace ToolbarControllerInternal {
// A class registered for C++ notifications. This is used to detect changes in
// preferences and upgrade available notifications. Bridges the notification
// back to the ToolbarController.
-class NotificationBridge : public content::NotificationObserver {
+class NotificationBridge
+ : public content::NotificationObserver,
+ public PrefObserver {
public:
explicit NotificationBridge(ToolbarController* controller)
: controller_(controller) {
@@ -118,11 +121,8 @@ class NotificationBridge : public content::NotificationObserver {
// Overridden from content::NotificationObserver:
virtual void Observe(int type,
const content::NotificationSource& source,
- const content::NotificationDetails& details) {
+ const content::NotificationDetails& details) OVERRIDE {
switch (type) {
- case chrome::NOTIFICATION_PREF_CHANGED:
- [controller_ prefChanged:content::Details<std::string>(details).ptr()];
- break;
case chrome::NOTIFICATION_UPGRADE_RECOMMENDED:
case chrome::NOTIFICATION_GLOBAL_ERRORS_CHANGED:
[controller_ badgeWrenchMenuIfNeeded];
@@ -132,6 +132,12 @@ class NotificationBridge : public content::NotificationObserver {
}
}
+ // Overridden from PrefObserver:
+ virtual void OnPreferenceChanged(PrefServiceBase* service,
+ const std::string& pref_name) OVERRIDE {
+ [controller_ prefChanged:&pref_name];
+ }
+
private:
ToolbarController* controller_; // weak, owns us

Powered by Google App Engine
This is Rietveld 408576698