OLD | NEW |
(Empty) | |
| 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 |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #include "chrome/browser/policy/configuration_policy_handler_list.h" |
| 6 |
| 7 #include "chrome/browser/policy/configuration_policy_handler.h" |
| 8 #include "chrome/common/pref_names.h" |
| 9 |
| 10 namespace policy { |
| 11 |
| 12 const PolicyToPreferenceMapEntry kSimplePolicyMap[] = { |
| 13 { Value::TYPE_STRING, kPolicyHomepageLocation, prefs::kHomePage }, |
| 14 { Value::TYPE_BOOLEAN, kPolicyHomepageIsNewTabPage, |
| 15 prefs::kHomePageIsNewTabPage }, |
| 16 { Value::TYPE_INTEGER, kPolicyRestoreOnStartup, |
| 17 prefs::kRestoreOnStartup}, |
| 18 { Value::TYPE_LIST, kPolicyRestoreOnStartupURLs, |
| 19 prefs::kURLsToRestoreOnStartup }, |
| 20 { Value::TYPE_BOOLEAN, kPolicyAlternateErrorPagesEnabled, |
| 21 prefs::kAlternateErrorPagesEnabled }, |
| 22 { Value::TYPE_BOOLEAN, kPolicySearchSuggestEnabled, |
| 23 prefs::kSearchSuggestEnabled }, |
| 24 { Value::TYPE_BOOLEAN, kPolicyDnsPrefetchingEnabled, |
| 25 prefs::kNetworkPredictionEnabled }, |
| 26 { Value::TYPE_BOOLEAN, kPolicyDisableSpdy, |
| 27 prefs::kDisableSpdy }, |
| 28 { Value::TYPE_LIST, kPolicyDisabledSchemes, |
| 29 prefs::kDisabledSchemes }, |
| 30 { Value::TYPE_BOOLEAN, kPolicySafeBrowsingEnabled, |
| 31 prefs::kSafeBrowsingEnabled }, |
| 32 { Value::TYPE_BOOLEAN, kPolicyPasswordManagerEnabled, |
| 33 prefs::kPasswordManagerEnabled }, |
| 34 { Value::TYPE_BOOLEAN, kPolicyPasswordManagerAllowShowPasswords, |
| 35 prefs::kPasswordManagerAllowShowPasswords }, |
| 36 { Value::TYPE_BOOLEAN, kPolicyPrintingEnabled, |
| 37 prefs::kPrintingEnabled }, |
| 38 { Value::TYPE_BOOLEAN, kPolicyMetricsReportingEnabled, |
| 39 prefs::kMetricsReportingEnabled }, |
| 40 { Value::TYPE_STRING, kPolicyApplicationLocaleValue, |
| 41 prefs::kApplicationLocale}, |
| 42 { Value::TYPE_LIST, kPolicyExtensionInstallWhitelist, |
| 43 prefs::kExtensionInstallAllowList}, |
| 44 { Value::TYPE_LIST, kPolicyExtensionInstallBlacklist, |
| 45 prefs::kExtensionInstallDenyList}, |
| 46 { Value::TYPE_LIST, kPolicyExtensionInstallForcelist, |
| 47 prefs::kExtensionInstallForceList}, |
| 48 { Value::TYPE_LIST, kPolicyDisabledPlugins, |
| 49 prefs::kPluginsDisabledPlugins}, |
| 50 { Value::TYPE_LIST, kPolicyDisabledPluginsExceptions, |
| 51 prefs::kPluginsDisabledPluginsExceptions}, |
| 52 { Value::TYPE_LIST, kPolicyEnabledPlugins, |
| 53 prefs::kPluginsEnabledPlugins}, |
| 54 { Value::TYPE_BOOLEAN, kPolicyShowHomeButton, |
| 55 prefs::kShowHomeButton }, |
| 56 { Value::TYPE_BOOLEAN, kPolicyJavascriptEnabled, |
| 57 prefs::kWebKitJavascriptEnabled }, |
| 58 { Value::TYPE_BOOLEAN, kPolicySavingBrowserHistoryDisabled, |
| 59 prefs::kSavingBrowserHistoryDisabled }, |
| 60 { Value::TYPE_BOOLEAN, kPolicyClearSiteDataOnExit, |
| 61 prefs::kClearSiteDataOnExit }, |
| 62 { Value::TYPE_BOOLEAN, kPolicyDeveloperToolsDisabled, |
| 63 prefs::kDevToolsDisabled }, |
| 64 { Value::TYPE_BOOLEAN, kPolicyBlockThirdPartyCookies, |
| 65 prefs::kBlockThirdPartyCookies }, |
| 66 { Value::TYPE_INTEGER, kPolicyDefaultCookiesSetting, |
| 67 prefs::kManagedDefaultCookiesSetting }, |
| 68 { Value::TYPE_INTEGER, kPolicyDefaultImagesSetting, |
| 69 prefs::kManagedDefaultImagesSetting }, |
| 70 { Value::TYPE_INTEGER, kPolicyDefaultJavaScriptSetting, |
| 71 prefs::kManagedDefaultJavaScriptSetting }, |
| 72 { Value::TYPE_INTEGER, kPolicyDefaultPluginsSetting, |
| 73 prefs::kManagedDefaultPluginsSetting }, |
| 74 { Value::TYPE_INTEGER, kPolicyDefaultPopupsSetting, |
| 75 prefs::kManagedDefaultPopupsSetting }, |
| 76 { Value::TYPE_LIST, kPolicyAutoSelectCertificateForUrls, |
| 77 prefs::kManagedAutoSelectCertificateForUrls}, |
| 78 { Value::TYPE_LIST, kPolicyCookiesAllowedForUrls, |
| 79 prefs::kManagedCookiesAllowedForUrls }, |
| 80 { Value::TYPE_LIST, kPolicyCookiesBlockedForUrls, |
| 81 prefs::kManagedCookiesBlockedForUrls }, |
| 82 { Value::TYPE_LIST, kPolicyCookiesSessionOnlyForUrls, |
| 83 prefs::kManagedCookiesSessionOnlyForUrls }, |
| 84 { Value::TYPE_LIST, kPolicyImagesAllowedForUrls, |
| 85 prefs::kManagedImagesAllowedForUrls }, |
| 86 { Value::TYPE_LIST, kPolicyImagesBlockedForUrls, |
| 87 prefs::kManagedImagesBlockedForUrls }, |
| 88 { Value::TYPE_LIST, kPolicyJavaScriptAllowedForUrls, |
| 89 prefs::kManagedJavaScriptAllowedForUrls }, |
| 90 { Value::TYPE_LIST, kPolicyJavaScriptBlockedForUrls, |
| 91 prefs::kManagedJavaScriptBlockedForUrls }, |
| 92 { Value::TYPE_LIST, kPolicyPluginsAllowedForUrls, |
| 93 prefs::kManagedPluginsAllowedForUrls }, |
| 94 { Value::TYPE_LIST, kPolicyPluginsBlockedForUrls, |
| 95 prefs::kManagedPluginsBlockedForUrls }, |
| 96 { Value::TYPE_LIST, kPolicyPopupsAllowedForUrls, |
| 97 prefs::kManagedPopupsAllowedForUrls }, |
| 98 { Value::TYPE_LIST, kPolicyPopupsBlockedForUrls, |
| 99 prefs::kManagedPopupsBlockedForUrls }, |
| 100 { Value::TYPE_LIST, kPolicyNotificationsAllowedForUrls, |
| 101 prefs::kManagedNotificationsAllowedForUrls }, |
| 102 { Value::TYPE_LIST, kPolicyNotificationsBlockedForUrls, |
| 103 prefs::kManagedNotificationsBlockedForUrls }, |
| 104 { Value::TYPE_INTEGER, kPolicyDefaultNotificationsSetting, |
| 105 prefs::kManagedDefaultNotificationsSetting }, |
| 106 { Value::TYPE_INTEGER, kPolicyDefaultGeolocationSetting, |
| 107 prefs::kManagedDefaultGeolocationSetting }, |
| 108 { Value::TYPE_STRING, kPolicyAuthSchemes, |
| 109 prefs::kAuthSchemes }, |
| 110 { Value::TYPE_BOOLEAN, kPolicyDisableAuthNegotiateCnameLookup, |
| 111 prefs::kDisableAuthNegotiateCnameLookup }, |
| 112 { Value::TYPE_BOOLEAN, kPolicyEnableAuthNegotiatePort, |
| 113 prefs::kEnableAuthNegotiatePort }, |
| 114 { Value::TYPE_STRING, kPolicyAuthServerWhitelist, |
| 115 prefs::kAuthServerWhitelist }, |
| 116 { Value::TYPE_STRING, kPolicyAuthNegotiateDelegateWhitelist, |
| 117 prefs::kAuthNegotiateDelegateWhitelist }, |
| 118 { Value::TYPE_STRING, kPolicyGSSAPILibraryName, |
| 119 prefs::kGSSAPILibraryName }, |
| 120 { Value::TYPE_BOOLEAN, kPolicyAllowCrossOriginAuthPrompt, |
| 121 prefs::kAllowCrossOriginAuthPrompt }, |
| 122 { Value::TYPE_BOOLEAN, kPolicyDisable3DAPIs, |
| 123 prefs::kDisable3DAPIs }, |
| 124 { Value::TYPE_BOOLEAN, kPolicyDisablePluginFinder, |
| 125 prefs::kDisablePluginFinder }, |
| 126 { Value::TYPE_INTEGER, kPolicyPolicyRefreshRate, |
| 127 prefs::kUserPolicyRefreshRate }, |
| 128 { Value::TYPE_INTEGER, kPolicyDevicePolicyRefreshRate, |
| 129 prefs::kDevicePolicyRefreshRate }, |
| 130 { Value::TYPE_BOOLEAN, kPolicyInstantEnabled, prefs::kInstantEnabled }, |
| 131 { Value::TYPE_BOOLEAN, kPolicyDefaultBrowserSettingEnabled, |
| 132 prefs::kDefaultBrowserSettingEnabled }, |
| 133 { Value::TYPE_BOOLEAN, kPolicyRemoteAccessClientFirewallTraversal, |
| 134 prefs::kRemoteAccessClientFirewallTraversal }, |
| 135 { Value::TYPE_BOOLEAN, kPolicyRemoteAccessHostFirewallTraversal, |
| 136 prefs::kRemoteAccessHostFirewallTraversal }, |
| 137 { Value::TYPE_BOOLEAN, kPolicyCloudPrintProxyEnabled, |
| 138 prefs::kCloudPrintProxyEnabled }, |
| 139 { Value::TYPE_BOOLEAN, kPolicyTranslateEnabled, prefs::kEnableTranslate }, |
| 140 { Value::TYPE_BOOLEAN, kPolicyAllowOutdatedPlugins, |
| 141 prefs::kPluginsAllowOutdated }, |
| 142 { Value::TYPE_BOOLEAN, kPolicyAlwaysAuthorizePlugins, |
| 143 prefs::kPluginsAlwaysAuthorize }, |
| 144 { Value::TYPE_BOOLEAN, kPolicyEditBookmarksEnabled, |
| 145 prefs::kEditBookmarksEnabled }, |
| 146 { Value::TYPE_BOOLEAN, kPolicyAllowFileSelectionDialogs, |
| 147 prefs::kAllowFileSelectionDialogs }, |
| 148 { Value::TYPE_BOOLEAN, kPolicyImportBookmarks, |
| 149 prefs::kImportBookmarks}, |
| 150 { Value::TYPE_BOOLEAN, kPolicyImportHistory, |
| 151 prefs::kImportHistory}, |
| 152 { Value::TYPE_BOOLEAN, kPolicyImportHomepage, |
| 153 prefs::kImportHomepage}, |
| 154 { Value::TYPE_BOOLEAN, kPolicyImportSearchEngine, |
| 155 prefs::kImportSearchEngine }, |
| 156 { Value::TYPE_BOOLEAN, kPolicyImportSavedPasswords, |
| 157 prefs::kImportSavedPasswords }, |
| 158 { Value::TYPE_INTEGER, kPolicyMaxConnectionsPerProxy, |
| 159 prefs::kMaxConnectionsPerProxy }, |
| 160 { Value::TYPE_BOOLEAN, kPolicyHideWebStorePromo, |
| 161 prefs::kNTPHideWebStorePromo }, |
| 162 { Value::TYPE_LIST, kPolicyURLBlacklist, |
| 163 prefs::kUrlBlacklist }, |
| 164 { Value::TYPE_LIST, kPolicyURLWhitelist, |
| 165 prefs::kUrlWhitelist }, |
| 166 |
| 167 #if defined(OS_CHROMEOS) |
| 168 { Value::TYPE_BOOLEAN, kPolicyChromeOsLockOnIdleSuspend, |
| 169 prefs::kEnableScreenLock }, |
| 170 { Value::TYPE_STRING, kPolicyChromeOsReleaseChannel, |
| 171 prefs::kChromeOsReleaseChannel }, |
| 172 #endif |
| 173 }; |
| 174 |
| 175 void MakeConfigurationPolicyHandlers(HandlerList* handlers) { |
| 176 unsigned int i = 0; |
| 177 for ( ; i < arraysize(kSimplePolicyMap); ++i) { |
| 178 handlers->push_back( |
| 179 new SimplePolicyHandler(kSimplePolicyMap[i].policy_type, |
| 180 kSimplePolicyMap[i].value_type, |
| 181 kSimplePolicyMap[i].preference_path)); |
| 182 } |
| 183 handlers->push_back(new SyncPolicyHandler()); |
| 184 handlers->push_back(new AutofillPolicyHandler()); |
| 185 |
| 186 #if !defined(OS_CHROMEOS) |
| 187 handlers->push_back(new DownloadDirPolicyHandler()); |
| 188 #endif // !defined(OS_CHROME0S) |
| 189 |
| 190 handlers->push_back(new DiskCacheDirPolicyHandler()); |
| 191 handlers->push_back(new FileSelectionDialogsHandler()); |
| 192 handlers->push_back(new BookmarksPolicyHandler()); |
| 193 handlers->push_back(new ProxyPolicyHandler()); |
| 194 handlers->push_back(new IncognitoModePolicyHandler()); |
| 195 handlers->push_back(new DefaultSearchPolicyHandler()); |
| 196 } |
| 197 |
| 198 } // namespace policy |
OLD | NEW |