| 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);
|
| +}
|
|
|