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

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

Issue 12079097: Introduce PrefRegistrySyncable, simplifying PrefServiceSyncable. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge to head again; base::File changes conflicted. Created 7 years, 10 months 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 "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/prefs/pref_notifier.h" 8 #include "base/prefs/pref_notifier.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
11 #include "base/utf_string_conversions.h" 11 #include "base/utf_string_conversions.h"
12 #include "base/version.h" 12 #include "base/version.h"
13 #include "chrome/browser/extensions/admin_policy.h" 13 #include "chrome/browser/extensions/admin_policy.h"
14 #include "chrome/browser/extensions/api/omnibox/omnibox_api.h" 14 #include "chrome/browser/extensions/api/omnibox/omnibox_api.h"
15 #include "chrome/browser/extensions/extension_pref_store.h" 15 #include "chrome/browser/extensions/extension_pref_store.h"
16 #include "chrome/browser/extensions/extension_sorting.h" 16 #include "chrome/browser/extensions/extension_sorting.h"
17 #include "chrome/browser/prefs/pref_registry_syncable.h"
17 #include "chrome/browser/prefs/pref_service.h" 18 #include "chrome/browser/prefs/pref_service.h"
18 #include "chrome/browser/prefs/scoped_user_pref_update.h" 19 #include "chrome/browser/prefs/scoped_user_pref_update.h"
19 #include "chrome/common/chrome_notification_types.h" 20 #include "chrome/common/chrome_notification_types.h"
20 #include "chrome/common/chrome_switches.h" 21 #include "chrome/common/chrome_switches.h"
21 #include "chrome/common/chrome_version_info.h" 22 #include "chrome/common/chrome_version_info.h"
22 #include "chrome/common/extensions/feature_switch.h" 23 #include "chrome/common/extensions/feature_switch.h"
23 #include "chrome/common/extensions/manifest.h" 24 #include "chrome/common/extensions/manifest.h"
24 #include "chrome/common/extensions/permissions/permission_set.h" 25 #include "chrome/common/extensions/permissions/permission_set.h"
25 #include "chrome/common/extensions/permissions/permissions_info.h" 26 #include "chrome/common/extensions/permissions/permissions_info.h"
26 #include "chrome/common/pref_names.h" 27 #include "chrome/common/pref_names.h"
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 base::Time ExtensionPrefs::TimeProvider::GetCurrentTime() const { 364 base::Time ExtensionPrefs::TimeProvider::GetCurrentTime() const {
364 return base::Time::Now(); 365 return base::Time::Now();
365 } 366 }
366 367
367 // 368 //
368 // ExtensionPrefs 369 // ExtensionPrefs
369 // 370 //
370 371
371 // static 372 // static
372 scoped_ptr<ExtensionPrefs> ExtensionPrefs::Create( 373 scoped_ptr<ExtensionPrefs> ExtensionPrefs::Create(
373 PrefServiceSyncable* prefs, 374 PrefService* prefs,
374 const base::FilePath& root_dir, 375 const base::FilePath& root_dir,
375 ExtensionPrefValueMap* extension_pref_value_map, 376 ExtensionPrefValueMap* extension_pref_value_map,
376 bool extensions_disabled) { 377 bool extensions_disabled) {
377 return ExtensionPrefs::Create(prefs, 378 return ExtensionPrefs::Create(prefs,
378 root_dir, 379 root_dir,
379 extension_pref_value_map, 380 extension_pref_value_map,
380 extensions_disabled, 381 extensions_disabled,
381 make_scoped_ptr(new TimeProvider())); 382 make_scoped_ptr(new TimeProvider()));
382 } 383 }
383 384
384 // static 385 // static
385 scoped_ptr<ExtensionPrefs> ExtensionPrefs::Create( 386 scoped_ptr<ExtensionPrefs> ExtensionPrefs::Create(
386 PrefServiceSyncable* pref_service, 387 PrefService* pref_service,
387 const base::FilePath& root_dir, 388 const base::FilePath& root_dir,
388 ExtensionPrefValueMap* extension_pref_value_map, 389 ExtensionPrefValueMap* extension_pref_value_map,
389 bool extensions_disabled, 390 bool extensions_disabled,
390 scoped_ptr<TimeProvider> time_provider) { 391 scoped_ptr<TimeProvider> time_provider) {
391 scoped_ptr<ExtensionPrefs> prefs( 392 scoped_ptr<ExtensionPrefs> prefs(
392 new ExtensionPrefs(pref_service, 393 new ExtensionPrefs(pref_service,
393 root_dir, 394 root_dir,
394 extension_pref_value_map, 395 extension_pref_value_map,
395 time_provider.Pass())); 396 time_provider.Pass()));
396 prefs->Init(extensions_disabled); 397 prefs->Init(extensions_disabled);
(...skipping 1784 matching lines...) Expand 10 before | Expand all | Expand 10 after
2181 return ext; 2182 return ext;
2182 } 2183 }
2183 2184
2184 void ExtensionPrefs::SetGeometryCache( 2185 void ExtensionPrefs::SetGeometryCache(
2185 const std::string& extension_id, 2186 const std::string& extension_id,
2186 scoped_ptr<base::DictionaryValue> cache) { 2187 scoped_ptr<base::DictionaryValue> cache) {
2187 UpdateExtensionPref(extension_id, kPrefGeometryCache, cache.release()); 2188 UpdateExtensionPref(extension_id, kPrefGeometryCache, cache.release());
2188 } 2189 }
2189 2190
2190 ExtensionPrefs::ExtensionPrefs( 2191 ExtensionPrefs::ExtensionPrefs(
2191 PrefServiceSyncable* prefs, 2192 PrefService* prefs,
2192 const base::FilePath& root_dir, 2193 const base::FilePath& root_dir,
2193 ExtensionPrefValueMap* extension_pref_value_map, 2194 ExtensionPrefValueMap* extension_pref_value_map,
2194 scoped_ptr<TimeProvider> time_provider) 2195 scoped_ptr<TimeProvider> time_provider)
2195 : prefs_(prefs), 2196 : prefs_(prefs),
2196 install_directory_(root_dir), 2197 install_directory_(root_dir),
2197 extension_pref_value_map_(extension_pref_value_map), 2198 extension_pref_value_map_(extension_pref_value_map),
2198 ALLOW_THIS_IN_INITIALIZER_LIST(extension_sorting_( 2199 ALLOW_THIS_IN_INITIALIZER_LIST(extension_sorting_(
2199 new ExtensionSorting(this, prefs))), 2200 new ExtensionSorting(this, prefs))),
2200 content_settings_store_(new ContentSettingsStore()), 2201 content_settings_store_(new ContentSettingsStore()),
2201 time_provider_(time_provider.Pass()) { 2202 time_provider_(time_provider.Pass()) {
2202 } 2203 }
2203 2204
2204 void ExtensionPrefs::Init(bool extensions_disabled) { 2205 void ExtensionPrefs::Init(bool extensions_disabled) {
2205 MakePathsRelative(); 2206 MakePathsRelative();
2206 2207
2207 InitPrefStore(extensions_disabled); 2208 InitPrefStore(extensions_disabled);
2208 2209
2209 content_settings_store_->AddObserver(this); 2210 content_settings_store_->AddObserver(this);
2210 } 2211 }
2211 2212
2212 void ExtensionPrefs::SetNeedsStorageGarbageCollection(bool value) { 2213 void ExtensionPrefs::SetNeedsStorageGarbageCollection(bool value) {
2213 prefs_->SetBoolean(prefs::kExtensionStorageGarbageCollect, value); 2214 prefs_->SetBoolean(prefs::kExtensionStorageGarbageCollect, value);
2214 } 2215 }
2215 2216
2216 bool ExtensionPrefs::NeedsStorageGarbageCollection() { 2217 bool ExtensionPrefs::NeedsStorageGarbageCollection() {
2217 return prefs_->GetBoolean(prefs::kExtensionStorageGarbageCollect); 2218 return prefs_->GetBoolean(prefs::kExtensionStorageGarbageCollect);
2218 } 2219 }
2219 2220
2220 // static 2221 // static
2221 void ExtensionPrefs::RegisterUserPrefs(PrefServiceSyncable* prefs) { 2222 void ExtensionPrefs::RegisterUserPrefs(PrefRegistrySyncable* registry) {
2222 prefs->RegisterDictionaryPref(kExtensionsPref, 2223 registry->RegisterDictionaryPref(kExtensionsPref,
2223 PrefServiceSyncable::UNSYNCABLE_PREF); 2224 PrefRegistrySyncable::UNSYNCABLE_PREF);
2224 prefs->RegisterListPref(kExtensionToolbar, 2225 registry->RegisterListPref(kExtensionToolbar,
2225 PrefServiceSyncable::UNSYNCABLE_PREF); 2226 PrefRegistrySyncable::UNSYNCABLE_PREF);
2226 prefs->RegisterListPref(kExtensionActionBox, 2227 registry->RegisterListPref(kExtensionActionBox,
2227 PrefServiceSyncable::UNSYNCABLE_PREF); 2228 PrefRegistrySyncable::UNSYNCABLE_PREF);
2228 prefs->RegisterListPref(kExtensionActionBoxBar, 2229 registry->RegisterListPref(kExtensionActionBoxBar,
2229 PrefServiceSyncable::UNSYNCABLE_PREF); 2230 PrefRegistrySyncable::UNSYNCABLE_PREF);
2230 prefs->RegisterIntegerPref(prefs::kExtensionToolbarSize, 2231 registry->RegisterIntegerPref(prefs::kExtensionToolbarSize,
2231 -1, // default value 2232 -1, // default value
2232 PrefServiceSyncable::UNSYNCABLE_PREF); 2233 PrefRegistrySyncable::UNSYNCABLE_PREF);
2233 prefs->RegisterDictionaryPref(kExtensionsBlacklistUpdate, 2234 registry->RegisterDictionaryPref(kExtensionsBlacklistUpdate,
2234 PrefServiceSyncable::UNSYNCABLE_PREF); 2235 PrefRegistrySyncable::UNSYNCABLE_PREF);
2235 prefs->RegisterListPref(prefs::kExtensionInstallAllowList, 2236 registry->RegisterListPref(prefs::kExtensionInstallAllowList,
2236 PrefServiceSyncable::UNSYNCABLE_PREF); 2237 PrefRegistrySyncable::UNSYNCABLE_PREF);
2237 prefs->RegisterListPref(prefs::kExtensionInstallDenyList, 2238 registry->RegisterListPref(prefs::kExtensionInstallDenyList,
2238 PrefServiceSyncable::UNSYNCABLE_PREF); 2239 PrefRegistrySyncable::UNSYNCABLE_PREF);
2239 prefs->RegisterDictionaryPref(prefs::kExtensionInstallForceList, 2240 registry->RegisterDictionaryPref(prefs::kExtensionInstallForceList,
2240 PrefServiceSyncable::UNSYNCABLE_PREF); 2241 PrefRegistrySyncable::UNSYNCABLE_PREF);
2241 prefs->RegisterListPref(prefs::kExtensionAllowedTypes, 2242 registry->RegisterListPref(prefs::kExtensionAllowedTypes,
2242 PrefServiceSyncable::UNSYNCABLE_PREF); 2243 PrefRegistrySyncable::UNSYNCABLE_PREF);
2243 prefs->RegisterStringPref(kWebStoreLogin, 2244 registry->RegisterStringPref(kWebStoreLogin,
2244 std::string(), // default value 2245 std::string(), // default value
2245 PrefServiceSyncable::UNSYNCABLE_PREF); 2246 PrefRegistrySyncable::UNSYNCABLE_PREF);
2246 prefs->RegisterStringPref(prefs::kExtensionBlacklistUpdateVersion, 2247 registry->RegisterStringPref(prefs::kExtensionBlacklistUpdateVersion,
2247 "0", // default value 2248 "0", // default value
2248 PrefServiceSyncable::UNSYNCABLE_PREF); 2249 PrefRegistrySyncable::UNSYNCABLE_PREF);
2249 prefs->RegisterBooleanPref(prefs::kExtensionStorageGarbageCollect, 2250 registry->RegisterBooleanPref(prefs::kExtensionStorageGarbageCollect,
2250 false, // default value 2251 false, // default value
2251 PrefServiceSyncable::UNSYNCABLE_PREF); 2252 PrefRegistrySyncable::UNSYNCABLE_PREF);
2252 prefs->RegisterInt64Pref(prefs::kLastExtensionsUpdateCheck, 2253 registry->RegisterInt64Pref(prefs::kLastExtensionsUpdateCheck,
2253 0, // default value 2254 0, // default value
2254 PrefServiceSyncable::UNSYNCABLE_PREF); 2255 PrefRegistrySyncable::UNSYNCABLE_PREF);
2255 prefs->RegisterInt64Pref(prefs::kNextExtensionsUpdateCheck, 2256 registry->RegisterInt64Pref(prefs::kNextExtensionsUpdateCheck,
2256 0, // default value 2257 0, // default value
2257 PrefServiceSyncable::UNSYNCABLE_PREF); 2258 PrefRegistrySyncable::UNSYNCABLE_PREF);
2258 prefs->RegisterListPref(prefs::kExtensionAllowedInstallSites, 2259 registry->RegisterListPref(prefs::kExtensionAllowedInstallSites,
2259 PrefServiceSyncable::UNSYNCABLE_PREF); 2260 PrefRegistrySyncable::UNSYNCABLE_PREF);
2260 prefs->RegisterStringPref(kExtensionsLastChromeVersion, 2261 registry->RegisterStringPref(kExtensionsLastChromeVersion,
2261 std::string(), // default value 2262 std::string(), // default value
2262 PrefServiceSyncable::UNSYNCABLE_PREF); 2263 PrefRegistrySyncable::UNSYNCABLE_PREF);
2263 prefs->RegisterBooleanPref(kSideloadWipeoutDone, 2264 registry->RegisterBooleanPref(kSideloadWipeoutDone,
2264 false, 2265 false,
2265 PrefServiceSyncable::UNSYNCABLE_PREF); 2266 PrefRegistrySyncable::UNSYNCABLE_PREF);
2266 } 2267 }
2267 2268
2268 ExtensionIdList ExtensionPrefs::GetExtensionPrefAsVector( 2269 ExtensionIdList ExtensionPrefs::GetExtensionPrefAsVector(
2269 const char* pref) { 2270 const char* pref) {
2270 ExtensionIdList extension_ids; 2271 ExtensionIdList extension_ids;
2271 const ListValue* list_of_values = prefs_->GetList(pref); 2272 const ListValue* list_of_values = prefs_->GetList(pref);
2272 if (!list_of_values) 2273 if (!list_of_values)
2273 return extension_ids; 2274 return extension_ids;
2274 2275
2275 std::string extension_id; 2276 std::string extension_id;
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
2363 is_enabled = initial_state == Extension::ENABLED; 2364 is_enabled = initial_state == Extension::ENABLED;
2364 } 2365 }
2365 2366
2366 extension_pref_value_map_->RegisterExtension(extension_id, install_time, 2367 extension_pref_value_map_->RegisterExtension(extension_id, install_time,
2367 is_enabled); 2368 is_enabled);
2368 content_settings_store_->RegisterExtension(extension_id, install_time, 2369 content_settings_store_->RegisterExtension(extension_id, install_time,
2369 is_enabled); 2370 is_enabled);
2370 } 2371 }
2371 2372
2372 } // namespace extensions 2373 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_prefs.h ('k') | chrome/browser/extensions/extension_prefs_unittest.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698