Index: chrome/browser/extensions/extension_service.cc |
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc |
index 42cb3fa69ea9ea451229871e5df976d830fb9cd7..f7fd9ca960cc427d9c23152b6dcf080f7db61f9f 100644 |
--- a/chrome/browser/extensions/extension_service.cc |
+++ b/chrome/browser/extensions/extension_service.cc |
@@ -921,6 +921,8 @@ void ExtensionService::EnableExtension(const std::string& extension_id) { |
// Move it over to the enabled list. |
extensions_.Insert(make_scoped_refptr(extension)); |
disabled_extensions_.Remove(extension->id()); |
+ FOR_EACH_OBSERVER(DisabledExtensionObserver, disabled_extension_observers_, |
+ OnDisabledExtensionRemoved(extension, true)); |
NotifyExtensionLoaded(extension); |
@@ -1880,6 +1882,8 @@ void ExtensionService::UnloadExtension( |
UnloadedExtensionInfo details(extension.get(), reason); |
details.already_disabled = true; |
disabled_extensions_.Remove(extension->id()); |
+ FOR_EACH_OBSERVER(DisabledExtensionObserver, disabled_extension_observers_, |
+ OnDisabledExtensionRemoved(extension.get(), false)); |
content::NotificationService::current()->Notify( |
chrome::NOTIFICATION_EXTENSION_UNLOADED, |
content::Source<Profile>(profile_), |
@@ -3118,3 +3122,13 @@ void ExtensionService::RemoveUpdateObserver( |
extensions::UpdateObserver* observer) { |
update_observers_.RemoveObserver(observer); |
} |
+ |
+void ExtensionService::AddDisabledExtensionObserver( |
+ ExtensionService::DisabledExtensionObserver* observer) { |
+ disabled_extension_observers_.AddObserver(observer); |
+} |
+ |
+void ExtensionService::RemoveDisabledExtensionObserver( |
+ ExtensionService::DisabledExtensionObserver* observer) { |
+ disabled_extension_observers_.RemoveObserver(observer); |
+} |