| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/extensions/install_tracker.h" | 5 #include "chrome/browser/extensions/install_tracker.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "chrome/browser/chrome_notification_types.h" | 8 #include "chrome/browser/chrome_notification_types.h" |
| 9 #include "chrome/browser/extensions/install_tracker_factory.h" | 9 #include "chrome/browser/extensions/install_tracker_factory.h" |
| 10 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
| 11 #include "chrome/common/pref_names.h" | 11 #include "chrome/common/pref_names.h" |
| 12 #include "content/public/browser/notification_service.h" | 12 #include "content/public/browser/notification_service.h" |
| 13 #include "extensions/browser/extension_prefs.h" | 13 #include "extensions/browser/extension_prefs.h" |
| 14 #include "extensions/browser/extension_registry.h" | 14 #include "extensions/browser/extension_registry.h" |
| 15 #include "extensions/browser/pref_names.h" | 15 #include "extensions/browser/pref_names.h" |
| 16 | 16 |
| 17 namespace extensions { | 17 namespace extensions { |
| 18 | 18 |
| 19 InstallTracker::InstallTracker(Profile* profile, | 19 InstallTracker::InstallTracker(Profile* profile, |
| 20 extensions::ExtensionPrefs* prefs) | 20 extensions::ExtensionPrefs* prefs) |
| 21 : extension_registry_observer_(this) { | 21 : extension_registry_observer_(this) { |
| 22 extension_registry_observer_.Add(ExtensionRegistry::Get(profile)); | 22 extension_registry_observer_.Add(ExtensionRegistry::Get(profile)); |
| 23 | 23 |
| 24 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_INSTALLED, | |
| 25 content::Source<Profile>(profile)); | |
| 26 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNINSTALLED, | 24 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNINSTALLED, |
| 27 content::Source<Profile>(profile)); | 25 content::Source<Profile>(profile)); |
| 28 registrar_.Add(this, | 26 registrar_.Add(this, |
| 29 chrome::NOTIFICATION_EXTENSION_UPDATE_DISABLED, | 27 chrome::NOTIFICATION_EXTENSION_UPDATE_DISABLED, |
| 30 content::Source<Profile>(profile)); | 28 content::Source<Profile>(profile)); |
| 31 AppSorting* sorting = prefs->app_sorting(); | 29 AppSorting* sorting = prefs->app_sorting(); |
| 32 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LAUNCHER_REORDERED, | 30 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LAUNCHER_REORDERED, |
| 33 content::Source<AppSorting>(sorting)); | 31 content::Source<AppSorting>(sorting)); |
| 34 registrar_.Add(this, chrome::NOTIFICATION_APP_INSTALLED_TO_APPLIST, | 32 registrar_.Add(this, chrome::NOTIFICATION_APP_INSTALLED_TO_APPLIST, |
| 35 content::Source<Profile>(profile)); | 33 content::Source<Profile>(profile)); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 void InstallTracker::OnInstallFailure( | 86 void InstallTracker::OnInstallFailure( |
| 89 const std::string& extension_id) { | 87 const std::string& extension_id) { |
| 90 FOR_EACH_OBSERVER(InstallObserver, observers_, | 88 FOR_EACH_OBSERVER(InstallObserver, observers_, |
| 91 OnInstallFailure(extension_id)); | 89 OnInstallFailure(extension_id)); |
| 92 } | 90 } |
| 93 | 91 |
| 94 void InstallTracker::Shutdown() { | 92 void InstallTracker::Shutdown() { |
| 95 FOR_EACH_OBSERVER(InstallObserver, observers_, OnShutdown()); | 93 FOR_EACH_OBSERVER(InstallObserver, observers_, OnShutdown()); |
| 96 } | 94 } |
| 97 | 95 |
| 98 void InstallTracker::OnExtensionLoaded(content::BrowserContext* browser_context, | |
| 99 const Extension* extension) { | |
| 100 FOR_EACH_OBSERVER(InstallObserver, observers_, OnExtensionLoaded(extension)); | |
| 101 } | |
| 102 | |
| 103 void InstallTracker::OnExtensionUnloaded( | |
| 104 content::BrowserContext* browser_context, | |
| 105 const Extension* extension, | |
| 106 UnloadedExtensionInfo::Reason reason) { | |
| 107 FOR_EACH_OBSERVER( | |
| 108 InstallObserver, observers_, OnExtensionUnloaded(extension)); | |
| 109 } | |
| 110 | |
| 111 void InstallTracker::Observe(int type, | 96 void InstallTracker::Observe(int type, |
| 112 const content::NotificationSource& source, | 97 const content::NotificationSource& source, |
| 113 const content::NotificationDetails& details) { | 98 const content::NotificationDetails& details) { |
| 114 switch (type) { | 99 switch (type) { |
| 115 case chrome::NOTIFICATION_EXTENSION_INSTALLED: { | |
| 116 const Extension* extension = | |
| 117 content::Details<const InstalledExtensionInfo>(details).ptr()-> | |
| 118 extension; | |
| 119 FOR_EACH_OBSERVER(InstallObserver, observers_, | |
| 120 OnExtensionInstalled(extension)); | |
| 121 break; | |
| 122 } | |
| 123 case chrome::NOTIFICATION_EXTENSION_UNINSTALLED: { | 100 case chrome::NOTIFICATION_EXTENSION_UNINSTALLED: { |
| 124 const Extension* extension = | 101 const Extension* extension = |
| 125 content::Details<const Extension>(details).ptr(); | 102 content::Details<const Extension>(details).ptr(); |
| 126 | 103 |
| 127 FOR_EACH_OBSERVER(InstallObserver, observers_, | 104 FOR_EACH_OBSERVER(InstallObserver, observers_, |
| 128 OnExtensionUninstalled(extension)); | 105 OnExtensionUninstalled(extension)); |
| 129 break; | 106 break; |
| 130 } | 107 } |
| 131 case chrome::NOTIFICATION_EXTENSION_UPDATE_DISABLED: { | 108 case chrome::NOTIFICATION_EXTENSION_UPDATE_DISABLED: { |
| 132 const Extension* extension = | 109 const Extension* extension = |
| (...skipping 11 matching lines...) Expand all Loading... |
| 144 *content::Details<const std::string>(details).ptr()); | 121 *content::Details<const std::string>(details).ptr()); |
| 145 FOR_EACH_OBSERVER(InstallObserver, observers_, | 122 FOR_EACH_OBSERVER(InstallObserver, observers_, |
| 146 OnAppInstalledToAppList(extension_id)); | 123 OnAppInstalledToAppList(extension_id)); |
| 147 break; | 124 break; |
| 148 } | 125 } |
| 149 default: | 126 default: |
| 150 NOTREACHED(); | 127 NOTREACHED(); |
| 151 } | 128 } |
| 152 } | 129 } |
| 153 | 130 |
| 131 void InstallTracker::OnExtensionLoaded(content::BrowserContext* browser_context, |
| 132 const Extension* extension) { |
| 133 FOR_EACH_OBSERVER(InstallObserver, observers_, OnExtensionLoaded(extension)); |
| 134 } |
| 135 |
| 136 void InstallTracker::OnExtensionUnloaded( |
| 137 content::BrowserContext* browser_context, |
| 138 const Extension* extension, |
| 139 UnloadedExtensionInfo::Reason reason) { |
| 140 FOR_EACH_OBSERVER( |
| 141 InstallObserver, observers_, OnExtensionUnloaded(extension)); |
| 142 } |
| 143 |
| 144 void InstallTracker::OnExtensionWillBeInstalled( |
| 145 content::BrowserContext* browser_context, |
| 146 const Extension* extension, |
| 147 bool is_update, |
| 148 const std::string& old_name) { |
| 149 FOR_EACH_OBSERVER( |
| 150 InstallObserver, observers_, OnExtensionInstalled(extension)); |
| 151 } |
| 152 |
| 154 void InstallTracker::OnAppsReordered() { | 153 void InstallTracker::OnAppsReordered() { |
| 155 FOR_EACH_OBSERVER(InstallObserver, observers_, OnAppsReordered()); | 154 FOR_EACH_OBSERVER(InstallObserver, observers_, OnAppsReordered()); |
| 156 } | 155 } |
| 157 | 156 |
| 158 } // namespace extensions | 157 } // namespace extensions |
| OLD | NEW |