Index: chrome/browser/extensions/extension_info_map.cc |
diff --git a/chrome/browser/extensions/extension_info_map.cc b/chrome/browser/extensions/extension_info_map.cc |
index 01ee98bf4e5a52d3e70d377da404490214dccdb4..d3210a6f08346a4e77dd9b8c35db2d8f1f36c67c 100644 |
--- a/chrome/browser/extensions/extension_info_map.cc |
+++ b/chrome/browser/extensions/extension_info_map.cc |
@@ -64,11 +64,13 @@ void ExtensionInfoMap::RemoveExtension(const std::string& extension_id, |
CheckOnValidThread(); |
const Extension* extension = extensions_.GetByID(extension_id); |
extra_data_.erase(extension_id); // we don't care about disabled extra data |
+ bool was_uninstalled = (reason != extension_misc::UNLOAD_REASON_DISABLE && |
+ reason != extension_misc::UNLOAD_REASON_TERMINATE); |
if (extension) { |
- if (reason == extension_misc::UNLOAD_REASON_DISABLE) |
+ if (!was_uninstalled) |
disabled_extensions_.Insert(extension); |
extensions_.Remove(extension_id); |
- } else if (reason != extension_misc::UNLOAD_REASON_DISABLE) { |
+ } else if (was_uninstalled) { |
// If the extension was uninstalled, make sure it's removed from the map of |
// disabled extensions. |
disabled_extensions_.Remove(extension_id); |