| Index: chrome/browser/extensions/install_tracker.cc
|
| diff --git a/chrome/browser/extensions/install_tracker.cc b/chrome/browser/extensions/install_tracker.cc
|
| index 1212c5b71c6515c31312064f7c05bfd9d038c1ca..61134117411b0f68a39c4ce2a2e89c80992e7ded 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(extensions::ExtensionPrefs::kExtensionsPref,
|
| - base::Bind(&InstallTracker::OnAppsReordered,
|
| + base::Bind(&InstallTracker::ExtensionPrefsChanged,
|
| 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
|
|
|