| Index: chrome/browser/extensions/install_tracker.cc
|
| diff --git a/chrome/browser/extensions/install_tracker.cc b/chrome/browser/extensions/install_tracker.cc
|
| index c916d4cdb83f72984f29c5f4c4fb674327272dc2..59e577d97efac1208d2ba2c7c0f77faf5642ea71 100644
|
| --- a/chrome/browser/extensions/install_tracker.cc
|
| +++ b/chrome/browser/extensions/install_tracker.cc
|
| @@ -13,8 +13,9 @@
|
| namespace extensions {
|
|
|
| InstallTracker::InstallTracker(Profile* profile,
|
| - extensions::ExtensionPrefs* prefs) {
|
| - ExtensionSorting* sorting = prefs->extension_sorting();
|
| + extensions::ExtensionPrefs* prefs)
|
| + : app_list_extension_sorting_(prefs->app_list_extension_sorting()) {
|
| + app_list_extension_sorting_->AddObserver(this);
|
|
|
| registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_INSTALLED,
|
| content::Source<Profile>(profile));
|
| @@ -24,18 +25,17 @@ InstallTracker::InstallTracker(Profile* profile,
|
| content::Source<Profile>(profile));
|
| registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNINSTALLED,
|
| content::Source<Profile>(profile));
|
| - registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LAUNCHER_REORDERED,
|
| - content::Source<ExtensionSorting>(sorting));
|
| registrar_.Add(this, chrome::NOTIFICATION_APP_INSTALLED_TO_APPLIST,
|
| content::Source<Profile>(profile));
|
|
|
| pref_change_registrar_.Init(prefs->pref_service());
|
| pref_change_registrar_.Add(prefs::kExtensionsPref,
|
| - base::Bind(&InstallTracker::OnAppsReordered,
|
| + base::Bind(&InstallTracker::OnAppListReordered,
|
| base::Unretained(this)));
|
| }
|
|
|
| InstallTracker::~InstallTracker() {
|
| + app_list_extension_sorting_->RemoveObserver(this);
|
| }
|
|
|
| void InstallTracker::AddObserver(InstallObserver* observer) {
|
| @@ -111,10 +111,6 @@ void InstallTracker::Observe(int type,
|
| OnExtensionUninstalled(extension));
|
| break;
|
| }
|
| - case chrome::NOTIFICATION_EXTENSION_LAUNCHER_REORDERED: {
|
| - FOR_EACH_OBSERVER(InstallObserver, observers_, OnAppsReordered());
|
| - break;
|
| - }
|
| case chrome::NOTIFICATION_APP_INSTALLED_TO_APPLIST: {
|
| const std::string& extension_id(
|
| *content::Details<const std::string>(details).ptr());
|
| @@ -127,8 +123,12 @@ void InstallTracker::Observe(int type,
|
| }
|
| }
|
|
|
| -void InstallTracker::OnAppsReordered() {
|
| - FOR_EACH_OBSERVER(InstallObserver, observers_, OnAppsReordered());
|
| +void InstallTracker::OnAppListReordered() {
|
| + FOR_EACH_OBSERVER(InstallObserver, observers_, OnAppListReordered());
|
| +}
|
| +
|
| +void InstallTracker::ExtensionPrefsChanged() {
|
| + FOR_EACH_OBSERVER(InstallObserver, observers_, OnAppListReordered());
|
| }
|
|
|
| } // namespace extensions
|
|
|