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

Side by Side 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 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <iterator> 7 #include <iterator>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/prefs/pref_notifier.h" 10 #include "base/prefs/pref_notifier.h"
(...skipping 1182 matching lines...) Expand 10 before | Expand all | Expand 10 after
1193 const std::string& id) const { 1193 const std::string& id) const {
1194 return DoesExtensionHaveState(id, Extension::EXTERNAL_EXTENSION_UNINSTALLED); 1194 return DoesExtensionHaveState(id, Extension::EXTERNAL_EXTENSION_UNINSTALLED);
1195 } 1195 }
1196 1196
1197 bool ExtensionPrefs::IsExtensionDisabled( 1197 bool ExtensionPrefs::IsExtensionDisabled(
1198 const std::string& id) const { 1198 const std::string& id) const {
1199 return DoesExtensionHaveState(id, Extension::DISABLED); 1199 return DoesExtensionHaveState(id, Extension::DISABLED);
1200 } 1200 }
1201 1201
1202 ExtensionIdList ExtensionPrefs::GetToolbarOrder() { 1202 ExtensionIdList ExtensionPrefs::GetToolbarOrder() {
1203 return GetExtensionPrefAsContainer<ExtensionIdList>(prefs::kExtensionToolbar); 1203 ExtensionIdList id_list_out;
1204 GetUserExtensionPrefIntoContainer(prefs::kExtensionToolbar, &id_list_out);
1205 return id_list_out;
1204 } 1206 }
1205 1207
1206 void ExtensionPrefs::SetToolbarOrder(const ExtensionIdList& extension_ids) { 1208 void ExtensionPrefs::SetToolbarOrder(const ExtensionIdList& extension_ids) {
1207 SetExtensionPrefFromContainer(prefs::kExtensionToolbar, extension_ids); 1209 SetExtensionPrefFromContainer(prefs::kExtensionToolbar, extension_ids);
1208 } 1210 }
1209 1211
1210 ExtensionIdSet ExtensionPrefs::GetKnownDisabled() { 1212 bool ExtensionPrefs::GetKnownDisabled(ExtensionIdSet* id_set_out) {
1211 return GetExtensionPrefAsContainer<ExtensionIdSet>( 1213 return GetUserExtensionPrefIntoContainer(prefs::kExtensionKnownDisabled,
1212 prefs::kExtensionKnownDisabled); 1214 id_set_out);
1213 } 1215 }
1214 1216
1215 void ExtensionPrefs::SetKnownDisabled(const ExtensionIdSet& extension_ids) { 1217 void ExtensionPrefs::SetKnownDisabled(const ExtensionIdSet& extension_ids) {
1216 SetExtensionPrefFromContainer(prefs::kExtensionKnownDisabled, extension_ids); 1218 SetExtensionPrefFromContainer(prefs::kExtensionKnownDisabled, extension_ids);
1217 } 1219 }
1218 1220
1219 void ExtensionPrefs::OnExtensionInstalled( 1221 void ExtensionPrefs::OnExtensionInstalled(
1220 const Extension* extension, 1222 const Extension* extension,
1221 Extension::State initial_state, 1223 Extension::State initial_state,
1222 bool blacklisted_for_malware, 1224 bool blacklisted_for_malware,
(...skipping 639 matching lines...) Expand 10 before | Expand all | Expand 10 after
1862 0, 1864 0,
1863 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1865 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
1864 #endif 1866 #endif
1865 registry->RegisterDictionaryPref( 1867 registry->RegisterDictionaryPref(
1866 kInstallSignature, 1868 kInstallSignature,
1867 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1869 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
1868 1870
1869 } 1871 }
1870 1872
1871 template <class ExtensionIdContainer> 1873 template <class ExtensionIdContainer>
1872 ExtensionIdContainer ExtensionPrefs::GetExtensionPrefAsContainer( 1874 bool ExtensionPrefs::GetUserExtensionPrefIntoContainer(
1873 const char* pref) { 1875 const char* pref,
1874 ExtensionIdContainer extension_ids; 1876 ExtensionIdContainer* id_container_out) {
1875 const ListValue* list_of_values = prefs_->GetList(pref); 1877 DCHECK(id_container_out->empty());
1876 if (!list_of_values) 1878
1877 return extension_ids; 1879 const Value* user_pref_value = prefs_->GetUserPrefValue(pref);
1880 const ListValue* user_pref_as_list;
1881 if (!user_pref_value || !user_pref_value->GetAsList(&user_pref_as_list))
1882 return false;
1878 1883
1879 std::insert_iterator<ExtensionIdContainer> insert_iterator( 1884 std::insert_iterator<ExtensionIdContainer> insert_iterator(
1880 extension_ids, extension_ids.end()); 1885 *id_container_out, id_container_out->end());
1881 std::string extension_id; 1886 std::string extension_id;
1882 for (size_t i = 0; i < list_of_values->GetSize(); ++i) { 1887 for (base::ListValue::const_iterator value_it = user_pref_as_list->begin();
1883 if (list_of_values->GetString(i, &extension_id)) 1888 value_it != user_pref_as_list->end(); ++value_it) {
1884 insert_iterator = extension_id; 1889 if (!(*value_it)->GetAsString(&extension_id)) {
1890 NOTREACHED();
1891 continue;
1892 }
1893 insert_iterator = extension_id;
1885 } 1894 }
1886 return extension_ids; 1895 return true;
1887 } 1896 }
1888 1897
1889 template <class ExtensionIdContainer> 1898 template <class ExtensionIdContainer>
1890 void ExtensionPrefs::SetExtensionPrefFromContainer( 1899 void ExtensionPrefs::SetExtensionPrefFromContainer(
1891 const char* pref, 1900 const char* pref,
1892 const ExtensionIdContainer& strings) { 1901 const ExtensionIdContainer& strings) {
1893 ListPrefUpdate update(prefs_, pref); 1902 ListPrefUpdate update(prefs_, pref);
1894 ListValue* list_of_values = update.Get(); 1903 ListValue* list_of_values = update.Get();
1895 list_of_values->Clear(); 1904 list_of_values->Clear();
1896 for (typename ExtensionIdContainer::const_iterator iter = strings.begin(); 1905 for (typename ExtensionIdContainer::const_iterator iter = strings.begin();
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
1987 is_enabled = initial_state == Extension::ENABLED; 1996 is_enabled = initial_state == Extension::ENABLED;
1988 } 1997 }
1989 1998
1990 extension_pref_value_map_->RegisterExtension(extension_id, install_time, 1999 extension_pref_value_map_->RegisterExtension(extension_id, install_time,
1991 is_enabled); 2000 is_enabled);
1992 content_settings_store_->RegisterExtension(extension_id, install_time, 2001 content_settings_store_->RegisterExtension(extension_id, install_time,
1993 is_enabled); 2002 is_enabled);
1994 } 2003 }
1995 2004
1996 } // namespace extensions 2005 } // namespace extensions
OLDNEW
« 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