| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/policy/configuration_policy_handler_list_factory.h" | 5 #include "chrome/browser/policy/configuration_policy_handler_list_factory.h" |
| 6 | 6 |
| 7 #include <limits.h> | 7 #include <limits.h> |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 | 9 |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 654 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 665 #endif | 665 #endif |
| 666 } | 666 } |
| 667 | 667 |
| 668 std::unique_ptr<ConfigurationPolicyHandlerList> BuildHandlerList( | 668 std::unique_ptr<ConfigurationPolicyHandlerList> BuildHandlerList( |
| 669 const Schema& chrome_schema) { | 669 const Schema& chrome_schema) { |
| 670 std::unique_ptr<ConfigurationPolicyHandlerList> handlers( | 670 std::unique_ptr<ConfigurationPolicyHandlerList> handlers( |
| 671 new ConfigurationPolicyHandlerList( | 671 new ConfigurationPolicyHandlerList( |
| 672 base::Bind(&PopulatePolicyHandlerParameters), | 672 base::Bind(&PopulatePolicyHandlerParameters), |
| 673 base::Bind(&GetChromePolicyDetails))); | 673 base::Bind(&GetChromePolicyDetails))); |
| 674 for (size_t i = 0; i < arraysize(kSimplePolicyMap); ++i) { | 674 for (size_t i = 0; i < arraysize(kSimplePolicyMap); ++i) { |
| 675 handlers->AddHandler(base::WrapUnique(new SimplePolicyHandler( | 675 handlers->AddHandler(base::MakeUnique<SimplePolicyHandler>( |
| 676 kSimplePolicyMap[i].policy_name, kSimplePolicyMap[i].preference_path, | 676 kSimplePolicyMap[i].policy_name, kSimplePolicyMap[i].preference_path, |
| 677 kSimplePolicyMap[i].value_type))); | 677 kSimplePolicyMap[i].value_type)); |
| 678 } | 678 } |
| 679 | 679 |
| 680 handlers->AddHandler(base::WrapUnique(new AutofillPolicyHandler())); | 680 handlers->AddHandler(base::MakeUnique<AutofillPolicyHandler>()); |
| 681 handlers->AddHandler(base::WrapUnique(new DefaultSearchPolicyHandler())); | 681 handlers->AddHandler(base::MakeUnique<DefaultSearchPolicyHandler>()); |
| 682 handlers->AddHandler(base::WrapUnique(new ForceSafeSearchPolicyHandler())); | 682 handlers->AddHandler(base::MakeUnique<ForceSafeSearchPolicyHandler>()); |
| 683 handlers->AddHandler(base::WrapUnique(new IncognitoModePolicyHandler())); | 683 handlers->AddHandler(base::MakeUnique<IncognitoModePolicyHandler>()); |
| 684 handlers->AddHandler( | 684 handlers->AddHandler( |
| 685 base::WrapUnique(new ManagedBookmarksPolicyHandler(chrome_schema))); | 685 base::MakeUnique<ManagedBookmarksPolicyHandler>(chrome_schema)); |
| 686 handlers->AddHandler(base::WrapUnique(new ProxyPolicyHandler())); | 686 handlers->AddHandler(base::MakeUnique<ProxyPolicyHandler>()); |
| 687 handlers->AddHandler(base::WrapUnique(new URLBlacklistPolicyHandler())); | 687 handlers->AddHandler(base::MakeUnique<URLBlacklistPolicyHandler>()); |
| 688 | 688 |
| 689 handlers->AddHandler(base::WrapUnique(new SimpleSchemaValidatingPolicyHandler( | 689 handlers->AddHandler(base::MakeUnique<SimpleSchemaValidatingPolicyHandler>( |
| 690 key::kCertificateTransparencyEnforcementDisabledForUrls, | 690 key::kCertificateTransparencyEnforcementDisabledForUrls, |
| 691 certificate_transparency::prefs::kCTExcludedHosts, chrome_schema, | 691 certificate_transparency::prefs::kCTExcludedHosts, chrome_schema, |
| 692 SCHEMA_STRICT, SimpleSchemaValidatingPolicyHandler::RECOMMENDED_ALLOWED, | 692 SCHEMA_STRICT, SimpleSchemaValidatingPolicyHandler::RECOMMENDED_ALLOWED, |
| 693 SimpleSchemaValidatingPolicyHandler::MANDATORY_ALLOWED))); | 693 SimpleSchemaValidatingPolicyHandler::MANDATORY_ALLOWED)); |
| 694 | 694 |
| 695 #if BUILDFLAG(ANDROID_JAVA_UI) | 695 #if BUILDFLAG(ANDROID_JAVA_UI) |
| 696 handlers->AddHandler( | 696 handlers->AddHandler( |
| 697 base::WrapUnique(new ContextualSearchPolicyHandlerAndroid())); | 697 base::MakeUnique<ContextualSearchPolicyHandlerAndroid>()); |
| 698 #endif | 698 #endif |
| 699 | 699 |
| 700 handlers->AddHandler( | 700 handlers->AddHandler(base::MakeUnique<FileSelectionDialogsPolicyHandler>()); |
| 701 base::WrapUnique(new FileSelectionDialogsPolicyHandler())); | 701 handlers->AddHandler(base::MakeUnique<JavascriptPolicyHandler>()); |
| 702 handlers->AddHandler(base::WrapUnique(new JavascriptPolicyHandler())); | 702 handlers->AddHandler(base::MakeUnique<NetworkPredictionPolicyHandler>()); |
| 703 handlers->AddHandler(base::WrapUnique(new NetworkPredictionPolicyHandler())); | 703 handlers->AddHandler(base::MakeUnique<RestoreOnStartupPolicyHandler>()); |
| 704 handlers->AddHandler(base::WrapUnique(new RestoreOnStartupPolicyHandler())); | 704 handlers->AddHandler(base::MakeUnique<sync_driver::SyncPolicyHandler>()); |
| 705 handlers->AddHandler(base::WrapUnique(new sync_driver::SyncPolicyHandler())); | |
| 706 | 705 |
| 707 handlers->AddHandler(base::WrapUnique(new StringMappingListPolicyHandler( | 706 handlers->AddHandler(base::MakeUnique<StringMappingListPolicyHandler>( |
| 708 key::kEnableDeprecatedWebPlatformFeatures, | 707 key::kEnableDeprecatedWebPlatformFeatures, |
| 709 prefs::kEnableDeprecatedWebPlatformFeatures, | 708 prefs::kEnableDeprecatedWebPlatformFeatures, |
| 710 base::Bind(GetDeprecatedFeaturesMap)))); | 709 base::Bind(GetDeprecatedFeaturesMap))); |
| 711 | 710 |
| 712 #if defined(ENABLE_EXTENSIONS) | 711 #if defined(ENABLE_EXTENSIONS) |
| 712 handlers->AddHandler(base::MakeUnique<extensions::ExtensionListPolicyHandler>( |
| 713 key::kExtensionInstallWhitelist, |
| 714 extensions::pref_names::kInstallAllowList, false)); |
| 715 handlers->AddHandler(base::MakeUnique<extensions::ExtensionListPolicyHandler>( |
| 716 key::kExtensionInstallBlacklist, extensions::pref_names::kInstallDenyList, |
| 717 true)); |
| 713 handlers->AddHandler( | 718 handlers->AddHandler( |
| 714 base::WrapUnique(new extensions::ExtensionListPolicyHandler( | 719 base::MakeUnique<extensions::ExtensionInstallForcelistPolicyHandler>()); |
| 715 key::kExtensionInstallWhitelist, | |
| 716 extensions::pref_names::kInstallAllowList, false))); | |
| 717 handlers->AddHandler( | 720 handlers->AddHandler( |
| 718 base::WrapUnique(new extensions::ExtensionListPolicyHandler( | 721 base::MakeUnique<extensions::ExtensionURLPatternListPolicyHandler>( |
| 719 key::kExtensionInstallBlacklist, | 722 key::kExtensionInstallSources, |
| 720 extensions::pref_names::kInstallDenyList, true))); | 723 extensions::pref_names::kAllowedInstallSites)); |
| 721 handlers->AddHandler(base::WrapUnique( | 724 handlers->AddHandler(base::MakeUnique<StringMappingListPolicyHandler>( |
| 722 new extensions::ExtensionInstallForcelistPolicyHandler())); | 725 key::kExtensionAllowedTypes, extensions::pref_names::kAllowedTypes, |
| 726 base::Bind(GetExtensionAllowedTypesMap))); |
| 723 handlers->AddHandler( | 727 handlers->AddHandler( |
| 724 base::WrapUnique(new extensions::ExtensionURLPatternListPolicyHandler( | 728 base::MakeUnique<extensions::ExtensionSettingsPolicyHandler>( |
| 725 key::kExtensionInstallSources, | 729 chrome_schema)); |
| 726 extensions::pref_names::kAllowedInstallSites))); | |
| 727 handlers->AddHandler(base::WrapUnique(new StringMappingListPolicyHandler( | |
| 728 key::kExtensionAllowedTypes, extensions::pref_names::kAllowedTypes, | |
| 729 base::Bind(GetExtensionAllowedTypesMap)))); | |
| 730 handlers->AddHandler(base::WrapUnique( | |
| 731 new extensions::ExtensionSettingsPolicyHandler(chrome_schema))); | |
| 732 #endif | 730 #endif |
| 733 | 731 |
| 734 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) | 732 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) |
| 735 handlers->AddHandler(base::WrapUnique(new DiskCacheDirPolicyHandler())); | 733 handlers->AddHandler(base::MakeUnique<DiskCacheDirPolicyHandler>()); |
| 736 | 734 |
| 737 handlers->AddHandler( | 735 handlers->AddHandler( |
| 738 base::WrapUnique(new extensions::NativeMessagingHostListPolicyHandler( | 736 base::MakeUnique<extensions::NativeMessagingHostListPolicyHandler>( |
| 739 key::kNativeMessagingWhitelist, | 737 key::kNativeMessagingWhitelist, |
| 740 extensions::pref_names::kNativeMessagingWhitelist, false))); | 738 extensions::pref_names::kNativeMessagingWhitelist, false)); |
| 741 handlers->AddHandler( | 739 handlers->AddHandler( |
| 742 base::WrapUnique(new extensions::NativeMessagingHostListPolicyHandler( | 740 base::MakeUnique<extensions::NativeMessagingHostListPolicyHandler>( |
| 743 key::kNativeMessagingBlacklist, | 741 key::kNativeMessagingBlacklist, |
| 744 extensions::pref_names::kNativeMessagingBlacklist, true))); | 742 extensions::pref_names::kNativeMessagingBlacklist, true)); |
| 745 #endif // !defined(OS_CHROMEOS) && !defined(OS_ANDROID) | 743 #endif // !defined(OS_CHROMEOS) && !defined(OS_ANDROID) |
| 746 | 744 |
| 747 #if !defined(OS_ANDROID) | 745 #if !defined(OS_ANDROID) |
| 748 handlers->AddHandler(base::WrapUnique(new DownloadDirPolicyHandler)); | 746 handlers->AddHandler(base::WrapUnique(new DownloadDirPolicyHandler)); |
| 749 | 747 |
| 750 handlers->AddHandler(base::WrapUnique(new SimpleSchemaValidatingPolicyHandler( | 748 handlers->AddHandler(base::MakeUnique<SimpleSchemaValidatingPolicyHandler>( |
| 751 key::kRegisteredProtocolHandlers, | 749 key::kRegisteredProtocolHandlers, |
| 752 prefs::kPolicyRegisteredProtocolHandlers, chrome_schema, SCHEMA_STRICT, | 750 prefs::kPolicyRegisteredProtocolHandlers, chrome_schema, SCHEMA_STRICT, |
| 753 SimpleSchemaValidatingPolicyHandler::RECOMMENDED_ALLOWED, | 751 SimpleSchemaValidatingPolicyHandler::RECOMMENDED_ALLOWED, |
| 754 SimpleSchemaValidatingPolicyHandler::MANDATORY_PROHIBITED))); | 752 SimpleSchemaValidatingPolicyHandler::MANDATORY_PROHIBITED)); |
| 755 #endif | 753 #endif |
| 756 | 754 |
| 757 #if defined(OS_CHROMEOS) | 755 #if defined(OS_CHROMEOS) |
| 758 handlers->AddHandler( | 756 handlers->AddHandler(base::MakeUnique<extensions::ExtensionListPolicyHandler>( |
| 759 base::WrapUnique(new extensions::ExtensionListPolicyHandler( | 757 key::kAttestationExtensionWhitelist, |
| 760 key::kAttestationExtensionWhitelist, | 758 prefs::kAttestationExtensionWhitelist, false)); |
| 761 prefs::kAttestationExtensionWhitelist, false))); | |
| 762 handlers->AddHandler(base::WrapUnique( | 759 handlers->AddHandler(base::WrapUnique( |
| 763 NetworkConfigurationPolicyHandler::CreateForDevicePolicy())); | 760 NetworkConfigurationPolicyHandler::CreateForDevicePolicy())); |
| 764 handlers->AddHandler(base::WrapUnique( | 761 handlers->AddHandler(base::WrapUnique( |
| 765 NetworkConfigurationPolicyHandler::CreateForUserPolicy())); | 762 NetworkConfigurationPolicyHandler::CreateForUserPolicy())); |
| 766 handlers->AddHandler(base::WrapUnique(new PinnedLauncherAppsPolicyHandler())); | 763 handlers->AddHandler(base::MakeUnique<PinnedLauncherAppsPolicyHandler>()); |
| 767 handlers->AddHandler(base::WrapUnique(new ScreenMagnifierPolicyHandler())); | 764 handlers->AddHandler(base::MakeUnique<ScreenMagnifierPolicyHandler>()); |
| 768 handlers->AddHandler(base::WrapUnique( | 765 handlers->AddHandler( |
| 769 new LoginScreenPowerManagementPolicyHandler(chrome_schema))); | 766 base::MakeUnique<LoginScreenPowerManagementPolicyHandler>(chrome_schema)); |
| 770 | 767 |
| 771 ScopedVector<ConfigurationPolicyHandler> | 768 ScopedVector<ConfigurationPolicyHandler> |
| 772 power_management_idle_legacy_policies; | 769 power_management_idle_legacy_policies; |
| 773 power_management_idle_legacy_policies.push_back( | 770 power_management_idle_legacy_policies.push_back( |
| 774 new IntRangePolicyHandler(key::kScreenDimDelayAC, | 771 new IntRangePolicyHandler(key::kScreenDimDelayAC, |
| 775 prefs::kPowerAcScreenDimDelayMs, | 772 prefs::kPowerAcScreenDimDelayMs, |
| 776 0, | 773 0, |
| 777 INT_MAX, | 774 INT_MAX, |
| 778 true)); | 775 true)); |
| 779 power_management_idle_legacy_policies.push_back( | 776 power_management_idle_legacy_policies.push_back( |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 836 0, | 833 0, |
| 837 INT_MAX, | 834 INT_MAX, |
| 838 true)); | 835 true)); |
| 839 screen_lock_legacy_policies.push_back( | 836 screen_lock_legacy_policies.push_back( |
| 840 new IntRangePolicyHandler(key::kScreenLockDelayBattery, | 837 new IntRangePolicyHandler(key::kScreenLockDelayBattery, |
| 841 prefs::kPowerBatteryScreenLockDelayMs, | 838 prefs::kPowerBatteryScreenLockDelayMs, |
| 842 0, | 839 0, |
| 843 INT_MAX, | 840 INT_MAX, |
| 844 true)); | 841 true)); |
| 845 | 842 |
| 846 handlers->AddHandler(base::WrapUnique(new IntRangePolicyHandler( | 843 handlers->AddHandler(base::MakeUnique<IntRangePolicyHandler>( |
| 847 key::kSAMLOfflineSigninTimeLimit, prefs::kSAMLOfflineSigninTimeLimit, -1, | 844 key::kSAMLOfflineSigninTimeLimit, prefs::kSAMLOfflineSigninTimeLimit, -1, |
| 848 INT_MAX, true))); | 845 INT_MAX, true)); |
| 849 handlers->AddHandler(base::WrapUnique(new IntRangePolicyHandler( | 846 handlers->AddHandler(base::MakeUnique<IntRangePolicyHandler>( |
| 850 key::kLidCloseAction, prefs::kPowerLidClosedAction, | 847 key::kLidCloseAction, prefs::kPowerLidClosedAction, |
| 851 chromeos::PowerPolicyController::ACTION_SUSPEND, | 848 chromeos::PowerPolicyController::ACTION_SUSPEND, |
| 852 chromeos::PowerPolicyController::ACTION_DO_NOTHING, false))); | 849 chromeos::PowerPolicyController::ACTION_DO_NOTHING, false)); |
| 853 handlers->AddHandler(base::WrapUnique(new IntPercentageToDoublePolicyHandler( | 850 handlers->AddHandler(base::MakeUnique<IntPercentageToDoublePolicyHandler>( |
| 854 key::kPresentationScreenDimDelayScale, | 851 key::kPresentationScreenDimDelayScale, |
| 855 prefs::kPowerPresentationScreenDimDelayFactor, 100, INT_MAX, true))); | 852 prefs::kPowerPresentationScreenDimDelayFactor, 100, INT_MAX, true)); |
| 856 handlers->AddHandler(base::WrapUnique(new IntPercentageToDoublePolicyHandler( | 853 handlers->AddHandler(base::MakeUnique<IntPercentageToDoublePolicyHandler>( |
| 857 key::kUserActivityScreenDimDelayScale, | 854 key::kUserActivityScreenDimDelayScale, |
| 858 prefs::kPowerUserActivityScreenDimDelayFactor, 100, INT_MAX, true))); | 855 prefs::kPowerUserActivityScreenDimDelayFactor, 100, INT_MAX, true)); |
| 859 handlers->AddHandler(base::WrapUnique(new IntRangePolicyHandler( | 856 handlers->AddHandler(base::MakeUnique<IntRangePolicyHandler>( |
| 860 key::kUptimeLimit, prefs::kUptimeLimit, 3600, INT_MAX, true))); | 857 key::kUptimeLimit, prefs::kUptimeLimit, 3600, INT_MAX, true)); |
| 861 handlers->AddHandler(base::WrapUnique(new IntRangePolicyHandler( | 858 handlers->AddHandler(base::WrapUnique(new IntRangePolicyHandler( |
| 862 key::kDeviceLoginScreenDefaultScreenMagnifierType, NULL, 0, | 859 key::kDeviceLoginScreenDefaultScreenMagnifierType, NULL, 0, |
| 863 ash::MAGNIFIER_FULL, false))); | 860 ash::MAGNIFIER_FULL, false))); |
| 864 // TODO(binjin): Remove LegacyPoliciesDeprecatingPolicyHandler for these two | 861 // TODO(binjin): Remove LegacyPoliciesDeprecatingPolicyHandler for these two |
| 865 // policies once deprecation of legacy power management policies is done. | 862 // policies once deprecation of legacy power management policies is done. |
| 866 // http://crbug.com/346229 | 863 // http://crbug.com/346229 |
| 864 handlers->AddHandler(base::MakeUnique<LegacyPoliciesDeprecatingPolicyHandler>( |
| 865 std::move(power_management_idle_legacy_policies), |
| 866 base::WrapUnique( |
| 867 new PowerManagementIdleSettingsPolicyHandler(chrome_schema)))); |
| 868 handlers->AddHandler(base::MakeUnique<LegacyPoliciesDeprecatingPolicyHandler>( |
| 869 std::move(screen_lock_legacy_policies), |
| 870 base::WrapUnique(new ScreenLockDelayPolicyHandler(chrome_schema)))); |
| 867 handlers->AddHandler( | 871 handlers->AddHandler( |
| 868 base::WrapUnique(new LegacyPoliciesDeprecatingPolicyHandler( | 872 base::MakeUnique<ExternalDataPolicyHandler>(key::kUserAvatarImage)); |
| 869 std::move(power_management_idle_legacy_policies), | |
| 870 base::WrapUnique( | |
| 871 new PowerManagementIdleSettingsPolicyHandler(chrome_schema))))); | |
| 872 handlers->AddHandler( | 873 handlers->AddHandler( |
| 873 base::WrapUnique(new LegacyPoliciesDeprecatingPolicyHandler( | 874 base::MakeUnique<ExternalDataPolicyHandler>(key::kWallpaperImage)); |
| 874 std::move(screen_lock_legacy_policies), | |
| 875 base::WrapUnique(new ScreenLockDelayPolicyHandler(chrome_schema))))); | |
| 876 handlers->AddHandler( | |
| 877 base::WrapUnique(new ExternalDataPolicyHandler(key::kUserAvatarImage))); | |
| 878 handlers->AddHandler( | |
| 879 base::WrapUnique(new ExternalDataPolicyHandler(key::kWallpaperImage))); | |
| 880 handlers->AddHandler(base::WrapUnique(new SimpleSchemaValidatingPolicyHandler( | 875 handlers->AddHandler(base::WrapUnique(new SimpleSchemaValidatingPolicyHandler( |
| 881 key::kSessionLocales, NULL, chrome_schema, SCHEMA_STRICT, | 876 key::kSessionLocales, NULL, chrome_schema, SCHEMA_STRICT, |
| 882 SimpleSchemaValidatingPolicyHandler::RECOMMENDED_ALLOWED, | 877 SimpleSchemaValidatingPolicyHandler::RECOMMENDED_ALLOWED, |
| 883 SimpleSchemaValidatingPolicyHandler::MANDATORY_PROHIBITED))); | 878 SimpleSchemaValidatingPolicyHandler::MANDATORY_PROHIBITED))); |
| 884 handlers->AddHandler(base::WrapUnique( | 879 handlers->AddHandler( |
| 885 new chromeos::KeyPermissionsPolicyHandler(chrome_schema))); | 880 base::MakeUnique<chromeos::KeyPermissionsPolicyHandler>(chrome_schema)); |
| 886 handlers->AddHandler(base::WrapUnique(new DefaultGeolocationPolicyHandler())); | 881 handlers->AddHandler(base::WrapUnique(new DefaultGeolocationPolicyHandler())); |
| 887 #endif // defined(OS_CHROMEOS) | 882 #endif // defined(OS_CHROMEOS) |
| 888 | 883 |
| 889 return handlers; | 884 return handlers; |
| 890 } | 885 } |
| 891 | 886 |
| 892 } // namespace policy | 887 } // namespace policy |
| OLD | NEW |