| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/string_util.h" | 7 #include "base/string_util.h" |
| 8 #include "base/string_number_conversions.h" | 8 #include "base/string_number_conversions.h" |
| 9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
| 10 #include "chrome/common/extensions/extension.h" | 10 #include "chrome/common/extensions/extension.h" |
| (...skipping 23 matching lines...) Expand all Loading... |
| 34 | 34 |
| 35 // The version number. | 35 // The version number. |
| 36 const char kPrefVersion[] = "manifest.version"; | 36 const char kPrefVersion[] = "manifest.version"; |
| 37 | 37 |
| 38 // Indicates if an extension is blacklisted: | 38 // Indicates if an extension is blacklisted: |
| 39 const char kPrefBlacklist[] = "blacklist"; | 39 const char kPrefBlacklist[] = "blacklist"; |
| 40 | 40 |
| 41 // Indicates whether to show an install warning when the user enables. | 41 // Indicates whether to show an install warning when the user enables. |
| 42 const char kExtensionDidEscalatePermissions[] = "install_warning_on_enable"; | 42 const char kExtensionDidEscalatePermissions[] = "install_warning_on_enable"; |
| 43 | 43 |
| 44 // A preference that tracks extension shelf configuration. This is a list | |
| 45 // object read from the Preferences file, containing a list of toolstrip URLs. | |
| 46 const char kExtensionShelf[] = "extensions.shelf"; | |
| 47 | |
| 48 // A preference that tracks admin policy regarding which extensions the user | 44 // A preference that tracks admin policy regarding which extensions the user |
| 49 // can and can not install. This preference is a list object, containing | 45 // can and can not install. This preference is a list object, containing |
| 50 // strings that list extension ids. Denylist can contain "*" meaning all | 46 // strings that list extension ids. Denylist can contain "*" meaning all |
| 51 // extensions. | 47 // extensions. |
| 52 const char kExtensionInstallAllowList[] = "extensions.install.allowlist"; | 48 const char kExtensionInstallAllowList[] = "extensions.install.allowlist"; |
| 53 const char kExtensionInstallDenyList[] = "extensions.install.denylist"; | 49 const char kExtensionInstallDenyList[] = "extensions.install.denylist"; |
| 54 | 50 |
| 55 // A preference that tracks browser action toolbar configuration. This is a list | 51 // A preference that tracks browser action toolbar configuration. This is a list |
| 56 // object stored in the Preferences file. The extensions are stored by ID. | 52 // object stored in the Preferences file. The extensions are stored by ID. |
| 57 const char kExtensionToolbar[] = "extensions.toolbar"; | 53 const char kExtensionToolbar[] = "extensions.toolbar"; |
| (...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 431 | 427 |
| 432 // Check to see if the extension has been killed. | 428 // Check to see if the extension has been killed. |
| 433 int state; | 429 int state; |
| 434 if (extension->GetInteger(kPrefState, &state) && | 430 if (extension->GetInteger(kPrefState, &state) && |
| 435 state == static_cast<int>(Extension::KILLBIT)) { | 431 state == static_cast<int>(Extension::KILLBIT)) { |
| 436 killed_ids->insert(StringToLowerASCII(key_name)); | 432 killed_ids->insert(StringToLowerASCII(key_name)); |
| 437 } | 433 } |
| 438 } | 434 } |
| 439 } | 435 } |
| 440 | 436 |
| 441 ExtensionPrefs::URLList ExtensionPrefs::GetShelfToolstripOrder() { | |
| 442 URLList urls; | |
| 443 const ListValue* toolstrip_urls = prefs_->GetList(kExtensionShelf); | |
| 444 if (toolstrip_urls) { | |
| 445 for (size_t i = 0; i < toolstrip_urls->GetSize(); ++i) { | |
| 446 std::string url; | |
| 447 if (toolstrip_urls->GetString(i, &url)) | |
| 448 urls.push_back(GURL(url)); | |
| 449 } | |
| 450 } | |
| 451 return urls; | |
| 452 } | |
| 453 | |
| 454 void ExtensionPrefs::SetShelfToolstripOrder(const URLList& urls) { | |
| 455 ListValue* toolstrip_urls = prefs_->GetMutableList(kExtensionShelf); | |
| 456 toolstrip_urls->Clear(); | |
| 457 for (size_t i = 0; i < urls.size(); ++i) { | |
| 458 GURL url = urls[i]; | |
| 459 toolstrip_urls->Append(new StringValue(url.spec())); | |
| 460 } | |
| 461 prefs_->ScheduleSavePersistentPrefs(); | |
| 462 } | |
| 463 | |
| 464 std::vector<std::string> ExtensionPrefs::GetToolbarOrder() { | 437 std::vector<std::string> ExtensionPrefs::GetToolbarOrder() { |
| 465 std::vector<std::string> extension_ids; | 438 std::vector<std::string> extension_ids; |
| 466 const ListValue* toolbar_order = prefs_->GetList(kExtensionToolbar); | 439 const ListValue* toolbar_order = prefs_->GetList(kExtensionToolbar); |
| 467 if (toolbar_order) { | 440 if (toolbar_order) { |
| 468 for (size_t i = 0; i < toolbar_order->GetSize(); ++i) { | 441 for (size_t i = 0; i < toolbar_order->GetSize(); ++i) { |
| 469 std::string extension_id; | 442 std::string extension_id; |
| 470 if (toolbar_order->GetString(i, &extension_id)) | 443 if (toolbar_order->GetString(i, &extension_id)) |
| 471 extension_ids.push_back(extension_id); | 444 extension_ids.push_back(extension_id); |
| 472 } | 445 } |
| 473 } | 446 } |
| (...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 814 if (extension_prefs->GetDictionary(kIdleInstallInfo, &info)) | 787 if (extension_prefs->GetDictionary(kIdleInstallInfo, &info)) |
| 815 result.insert(id); | 788 result.insert(id); |
| 816 } | 789 } |
| 817 return result; | 790 return result; |
| 818 } | 791 } |
| 819 | 792 |
| 820 | 793 |
| 821 // static | 794 // static |
| 822 void ExtensionPrefs::RegisterUserPrefs(PrefService* prefs) { | 795 void ExtensionPrefs::RegisterUserPrefs(PrefService* prefs) { |
| 823 prefs->RegisterDictionaryPref(kExtensionsPref); | 796 prefs->RegisterDictionaryPref(kExtensionsPref); |
| 824 prefs->RegisterListPref(kExtensionShelf); | |
| 825 prefs->RegisterListPref(kExtensionToolbar); | 797 prefs->RegisterListPref(kExtensionToolbar); |
| 826 prefs->RegisterIntegerPref(prefs::kExtensionToolbarSize, -1); | 798 prefs->RegisterIntegerPref(prefs::kExtensionToolbarSize, -1); |
| 827 prefs->RegisterDictionaryPref(kExtensionsBlacklistUpdate); | 799 prefs->RegisterDictionaryPref(kExtensionsBlacklistUpdate); |
| 828 prefs->RegisterListPref(kExtensionInstallAllowList); | 800 prefs->RegisterListPref(kExtensionInstallAllowList); |
| 829 prefs->RegisterListPref(kExtensionInstallDenyList); | 801 prefs->RegisterListPref(kExtensionInstallDenyList); |
| 830 } | 802 } |
| OLD | NEW |