Index: chrome/browser/policy/configuration_policy_handler_list.cc |
diff --git a/chrome/browser/policy/configuration_policy_handler_list.cc b/chrome/browser/policy/configuration_policy_handler_list.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..27bae98748cce2da4568f5efa12bbed1ba5f40dd |
--- /dev/null |
+++ b/chrome/browser/policy/configuration_policy_handler_list.cc |
@@ -0,0 +1,199 @@ |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/policy/configuration_policy_handler_list.h" |
+ |
+#include "chrome/browser/policy/configuration_policy_handler.h" |
+#include "chrome/common/pref_names.h" |
+ |
+namespace policy { |
+ |
+const PolicyToPreferenceMapEntry kSimplePolicyMap[] = { |
+ { Value::TYPE_STRING, kPolicyHomepageLocation, prefs::kHomePage }, |
+ { Value::TYPE_BOOLEAN, kPolicyHomepageIsNewTabPage, |
+ prefs::kHomePageIsNewTabPage }, |
+ { Value::TYPE_INTEGER, kPolicyRestoreOnStartup, |
+ prefs::kRestoreOnStartup}, |
+ { Value::TYPE_LIST, kPolicyRestoreOnStartupURLs, |
+ prefs::kURLsToRestoreOnStartup }, |
+ { Value::TYPE_BOOLEAN, kPolicyAlternateErrorPagesEnabled, |
+ prefs::kAlternateErrorPagesEnabled }, |
+ { Value::TYPE_BOOLEAN, kPolicySearchSuggestEnabled, |
+ prefs::kSearchSuggestEnabled }, |
+ { Value::TYPE_BOOLEAN, kPolicyDnsPrefetchingEnabled, |
+ prefs::kNetworkPredictionEnabled }, |
+ { Value::TYPE_BOOLEAN, kPolicyDisableSpdy, |
+ prefs::kDisableSpdy }, |
+ { Value::TYPE_LIST, kPolicyDisabledSchemes, |
+ prefs::kDisabledSchemes }, |
+ { Value::TYPE_BOOLEAN, kPolicySafeBrowsingEnabled, |
+ prefs::kSafeBrowsingEnabled }, |
+ { Value::TYPE_BOOLEAN, kPolicyPasswordManagerEnabled, |
+ prefs::kPasswordManagerEnabled }, |
+ { Value::TYPE_BOOLEAN, kPolicyPasswordManagerAllowShowPasswords, |
+ prefs::kPasswordManagerAllowShowPasswords }, |
+ { Value::TYPE_BOOLEAN, kPolicyPrintingEnabled, |
+ prefs::kPrintingEnabled }, |
+ { Value::TYPE_BOOLEAN, kPolicyMetricsReportingEnabled, |
+ prefs::kMetricsReportingEnabled }, |
+ { Value::TYPE_STRING, kPolicyApplicationLocaleValue, |
+ prefs::kApplicationLocale}, |
+ { Value::TYPE_LIST, kPolicyExtensionInstallWhitelist, |
+ prefs::kExtensionInstallAllowList}, |
+ { Value::TYPE_LIST, kPolicyExtensionInstallBlacklist, |
+ prefs::kExtensionInstallDenyList}, |
+ { Value::TYPE_LIST, kPolicyExtensionInstallForcelist, |
+ prefs::kExtensionInstallForceList}, |
+ { Value::TYPE_LIST, kPolicyDisabledPlugins, |
+ prefs::kPluginsDisabledPlugins}, |
+ { Value::TYPE_LIST, kPolicyDisabledPluginsExceptions, |
+ prefs::kPluginsDisabledPluginsExceptions}, |
+ { Value::TYPE_LIST, kPolicyEnabledPlugins, |
+ prefs::kPluginsEnabledPlugins}, |
+ { Value::TYPE_BOOLEAN, kPolicyShowHomeButton, |
+ prefs::kShowHomeButton }, |
+ { Value::TYPE_BOOLEAN, kPolicyJavascriptEnabled, |
+ prefs::kWebKitJavascriptEnabled }, |
+ { Value::TYPE_BOOLEAN, kPolicySavingBrowserHistoryDisabled, |
+ prefs::kSavingBrowserHistoryDisabled }, |
+ { Value::TYPE_BOOLEAN, kPolicyClearSiteDataOnExit, |
+ prefs::kClearSiteDataOnExit }, |
+ { Value::TYPE_BOOLEAN, kPolicyDeveloperToolsDisabled, |
+ prefs::kDevToolsDisabled }, |
+ { Value::TYPE_BOOLEAN, kPolicyBlockThirdPartyCookies, |
+ prefs::kBlockThirdPartyCookies }, |
+ { Value::TYPE_INTEGER, kPolicyDefaultCookiesSetting, |
+ prefs::kManagedDefaultCookiesSetting }, |
+ { Value::TYPE_INTEGER, kPolicyDefaultImagesSetting, |
+ prefs::kManagedDefaultImagesSetting }, |
+ { Value::TYPE_INTEGER, kPolicyDefaultJavaScriptSetting, |
+ prefs::kManagedDefaultJavaScriptSetting }, |
+ { Value::TYPE_INTEGER, kPolicyDefaultPluginsSetting, |
+ prefs::kManagedDefaultPluginsSetting }, |
+ { Value::TYPE_INTEGER, kPolicyDefaultPopupsSetting, |
+ prefs::kManagedDefaultPopupsSetting }, |
+ { Value::TYPE_LIST, kPolicyAutoSelectCertificateForUrls, |
+ prefs::kManagedAutoSelectCertificateForUrls}, |
+ { Value::TYPE_LIST, kPolicyCookiesAllowedForUrls, |
+ prefs::kManagedCookiesAllowedForUrls }, |
+ { Value::TYPE_LIST, kPolicyCookiesBlockedForUrls, |
+ prefs::kManagedCookiesBlockedForUrls }, |
+ { Value::TYPE_LIST, kPolicyCookiesSessionOnlyForUrls, |
+ prefs::kManagedCookiesSessionOnlyForUrls }, |
+ { Value::TYPE_LIST, kPolicyImagesAllowedForUrls, |
+ prefs::kManagedImagesAllowedForUrls }, |
+ { Value::TYPE_LIST, kPolicyImagesBlockedForUrls, |
+ prefs::kManagedImagesBlockedForUrls }, |
+ { Value::TYPE_LIST, kPolicyJavaScriptAllowedForUrls, |
+ prefs::kManagedJavaScriptAllowedForUrls }, |
+ { Value::TYPE_LIST, kPolicyJavaScriptBlockedForUrls, |
+ prefs::kManagedJavaScriptBlockedForUrls }, |
+ { Value::TYPE_LIST, kPolicyPluginsAllowedForUrls, |
+ prefs::kManagedPluginsAllowedForUrls }, |
+ { Value::TYPE_LIST, kPolicyPluginsBlockedForUrls, |
+ prefs::kManagedPluginsBlockedForUrls }, |
+ { Value::TYPE_LIST, kPolicyPopupsAllowedForUrls, |
+ prefs::kManagedPopupsAllowedForUrls }, |
+ { Value::TYPE_LIST, kPolicyPopupsBlockedForUrls, |
+ prefs::kManagedPopupsBlockedForUrls }, |
+ { Value::TYPE_LIST, kPolicyNotificationsAllowedForUrls, |
+ prefs::kManagedNotificationsAllowedForUrls }, |
+ { Value::TYPE_LIST, kPolicyNotificationsBlockedForUrls, |
+ prefs::kManagedNotificationsBlockedForUrls }, |
+ { Value::TYPE_INTEGER, kPolicyDefaultNotificationsSetting, |
+ prefs::kManagedDefaultNotificationsSetting }, |
+ { Value::TYPE_INTEGER, kPolicyDefaultGeolocationSetting, |
+ prefs::kManagedDefaultGeolocationSetting }, |
+ { Value::TYPE_STRING, kPolicyAuthSchemes, |
+ prefs::kAuthSchemes }, |
+ { Value::TYPE_BOOLEAN, kPolicyDisableAuthNegotiateCnameLookup, |
+ prefs::kDisableAuthNegotiateCnameLookup }, |
+ { Value::TYPE_BOOLEAN, kPolicyEnableAuthNegotiatePort, |
+ prefs::kEnableAuthNegotiatePort }, |
+ { Value::TYPE_STRING, kPolicyAuthServerWhitelist, |
+ prefs::kAuthServerWhitelist }, |
+ { Value::TYPE_STRING, kPolicyAuthNegotiateDelegateWhitelist, |
+ prefs::kAuthNegotiateDelegateWhitelist }, |
+ { Value::TYPE_STRING, kPolicyGSSAPILibraryName, |
+ prefs::kGSSAPILibraryName }, |
+ { Value::TYPE_BOOLEAN, kPolicyAllowCrossOriginAuthPrompt, |
+ prefs::kAllowCrossOriginAuthPrompt }, |
+ { Value::TYPE_BOOLEAN, kPolicyDisable3DAPIs, |
+ prefs::kDisable3DAPIs }, |
+ { Value::TYPE_BOOLEAN, kPolicyDisablePluginFinder, |
+ prefs::kDisablePluginFinder }, |
+ { Value::TYPE_INTEGER, kPolicyPolicyRefreshRate, |
+ prefs::kUserPolicyRefreshRate }, |
+ { Value::TYPE_INTEGER, kPolicyDevicePolicyRefreshRate, |
+ prefs::kDevicePolicyRefreshRate }, |
+ { Value::TYPE_BOOLEAN, kPolicyInstantEnabled, prefs::kInstantEnabled }, |
+ { Value::TYPE_BOOLEAN, kPolicyDefaultBrowserSettingEnabled, |
+ prefs::kDefaultBrowserSettingEnabled }, |
+ { Value::TYPE_BOOLEAN, kPolicyRemoteAccessClientFirewallTraversal, |
+ prefs::kRemoteAccessClientFirewallTraversal }, |
+ { Value::TYPE_BOOLEAN, kPolicyRemoteAccessHostFirewallTraversal, |
+ prefs::kRemoteAccessHostFirewallTraversal }, |
+ { Value::TYPE_BOOLEAN, kPolicyCloudPrintProxyEnabled, |
+ prefs::kCloudPrintProxyEnabled }, |
+ { Value::TYPE_BOOLEAN, kPolicyTranslateEnabled, prefs::kEnableTranslate }, |
+ { Value::TYPE_BOOLEAN, kPolicyAllowOutdatedPlugins, |
+ prefs::kPluginsAllowOutdated }, |
+ { Value::TYPE_BOOLEAN, kPolicyAlwaysAuthorizePlugins, |
+ prefs::kPluginsAlwaysAuthorize }, |
+ { Value::TYPE_BOOLEAN, kPolicyEditBookmarksEnabled, |
+ prefs::kEditBookmarksEnabled }, |
+ { Value::TYPE_BOOLEAN, kPolicyAllowFileSelectionDialogs, |
+ prefs::kAllowFileSelectionDialogs }, |
+ { Value::TYPE_BOOLEAN, kPolicyImportBookmarks, |
+ prefs::kImportBookmarks}, |
+ { Value::TYPE_BOOLEAN, kPolicyImportHistory, |
+ prefs::kImportHistory}, |
+ { Value::TYPE_BOOLEAN, kPolicyImportHomepage, |
+ prefs::kImportHomepage}, |
+ { Value::TYPE_BOOLEAN, kPolicyImportSearchEngine, |
+ prefs::kImportSearchEngine }, |
+ { Value::TYPE_BOOLEAN, kPolicyImportSavedPasswords, |
+ prefs::kImportSavedPasswords }, |
+ { Value::TYPE_INTEGER, kPolicyMaxConnectionsPerProxy, |
+ prefs::kMaxConnectionsPerProxy }, |
+ { Value::TYPE_BOOLEAN, kPolicyHideWebStorePromo, |
+ prefs::kNTPHideWebStorePromo }, |
+ { Value::TYPE_LIST, kPolicyURLBlacklist, |
+ prefs::kUrlBlacklist }, |
+ { Value::TYPE_LIST, kPolicyURLWhitelist, |
+ prefs::kUrlWhitelist }, |
+ |
+#if defined(OS_CHROMEOS) |
+ { Value::TYPE_BOOLEAN, kPolicyChromeOsLockOnIdleSuspend, |
+ prefs::kEnableScreenLock }, |
+ { Value::TYPE_STRING, kPolicyChromeOsReleaseChannel, |
+ prefs::kChromeOsReleaseChannel }, |
+#endif |
+}; |
+ |
+HandlerList* MakeConfigurationPolicyHandlers() { |
+ HandlerList* handlers = |
+ new std::vector<ConfigurationPolicyHandlerInterface*>(); |
+ |
+ unsigned int i = 0; |
+ for ( ; i < arraysize(kSimplePolicyMap); ++i) { |
+ handlers->push_back(new SimplePolicyHandler( |
+ kSimplePolicyMap[i].policy_type, |
Mattias Nissler (ping if slow)
2011/09/26 13:30:48
indentation (maybe break before new?)
simo
2011/09/29 09:33:08
Done.
|
+ kSimplePolicyMap[i].value_type, |
+ kSimplePolicyMap[i].preference_path)); |
+ } |
+ handlers->push_back(new SyncPolicyHandler()); |
+ handlers->push_back(new AutofillPolicyHandler()); |
+ handlers->push_back(new DownloadDirPolicyHandler()); |
+ handlers->push_back(new DiskCacheDirPolicyHandler()); |
+ handlers->push_back(new FileSelectionDialogsHandler()); |
+ handlers->push_back(new BookmarksPolicyHandler()); |
+ handlers->push_back(new ProxyPolicyHandler()); |
+ handlers->push_back(new IncognitoModePolicyHandler()); |
+ handlers->push_back(new DefaultSearchPolicyHandler()); |
+ |
+ return handlers; |
+} |
+ |
+} // namespace policy |