diff options
author | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-17 12:03:53 +0000 |
---|---|---|
committer | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-17 12:03:53 +0000 |
commit | ec5143b6de34afca2efa50687b2eaa42fc8493a4 (patch) | |
tree | ad6fcd669da4fabfce35a2ff78968b0f68822560 /chrome/browser/extensions/extension_prefs.cc | |
parent | fc20fdd396245282752ec5333d5fbb126b9a8218 (diff) | |
download | chromium_src-ec5143b6de34afca2efa50687b2eaa42fc8493a4.zip chromium_src-ec5143b6de34afca2efa50687b2eaa42fc8493a4.tar.gz chromium_src-ec5143b6de34afca2efa50687b2eaa42fc8493a4.tar.bz2 |
Reland r223124: Don't clear existing extension-defined preferences and content settings when reloading or updating an extension.
TBR=falken@chromium.org,sky@chromium.org
BUG=284385
Original review: https://chromiumcodereview.appspot.com/23694020
Review URL: https://chromiumcodereview.appspot.com/23581015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223587 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_prefs.cc')
-rw-r--r-- | chrome/browser/extensions/extension_prefs.cc | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/chrome/browser/extensions/extension_prefs.cc b/chrome/browser/extensions/extension_prefs.cc index 24f2d84..3c66561 100644 --- a/chrome/browser/extensions/extension_prefs.cc +++ b/chrome/browser/extensions/extension_prefs.cc @@ -1835,13 +1835,26 @@ void ExtensionPrefs::FinishExtensionInfoPrefs( const syncer::StringOrdinal& suggested_page_ordinal, DictionaryValue* extension_dict) { // Reinitializes various preferences with empty dictionaries. - extension_dict->Set(pref_names::kPrefPreferences, new DictionaryValue); - extension_dict->Set(pref_names::kPrefIncognitoPreferences, - new DictionaryValue); - extension_dict->Set(pref_names::kPrefRegularOnlyPreferences, - new DictionaryValue); - extension_dict->Set(pref_names::kPrefContentSettings, new ListValue); - extension_dict->Set(pref_names::kPrefIncognitoContentSettings, new ListValue); + if (!extension_dict->HasKey(pref_names::kPrefPreferences)) + extension_dict->Set(pref_names::kPrefPreferences, new DictionaryValue); + + if (!extension_dict->HasKey(pref_names::kPrefIncognitoPreferences)) { + extension_dict->Set(pref_names::kPrefIncognitoPreferences, + new DictionaryValue); + } + + if (!extension_dict->HasKey(pref_names::kPrefRegularOnlyPreferences)) { + extension_dict->Set(pref_names::kPrefRegularOnlyPreferences, + new DictionaryValue); + } + + if (!extension_dict->HasKey(pref_names::kPrefContentSettings)) + extension_dict->Set(pref_names::kPrefContentSettings, new ListValue); + + if (!extension_dict->HasKey(pref_names::kPrefIncognitoContentSettings)) { + extension_dict->Set(pref_names::kPrefIncognitoContentSettings, + new ListValue); + } // If this point has been reached, any pending installs should be considered // out of date. |