Index: chrome/browser/extensions/extension_prefs.cc |
diff --git a/chrome/browser/extensions/extension_prefs.cc b/chrome/browser/extensions/extension_prefs.cc |
index a26f3ad4cd0992ead9258af17b7c3360f6b8181a..83fbb596830c553f4484409b4fe0ea96fe13c33d 100644 |
--- a/chrome/browser/extensions/extension_prefs.cc |
+++ b/chrome/browser/extensions/extension_prefs.cc |
@@ -1653,11 +1653,12 @@ scoped_ptr<ExtensionInfo> ExtensionPrefs::GetInstalledExtensionInfo( |
if (IsBlacklistBitSet(ext)) |
return scoped_ptr<ExtensionInfo>(); |
int state_value; |
- if (!ext->GetInteger(kPrefState, &state_value)) { |
- // This can legitimately happen if we store preferences for component |
- // extensions. |
+ if (!ext->GetInteger(kPrefState, &state_value) || |
+ state_value == Extension::ENABLED_COMPONENT) { |
+ // Old preferences files may not have kPrefState for component extensions. |
return scoped_ptr<ExtensionInfo>(); |
} |
+ |
if (state_value == Extension::EXTERNAL_EXTENSION_UNINSTALLED) { |
LOG(WARNING) << "External extension with id " << extension_id |
<< " has been uninstalled by the user"; |