OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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_number_conversions.h" | 7 #include "base/string_number_conversions.h" |
8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "chrome/browser/extensions/extension_pref_store.h" | 10 #include "chrome/browser/extensions/extension_pref_store.h" |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 const char kPrefIncognitoEnabled[] = "incognito"; | 82 const char kPrefIncognitoEnabled[] = "incognito"; |
83 | 83 |
84 // A preference to control whether an extension is allowed to inject script in | 84 // A preference to control whether an extension is allowed to inject script in |
85 // pages with file URLs. | 85 // pages with file URLs. |
86 const char kPrefAllowFileAccess[] = "newAllowFileAccess"; | 86 const char kPrefAllowFileAccess[] = "newAllowFileAccess"; |
87 // TODO(jstritar): As part of fixing http://crbug.com/91577, we revoked all | 87 // TODO(jstritar): As part of fixing http://crbug.com/91577, we revoked all |
88 // extension file access by renaming the pref. We should eventually clean up | 88 // extension file access by renaming the pref. We should eventually clean up |
89 // the old flag and possibly go back to that name. | 89 // the old flag and possibly go back to that name. |
90 // const char kPrefAllowFileAccessOld[] = "allowFileAccess"; | 90 // const char kPrefAllowFileAccessOld[] = "allowFileAccess"; |
91 | 91 |
| 92 // A preference indicating that the extension wants to delay network requests |
| 93 // on browser launch until it indicates it's ready. For example, an extension |
| 94 // using the webRequest API might want to ensure that no requests are sent |
| 95 // before it has registered its event handlers. |
| 96 const char kPrefDelayNetworkRequests[] = "delayNetworkRequests"; |
| 97 |
92 // A preference set by the web store to indicate login information for | 98 // A preference set by the web store to indicate login information for |
93 // purchased apps. | 99 // purchased apps. |
94 const char kWebStoreLogin[] = "extensions.webstore_login"; | 100 const char kWebStoreLogin[] = "extensions.webstore_login"; |
95 | 101 |
96 // A preference set by the the NTP to persist the desired launch container type | 102 // A preference set by the the NTP to persist the desired launch container type |
97 // used for apps. | 103 // used for apps. |
98 const char kPrefLaunchType[] = "launchType"; | 104 const char kPrefLaunchType[] = "launchType"; |
99 | 105 |
100 // A preference determining the order of which the apps appear on the NTP. | 106 // A preference determining the order of which the apps appear on the NTP. |
101 const char kPrefAppLaunchIndex[] = "app_launcher_index"; | 107 const char kPrefAppLaunchIndex[] = "app_launcher_index"; |
(...skipping 768 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
870 UpdateExtensionPref(extension_id, kPrefAllowFileAccess, | 876 UpdateExtensionPref(extension_id, kPrefAllowFileAccess, |
871 Value::CreateBooleanValue(allow)); | 877 Value::CreateBooleanValue(allow)); |
872 } | 878 } |
873 | 879 |
874 bool ExtensionPrefs::HasAllowFileAccessSetting( | 880 bool ExtensionPrefs::HasAllowFileAccessSetting( |
875 const std::string& extension_id) const { | 881 const std::string& extension_id) const { |
876 const DictionaryValue* ext = GetExtensionPref(extension_id); | 882 const DictionaryValue* ext = GetExtensionPref(extension_id); |
877 return ext && ext->HasKey(kPrefAllowFileAccess); | 883 return ext && ext->HasKey(kPrefAllowFileAccess); |
878 } | 884 } |
879 | 885 |
| 886 void ExtensionPrefs::SetDelaysNetworkRequests(const std::string& extension_id, |
| 887 bool does_delay) { |
| 888 if (does_delay) { |
| 889 UpdateExtensionPref(extension_id, kPrefDelayNetworkRequests, |
| 890 Value::CreateBooleanValue(true)); |
| 891 } else { |
| 892 // Remove the pref. |
| 893 UpdateExtensionPref(extension_id, kPrefDelayNetworkRequests, NULL); |
| 894 } |
| 895 } |
| 896 |
| 897 bool ExtensionPrefs::DelaysNetworkRequests(const std::string& extension_id) { |
| 898 return ReadExtensionPrefBoolean(extension_id, kPrefDelayNetworkRequests); |
| 899 } |
| 900 |
880 ExtensionPrefs::LaunchType ExtensionPrefs::GetLaunchType( | 901 ExtensionPrefs::LaunchType ExtensionPrefs::GetLaunchType( |
881 const std::string& extension_id, | 902 const std::string& extension_id, |
882 ExtensionPrefs::LaunchType default_pref_value) { | 903 ExtensionPrefs::LaunchType default_pref_value) { |
883 int value = -1; | 904 int value = -1; |
884 LaunchType result = LAUNCH_REGULAR; | 905 LaunchType result = LAUNCH_REGULAR; |
885 | 906 |
886 if (ReadExtensionPrefInteger(extension_id, kPrefLaunchType, &value) && | 907 if (ReadExtensionPrefInteger(extension_id, kPrefLaunchType, &value) && |
887 (value == LAUNCH_PINNED || | 908 (value == LAUNCH_PINNED || |
888 value == LAUNCH_REGULAR || | 909 value == LAUNCH_REGULAR || |
889 value == LAUNCH_FULLSCREEN || | 910 value == LAUNCH_FULLSCREEN || |
(...skipping 744 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1634 for (DictionaryValue::key_iterator i = prefs->begin_keys(); | 1655 for (DictionaryValue::key_iterator i = prefs->begin_keys(); |
1635 i != prefs->end_keys(); ++i) { | 1656 i != prefs->end_keys(); ++i) { |
1636 Value* value; | 1657 Value* value; |
1637 if (!prefs->GetWithoutPathExpansion(*i, &value)) | 1658 if (!prefs->GetWithoutPathExpansion(*i, &value)) |
1638 continue; | 1659 continue; |
1639 extension_pref_value_map_->SetExtensionPref( | 1660 extension_pref_value_map_->SetExtensionPref( |
1640 *ext_id, *i, kExtensionPrefsScopeIncognitoPersistent, | 1661 *ext_id, *i, kExtensionPrefsScopeIncognitoPersistent, |
1641 value->DeepCopy()); | 1662 value->DeepCopy()); |
1642 } | 1663 } |
1643 | 1664 |
| 1665 // Set content settings. |
1644 const DictionaryValue* extension_prefs = GetExtensionPref(*ext_id); | 1666 const DictionaryValue* extension_prefs = GetExtensionPref(*ext_id); |
1645 DCHECK(extension_prefs); | 1667 DCHECK(extension_prefs); |
1646 ListValue* content_settings = NULL; | 1668 ListValue* content_settings = NULL; |
1647 if (extension_prefs->GetList(kPrefContentSettings, | 1669 if (extension_prefs->GetList(kPrefContentSettings, |
1648 &content_settings)) { | 1670 &content_settings)) { |
1649 content_settings_store_->SetExtensionContentSettingsFromList( | 1671 content_settings_store_->SetExtensionContentSettingsFromList( |
1650 *ext_id, content_settings, | 1672 *ext_id, content_settings, |
1651 kExtensionPrefsScopeRegular); | 1673 kExtensionPrefsScopeRegular); |
1652 } | 1674 } |
1653 if (extension_prefs->GetList(kPrefIncognitoContentSettings, | 1675 if (extension_prefs->GetList(kPrefIncognitoContentSettings, |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1770 prefs->RegisterListPref(prefs::kExtensionInstallAllowList, | 1792 prefs->RegisterListPref(prefs::kExtensionInstallAllowList, |
1771 PrefService::UNSYNCABLE_PREF); | 1793 PrefService::UNSYNCABLE_PREF); |
1772 prefs->RegisterListPref(prefs::kExtensionInstallDenyList, | 1794 prefs->RegisterListPref(prefs::kExtensionInstallDenyList, |
1773 PrefService::UNSYNCABLE_PREF); | 1795 PrefService::UNSYNCABLE_PREF); |
1774 prefs->RegisterListPref(prefs::kExtensionInstallForceList, | 1796 prefs->RegisterListPref(prefs::kExtensionInstallForceList, |
1775 PrefService::UNSYNCABLE_PREF); | 1797 PrefService::UNSYNCABLE_PREF); |
1776 prefs->RegisterStringPref(kWebStoreLogin, | 1798 prefs->RegisterStringPref(kWebStoreLogin, |
1777 std::string() /* default_value */, | 1799 std::string() /* default_value */, |
1778 PrefService::UNSYNCABLE_PREF); | 1800 PrefService::UNSYNCABLE_PREF); |
1779 } | 1801 } |
OLD | NEW |