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

Unified Diff: chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser.cc

Issue 11308295: Revert 170483 - Remove PrefObserver usages, batch 12. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 1 month 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/ash/launcher/chrome_launcher_controller_per_browser.cc
===================================================================
--- chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser.cc (revision 170518)
+++ chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser.cc (working copy)
@@ -174,11 +174,7 @@
chrome::NOTIFICATION_EXTENSION_UNLOADED,
content::Source<Profile>(profile_));
pref_change_registrar_.Init(profile_->GetPrefs());
- pref_change_registrar_.Add(
- prefs::kPinnedLauncherApps,
- base::Bind(&ChromeLauncherControllerPerBrowser::
- UpdateAppLaunchersFromPref,
- base::Unretained(this)));
+ pref_change_registrar_.Add(prefs::kPinnedLauncherApps, this);
}
ChromeLauncherControllerPerBrowser::~ChromeLauncherControllerPerBrowser() {
@@ -233,20 +229,10 @@
SetShelfAutoHideBehaviorFromPrefs();
SetShelfAlignmentFromPrefs();
PrefService* prefs = profile_->GetPrefs();
- if (prefs->GetString(prefs::kShelfAlignmentLocal).empty()) {
- pref_change_registrar_.Add(
- prefs::kShelfAlignmentLocal,
- base::Bind(&ChromeLauncherControllerPerBrowser::
- SetShelfAlignmentFromPrefs,
- base::Unretained(this)));
+ if (prefs->GetString(prefs::kShelfAlignmentLocal).empty() ||
+ prefs->GetString(prefs::kShelfAutoHideBehaviorLocal).empty()) {
+ prefs->AddObserver(this);
}
- if (prefs->GetString(prefs::kShelfAutoHideBehaviorLocal).empty()) {
- pref_change_registrar_.Add(
- prefs::kShelfAutoHideBehaviorLocal,
- base::Bind(&ChromeLauncherControllerPerBrowser::
- SetShelfAutoHideBehaviorFromPrefs,
- base::Unretained(this)));
- }
ash::Shell::GetInstance()->AddShellObserver(this);
}
}
@@ -802,6 +788,20 @@
}
}
+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,11 +870,7 @@
}
}
}
- pref_change_registrar_.Add(
- prefs::kPinnedLauncherApps,
- base::Bind(&ChromeLauncherControllerPerBrowser::
- UpdateAppLaunchersFromPref,
- base::Unretained(this)));
+ pref_change_registrar_.Add(prefs::kPinnedLauncherApps, this);
}
ash::LauncherModel* ChromeLauncherControllerPerBrowser::model() {

Powered by Google App Engine
This is Rietveld 408576698