| 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>
|
|
|