Allow chrome.management.setEnabled() to re-enable crashed extensions.
crrev.com/10832237, take two. Removed code that treated crashed extensions as a special case. Now, developers can reload their crashed extensions like so: setEnabled(false); setEnabled(true);
BUG=131977
Review URL: https://chromiumcodereview.appspot.com/10912105
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155456 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index d0a6ca8..11e7842 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -897,14 +897,15 @@
if (!extension)
return;
- // Move it over to the disabled list.
+ // Move it over to the disabled list. Don't send a second unload notification
+ // for terminated extensions being disabled.
disabled_extensions_.Insert(make_scoped_refptr(extension));
- if (extensions_.Contains(extension->id()))
+ if (extensions_.Contains(extension->id())) {
extensions_.Remove(extension->id());
- else
+ NotifyExtensionUnloaded(extension, extension_misc::UNLOAD_REASON_DISABLE);
+ } else {
terminated_extensions_.Remove(extension->id());
-
- NotifyExtensionUnloaded(extension, extension_misc::UNLOAD_REASON_DISABLE);
+ }
SyncExtensionChangeIfNeeded(*extension);