| 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..85764c6aeb79cca4a2fefa29a063fa5f198cb1ea
|
| --- /dev/null
|
| +++ b/chrome/browser/policy/configuration_policy_handler_list.cc
|
| @@ -0,0 +1,204 @@
|
| +// 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 "base/stl_util.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
|
| +};
|
| +
|
| +void MakeConfigurationPolicyHandlers(HandlerList* handlers) {
|
| + unsigned int i = 0;
|
| + for ( ; i < arraysize(kSimplePolicyMap); ++i) {
|
| + handlers->push_back(
|
| + new SimplePolicyHandler(kSimplePolicyMap[i].policy_type,
|
| + kSimplePolicyMap[i].value_type,
|
| + kSimplePolicyMap[i].preference_path));
|
| + }
|
| + handlers->push_back(new SyncPolicyHandler());
|
| + handlers->push_back(new AutofillPolicyHandler());
|
| +
|
| +#if !defined(OS_CHROMEOS)
|
| + handlers->push_back(new DownloadDirPolicyHandler());
|
| +#endif // !defined(OS_CHROME0S)
|
| +
|
| + 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());
|
| +}
|
| +
|
| +void DeleteConfigurationPolicyHandlers(HandlerList* handlers) {
|
| + STLDeleteContainerPointers(handlers->begin(), handlers->end());
|
| + handlers->clear();
|
| +}
|
| +
|
| +} // namespace policy
|
|
|