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

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

Issue 140343002: extensions: Relocate pref name constants. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: add missing include for mac Created 6 years, 11 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 <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"
11 #include "base/prefs/pref_service.h" 11 #include "base/prefs/pref_service.h"
12 #include "base/strings/string_number_conversions.h" 12 #include "base/strings/string_number_conversions.h"
13 #include "base/strings/string_util.h" 13 #include "base/strings/string_util.h"
14 #include "base/value_conversions.h" 14 #include "base/value_conversions.h"
15 #include "chrome/browser/extensions/api/content_settings/content_settings_store. h" 15 #include "chrome/browser/extensions/api/content_settings/content_settings_store. h"
16 #include "chrome/browser/extensions/api/preference/preference_api.h" 16 #include "chrome/browser/extensions/api/preference/preference_api.h"
17 #include "chrome/browser/extensions/extension_pref_store.h" 17 #include "chrome/browser/extensions/extension_pref_store.h"
18 #include "chrome/browser/extensions/extension_prefs_factory.h" 18 #include "chrome/browser/extensions/extension_prefs_factory.h"
19 #include "chrome/common/pref_names.h"
20 #include "components/user_prefs/pref_registry_syncable.h" 19 #include "components/user_prefs/pref_registry_syncable.h"
21 #include "extensions/browser/admin_policy.h" 20 #include "extensions/browser/admin_policy.h"
22 #include "extensions/browser/app_sorting.h" 21 #include "extensions/browser/app_sorting.h"
23 #include "extensions/browser/event_router.h" 22 #include "extensions/browser/event_router.h"
24 #include "extensions/browser/pref_names.h" 23 #include "extensions/browser/pref_names.h"
25 #include "extensions/common/feature_switch.h" 24 #include "extensions/common/feature_switch.h"
26 #include "extensions/common/manifest.h" 25 #include "extensions/common/manifest.h"
27 #include "extensions/common/permissions/permission_set.h" 26 #include "extensions/common/permissions/permission_set.h"
28 #include "extensions/common/permissions/permissions_info.h" 27 #include "extensions/common/permissions/permissions_info.h"
29 #include "extensions/common/url_pattern.h" 28 #include "extensions/common/url_pattern.h"
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 const char kPrefLastLaunchTime[] = "last_launch_time"; 174 const char kPrefLastLaunchTime[] = "last_launch_time";
176 175
177 // A list of installed ids and a signature. 176 // A list of installed ids and a signature.
178 const char kInstallSignature[] = "extensions.install_signature"; 177 const char kInstallSignature[] = "extensions.install_signature";
179 178
180 // Provider of write access to a dictionary storing extension prefs. 179 // Provider of write access to a dictionary storing extension prefs.
181 class ScopedExtensionPrefUpdate : public DictionaryPrefUpdate { 180 class ScopedExtensionPrefUpdate : public DictionaryPrefUpdate {
182 public: 181 public:
183 ScopedExtensionPrefUpdate(PrefService* service, 182 ScopedExtensionPrefUpdate(PrefService* service,
184 const std::string& extension_id) : 183 const std::string& extension_id) :
185 DictionaryPrefUpdate(service, prefs::kExtensionsPref), 184 DictionaryPrefUpdate(service, pref_names::kExtensions),
186 extension_id_(extension_id) {} 185 extension_id_(extension_id) {}
187 186
188 virtual ~ScopedExtensionPrefUpdate() { 187 virtual ~ScopedExtensionPrefUpdate() {
189 } 188 }
190 189
191 // DictionaryPrefUpdate overrides: 190 // DictionaryPrefUpdate overrides:
192 virtual base::DictionaryValue* Get() OVERRIDE { 191 virtual base::DictionaryValue* Get() OVERRIDE {
193 base::DictionaryValue* dict = DictionaryPrefUpdate::Get(); 192 base::DictionaryValue* dict = DictionaryPrefUpdate::Get();
194 base::DictionaryValue* extension = NULL; 193 base::DictionaryValue* extension = NULL;
195 if (!dict->GetDictionary(extension_id_, &extension)) { 194 if (!dict->GetDictionary(extension_id_, &extension)) {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 } 234 }
236 235
237 // 236 //
238 // ScopedUpdate 237 // ScopedUpdate
239 // 238 //
240 template <typename T, base::Value::Type type_enum_value> 239 template <typename T, base::Value::Type type_enum_value>
241 ExtensionPrefs::ScopedUpdate<T, type_enum_value>::ScopedUpdate( 240 ExtensionPrefs::ScopedUpdate<T, type_enum_value>::ScopedUpdate(
242 ExtensionPrefs* prefs, 241 ExtensionPrefs* prefs,
243 const std::string& extension_id, 242 const std::string& extension_id,
244 const std::string& key) 243 const std::string& key)
245 : update_(prefs->pref_service(), prefs::kExtensionsPref), 244 : update_(prefs->pref_service(), pref_names::kExtensions),
246 extension_id_(extension_id), 245 extension_id_(extension_id),
247 key_(key) { 246 key_(key) {
248 DCHECK(Extension::IdIsValid(extension_id_)); 247 DCHECK(Extension::IdIsValid(extension_id_));
249 } 248 }
250 249
251 template <typename T, base::Value::Type type_enum_value> 250 template <typename T, base::Value::Type type_enum_value>
252 ExtensionPrefs::ScopedUpdate<T, type_enum_value>::~ScopedUpdate() { 251 ExtensionPrefs::ScopedUpdate<T, type_enum_value>::~ScopedUpdate() {
253 } 252 }
254 253
255 template <typename T, base::Value::Type type_enum_value> 254 template <typename T, base::Value::Type type_enum_value>
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 base::FilePath::StringType retval = child.value().substr( 342 base::FilePath::StringType retval = child.value().substr(
344 parent.value().length()); 343 parent.value().length());
345 if (base::FilePath::IsSeparator(retval[0])) 344 if (base::FilePath::IsSeparator(retval[0]))
346 return retval.substr(1); 345 return retval.substr(1);
347 else 346 else
348 return retval; 347 return retval;
349 } 348 }
350 349
351 void ExtensionPrefs::MakePathsRelative() { 350 void ExtensionPrefs::MakePathsRelative() {
352 const base::DictionaryValue* dict = 351 const base::DictionaryValue* dict =
353 prefs_->GetDictionary(prefs::kExtensionsPref); 352 prefs_->GetDictionary(pref_names::kExtensions);
354 if (!dict || dict->empty()) 353 if (!dict || dict->empty())
355 return; 354 return;
356 355
357 // Collect all extensions ids with absolute paths in |absolute_keys|. 356 // Collect all extensions ids with absolute paths in |absolute_keys|.
358 std::set<std::string> absolute_keys; 357 std::set<std::string> absolute_keys;
359 for (base::DictionaryValue::Iterator i(*dict); !i.IsAtEnd(); i.Advance()) { 358 for (base::DictionaryValue::Iterator i(*dict); !i.IsAtEnd(); i.Advance()) {
360 const base::DictionaryValue* extension_dict = NULL; 359 const base::DictionaryValue* extension_dict = NULL;
361 if (!i.value().GetAsDictionary(&extension_dict)) 360 if (!i.value().GetAsDictionary(&extension_dict))
362 continue; 361 continue;
363 int location_value; 362 int location_value;
364 if (extension_dict->GetInteger(kPrefLocation, &location_value) && 363 if (extension_dict->GetInteger(kPrefLocation, &location_value) &&
365 Manifest::IsUnpackedLocation( 364 Manifest::IsUnpackedLocation(
366 static_cast<Manifest::Location>(location_value))) { 365 static_cast<Manifest::Location>(location_value))) {
367 // Unpacked extensions can have absolute paths. 366 // Unpacked extensions can have absolute paths.
368 continue; 367 continue;
369 } 368 }
370 base::FilePath::StringType path_string; 369 base::FilePath::StringType path_string;
371 if (!extension_dict->GetString(kPrefPath, &path_string)) 370 if (!extension_dict->GetString(kPrefPath, &path_string))
372 continue; 371 continue;
373 base::FilePath path(path_string); 372 base::FilePath path(path_string);
374 if (path.IsAbsolute()) 373 if (path.IsAbsolute())
375 absolute_keys.insert(i.key()); 374 absolute_keys.insert(i.key());
376 } 375 }
377 if (absolute_keys.empty()) 376 if (absolute_keys.empty())
378 return; 377 return;
379 378
380 // Fix these paths. 379 // Fix these paths.
381 DictionaryPrefUpdate update(prefs_, prefs::kExtensionsPref); 380 DictionaryPrefUpdate update(prefs_, pref_names::kExtensions);
382 base::DictionaryValue* update_dict = update.Get(); 381 base::DictionaryValue* update_dict = update.Get();
383 for (std::set<std::string>::iterator i = absolute_keys.begin(); 382 for (std::set<std::string>::iterator i = absolute_keys.begin();
384 i != absolute_keys.end(); ++i) { 383 i != absolute_keys.end(); ++i) {
385 base::DictionaryValue* extension_dict = NULL; 384 base::DictionaryValue* extension_dict = NULL;
386 if (!update_dict->GetDictionaryWithoutPathExpansion(*i, &extension_dict)) { 385 if (!update_dict->GetDictionaryWithoutPathExpansion(*i, &extension_dict)) {
387 NOTREACHED() << "Control should never reach here for extension " << *i; 386 NOTREACHED() << "Control should never reach here for extension " << *i;
388 continue; 387 continue;
389 } 388 }
390 base::FilePath::StringType path_string; 389 base::FilePath::StringType path_string;
391 extension_dict->GetString(kPrefPath, &path_string); 390 extension_dict->GetString(kPrefPath, &path_string);
392 base::FilePath path(path_string); 391 base::FilePath path(path_string);
393 extension_dict->SetString(kPrefPath, 392 extension_dict->SetString(kPrefPath,
394 MakePathRelative(install_directory_, path)); 393 MakePathRelative(install_directory_, path));
395 } 394 }
396 } 395 }
397 396
398 const base::DictionaryValue* ExtensionPrefs::GetExtensionPref( 397 const base::DictionaryValue* ExtensionPrefs::GetExtensionPref(
399 const std::string& extension_id) const { 398 const std::string& extension_id) const {
400 const base::DictionaryValue* extensions = 399 const base::DictionaryValue* extensions =
401 prefs_->GetDictionary(prefs::kExtensionsPref); 400 prefs_->GetDictionary(pref_names::kExtensions);
402 const base::DictionaryValue* extension_dict = NULL; 401 const base::DictionaryValue* extension_dict = NULL;
403 if (!extensions || 402 if (!extensions ||
404 !extensions->GetDictionary(extension_id, &extension_dict)) { 403 !extensions->GetDictionary(extension_id, &extension_dict)) {
405 return NULL; 404 return NULL;
406 } 405 }
407 return extension_dict; 406 return extension_dict;
408 } 407 }
409 408
410 void ExtensionPrefs::UpdateExtensionPref(const std::string& extension_id, 409 void ExtensionPrefs::UpdateExtensionPref(const std::string& extension_id,
411 const std::string& key, 410 const std::string& key,
412 base::Value* data_value) { 411 base::Value* data_value) {
413 if (!Extension::IdIsValid(extension_id)) { 412 if (!Extension::IdIsValid(extension_id)) {
414 NOTREACHED() << "Invalid extension_id " << extension_id; 413 NOTREACHED() << "Invalid extension_id " << extension_id;
415 return; 414 return;
416 } 415 }
417 ScopedExtensionPrefUpdate update(prefs_, extension_id); 416 ScopedExtensionPrefUpdate update(prefs_, extension_id);
418 if (data_value) 417 if (data_value)
419 update->Set(key, data_value); 418 update->Set(key, data_value);
420 else 419 else
421 update->Remove(key, NULL); 420 update->Remove(key, NULL);
422 } 421 }
423 422
424 void ExtensionPrefs::DeleteExtensionPrefs(const std::string& extension_id) { 423 void ExtensionPrefs::DeleteExtensionPrefs(const std::string& extension_id) {
425 extension_pref_value_map_->UnregisterExtension(extension_id); 424 extension_pref_value_map_->UnregisterExtension(extension_id);
426 content_settings_store_->UnregisterExtension(extension_id); 425 content_settings_store_->UnregisterExtension(extension_id);
427 DictionaryPrefUpdate update(prefs_, prefs::kExtensionsPref); 426 DictionaryPrefUpdate update(prefs_, pref_names::kExtensions);
428 base::DictionaryValue* dict = update.Get(); 427 base::DictionaryValue* dict = update.Get();
429 dict->Remove(extension_id, NULL); 428 dict->Remove(extension_id, NULL);
430 } 429 }
431 430
432 bool ExtensionPrefs::ReadPrefAsBoolean(const std::string& extension_id, 431 bool ExtensionPrefs::ReadPrefAsBoolean(const std::string& extension_id,
433 const std::string& pref_key, 432 const std::string& pref_key,
434 bool* out_value) const { 433 bool* out_value) const {
435 const base::DictionaryValue* ext = GetExtensionPref(extension_id); 434 const base::DictionaryValue* ext = GetExtensionPref(extension_id);
436 if (!ext || !ext->GetBoolean(pref_key, out_value)) 435 if (!ext || !ext->GetBoolean(pref_key, out_value))
437 return false; 436 return false;
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
672 } 671 }
673 672
674 void ExtensionPrefs::SetWipeoutAcknowledged( 673 void ExtensionPrefs::SetWipeoutAcknowledged(
675 const std::string& extension_id, 674 const std::string& extension_id,
676 bool value) { 675 bool value) {
677 UpdateExtensionPref(extension_id, kPrefWipeoutAcknowledged, 676 UpdateExtensionPref(extension_id, kPrefWipeoutAcknowledged,
678 value ? base::Value::CreateBooleanValue(value) : NULL); 677 value ? base::Value::CreateBooleanValue(value) : NULL);
679 } 678 }
680 679
681 bool ExtensionPrefs::SetAlertSystemFirstRun() { 680 bool ExtensionPrefs::SetAlertSystemFirstRun() {
682 if (prefs_->GetBoolean(prefs::kExtensionAlertsInitializedPref)) { 681 if (prefs_->GetBoolean(pref_names::kAlertsInitialized)) {
683 return true; 682 return true;
684 } 683 }
685 prefs_->SetBoolean(prefs::kExtensionAlertsInitializedPref, true); 684 prefs_->SetBoolean(pref_names::kAlertsInitialized, true);
686 return false; 685 return false;
687 } 686 }
688 687
689 bool ExtensionPrefs::ExtensionsBlacklistedByDefault() const { 688 bool ExtensionPrefs::ExtensionsBlacklistedByDefault() const {
690 return admin_policy::BlacklistedByDefault( 689 return admin_policy::BlacklistedByDefault(
691 prefs_->GetList(prefs::kExtensionInstallDenyList)); 690 prefs_->GetList(pref_names::kInstallDenyList));
692 } 691 }
693 692
694 bool ExtensionPrefs::DidExtensionEscalatePermissions( 693 bool ExtensionPrefs::DidExtensionEscalatePermissions(
695 const std::string& extension_id) { 694 const std::string& extension_id) {
696 return ReadPrefAsBooleanAndReturn(extension_id, 695 return ReadPrefAsBooleanAndReturn(extension_id,
697 kExtensionDidEscalatePermissions); 696 kExtensionDidEscalatePermissions);
698 } 697 }
699 698
700 void ExtensionPrefs::SetDidExtensionEscalatePermissions( 699 void ExtensionPrefs::SetDidExtensionEscalatePermissions(
701 const Extension* extension, bool did_escalate) { 700 const Extension* extension, bool did_escalate) {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
734 } 733 }
735 734
736 void ExtensionPrefs::ClearDisableReasons(const std::string& extension_id) { 735 void ExtensionPrefs::ClearDisableReasons(const std::string& extension_id) {
737 UpdateExtensionPref(extension_id, kPrefDisableReasons, NULL); 736 UpdateExtensionPref(extension_id, kPrefDisableReasons, NULL);
738 } 737 }
739 738
740 std::set<std::string> ExtensionPrefs::GetBlacklistedExtensions() { 739 std::set<std::string> ExtensionPrefs::GetBlacklistedExtensions() {
741 std::set<std::string> ids; 740 std::set<std::string> ids;
742 741
743 const base::DictionaryValue* extensions = 742 const base::DictionaryValue* extensions =
744 prefs_->GetDictionary(prefs::kExtensionsPref); 743 prefs_->GetDictionary(pref_names::kExtensions);
745 if (!extensions) 744 if (!extensions)
746 return ids; 745 return ids;
747 746
748 for (base::DictionaryValue::Iterator it(*extensions); 747 for (base::DictionaryValue::Iterator it(*extensions);
749 !it.IsAtEnd(); it.Advance()) { 748 !it.IsAtEnd(); it.Advance()) {
750 if (!it.value().IsType(base::Value::TYPE_DICTIONARY)) { 749 if (!it.value().IsType(base::Value::TYPE_DICTIONARY)) {
751 NOTREACHED() << "Invalid pref for extension " << it.key(); 750 NOTREACHED() << "Invalid pref for extension " << it.key();
752 continue; 751 continue;
753 } 752 }
754 if (IsBlacklistBitSet( 753 if (IsBlacklistBitSet(
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
1080 return DoesExtensionHaveState(id, Extension::EXTERNAL_EXTENSION_UNINSTALLED); 1079 return DoesExtensionHaveState(id, Extension::EXTERNAL_EXTENSION_UNINSTALLED);
1081 } 1080 }
1082 1081
1083 bool ExtensionPrefs::IsExtensionDisabled( 1082 bool ExtensionPrefs::IsExtensionDisabled(
1084 const std::string& id) const { 1083 const std::string& id) const {
1085 return DoesExtensionHaveState(id, Extension::DISABLED); 1084 return DoesExtensionHaveState(id, Extension::DISABLED);
1086 } 1085 }
1087 1086
1088 ExtensionIdList ExtensionPrefs::GetToolbarOrder() { 1087 ExtensionIdList ExtensionPrefs::GetToolbarOrder() {
1089 ExtensionIdList id_list_out; 1088 ExtensionIdList id_list_out;
1090 GetUserExtensionPrefIntoContainer(prefs::kExtensionToolbar, &id_list_out); 1089 GetUserExtensionPrefIntoContainer(pref_names::kToolbar, &id_list_out);
1091 return id_list_out; 1090 return id_list_out;
1092 } 1091 }
1093 1092
1094 void ExtensionPrefs::SetToolbarOrder(const ExtensionIdList& extension_ids) { 1093 void ExtensionPrefs::SetToolbarOrder(const ExtensionIdList& extension_ids) {
1095 SetExtensionPrefFromContainer(prefs::kExtensionToolbar, extension_ids); 1094 SetExtensionPrefFromContainer(pref_names::kToolbar, extension_ids);
1096 } 1095 }
1097 1096
1098 bool ExtensionPrefs::GetKnownDisabled(ExtensionIdSet* id_set_out) { 1097 bool ExtensionPrefs::GetKnownDisabled(ExtensionIdSet* id_set_out) {
1099 return GetUserExtensionPrefIntoContainer(prefs::kExtensionKnownDisabled, 1098 return GetUserExtensionPrefIntoContainer(pref_names::kKnownDisabled,
1100 id_set_out); 1099 id_set_out);
1101 } 1100 }
1102 1101
1103 void ExtensionPrefs::SetKnownDisabled(const ExtensionIdSet& extension_ids) { 1102 void ExtensionPrefs::SetKnownDisabled(const ExtensionIdSet& extension_ids) {
1104 SetExtensionPrefFromContainer(prefs::kExtensionKnownDisabled, extension_ids); 1103 SetExtensionPrefFromContainer(pref_names::kKnownDisabled, extension_ids);
1105 } 1104 }
1106 1105
1107 void ExtensionPrefs::OnExtensionInstalled( 1106 void ExtensionPrefs::OnExtensionInstalled(
1108 const Extension* extension, 1107 const Extension* extension,
1109 Extension::State initial_state, 1108 Extension::State initial_state,
1110 bool blacklisted_for_malware, 1109 bool blacklisted_for_malware,
1111 const syncer::StringOrdinal& page_ordinal) { 1110 const syncer::StringOrdinal& page_ordinal) {
1112 ScopedExtensionPrefUpdate update(prefs_, extension->id()); 1111 ScopedExtensionPrefUpdate update(prefs_, extension->id());
1113 base::DictionaryValue* extension_dict = update.Get(); 1112 base::DictionaryValue* extension_dict = update.Get();
1114 const base::Time install_time = time_provider_->GetCurrentTime(); 1113 const base::Time install_time = time_provider_->GetCurrentTime();
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
1225 } 1224 }
1226 1225
1227 return scoped_ptr<ExtensionInfo>(new ExtensionInfo( 1226 return scoped_ptr<ExtensionInfo>(new ExtensionInfo(
1228 manifest, extension_id, base::FilePath(path), location)); 1227 manifest, extension_id, base::FilePath(path), location));
1229 } 1228 }
1230 1229
1231 scoped_ptr<ExtensionInfo> ExtensionPrefs::GetInstalledExtensionInfo( 1230 scoped_ptr<ExtensionInfo> ExtensionPrefs::GetInstalledExtensionInfo(
1232 const std::string& extension_id) const { 1231 const std::string& extension_id) const {
1233 const base::DictionaryValue* ext = NULL; 1232 const base::DictionaryValue* ext = NULL;
1234 const base::DictionaryValue* extensions = 1233 const base::DictionaryValue* extensions =
1235 prefs_->GetDictionary(prefs::kExtensionsPref); 1234 prefs_->GetDictionary(pref_names::kExtensions);
1236 if (!extensions || 1235 if (!extensions ||
1237 !extensions->GetDictionaryWithoutPathExpansion(extension_id, &ext)) 1236 !extensions->GetDictionaryWithoutPathExpansion(extension_id, &ext))
1238 return scoped_ptr<ExtensionInfo>(); 1237 return scoped_ptr<ExtensionInfo>();
1239 int state_value; 1238 int state_value;
1240 if (!ext->GetInteger(kPrefState, &state_value) || 1239 if (!ext->GetInteger(kPrefState, &state_value) ||
1241 state_value == Extension::ENABLED_COMPONENT) { 1240 state_value == Extension::ENABLED_COMPONENT) {
1242 // Old preferences files may not have kPrefState for component extensions. 1241 // Old preferences files may not have kPrefState for component extensions.
1243 return scoped_ptr<ExtensionInfo>(); 1242 return scoped_ptr<ExtensionInfo>();
1244 } 1243 }
1245 1244
1246 if (state_value == Extension::EXTERNAL_EXTENSION_UNINSTALLED) { 1245 if (state_value == Extension::EXTERNAL_EXTENSION_UNINSTALLED) {
1247 LOG(WARNING) << "External extension with id " << extension_id 1246 LOG(WARNING) << "External extension with id " << extension_id
1248 << " has been uninstalled by the user"; 1247 << " has been uninstalled by the user";
1249 return scoped_ptr<ExtensionInfo>(); 1248 return scoped_ptr<ExtensionInfo>();
1250 } 1249 }
1251 1250
1252 return GetInstalledInfoHelper(extension_id, ext); 1251 return GetInstalledInfoHelper(extension_id, ext);
1253 } 1252 }
1254 1253
1255 scoped_ptr<ExtensionPrefs::ExtensionsInfo> 1254 scoped_ptr<ExtensionPrefs::ExtensionsInfo>
1256 ExtensionPrefs::GetInstalledExtensionsInfo() const { 1255 ExtensionPrefs::GetInstalledExtensionsInfo() const {
1257 scoped_ptr<ExtensionsInfo> extensions_info(new ExtensionsInfo); 1256 scoped_ptr<ExtensionsInfo> extensions_info(new ExtensionsInfo);
1258 1257
1259 const base::DictionaryValue* extensions = 1258 const base::DictionaryValue* extensions =
1260 prefs_->GetDictionary(prefs::kExtensionsPref); 1259 prefs_->GetDictionary(pref_names::kExtensions);
1261 for (base::DictionaryValue::Iterator extension_id(*extensions); 1260 for (base::DictionaryValue::Iterator extension_id(*extensions);
1262 !extension_id.IsAtEnd(); extension_id.Advance()) { 1261 !extension_id.IsAtEnd(); extension_id.Advance()) {
1263 if (!Extension::IdIsValid(extension_id.key())) 1262 if (!Extension::IdIsValid(extension_id.key()))
1264 continue; 1263 continue;
1265 1264
1266 scoped_ptr<ExtensionInfo> info = 1265 scoped_ptr<ExtensionInfo> info =
1267 GetInstalledExtensionInfo(extension_id.key()); 1266 GetInstalledExtensionInfo(extension_id.key());
1268 if (info) 1267 if (info)
1269 extensions_info->push_back(linked_ptr<ExtensionInfo>(info.release())); 1268 extensions_info->push_back(linked_ptr<ExtensionInfo>(info.release()));
1270 } 1269 }
1271 1270
1272 return extensions_info.Pass(); 1271 return extensions_info.Pass();
1273 } 1272 }
1274 1273
1275 scoped_ptr<ExtensionPrefs::ExtensionsInfo> 1274 scoped_ptr<ExtensionPrefs::ExtensionsInfo>
1276 ExtensionPrefs::GetUninstalledExtensionsInfo() const { 1275 ExtensionPrefs::GetUninstalledExtensionsInfo() const {
1277 scoped_ptr<ExtensionsInfo> extensions_info(new ExtensionsInfo); 1276 scoped_ptr<ExtensionsInfo> extensions_info(new ExtensionsInfo);
1278 1277
1279 const base::DictionaryValue* extensions = 1278 const base::DictionaryValue* extensions =
1280 prefs_->GetDictionary(prefs::kExtensionsPref); 1279 prefs_->GetDictionary(pref_names::kExtensions);
1281 for (base::DictionaryValue::Iterator extension_id(*extensions); 1280 for (base::DictionaryValue::Iterator extension_id(*extensions);
1282 !extension_id.IsAtEnd(); extension_id.Advance()) { 1281 !extension_id.IsAtEnd(); extension_id.Advance()) {
1283 const base::DictionaryValue* ext = NULL; 1282 const base::DictionaryValue* ext = NULL;
1284 if (!Extension::IdIsValid(extension_id.key()) || 1283 if (!Extension::IdIsValid(extension_id.key()) ||
1285 !IsExternalExtensionUninstalled(extension_id.key()) || 1284 !IsExternalExtensionUninstalled(extension_id.key()) ||
1286 !extension_id.value().GetAsDictionary(&ext)) 1285 !extension_id.value().GetAsDictionary(&ext))
1287 continue; 1286 continue;
1288 1287
1289 scoped_ptr<ExtensionInfo> info = 1288 scoped_ptr<ExtensionInfo> info =
1290 GetInstalledInfoHelper(extension_id.key(), ext); 1289 GetInstalledInfoHelper(extension_id.key(), ext);
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
1400 return DELAY_REASON_NONE; 1399 return DELAY_REASON_NONE;
1401 1400
1402 return static_cast<DelayReason>(delay_reason); 1401 return static_cast<DelayReason>(delay_reason);
1403 } 1402 }
1404 1403
1405 scoped_ptr<ExtensionPrefs::ExtensionsInfo> ExtensionPrefs:: 1404 scoped_ptr<ExtensionPrefs::ExtensionsInfo> ExtensionPrefs::
1406 GetAllDelayedInstallInfo() const { 1405 GetAllDelayedInstallInfo() const {
1407 scoped_ptr<ExtensionsInfo> extensions_info(new ExtensionsInfo); 1406 scoped_ptr<ExtensionsInfo> extensions_info(new ExtensionsInfo);
1408 1407
1409 const base::DictionaryValue* extensions = 1408 const base::DictionaryValue* extensions =
1410 prefs_->GetDictionary(prefs::kExtensionsPref); 1409 prefs_->GetDictionary(pref_names::kExtensions);
1411 for (base::DictionaryValue::Iterator extension_id(*extensions); 1410 for (base::DictionaryValue::Iterator extension_id(*extensions);
1412 !extension_id.IsAtEnd(); extension_id.Advance()) { 1411 !extension_id.IsAtEnd(); extension_id.Advance()) {
1413 if (!Extension::IdIsValid(extension_id.key())) 1412 if (!Extension::IdIsValid(extension_id.key()))
1414 continue; 1413 continue;
1415 1414
1416 scoped_ptr<ExtensionInfo> info = GetDelayedInstallInfo(extension_id.key()); 1415 scoped_ptr<ExtensionInfo> info = GetDelayedInstallInfo(extension_id.key());
1417 if (info) 1416 if (info)
1418 extensions_info->push_back(linked_ptr<ExtensionInfo>(info.release())); 1417 extensions_info->push_back(linked_ptr<ExtensionInfo>(info.release()));
1419 } 1418 }
1420 1419
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
1532 } 1531 }
1533 } 1532 }
1534 1533
1535 // static 1534 // static
1536 ExtensionIdList ExtensionPrefs::GetExtensionsFrom( 1535 ExtensionIdList ExtensionPrefs::GetExtensionsFrom(
1537 const PrefService* pref_service) { 1536 const PrefService* pref_service) {
1538 ExtensionIdList result; 1537 ExtensionIdList result;
1539 1538
1540 const base::DictionaryValue* extension_prefs = NULL; 1539 const base::DictionaryValue* extension_prefs = NULL;
1541 const base::Value* extension_prefs_value = 1540 const base::Value* extension_prefs_value =
1542 pref_service->GetUserPrefValue(prefs::kExtensionsPref); 1541 pref_service->GetUserPrefValue(pref_names::kExtensions);
1543 if (!extension_prefs_value || 1542 if (!extension_prefs_value ||
1544 !extension_prefs_value->GetAsDictionary(&extension_prefs)) { 1543 !extension_prefs_value->GetAsDictionary(&extension_prefs)) {
1545 return result; // Empty set 1544 return result; // Empty set
1546 } 1545 }
1547 1546
1548 for (base::DictionaryValue::Iterator it(*extension_prefs); !it.IsAtEnd(); 1547 for (base::DictionaryValue::Iterator it(*extension_prefs); !it.IsAtEnd();
1549 it.Advance()) { 1548 it.Advance()) {
1550 const base::DictionaryValue* ext = NULL; 1549 const base::DictionaryValue* ext = NULL;
1551 if (!it.value().GetAsDictionary(&ext)) { 1550 if (!it.value().GetAsDictionary(&ext)) {
1552 NOTREACHED() << "Invalid pref for extension " << it.key(); 1551 NOTREACHED() << "Invalid pref for extension " << it.key();
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1610 bool has_incognito_pref_value = false; 1609 bool has_incognito_pref_value = false;
1611 extension_pref_value_map_->GetEffectivePrefValue(pref_key, 1610 extension_pref_value_map_->GetEffectivePrefValue(pref_key,
1612 true, 1611 true,
1613 &has_incognito_pref_value); 1612 &has_incognito_pref_value);
1614 return has_incognito_pref_value; 1613 return has_incognito_pref_value;
1615 } 1614 }
1616 1615
1617 URLPatternSet ExtensionPrefs::GetAllowedInstallSites() { 1616 URLPatternSet ExtensionPrefs::GetAllowedInstallSites() {
1618 URLPatternSet result; 1617 URLPatternSet result;
1619 const base::ListValue* list = 1618 const base::ListValue* list =
1620 prefs_->GetList(prefs::kExtensionAllowedInstallSites); 1619 prefs_->GetList(pref_names::kAllowedInstallSites);
1621 CHECK(list); 1620 CHECK(list);
1622 1621
1623 for (size_t i = 0; i < list->GetSize(); ++i) { 1622 for (size_t i = 0; i < list->GetSize(); ++i) {
1624 std::string entry_string; 1623 std::string entry_string;
1625 URLPattern entry(URLPattern::SCHEME_ALL); 1624 URLPattern entry(URLPattern::SCHEME_ALL);
1626 if (!list->GetString(i, &entry_string) || 1625 if (!list->GetString(i, &entry_string) ||
1627 entry.Parse(entry_string) != URLPattern::PARSE_SUCCESS) { 1626 entry.Parse(entry_string) != URLPattern::PARSE_SUCCESS) {
1628 LOG(ERROR) << "Invalid value for preference: " 1627 LOG(ERROR) << "Invalid value for preference: "
1629 << prefs::kExtensionAllowedInstallSites 1628 << pref_names::kAllowedInstallSites << "." << i;
1630 << "." << i;
1631 continue; 1629 continue;
1632 } 1630 }
1633 result.AddPattern(entry); 1631 result.AddPattern(entry);
1634 } 1632 }
1635 1633
1636 return result; 1634 return result;
1637 } 1635 }
1638 1636
1639 const base::DictionaryValue* ExtensionPrefs::GetGeometryCache( 1637 const base::DictionaryValue* ExtensionPrefs::GetGeometryCache(
1640 const std::string& extension_id) const { 1638 const std::string& extension_id) const {
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1684 app_sorting_(app_sorting.Pass()), 1682 app_sorting_(app_sorting.Pass()),
1685 content_settings_store_(new ContentSettingsStore()), 1683 content_settings_store_(new ContentSettingsStore()),
1686 time_provider_(time_provider.Pass()), 1684 time_provider_(time_provider.Pass()),
1687 extensions_disabled_(extensions_disabled) { 1685 extensions_disabled_(extensions_disabled) {
1688 app_sorting_->SetExtensionScopedPrefs(this), 1686 app_sorting_->SetExtensionScopedPrefs(this),
1689 MakePathsRelative(); 1687 MakePathsRelative();
1690 InitPrefStore(); 1688 InitPrefStore();
1691 } 1689 }
1692 1690
1693 void ExtensionPrefs::SetNeedsStorageGarbageCollection(bool value) { 1691 void ExtensionPrefs::SetNeedsStorageGarbageCollection(bool value) {
1694 prefs_->SetBoolean(prefs::kExtensionStorageGarbageCollect, value); 1692 prefs_->SetBoolean(pref_names::kStorageGarbageCollect, value);
1695 } 1693 }
1696 1694
1697 bool ExtensionPrefs::NeedsStorageGarbageCollection() { 1695 bool ExtensionPrefs::NeedsStorageGarbageCollection() {
1698 return prefs_->GetBoolean(prefs::kExtensionStorageGarbageCollect); 1696 return prefs_->GetBoolean(pref_names::kStorageGarbageCollect);
1699 } 1697 }
1700 1698
1701 // static 1699 // static
1702 void ExtensionPrefs::RegisterProfilePrefs( 1700 void ExtensionPrefs::RegisterProfilePrefs(
1703 user_prefs::PrefRegistrySyncable* registry) { 1701 user_prefs::PrefRegistrySyncable* registry) {
1704 registry->RegisterDictionaryPref( 1702 registry->RegisterDictionaryPref(
1705 prefs::kExtensionsPref, 1703 pref_names::kExtensions,
1706 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1704 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
1707 registry->RegisterListPref(prefs::kExtensionToolbar, 1705 registry->RegisterListPref(pref_names::kToolbar,
1708 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); 1706 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
1709 registry->RegisterIntegerPref( 1707 registry->RegisterIntegerPref(
1710 prefs::kExtensionToolbarSize, 1708 pref_names::kToolbarSize,
1711 -1, // default value 1709 -1, // default value
1712 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1710 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
1713 registry->RegisterDictionaryPref( 1711 registry->RegisterDictionaryPref(
1714 kExtensionsBlacklistUpdate, 1712 kExtensionsBlacklistUpdate,
1715 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1713 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
1716 registry->RegisterListPref(prefs::kExtensionInstallAllowList, 1714 registry->RegisterListPref(pref_names::kInstallAllowList,
1717 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1715 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
1718 registry->RegisterListPref(prefs::kExtensionInstallDenyList, 1716 registry->RegisterListPref(pref_names::kInstallDenyList,
1719 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1717 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
1720 registry->RegisterDictionaryPref( 1718 registry->RegisterDictionaryPref(
1721 prefs::kExtensionInstallForceList, 1719 pref_names::kInstallForceList,
1722 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1720 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
1723 registry->RegisterListPref(prefs::kExtensionAllowedTypes, 1721 registry->RegisterListPref(pref_names::kAllowedTypes,
1724 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1722 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
1725 registry->RegisterStringPref(
1726 prefs::kExtensionBlacklistUpdateVersion,
1727 "0", // default value
1728 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
1729 registry->RegisterBooleanPref( 1723 registry->RegisterBooleanPref(
1730 prefs::kExtensionStorageGarbageCollect, 1724 pref_names::kStorageGarbageCollect,
1731 false, // default value 1725 false, // default value
1732 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1726 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
1733 registry->RegisterInt64Pref( 1727 registry->RegisterInt64Pref(
1734 prefs::kLastExtensionsUpdateCheck, 1728 pref_names::kLastUpdateCheck,
1735 0, // default value 1729 0, // default value
1736 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1730 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
1737 registry->RegisterInt64Pref( 1731 registry->RegisterInt64Pref(
1738 prefs::kNextExtensionsUpdateCheck, 1732 pref_names::kNextUpdateCheck,
1739 0, // default value 1733 0, // default value
1740 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1734 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
1741 registry->RegisterListPref(prefs::kExtensionAllowedInstallSites, 1735 registry->RegisterListPref(pref_names::kAllowedInstallSites,
1742 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1736 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
1743 registry->RegisterStringPref( 1737 registry->RegisterStringPref(
1744 prefs::kExtensionsLastChromeVersion, 1738 pref_names::kLastChromeVersion,
1745 std::string(), // default value 1739 std::string(), // default value
1746 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1740 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
1747 registry->RegisterListPref(prefs::kExtensionKnownDisabled, 1741 registry->RegisterListPref(pref_names::kKnownDisabled,
1748 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1742 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
1749 #if defined(TOOLKIT_VIEWS) 1743 #if defined(TOOLKIT_VIEWS)
1750 registry->RegisterIntegerPref( 1744 registry->RegisterIntegerPref(
1751 prefs::kBrowserActionContainerWidth, 1745 pref_names::kBrowserActionContainerWidth,
1752 0, 1746 0,
1753 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1747 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
1754 #endif 1748 #endif
1755 registry->RegisterDictionaryPref( 1749 registry->RegisterDictionaryPref(
1756 kInstallSignature, 1750 kInstallSignature,
1757 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1751 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
1758 1752
1759 registry->RegisterListPref(prefs::kNativeMessagingBlacklist, 1753 registry->RegisterListPref(pref_names::kNativeMessagingBlacklist,
1760 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1754 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
1761 registry->RegisterListPref(prefs::kNativeMessagingWhitelist, 1755 registry->RegisterListPref(pref_names::kNativeMessagingWhitelist,
1762 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 1756 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
1763 } 1757 }
1764 1758
1765 template <class ExtensionIdContainer> 1759 template <class ExtensionIdContainer>
1766 bool ExtensionPrefs::GetUserExtensionPrefIntoContainer( 1760 bool ExtensionPrefs::GetUserExtensionPrefIntoContainer(
1767 const char* pref, 1761 const char* pref,
1768 ExtensionIdContainer* id_container_out) { 1762 ExtensionIdContainer* id_container_out) {
1769 DCHECK(id_container_out->empty()); 1763 DCHECK(id_container_out->empty());
1770 1764
1771 const base::Value* user_pref_value = prefs_->GetUserPrefValue(pref); 1765 const base::Value* user_pref_value = prefs_->GetUserPrefValue(pref);
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
1890 is_enabled = initial_state == Extension::ENABLED; 1884 is_enabled = initial_state == Extension::ENABLED;
1891 } 1885 }
1892 1886
1893 extension_pref_value_map_->RegisterExtension(extension_id, install_time, 1887 extension_pref_value_map_->RegisterExtension(extension_id, install_time,
1894 is_enabled); 1888 is_enabled);
1895 content_settings_store_->RegisterExtension(extension_id, install_time, 1889 content_settings_store_->RegisterExtension(extension_id, install_time,
1896 is_enabled); 1890 is_enabled);
1897 } 1891 }
1898 1892
1899 } // namespace extensions 1893 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698