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

Unified Diff: chrome/browser/extensions/extension_prefs.cc

Issue 92173003: Proper initialization for known_disabled. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: +DCHECK Created 7 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/extensions/extension_prefs.h ('k') | chrome/browser/extensions/extension_prefs_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/extension_prefs.cc
diff --git a/chrome/browser/extensions/extension_prefs.cc b/chrome/browser/extensions/extension_prefs.cc
index 21158a511493b133bc5736470c41ce47d74e28ae..fa1feb528551b0ea1fb72bb2b27e1b8abbea3da6 100644
--- a/chrome/browser/extensions/extension_prefs.cc
+++ b/chrome/browser/extensions/extension_prefs.cc
@@ -1200,16 +1200,18 @@ bool ExtensionPrefs::IsExtensionDisabled(
}
ExtensionIdList ExtensionPrefs::GetToolbarOrder() {
- return GetExtensionPrefAsContainer<ExtensionIdList>(prefs::kExtensionToolbar);
+ ExtensionIdList id_list_out;
+ GetUserExtensionPrefIntoContainer(prefs::kExtensionToolbar, &id_list_out);
+ return id_list_out;
}
void ExtensionPrefs::SetToolbarOrder(const ExtensionIdList& extension_ids) {
SetExtensionPrefFromContainer(prefs::kExtensionToolbar, extension_ids);
}
-ExtensionIdSet ExtensionPrefs::GetKnownDisabled() {
- return GetExtensionPrefAsContainer<ExtensionIdSet>(
- prefs::kExtensionKnownDisabled);
+bool ExtensionPrefs::GetKnownDisabled(ExtensionIdSet* id_set_out) {
+ return GetUserExtensionPrefIntoContainer(prefs::kExtensionKnownDisabled,
+ id_set_out);
}
void ExtensionPrefs::SetKnownDisabled(const ExtensionIdSet& extension_ids) {
@@ -1869,21 +1871,28 @@ void ExtensionPrefs::RegisterProfilePrefs(
}
template <class ExtensionIdContainer>
-ExtensionIdContainer ExtensionPrefs::GetExtensionPrefAsContainer(
- const char* pref) {
- ExtensionIdContainer extension_ids;
- const ListValue* list_of_values = prefs_->GetList(pref);
- if (!list_of_values)
- return extension_ids;
+bool ExtensionPrefs::GetUserExtensionPrefIntoContainer(
+ const char* pref,
+ ExtensionIdContainer* id_container_out) {
+ DCHECK(id_container_out->empty());
+
+ const Value* user_pref_value = prefs_->GetUserPrefValue(pref);
+ const ListValue* user_pref_as_list;
+ if (!user_pref_value || !user_pref_value->GetAsList(&user_pref_as_list))
+ return false;
std::insert_iterator<ExtensionIdContainer> insert_iterator(
- extension_ids, extension_ids.end());
+ *id_container_out, id_container_out->end());
std::string extension_id;
- for (size_t i = 0; i < list_of_values->GetSize(); ++i) {
- if (list_of_values->GetString(i, &extension_id))
- insert_iterator = extension_id;
+ for (base::ListValue::const_iterator value_it = user_pref_as_list->begin();
+ value_it != user_pref_as_list->end(); ++value_it) {
+ if (!(*value_it)->GetAsString(&extension_id)) {
+ NOTREACHED();
+ continue;
+ }
+ insert_iterator = extension_id;
}
- return extension_ids;
+ return true;
}
template <class ExtensionIdContainer>
« no previous file with comments | « chrome/browser/extensions/extension_prefs.h ('k') | chrome/browser/extensions/extension_prefs_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698