Index: extensions/browser/extension_prefs.cc |
diff --git a/extensions/browser/extension_prefs.cc b/extensions/browser/extension_prefs.cc |
index 4d476f52a408a5c429f06dbd2ebc0e38aa9ecb10..36cda32634e3dadd061a8c4c4f90cbfd92e4db0b 100644 |
--- a/extensions/browser/extension_prefs.cc |
+++ b/extensions/browser/extension_prefs.cc |
@@ -1165,6 +1165,7 @@ void ExtensionPrefs::SetToolbarOrder(const ExtensionIdList& extension_ids) { |
void ExtensionPrefs::OnExtensionInstalled( |
const Extension* extension, |
Extension::State initial_state, |
+ Extension::DisableReason initial_disable_reason, |
const syncer::StringOrdinal& page_ordinal, |
int install_flags, |
const std::string& install_parameter) { |
@@ -1174,6 +1175,7 @@ void ExtensionPrefs::OnExtensionInstalled( |
PopulateExtensionInfoPrefs(extension, |
install_time, |
initial_state, |
+ initial_disable_reason, |
install_flags, |
install_parameter, |
extension_dict); |
@@ -1376,6 +1378,7 @@ ExtensionPrefs::GetUninstalledExtensionsInfo() const { |
void ExtensionPrefs::SetDelayedInstallInfo( |
const Extension* extension, |
Extension::State initial_state, |
+ Extension::DisableReason initial_disable_reason, |
int install_flags, |
DelayReason delay_reason, |
const syncer::StringOrdinal& page_ordinal, |
@@ -1384,6 +1387,7 @@ void ExtensionPrefs::SetDelayedInstallInfo( |
PopulateExtensionInfoPrefs(extension, |
time_provider_->GetCurrentTime(), |
initial_state, |
+ initial_disable_reason, |
install_flags, |
install_parameter, |
extension_dict); |
@@ -1960,10 +1964,15 @@ void ExtensionPrefs::PopulateExtensionInfoPrefs( |
const Extension* extension, |
const base::Time install_time, |
Extension::State initial_state, |
+ Extension::DisableReason initial_disable_reason, |
int install_flags, |
const std::string& install_parameter, |
base::DictionaryValue* extension_dict) { |
extension_dict->Set(kPrefState, new base::FundamentalValue(initial_state)); |
+ // Update kPrefDisableReasons to add new disable reason if the extension is |
+ // initially set to be disabled. |
+ if (initial_state == Extension::DISABLED) |
+ AddDisableReason(extension->id(), initial_disable_reason); |
extension_dict->Set(kPrefLocation, |
new base::FundamentalValue(extension->location())); |
extension_dict->Set(kPrefCreationFlags, |