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

Unified Diff: chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app.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_app.cc
===================================================================
--- chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app.cc (revision 170518)
+++ chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app.cc (working copy)
@@ -173,10 +173,7 @@
chrome::NOTIFICATION_EXTENSION_UNLOADED,
content::Source<Profile>(profile_));
pref_change_registrar_.Init(profile_->GetPrefs());
- pref_change_registrar_.Add(
- prefs::kPinnedLauncherApps,
- base::Bind(&ChromeLauncherControllerPerApp::UpdateAppLaunchersFromPref,
- base::Unretained(this)));
+ pref_change_registrar_.Add(prefs::kPinnedLauncherApps, this);
}
ChromeLauncherControllerPerApp::~ChromeLauncherControllerPerApp() {
@@ -230,20 +227,10 @@
SetShelfAutoHideBehaviorFromPrefs();
SetShelfAlignmentFromPrefs();
PrefService* prefs = profile_->GetPrefs();
- if (prefs->GetString(prefs::kShelfAlignmentLocal).empty()) {
- pref_change_registrar_.Add(
- prefs::kShelfAlignmentLocal,
- base::Bind(
- &ChromeLauncherControllerPerApp::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(&ChromeLauncherControllerPerApp::
- SetShelfAutoHideBehaviorFromPrefs,
- base::Unretained(this)));
- }
ash::Shell::GetInstance()->AddShellObserver(this);
}
}
@@ -796,6 +783,20 @@
}
}
+void ChromeLauncherControllerPerApp::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 ChromeLauncherControllerPerApp::OnShelfAlignmentChanged() {
const char* pref_value = NULL;
// TODO(oshima): Support multiple displays.
@@ -864,10 +865,7 @@
}
}
}
- pref_change_registrar_.Add(
- prefs::kPinnedLauncherApps,
- base::Bind(&ChromeLauncherControllerPerApp::UpdateAppLaunchersFromPref,
- base::Unretained(this)));
+ pref_change_registrar_.Add(prefs::kPinnedLauncherApps, this);
}
ash::LauncherModel* ChromeLauncherControllerPerApp::model() {

Powered by Google App Engine
This is Rietveld 408576698