1a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "chrome/browser/policy/configuration_policy_handler_list_factory.h"
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#include "base/basictypes.h"
8a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "base/bind.h"
9a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "base/memory/scoped_vector.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/values.h"
118bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)#include "chrome/browser/net/proxy_policy_handler.h"
1246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "chrome/browser/policy/managed_bookmarks_policy_handler.h"
131e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "chrome/browser/profiles/incognito_mode_policy_handler.h"
146d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#include "chrome/common/chrome_switches.h"
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/pref_names.h"
16a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "components/password_manager/core/common/password_manager_pref_names.h"
175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "components/policy/core/browser/autofill_policy_handler.h"
18a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "components/policy/core/browser/configuration_policy_handler.h"
19a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "components/policy/core/browser/configuration_policy_handler_list.h"
20a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "components/policy/core/browser/configuration_policy_handler_parameters.h"
215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "components/policy/core/browser/url_blacklist_policy_handler.h"
22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "components/policy/core/common/policy_details.h"
23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "components/policy/core/common/policy_map.h"
248bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)#include "components/policy/core/common/policy_pref_names.h"
255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "components/policy/core/common/schema.h"
26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "components/search_engines/default_search_policy_handler.h"
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "components/translate/core/common/translate_pref_names.h"
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "policy/policy_constants.h"
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#if !defined(OS_IOS)
315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "chrome/browser/net/disk_cache_dir_policy_handler.h"
325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "chrome/browser/policy/file_selection_dialogs_policy_handler.h"
335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "chrome/browser/policy/javascript_policy_handler.h"
345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "chrome/browser/policy/network_prediction_policy_handler.h"
355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "chrome/browser/sessions/restore_on_startup_policy_handler.h"
365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "chrome/browser/sync/sync_policy_handler.h"
375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_CHROMEOS)
40eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "ash/magnifier/magnifier_constants.h"
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/chromeos/policy/configuration_policy_handler_chromeos.h"
429ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "chromeos/dbus/power_policy_controller.h"
435f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "components/user_manager/user.h"
446e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "components/user_manager/user_manager.h"
45a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#if !defined(OS_ANDROID) && !defined(OS_IOS)
488bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)#include "chrome/browser/download/download_dir_policy_handler.h"
498bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)#endif
508bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)
51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#if defined(ENABLE_EXTENSIONS)
52116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "chrome/browser/extensions/api/messaging/native_messaging_policy_handler.h"
531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/extensions/extension_management_constants.h"
54116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "chrome/browser/extensions/policy_handlers.h"
55116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "extensions/browser/pref_names.h"
56116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "extensions/common/manifest.h"
57116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif
58116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace policy {
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)namespace {
6268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// List of policy types to preference names. This is used for simple policies
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// that directly map to a single preference.
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PolicyToPreferenceMapEntry kSimplePolicyMap[] = {
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kHomepageLocation,
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kHomePage,
685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_STRING },
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kHomepageIsNewTabPage,
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kHomePageIsNewTabPage,
715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kRestoreOnStartupURLs,
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kURLsToRestoreOnStartup,
745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kAlternateErrorPagesEnabled,
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kAlternateErrorPagesEnabled,
775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kSearchSuggestEnabled,
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kSearchSuggestEnabled,
805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  { key::kBuiltInDnsClientEnabled,
822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    prefs::kBuiltInDnsClientEnabled,
835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
84c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch  { key::kWPADQuickCheckEnabled,
85a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    prefs::kQuickCheckEnabled,
86a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDisableSpdy,
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kDisableSpdy,
895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kSafeBrowsingEnabled,
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kSafeBrowsingEnabled,
925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kForceSafeSearch,
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kForceSafeSearch,
955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kPasswordManagerEnabled,
97116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    password_manager::prefs::kPasswordManagerSavingEnabled,
985d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kPasswordManagerAllowShowPasswords,
100c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch    password_manager::prefs::kPasswordManagerAllowShowPasswords,
1015d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kPrintingEnabled,
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kPrintingEnabled,
1045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
1051320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  { key::kDisablePrintPreview,
1061320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    prefs::kPrintPreviewDisabled,
1071320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    base::Value::TYPE_BOOLEAN },
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kMetricsReportingEnabled,
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kMetricsReportingEnabled,
1105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kApplicationLocaleValue,
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kApplicationLocale,
1135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_STRING },
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDisabledPlugins,
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kPluginsDisabledPlugins,
1165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDisabledPluginsExceptions,
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kPluginsDisabledPluginsExceptions,
1195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kEnabledPlugins,
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kPluginsEnabledPlugins,
1225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kShowHomeButton,
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kShowHomeButton,
1255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kSavingBrowserHistoryDisabled,
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kSavingBrowserHistoryDisabled,
1285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
1292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  { key::kAllowDeletingBrowserHistory,
1302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    prefs::kAllowDeletingBrowserHistory,
1315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDeveloperToolsDisabled,
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kDevToolsDisabled,
1345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kBlockThirdPartyCookies,
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kBlockThirdPartyCookies,
1375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDefaultCookiesSetting,
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedDefaultCookiesSetting,
1405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_INTEGER },
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDefaultImagesSetting,
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedDefaultImagesSetting,
1435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_INTEGER },
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDefaultPluginsSetting,
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedDefaultPluginsSetting,
1465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_INTEGER },
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDefaultPopupsSetting,
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedDefaultPopupsSetting,
1495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_INTEGER },
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kAutoSelectCertificateForUrls,
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedAutoSelectCertificateForUrls,
1525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kCookiesAllowedForUrls,
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedCookiesAllowedForUrls,
1555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kCookiesBlockedForUrls,
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedCookiesBlockedForUrls,
1585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kCookiesSessionOnlyForUrls,
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedCookiesSessionOnlyForUrls,
1615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kImagesAllowedForUrls,
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedImagesAllowedForUrls,
1645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kImagesBlockedForUrls,
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedImagesBlockedForUrls,
1675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kJavaScriptAllowedForUrls,
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedJavaScriptAllowedForUrls,
1705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kJavaScriptBlockedForUrls,
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedJavaScriptBlockedForUrls,
1735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kPluginsAllowedForUrls,
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedPluginsAllowedForUrls,
1765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kPluginsBlockedForUrls,
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedPluginsBlockedForUrls,
1795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kPopupsAllowedForUrls,
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedPopupsAllowedForUrls,
1825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kPopupsBlockedForUrls,
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedPopupsBlockedForUrls,
1855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kNotificationsAllowedForUrls,
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedNotificationsAllowedForUrls,
1885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kNotificationsBlockedForUrls,
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedNotificationsBlockedForUrls,
1915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDefaultNotificationsSetting,
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedDefaultNotificationsSetting,
1945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_INTEGER },
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDefaultGeolocationSetting,
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedDefaultGeolocationSetting,
1975d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_INTEGER },
1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  { key::kSigninAllowed,
1992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    prefs::kSigninAllowed,
2005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDisableSSLRecordSplitting,
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kDisableSSLRecordSplitting,
2035d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kEnableOnlineRevocationChecks,
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kCertRevocationCheckingEnabled,
2065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
2073240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch  { key::kRequireOnlineRevocationChecksForLocalAnchors,
2083240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch    prefs::kCertRevocationCheckingRequiredLocalAnchors,
2095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kAuthSchemes,
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kAuthSchemes,
2125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_STRING },
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDisableAuthNegotiateCnameLookup,
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kDisableAuthNegotiateCnameLookup,
2155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kEnableAuthNegotiatePort,
2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kEnableAuthNegotiatePort,
2185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kAuthServerWhitelist,
2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kAuthServerWhitelist,
2215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_STRING },
2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kAuthNegotiateDelegateWhitelist,
2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kAuthNegotiateDelegateWhitelist,
2245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_STRING },
2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kGSSAPILibraryName,
2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kGSSAPILibraryName,
2275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_STRING },
2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kAllowCrossOriginAuthPrompt,
2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kAllowCrossOriginAuthPrompt,
2305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDisable3DAPIs,
2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kDisable3DAPIs,
2335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDisablePluginFinder,
2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kDisablePluginFinder,
2365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDiskCacheSize,
2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kDiskCacheSize,
2395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_INTEGER },
2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kMediaCacheSize,
2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kMediaCacheSize,
2425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_INTEGER },
2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kPolicyRefreshRate,
2448bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)    policy_prefs::kUserPolicyRefreshRate,
2455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_INTEGER },
2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDevicePolicyRefreshRate,
2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kDevicePolicyRefreshRate,
2485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_INTEGER },
2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDefaultBrowserSettingEnabled,
2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kDefaultBrowserSettingEnabled,
2515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kRemoteAccessHostFirewallTraversal,
2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kRemoteAccessHostFirewallTraversal,
2545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kRemoteAccessHostRequireTwoFactor,
2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kRemoteAccessHostRequireTwoFactor,
2575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kRemoteAccessHostDomain,
2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kRemoteAccessHostDomain,
2605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_STRING },
2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kRemoteAccessHostTalkGadgetPrefix,
2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kRemoteAccessHostTalkGadgetPrefix,
2635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_STRING },
2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kRemoteAccessHostRequireCurtain,
2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kRemoteAccessHostRequireCurtain,
2665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
267a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  { key::kRemoteAccessHostAllowClientPairing,
268a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    prefs::kRemoteAccessHostAllowClientPairing,
2695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
270a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  { key::kRemoteAccessHostAllowGnubbyAuth,
271a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    prefs::kRemoteAccessHostAllowGnubbyAuth,
272a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
2735c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  { key::kRemoteAccessHostAllowRelayedConnection,
2745c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu    prefs::kRemoteAccessHostAllowRelayedConnection,
2755c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu    base::Value::TYPE_BOOLEAN },
2765c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  { key::kRemoteAccessHostUdpPortRange,
2775c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu    prefs::kRemoteAccessHostUdpPortRange,
2785c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu    base::Value::TYPE_STRING },
2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kCloudPrintProxyEnabled,
2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kCloudPrintProxyEnabled,
2815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kCloudPrintSubmitEnabled,
2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kCloudPrintSubmitEnabled,
2845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kTranslateEnabled,
2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kEnableTranslate,
2875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kAllowOutdatedPlugins,
2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kPluginsAllowOutdated,
2905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kAlwaysAuthorizePlugins,
2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kPluginsAlwaysAuthorize,
2935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kBookmarkBarEnabled,
2951320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    bookmarks::prefs::kShowBookmarkBar,
2965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kEditBookmarksEnabled,
2981320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    bookmarks::prefs::kEditBookmarksEnabled,
2995d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
30046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  { key::kShowAppsShortcutInBookmarkBar,
3011320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    bookmarks::prefs::kShowAppsShortcutInBookmarkBar,
30246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    base::Value::TYPE_BOOLEAN },
3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kAllowFileSelectionDialogs,
3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kAllowFileSelectionDialogs,
3055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kImportBookmarks,
3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kImportBookmarks,
3085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kImportHistory,
3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kImportHistory,
3115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kImportHomepage,
3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kImportHomepage,
3145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kImportSearchEngine,
3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kImportSearchEngine,
3175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kImportSavedPasswords,
3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kImportSavedPasswords,
3205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
3211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  { key::kImportAutofillFormData,
3221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    prefs::kImportAutofillFormData,
3231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    base::Value::TYPE_BOOLEAN },
3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kMaxConnectionsPerProxy,
3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kMaxConnectionsPerProxy,
3265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_INTEGER },
3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kURLWhitelist,
3285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    policy_prefs::kUrlWhitelist,
3295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kRestrictSigninToPattern,
3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kGoogleServicesUsernamePattern,
3325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_STRING },
3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDefaultMediaStreamSetting,
3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kManagedDefaultMediaStreamSetting,
3355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_INTEGER },
3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDisableSafeBrowsingProceedAnyway,
3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kSafeBrowsingProceedAnywayDisabled,
3385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kSpellCheckServiceEnabled,
3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kSpellCheckUseSpellingService,
3415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDisableScreenshots,
3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kDisableScreenshots,
3445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
3452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  { key::kAudioCaptureAllowed,
3462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    prefs::kAudioCaptureAllowed,
3475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
3482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  { key::kVideoCaptureAllowed,
3492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    prefs::kVideoCaptureAllowed,
3505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
35190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  { key::kAudioCaptureAllowedUrls,
35290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    prefs::kAudioCaptureAllowedUrls,
3535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
35490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  { key::kVideoCaptureAllowedUrls,
35590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    prefs::kVideoCaptureAllowedUrls,
3565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_LIST },
3572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  { key::kHideWebStoreIcon,
3582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    prefs::kHideWebStoreIcon,
3595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
3602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  { key::kVariationsRestrictParameter,
3612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    prefs::kVariationsRestrictParameter,
3625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_STRING },
363eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  { key::kSupervisedUserCreationEnabled,
364f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    prefs::kSupervisedUserCreationAllowed,
3655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
3664e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  { key::kForceEphemeralProfiles,
3674e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    prefs::kForceEphemeralProfiles,
3685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
3691675a649fd7a8b3cb80ffddae2dc181f122353c5Ben Murdoch  { key::kSSLVersionMin,
3701675a649fd7a8b3cb80ffddae2dc181f122353c5Ben Murdoch    prefs::kSSLVersionMin,
3711675a649fd7a8b3cb80ffddae2dc181f122353c5Ben Murdoch    base::Value::TYPE_STRING },
3721675a649fd7a8b3cb80ffddae2dc181f122353c5Ben Murdoch  { key::kSSLVersionFallbackMin,
3731675a649fd7a8b3cb80ffddae2dc181f122353c5Ben Murdoch    prefs::kSSLVersionFallbackMin,
3741675a649fd7a8b3cb80ffddae2dc181f122353c5Ben Murdoch    base::Value::TYPE_STRING },
3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#if !defined(OS_MACOSX) && !defined(OS_IOS)
377424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  { key::kFullscreenAllowed,
378424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)    prefs::kFullscreenAllowed,
3795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
380f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#if defined(ENABLE_EXTENSIONS)
381424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  { key::kFullscreenAllowed,
3821320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    extensions::pref_names::kAppFullscreenAllowed,
3835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
384f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#endif  // defined(ENABLE_EXTENSIONS)
3855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif  // !defined(OS_MACOSX) && !defined(OS_IOS)
386424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
3875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_CHROMEOS)
3885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kChromeOsLockOnIdleSuspend,
3895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    prefs::kEnableAutoScreenLock,
3905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
3915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kChromeOsReleaseChannel,
3925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kChromeOsReleaseChannel,
3935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_STRING },
3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDriveDisabled,
3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kDisableDrive,
3965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
3975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kDriveDisabledOverCellular,
3985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kDisableDriveOverCellular,
3995d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kExternalStorageDisabled,
4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kExternalStorageDisabled,
4025d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kAudioOutputAllowed,
4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kAudioOutputAllowed,
4055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
4062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  { key::kShowLogoutButtonInTray,
4072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    prefs::kShowLogoutButtonInTray,
4085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
4092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  { key::kShelfAutoHideBehavior,
4102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    prefs::kShelfAutoHideBehaviorLocal,
4115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_STRING },
4122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  { key::kSessionLengthLimit,
4132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    prefs::kSessionLengthLimit,
4145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_INTEGER },
4151e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  { key::kWaitForInitialUserActivity,
4161e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    prefs::kSessionWaitForInitialUserActivity,
4175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
4182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  { key::kPowerManagementUsesAudioActivity,
4192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    prefs::kPowerUseAudioActivity,
4205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
4212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  { key::kPowerManagementUsesVideoActivity,
4222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    prefs::kPowerUseVideoActivity,
4235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
424c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  { key::kAllowScreenWakeLocks,
425c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    prefs::kPowerAllowScreenWakeLocks,
4265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
4271e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  { key::kWaitForInitialUserActivity,
4281e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    prefs::kPowerWaitForInitialUserActivity,
4295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
4302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  { key::kTermsOfServiceURL,
4312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    prefs::kTermsOfServiceURL,
4325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_STRING },
4332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  { key::kShowAccessibilityOptionsInSystemTrayMenu,
4342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    prefs::kShouldAlwaysShowAccessibilityMenu,
4355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
436868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  { key::kLargeCursorEnabled,
437f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    prefs::kAccessibilityLargeCursorEnabled,
4385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
439868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  { key::kSpokenFeedbackEnabled,
440f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    prefs::kAccessibilitySpokenFeedbackEnabled,
4415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
442868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  { key::kHighContrastEnabled,
443f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    prefs::kAccessibilityHighContrastEnabled,
4445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
4455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  { key::kVirtualKeyboardEnabled,
446f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    prefs::kAccessibilityVirtualKeyboardEnabled,
4475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
448eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  { key::kDeviceLoginScreenDefaultLargeCursorEnabled,
449eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    NULL,
4505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
451eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  { key::kDeviceLoginScreenDefaultSpokenFeedbackEnabled,
452eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    NULL,
4535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
454eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  { key::kDeviceLoginScreenDefaultHighContrastEnabled,
455eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    NULL,
4565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
4575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  { key::kDeviceLoginScreenDefaultVirtualKeyboardEnabled,
4585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    NULL,
4595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
4602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  { key::kRebootAfterUpdate,
4612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    prefs::kRebootAfterUpdate,
4625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
463c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  { key::kAttestationEnabledForUser,
464c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    prefs::kAttestationEnabled,
4655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
46668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  { key::kChromeOsMultiProfileUserBehavior,
46768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    prefs::kMultiProfileUserBehavior,
4685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_STRING },
469a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  { key::kKeyboardDefaultToFunctionKeys,
470a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    prefs::kLanguageSendFunctionKeys,
471a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
4726d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)  { key::kTouchVirtualKeyboardEnabled,
4736d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)    prefs::kTouchVirtualKeyboardEnabled,
4746d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
4755f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  { key::kEasyUnlockAllowed,
4765f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    prefs::kEasyUnlockAllowed,
4775f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    base::Value::TYPE_BOOLEAN },
4785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // defined(OS_CHROMEOS)
4795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(OS_MACOSX) && !defined(OS_CHROMEOS)
4815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { key::kBackgroundModeEnabled,
4825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefs::kBackgroundModeEnabled,
4835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
4845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // !defined(OS_MACOSX) && !defined(OS_CHROMEOS)
48558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
48658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#if defined(OS_ANDROID)
48758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  { key::kDataCompressionProxyEnabled,
488a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch    data_reduction_proxy::prefs::kDataReductionProxyEnabled,
4895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
49058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#endif  // defined(OS_ANDROID)
4915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
4925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS)
4935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  { key::kNativeMessagingUserLevelHosts,
4945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    extensions::pref_names::kNativeMessagingUserLevelHosts,
4955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
4966e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  { key::kBrowserGuestModeEnabled,
4976e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    prefs::kBrowserGuestModeEnabled,
4986e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    base::Value::TYPE_BOOLEAN },
4991320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  { key::kBrowserAddPersonEnabled,
5001320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    prefs::kBrowserAddPersonEnabled,
5011320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    base::Value::TYPE_BOOLEAN },
5025d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif  // !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS)
5035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
5045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
505116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#if defined(ENABLE_EXTENSIONS)
506f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void GetExtensionAllowedTypesMap(
507f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    ScopedVector<StringMappingListPolicyHandler::MappingEntry>* result) {
508f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  // Mapping from extension type names to Manifest::Type.
5091320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  for (size_t index = 0;
5101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci       index < extensions::schema_constants::kAllowedTypesMapSize;
5111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci       ++index) {
5121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    const extensions::schema_constants::AllowedTypesMapEntry& entry =
5131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci        extensions::schema_constants::kAllowedTypesMap[index];
5141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    result->push_back(new StringMappingListPolicyHandler::MappingEntry(
5151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci        entry.name,
5161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci        scoped_ptr<base::Value>(
5171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci            new base::FundamentalValue(entry.manifest_type))));
5181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  }
519f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
520116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif
5216d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)
522116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#if !defined(OS_IOS)
5236d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)void GetDeprecatedFeaturesMap(
5246d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)    ScopedVector<StringMappingListPolicyHandler::MappingEntry>* result) {
5256d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)  // Maps feature tags as specified in policy to the corresponding switch to
5266d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)  // re-enable them.
5276d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)  // TODO: Remove after 2015-04-30 per http://crbug.com/374782.
5286d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)  result->push_back(new StringMappingListPolicyHandler::MappingEntry(
5296d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)      "ShowModalDialog_EffectiveUntil20150430",
5306d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)      scoped_ptr<base::Value>(new base::StringValue(
5316d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)          switches::kEnableShowModalDialog))));
5326d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)}
5335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif  // !defined(OS_IOS)
5342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace
5365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
537a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void PopulatePolicyHandlerParameters(PolicyHandlerParameters* parameters) {
538a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#if defined(OS_CHROMEOS)
5396e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  if (user_manager::UserManager::IsInitialized()) {
5405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    const user_manager::User* user =
5416e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)        user_manager::UserManager::Get()->GetActiveUser();
542a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    if (user)
543a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      parameters->user_id_hash = user->username_hash();
544a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  }
545a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif
546a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
547a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
5485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)scoped_ptr<ConfigurationPolicyHandlerList> BuildHandlerList(
5495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const Schema& chrome_schema) {
5501e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  scoped_ptr<ConfigurationPolicyHandlerList> handlers(
551a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      new ConfigurationPolicyHandlerList(
552a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)          base::Bind(&PopulatePolicyHandlerParameters),
553a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)          base::Bind(&GetChromePolicyDetails)));
5545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  for (size_t i = 0; i < arraysize(kSimplePolicyMap); ++i) {
5551e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
5565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        new SimplePolicyHandler(kSimplePolicyMap[i].policy_name,
5575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                kSimplePolicyMap[i].preference_path,
5581e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                kSimplePolicyMap[i].value_type)));
5595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
5605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5611e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
5621e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      new AutofillPolicyHandler()));
5631e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
5641e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      new DefaultSearchPolicyHandler()));
5651e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
5661e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      new IncognitoModePolicyHandler()));
5671e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
56846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      new ManagedBookmarksPolicyHandler(chrome_schema)));
56946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
5701e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      new ProxyPolicyHandler()));
5711e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
5725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      new URLBlacklistPolicyHandler()));
5735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
5745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#if !defined(OS_IOS)
5755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
5765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      new FileSelectionDialogsPolicyHandler()));
5775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
5785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      new JavascriptPolicyHandler()));
5795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
5805f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      new NetworkPredictionPolicyHandler()));
5815f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
5821e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      new RestoreOnStartupPolicyHandler()));
5831e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
5841e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      new browser_sync::SyncPolicyHandler()));
5855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5861e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
587116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      new StringMappingListPolicyHandler(
588116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          key::kEnableDeprecatedWebPlatformFeatures,
589116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          prefs::kEnableDeprecatedWebPlatformFeatures,
590116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          base::Bind(GetDeprecatedFeaturesMap))));
591116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif  // !defined(OS_IOS)
592116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
593116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#if defined(ENABLE_EXTENSIONS)
594116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
5951e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      new extensions::ExtensionListPolicyHandler(
5961e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)          key::kExtensionInstallWhitelist,
5975d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)          extensions::pref_names::kInstallAllowList,
5981e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)          false)));
5991e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
6001e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      new extensions::ExtensionListPolicyHandler(
6011e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)          key::kExtensionInstallBlacklist,
6025d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)          extensions::pref_names::kInstallDenyList,
6031e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)          true)));
6041e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
6051e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      new extensions::ExtensionInstallForcelistPolicyHandler()));
6061e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
6071e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      new extensions::ExtensionURLPatternListPolicyHandler(
6081e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)          key::kExtensionInstallSources,
6095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)          extensions::pref_names::kAllowedInstallSites)));
6101e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
611f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      new StringMappingListPolicyHandler(
6121e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)          key::kExtensionAllowedTypes,
6135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)          extensions::pref_names::kAllowedTypes,
614f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)          base::Bind(GetExtensionAllowedTypesMap))));
615116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif
6165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6170f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)#if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS)
6181e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
6190f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)      new DiskCacheDirPolicyHandler()));
6205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
6215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
6225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      new extensions::NativeMessagingHostListPolicyHandler(
6235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)          key::kNativeMessagingWhitelist,
6245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)          extensions::pref_names::kNativeMessagingWhitelist,
6255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)          false)));
6265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
6275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      new extensions::NativeMessagingHostListPolicyHandler(
6285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)          key::kNativeMessagingBlacklist,
6295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)          extensions::pref_names::kNativeMessagingBlacklist,
6305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)          true)));
6310f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)#endif  // !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS)
6325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
633a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#if !defined(OS_ANDROID) && !defined(OS_IOS)
634a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
635a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      new DownloadDirPolicyHandler));
636f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
637f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
638f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      new SimpleSchemaValidatingPolicyHandler(
639f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)          key::kRegisteredProtocolHandlers,
640f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)          prefs::kPolicyRegisteredProtocolHandlers,
641f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)          chrome_schema,
642f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)          SCHEMA_STRICT,
643f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)          SimpleSchemaValidatingPolicyHandler::RECOMMENDED_ALLOWED,
644f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)          SimpleSchemaValidatingPolicyHandler::MANDATORY_PROHIBITED)));
645a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif
646a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
6475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_CHROMEOS)
6481e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
6495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      new extensions::ExtensionListPolicyHandler(
6505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)          key::kAttestationExtensionWhitelist,
6515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)          prefs::kAttestationExtensionWhitelist,
6525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)          false)));
6535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
6541e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      NetworkConfigurationPolicyHandler::CreateForDevicePolicy()));
6551e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
6561e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      NetworkConfigurationPolicyHandler::CreateForUserPolicy()));
6571e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
6581e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      new PinnedLauncherAppsPolicyHandler()));
6591e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
6601e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      new ScreenMagnifierPolicyHandler()));
6611e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
662effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      new LoginScreenPowerManagementPolicyHandler(chrome_schema)));
6632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
664a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  ScopedVector<ConfigurationPolicyHandler>
665a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      power_management_idle_legacy_policies;
666a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  power_management_idle_legacy_policies.push_back(
6671e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      new IntRangePolicyHandler(key::kScreenDimDelayAC,
6681e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                prefs::kPowerAcScreenDimDelayMs,
6691e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                0,
6701e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                INT_MAX,
671a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                true));
672a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  power_management_idle_legacy_policies.push_back(
6731e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      new IntRangePolicyHandler(key::kScreenOffDelayAC,
6741e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                prefs::kPowerAcScreenOffDelayMs,
6751e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                0,
6761e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                INT_MAX,
677a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                true));
678a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  power_management_idle_legacy_policies.push_back(
6791e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      new IntRangePolicyHandler(key::kIdleWarningDelayAC,
6801e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                prefs::kPowerAcIdleWarningDelayMs,
6811e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                0,
6821e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                INT_MAX,
683a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                true));
684a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  power_management_idle_legacy_policies.push_back(new IntRangePolicyHandler(
685a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      key::kIdleDelayAC, prefs::kPowerAcIdleDelayMs, 0, INT_MAX, true));
686a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  power_management_idle_legacy_policies.push_back(
6871e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      new IntRangePolicyHandler(key::kScreenDimDelayBattery,
6881e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                prefs::kPowerBatteryScreenDimDelayMs,
6891e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                0,
6901e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                INT_MAX,
691a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                true));
692a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  power_management_idle_legacy_policies.push_back(
6931e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      new IntRangePolicyHandler(key::kScreenOffDelayBattery,
6941e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                prefs::kPowerBatteryScreenOffDelayMs,
6951e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                0,
6961e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                INT_MAX,
697a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                true));
698a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  power_management_idle_legacy_policies.push_back(
6991e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      new IntRangePolicyHandler(key::kIdleWarningDelayBattery,
7001e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                prefs::kPowerBatteryIdleWarningDelayMs,
7011e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                0,
7021e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                INT_MAX,
703a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                true));
704a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  power_management_idle_legacy_policies.push_back(
7051e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      new IntRangePolicyHandler(key::kIdleDelayBattery,
7061e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                prefs::kPowerBatteryIdleDelayMs,
7071e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                0,
7081e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                INT_MAX,
709a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                true));
710a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  power_management_idle_legacy_policies.push_back(new IntRangePolicyHandler(
711a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      key::kIdleActionAC,
712a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      prefs::kPowerAcIdleAction,
713a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      chromeos::PowerPolicyController::ACTION_SUSPEND,
714a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      chromeos::PowerPolicyController::ACTION_DO_NOTHING,
715a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      false));
716a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  power_management_idle_legacy_policies.push_back(new IntRangePolicyHandler(
717a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      key::kIdleActionBattery,
718a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      prefs::kPowerBatteryIdleAction,
719a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      chromeos::PowerPolicyController::ACTION_SUSPEND,
720a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      chromeos::PowerPolicyController::ACTION_DO_NOTHING,
721a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      false));
722a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  power_management_idle_legacy_policies.push_back(
723a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      new DeprecatedIdleActionHandler());
724a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
725a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  ScopedVector<ConfigurationPolicyHandler> screen_lock_legacy_policies;
726a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  screen_lock_legacy_policies.push_back(
727a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      new IntRangePolicyHandler(key::kScreenLockDelayAC,
728a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                prefs::kPowerAcScreenLockDelayMs,
729a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                0,
730a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                INT_MAX,
731a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                true));
732a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  screen_lock_legacy_policies.push_back(
733a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      new IntRangePolicyHandler(key::kScreenLockDelayBattery,
734a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                prefs::kPowerBatteryScreenLockDelayMs,
735a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                0,
736a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                INT_MAX,
737a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                true));
738a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
7395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
7405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      new IntRangePolicyHandler(key::kSAMLOfflineSigninTimeLimit,
7415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                prefs::kSAMLOfflineSigninTimeLimit,
7425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                -1,
7435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                INT_MAX,
7445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                true)));
7451e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(
7461e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      make_scoped_ptr<ConfigurationPolicyHandler>(new IntRangePolicyHandler(
7472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          key::kLidCloseAction,
7482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          prefs::kPowerLidClosedAction,
7499ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch          chromeos::PowerPolicyController::ACTION_SUSPEND,
7509ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch          chromeos::PowerPolicyController::ACTION_DO_NOTHING,
7511e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)          false)));
7521e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
7532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      new IntPercentageToDoublePolicyHandler(
754eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch          key::kPresentationScreenDimDelayScale,
755eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch          prefs::kPowerPresentationScreenDimDelayFactor,
7561e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)          100,
7571e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)          INT_MAX,
7581e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)          true)));
7591e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
760868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      new IntPercentageToDoublePolicyHandler(
761868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)          key::kUserActivityScreenDimDelayScale,
762868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)          prefs::kPowerUserActivityScreenDimDelayFactor,
7631e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)          100,
7641e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)          INT_MAX,
7651e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)          true)));
7661e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(
7671e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      make_scoped_ptr<ConfigurationPolicyHandler>(new IntRangePolicyHandler(
7681e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)          key::kUptimeLimit, prefs::kUptimeLimit, 3600, INT_MAX, true)));
7691e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  handlers->AddHandler(
7701e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      make_scoped_ptr<ConfigurationPolicyHandler>(new IntRangePolicyHandler(
7711e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)          key::kDeviceLoginScreenDefaultScreenMagnifierType,
7721e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)          NULL,
7731e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)          0,
7741e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)          ash::MAGNIFIER_FULL,
7751e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)          false)));
776a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // TODO(binjin): Remove LegacyPoliciesDeprecatingPolicyHandler for these two
777a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // policies once deprecation of legacy power management policies is done.
778a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // http://crbug.com/346229
779a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
780a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      new LegacyPoliciesDeprecatingPolicyHandler(
781a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)          power_management_idle_legacy_policies.Pass(),
782a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)          make_scoped_ptr<SchemaValidatingPolicyHandler>(
783a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)              new PowerManagementIdleSettingsPolicyHandler(chrome_schema)))));
784a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
785a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      new LegacyPoliciesDeprecatingPolicyHandler(
786a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)          screen_lock_legacy_policies.Pass(),
787a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)          make_scoped_ptr<SchemaValidatingPolicyHandler>(
788a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)              new ScreenLockDelayPolicyHandler(chrome_schema)))));
789a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
790a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      new ExternalDataPolicyHandler(key::kUserAvatarImage)));
791a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
792a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      new ExternalDataPolicyHandler(key::kWallpaperImage)));
7935f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
7945f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      new SimpleSchemaValidatingPolicyHandler(
7955f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          key::kSessionLocales,
7965f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          NULL,
7975f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          chrome_schema,
7985f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          SCHEMA_STRICT,
7995f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          SimpleSchemaValidatingPolicyHandler::RECOMMENDED_ALLOWED,
8005f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          SimpleSchemaValidatingPolicyHandler::MANDATORY_PROHIBITED)));
8015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // defined(OS_CHROMEOS)
802d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch
8031e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  return handlers.Pass();
8045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
8055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace policy
807