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

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: Add to PrefRegistrySyncable and PrefServiceSyncable to let sync know of pre-registered prefs. 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_number_conversions.h" 9 #include "base/string_number_conversions.h"
10 #include "base/string_util.h" 10 #include "base/string_util.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 FilePath& root_dir, 375 const 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 FilePath& root_dir, 388 const 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 1780 matching lines...) Expand 10 before | Expand all | Expand 10 after
2177 return ext; 2178 return ext;
2178 } 2179 }
2179 2180
2180 void ExtensionPrefs::SetGeometryCache( 2181 void ExtensionPrefs::SetGeometryCache(
2181 const std::string& extension_id, 2182 const std::string& extension_id,
2182 scoped_ptr<base::DictionaryValue> cache) { 2183 scoped_ptr<base::DictionaryValue> cache) {
2183 UpdateExtensionPref(extension_id, kPrefGeometryCache, cache.release()); 2184 UpdateExtensionPref(extension_id, kPrefGeometryCache, cache.release());
2184 } 2185 }
2185 2186
2186 ExtensionPrefs::ExtensionPrefs( 2187 ExtensionPrefs::ExtensionPrefs(
2187 PrefServiceSyncable* prefs, 2188 PrefService* prefs,
2188 const FilePath& root_dir, 2189 const FilePath& root_dir,
2189 ExtensionPrefValueMap* extension_pref_value_map, 2190 ExtensionPrefValueMap* extension_pref_value_map,
2190 scoped_ptr<TimeProvider> time_provider) 2191 scoped_ptr<TimeProvider> time_provider)
2191 : prefs_(prefs), 2192 : prefs_(prefs),
2192 install_directory_(root_dir), 2193 install_directory_(root_dir),
2193 extension_pref_value_map_(extension_pref_value_map), 2194 extension_pref_value_map_(extension_pref_value_map),
2194 ALLOW_THIS_IN_INITIALIZER_LIST(extension_sorting_( 2195 ALLOW_THIS_IN_INITIALIZER_LIST(extension_sorting_(
2195 new ExtensionSorting(this, prefs))), 2196 new ExtensionSorting(this, prefs))),
2196 content_settings_store_(new ContentSettingsStore()), 2197 content_settings_store_(new ContentSettingsStore()),
2197 time_provider_(time_provider.Pass()) { 2198 time_provider_(time_provider.Pass()) {
2198 } 2199 }
2199 2200
2200 void ExtensionPrefs::Init(bool extensions_disabled) { 2201 void ExtensionPrefs::Init(bool extensions_disabled) {
2201 MakePathsRelative(); 2202 MakePathsRelative();
2202 2203
2203 InitPrefStore(extensions_disabled); 2204 InitPrefStore(extensions_disabled);
2204 2205
2205 content_settings_store_->AddObserver(this); 2206 content_settings_store_->AddObserver(this);
2206 } 2207 }
2207 2208
2208 void ExtensionPrefs::SetNeedsStorageGarbageCollection(bool value) { 2209 void ExtensionPrefs::SetNeedsStorageGarbageCollection(bool value) {
2209 prefs_->SetBoolean(prefs::kExtensionStorageGarbageCollect, value); 2210 prefs_->SetBoolean(prefs::kExtensionStorageGarbageCollect, value);
2210 } 2211 }
2211 2212
2212 bool ExtensionPrefs::NeedsStorageGarbageCollection() { 2213 bool ExtensionPrefs::NeedsStorageGarbageCollection() {
2213 return prefs_->GetBoolean(prefs::kExtensionStorageGarbageCollect); 2214 return prefs_->GetBoolean(prefs::kExtensionStorageGarbageCollect);
2214 } 2215 }
2215 2216
2216 // static 2217 // static
2217 void ExtensionPrefs::RegisterUserPrefs(PrefServiceSyncable* prefs) { 2218 void ExtensionPrefs::RegisterUserPrefs(PrefRegistrySyncable* registry) {
2218 prefs->RegisterDictionaryPref(kExtensionsPref, 2219 registry->RegisterDictionaryPref(kExtensionsPref,
2219 PrefServiceSyncable::UNSYNCABLE_PREF); 2220 PrefRegistrySyncable::UNSYNCABLE_PREF);
2220 prefs->RegisterListPref(kExtensionToolbar, 2221 registry->RegisterListPref(kExtensionToolbar,
2221 PrefServiceSyncable::UNSYNCABLE_PREF); 2222 PrefRegistrySyncable::UNSYNCABLE_PREF);
2222 prefs->RegisterListPref(kExtensionActionBox, 2223 registry->RegisterListPref(kExtensionActionBox,
2223 PrefServiceSyncable::UNSYNCABLE_PREF); 2224 PrefRegistrySyncable::UNSYNCABLE_PREF);
2224 prefs->RegisterListPref(kExtensionActionBoxBar, 2225 registry->RegisterListPref(kExtensionActionBoxBar,
2225 PrefServiceSyncable::UNSYNCABLE_PREF); 2226 PrefRegistrySyncable::UNSYNCABLE_PREF);
2226 prefs->RegisterIntegerPref(prefs::kExtensionToolbarSize, 2227 registry->RegisterIntegerPref(prefs::kExtensionToolbarSize,
2227 -1, // default value 2228 -1, // default value
2228 PrefServiceSyncable::UNSYNCABLE_PREF); 2229 PrefRegistrySyncable::UNSYNCABLE_PREF);
2229 prefs->RegisterDictionaryPref(kExtensionsBlacklistUpdate, 2230 registry->RegisterDictionaryPref(kExtensionsBlacklistUpdate,
2230 PrefServiceSyncable::UNSYNCABLE_PREF); 2231 PrefRegistrySyncable::UNSYNCABLE_PREF);
2231 prefs->RegisterListPref(prefs::kExtensionInstallAllowList, 2232 registry->RegisterListPref(prefs::kExtensionInstallAllowList,
2232 PrefServiceSyncable::UNSYNCABLE_PREF); 2233 PrefRegistrySyncable::UNSYNCABLE_PREF);
2233 prefs->RegisterListPref(prefs::kExtensionInstallDenyList, 2234 registry->RegisterListPref(prefs::kExtensionInstallDenyList,
2234 PrefServiceSyncable::UNSYNCABLE_PREF); 2235 PrefRegistrySyncable::UNSYNCABLE_PREF);
2235 prefs->RegisterDictionaryPref(prefs::kExtensionInstallForceList, 2236 registry->RegisterDictionaryPref(prefs::kExtensionInstallForceList,
2236 PrefServiceSyncable::UNSYNCABLE_PREF); 2237 PrefRegistrySyncable::UNSYNCABLE_PREF);
2237 prefs->RegisterListPref(prefs::kExtensionAllowedTypes, 2238 registry->RegisterListPref(prefs::kExtensionAllowedTypes,
2238 PrefServiceSyncable::UNSYNCABLE_PREF); 2239 PrefRegistrySyncable::UNSYNCABLE_PREF);
2239 prefs->RegisterStringPref(kWebStoreLogin, 2240 registry->RegisterStringPref(kWebStoreLogin,
2240 std::string(), // default value 2241 std::string(), // default value
2241 PrefServiceSyncable::UNSYNCABLE_PREF); 2242 PrefRegistrySyncable::UNSYNCABLE_PREF);
2242 prefs->RegisterStringPref(prefs::kExtensionBlacklistUpdateVersion, 2243 registry->RegisterStringPref(prefs::kExtensionBlacklistUpdateVersion,
2243 "0", // default value 2244 "0", // default value
2244 PrefServiceSyncable::UNSYNCABLE_PREF); 2245 PrefRegistrySyncable::UNSYNCABLE_PREF);
2245 prefs->RegisterBooleanPref(prefs::kExtensionStorageGarbageCollect, 2246 registry->RegisterBooleanPref(prefs::kExtensionStorageGarbageCollect,
2246 false, // default value 2247 false, // default value
2247 PrefServiceSyncable::UNSYNCABLE_PREF); 2248 PrefRegistrySyncable::UNSYNCABLE_PREF);
2248 prefs->RegisterInt64Pref(prefs::kLastExtensionsUpdateCheck, 2249 registry->RegisterInt64Pref(prefs::kLastExtensionsUpdateCheck,
2249 0, // default value 2250 0, // default value
2250 PrefServiceSyncable::UNSYNCABLE_PREF); 2251 PrefRegistrySyncable::UNSYNCABLE_PREF);
2251 prefs->RegisterInt64Pref(prefs::kNextExtensionsUpdateCheck, 2252 registry->RegisterInt64Pref(prefs::kNextExtensionsUpdateCheck,
2252 0, // default value 2253 0, // default value
2253 PrefServiceSyncable::UNSYNCABLE_PREF); 2254 PrefRegistrySyncable::UNSYNCABLE_PREF);
2254 prefs->RegisterListPref(prefs::kExtensionAllowedInstallSites, 2255 registry->RegisterListPref(prefs::kExtensionAllowedInstallSites,
2255 PrefServiceSyncable::UNSYNCABLE_PREF); 2256 PrefRegistrySyncable::UNSYNCABLE_PREF);
2256 prefs->RegisterStringPref(kExtensionsLastChromeVersion, 2257 registry->RegisterStringPref(kExtensionsLastChromeVersion,
2257 std::string(), // default value 2258 std::string(), // default value
2258 PrefServiceSyncable::UNSYNCABLE_PREF); 2259 PrefRegistrySyncable::UNSYNCABLE_PREF);
2259 prefs->RegisterBooleanPref(kSideloadWipeoutDone, 2260 registry->RegisterBooleanPref(kSideloadWipeoutDone,
2260 false, 2261 false,
2261 PrefServiceSyncable::UNSYNCABLE_PREF); 2262 PrefRegistrySyncable::UNSYNCABLE_PREF);
2262 } 2263 }
2263 2264
2264 ExtensionIdList ExtensionPrefs::GetExtensionPrefAsVector( 2265 ExtensionIdList ExtensionPrefs::GetExtensionPrefAsVector(
2265 const char* pref) { 2266 const char* pref) {
2266 ExtensionIdList extension_ids; 2267 ExtensionIdList extension_ids;
2267 const ListValue* list_of_values = prefs_->GetList(pref); 2268 const ListValue* list_of_values = prefs_->GetList(pref);
2268 if (!list_of_values) 2269 if (!list_of_values)
2269 return extension_ids; 2270 return extension_ids;
2270 2271
2271 std::string extension_id; 2272 std::string extension_id;
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
2359 is_enabled = initial_state == Extension::ENABLED; 2360 is_enabled = initial_state == Extension::ENABLED;
2360 } 2361 }
2361 2362
2362 extension_pref_value_map_->RegisterExtension(extension_id, install_time, 2363 extension_pref_value_map_->RegisterExtension(extension_id, install_time,
2363 is_enabled); 2364 is_enabled);
2364 content_settings_store_->RegisterExtension(extension_id, install_time, 2365 content_settings_store_->RegisterExtension(extension_id, install_time,
2365 is_enabled); 2366 is_enabled);
2366 } 2367 }
2367 2368
2368 } // namespace extensions 2369 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698