Index: chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser.cc |
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser.cc |
index b72cb255b7a911f671a26c6c3f4326ee9f0e1461..9fcfc557994f8fe158bedd1499b959b11c868936 100644 |
--- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser.cc |
+++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser.cc |
@@ -174,7 +174,11 @@ ChromeLauncherControllerPerBrowser::ChromeLauncherControllerPerBrowser( |
chrome::NOTIFICATION_EXTENSION_UNLOADED, |
content::Source<Profile>(profile_)); |
pref_change_registrar_.Init(profile_->GetPrefs()); |
- pref_change_registrar_.Add(prefs::kPinnedLauncherApps, this); |
+ pref_change_registrar_.Add( |
+ prefs::kPinnedLauncherApps, |
+ base::Bind(&ChromeLauncherControllerPerBrowser:: |
+ UpdateAppLaunchersFromPref, |
+ base::Unretained(this))); |
} |
ChromeLauncherControllerPerBrowser::~ChromeLauncherControllerPerBrowser() { |
@@ -231,6 +235,8 @@ void ChromeLauncherControllerPerBrowser::Init() { |
PrefService* prefs = profile_->GetPrefs(); |
if (prefs->GetString(prefs::kShelfAlignmentLocal).empty() || |
prefs->GetString(prefs::kShelfAutoHideBehaviorLocal).empty()) { |
+ // This causes OnIsSyncingChanged to be called when the value of |
+ // PrefService::IsSyncing() changes. |
prefs->AddObserver(this); |
} |
ash::Shell::GetInstance()->AddShellObserver(this); |
@@ -788,20 +794,6 @@ void ChromeLauncherControllerPerBrowser::Observe( |
} |
} |
-void ChromeLauncherControllerPerBrowser::OnPreferenceChanged( |
- PrefServiceBase* service, |
- const std::string& pref_name) { |
- if (pref_name == prefs::kPinnedLauncherApps) { |
- UpdateAppLaunchersFromPref(); |
- } else if (pref_name == prefs::kShelfAlignmentLocal) { |
- SetShelfAlignmentFromPrefs(); |
- } else if (pref_name == prefs::kShelfAutoHideBehaviorLocal) { |
- SetShelfAutoHideBehaviorFromPrefs(); |
- } else { |
- NOTREACHED() << "Unexpected pref change for " << pref_name; |
- } |
-} |
- |
void ChromeLauncherControllerPerBrowser::OnShelfAlignmentChanged() { |
const char* pref_value = NULL; |
// TODO(oshima): Support multiple displays. |
@@ -870,7 +862,11 @@ void ChromeLauncherControllerPerBrowser::PersistPinnedState() { |
} |
} |
} |
- pref_change_registrar_.Add(prefs::kPinnedLauncherApps, this); |
+ pref_change_registrar_.Add( |
+ prefs::kPinnedLauncherApps, |
+ base::Bind(&ChromeLauncherControllerPerBrowser:: |
+ UpdateAppLaunchersFromPref, |
+ base::Unretained(this))); |
} |
ash::LauncherModel* ChromeLauncherControllerPerBrowser::model() { |