Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(167)

Side by Side Diff: chrome/browser/extensions/extension_prefs.cc

Issue 5441002: Clean up pref change notification handling. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix extension prefs breakage Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/extension_prefs.h" 5 #include "chrome/browser/extensions/extension_prefs.h"
6 6
7 #include "base/string_util.h" 7 #include "base/string_util.h"
8 #include "base/string_number_conversions.h" 8 #include "base/string_number_conversions.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "chrome/browser/prefs/pref_notifier.h" 10 #include "chrome/browser/prefs/pref_notifier.h"
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 for (std::set<std::string>::const_iterator iter = new_value.begin(); 327 for (std::set<std::string>::const_iterator iter = new_value.begin();
328 iter != new_value.end(); ++iter) 328 iter != new_value.end(); ++iter)
329 value->Append(Value::CreateStringValue(*iter)); 329 value->Append(Value::CreateStringValue(*iter));
330 330
331 UpdateExtensionPref(extension_id, pref_key, value); 331 UpdateExtensionPref(extension_id, pref_key, value);
332 prefs_->ScheduleSavePersistentPrefs(); 332 prefs_->ScheduleSavePersistentPrefs();
333 } 333 }
334 334
335 void ExtensionPrefs::SavePrefsAndNotify() { 335 void ExtensionPrefs::SavePrefsAndNotify() {
336 prefs_->ScheduleSavePersistentPrefs(); 336 prefs_->ScheduleSavePersistentPrefs();
337 prefs_->pref_notifier()->OnUserPreferenceSet(kExtensionsPref); 337 // TODO(mnissler, danno): Don't use pref_notifier() here, but tell the
338 // PrefService by some other means that we changed the pref value.
339 prefs_->pref_notifier()->OnPreferenceChanged(kExtensionsPref);
338 } 340 }
339 341
340 bool ExtensionPrefs::IsBlacklistBitSet(DictionaryValue* ext) { 342 bool ExtensionPrefs::IsBlacklistBitSet(DictionaryValue* ext) {
341 return ReadBooleanFromPref(ext, kPrefBlacklist); 343 return ReadBooleanFromPref(ext, kPrefBlacklist);
342 } 344 }
343 345
344 bool ExtensionPrefs::IsExtensionBlacklisted(const std::string& extension_id) { 346 bool ExtensionPrefs::IsExtensionBlacklisted(const std::string& extension_id) {
345 return ReadExtensionPrefBoolean(extension_id, kPrefBlacklist); 347 return ReadExtensionPrefBoolean(extension_id, kPrefBlacklist);
346 } 348 }
347 349
(...skipping 887 matching lines...) Expand 10 before | Expand all | Expand 10 after
1235 extension_pref_store->prefs()->Get(pref_key, &old_value); 1237 extension_pref_store->prefs()->Get(pref_key, &old_value);
1236 bool changed = !Value::Equals(winning_pref_value, old_value); 1238 bool changed = !Value::Equals(winning_pref_value, old_value);
1237 1239
1238 if (winning_pref_value) { 1240 if (winning_pref_value) {
1239 extension_pref_store->prefs()->Set(pref_key, 1241 extension_pref_store->prefs()->Set(pref_key,
1240 winning_pref_value->DeepCopy()); 1242 winning_pref_value->DeepCopy());
1241 } else { 1243 } else {
1242 extension_pref_store->prefs()->Remove(pref_key, NULL); 1244 extension_pref_store->prefs()->Remove(pref_key, NULL);
1243 } 1245 }
1244 1246
1245 if (changed) { 1247 if (changed)
1246 pref_service()->pref_notifier()->OnPreferenceSet( 1248 pref_service()->pref_notifier()->OnPreferenceChanged(pref_key.c_str());
1247 pref_key.c_str(), PrefNotifier::EXTENSION_STORE);
1248 }
1249 } 1249 }
1250 1250
1251 void ExtensionPrefs::SetExtensionControlledPref(const std::string& extension_id, 1251 void ExtensionPrefs::SetExtensionControlledPref(const std::string& extension_id,
1252 const std::string& pref_key, 1252 const std::string& pref_key,
1253 Value* value) { 1253 Value* value) {
1254 DCHECK(pref_service()->FindPreference(pref_key.c_str())) 1254 DCHECK(pref_service()->FindPreference(pref_key.c_str()))
1255 << "Extension controlled preference key " << pref_key 1255 << "Extension controlled preference key " << pref_key
1256 << " not registered."; 1256 << " not registered.";
1257 DictionaryValue* extension_preferences = 1257 DictionaryValue* extension_preferences =
1258 GetExtensionControlledPrefs(extension_id); 1258 GetExtensionControlledPrefs(extension_id);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1298 void ExtensionPrefs::RegisterUserPrefs(PrefService* prefs) { 1298 void ExtensionPrefs::RegisterUserPrefs(PrefService* prefs) {
1299 prefs->RegisterDictionaryPref(kExtensionsPref); 1299 prefs->RegisterDictionaryPref(kExtensionsPref);
1300 prefs->RegisterListPref(kExtensionToolbar); 1300 prefs->RegisterListPref(kExtensionToolbar);
1301 prefs->RegisterIntegerPref(prefs::kExtensionToolbarSize, -1); 1301 prefs->RegisterIntegerPref(prefs::kExtensionToolbarSize, -1);
1302 prefs->RegisterDictionaryPref(kExtensionsBlacklistUpdate); 1302 prefs->RegisterDictionaryPref(kExtensionsBlacklistUpdate);
1303 prefs->RegisterListPref(prefs::kExtensionInstallAllowList); 1303 prefs->RegisterListPref(prefs::kExtensionInstallAllowList);
1304 prefs->RegisterListPref(prefs::kExtensionInstallDenyList); 1304 prefs->RegisterListPref(prefs::kExtensionInstallDenyList);
1305 prefs->RegisterListPref(prefs::kExtensionInstallForceList); 1305 prefs->RegisterListPref(prefs::kExtensionInstallForceList);
1306 prefs->RegisterStringPref(kWebStoreLogin, std::string() /* default_value */); 1306 prefs->RegisterStringPref(kWebStoreLogin, std::string() /* default_value */);
1307 } 1307 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698