| Index: chrome/browser/extensions/extension_management.cc
|
| diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/extensions/extension_management.cc
|
| index 1c07ebb50afc25096f236f28a155f6b5f78849d2..1ecca8dfbd830c52726e4d0f3f8ea620735363f9 100644
|
| --- a/chrome/browser/extensions/extension_management.cc
|
| +++ b/chrome/browser/extensions/extension_management.cc
|
| @@ -45,8 +45,6 @@ bool ParseIndividualSettings(
|
| const base::DictionaryValue* dict,
|
| Scope scope,
|
| ExtensionManagement::IndividualSettings* settings) {
|
| - settings->Reset();
|
| -
|
| std::string installation_mode;
|
| if (dict->GetStringWithoutPathExpansion(schema_constants::kInstallationMode,
|
| &installation_mode)) {
|
| @@ -91,6 +89,13 @@ bool ParseIndividualSettings(
|
|
|
| } // namespace
|
|
|
| +ExtensionManagement::IndividualSettings::IndividualSettings() {
|
| + Reset();
|
| +}
|
| +
|
| +ExtensionManagement::IndividualSettings::~IndividualSettings() {
|
| +}
|
| +
|
| void ExtensionManagement::IndividualSettings::Reset() {
|
| installation_mode = ExtensionManagement::INSTALLATION_ALLOWED;
|
| update_url.clear();
|
| @@ -334,20 +339,18 @@ void ExtensionManagement::Refresh() {
|
| LOG(WARNING) << kMalformedPreferenceWarning;
|
| continue;
|
| }
|
| - if (StartsWithASCII(
|
| - iter.key(), schema_constants::kUpdateUrlPrefix, true))
|
| + if (StartsWithASCII(iter.key(), schema_constants::kUpdateUrlPrefix, true))
|
| continue;
|
| const std::string& extension_id = iter.key();
|
| if (!crx_file::id_util::IdIsValid(extension_id)) {
|
| LOG(WARNING) << kMalformedPreferenceWarning;
|
| continue;
|
| }
|
| - IndividualSettings by_id;
|
| - if (ParseIndividualSettings(subdict, SCOPE_INDIVIDUAL, &by_id)) {
|
| - *AccessById(extension_id) = by_id;
|
| - } else {
|
| + IndividualSettings* by_id = AccessById(extension_id);
|
| + if (!ParseIndividualSettings(subdict, SCOPE_INDIVIDUAL, by_id)) {
|
| + settings_by_id_.erase(settings_by_id_.find(extension_id));
|
| LOG(WARNING) << "Malformed Extension Management settings for "
|
| - << iter.key() << ".";
|
| + << extension_id << ".";
|
| }
|
| }
|
| }
|
|
|