| 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 "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/memory/scoped_vector.h" | 9 #include "base/memory/scoped_vector.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| (...skipping 527 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 538 #endif | 538 #endif |
| 539 } | 539 } |
| 540 | 540 |
| 541 scoped_ptr<ConfigurationPolicyHandlerList> BuildHandlerList( | 541 scoped_ptr<ConfigurationPolicyHandlerList> BuildHandlerList( |
| 542 const Schema& chrome_schema) { | 542 const Schema& chrome_schema) { |
| 543 scoped_ptr<ConfigurationPolicyHandlerList> handlers( | 543 scoped_ptr<ConfigurationPolicyHandlerList> handlers( |
| 544 new ConfigurationPolicyHandlerList( | 544 new ConfigurationPolicyHandlerList( |
| 545 base::Bind(&PopulatePolicyHandlerParameters), | 545 base::Bind(&PopulatePolicyHandlerParameters), |
| 546 base::Bind(&GetChromePolicyDetails))); | 546 base::Bind(&GetChromePolicyDetails))); |
| 547 for (size_t i = 0; i < arraysize(kSimplePolicyMap); ++i) { | 547 for (size_t i = 0; i < arraysize(kSimplePolicyMap); ++i) { |
| 548 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 548 handlers->AddHandler(make_scoped_ptr(new SimplePolicyHandler( |
| 549 new SimplePolicyHandler(kSimplePolicyMap[i].policy_name, | 549 kSimplePolicyMap[i].policy_name, kSimplePolicyMap[i].preference_path, |
| 550 kSimplePolicyMap[i].preference_path, | 550 kSimplePolicyMap[i].value_type))); |
| 551 kSimplePolicyMap[i].value_type))); | |
| 552 } | 551 } |
| 553 | 552 |
| 554 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 553 handlers->AddHandler(make_scoped_ptr(new AutofillPolicyHandler())); |
| 555 new AutofillPolicyHandler())); | 554 handlers->AddHandler(make_scoped_ptr(new DefaultSearchPolicyHandler())); |
| 556 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 555 handlers->AddHandler(make_scoped_ptr(new IncognitoModePolicyHandler())); |
| 557 new DefaultSearchPolicyHandler())); | 556 handlers->AddHandler( |
| 558 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 557 make_scoped_ptr(new ManagedBookmarksPolicyHandler(chrome_schema))); |
| 559 new IncognitoModePolicyHandler())); | 558 handlers->AddHandler(make_scoped_ptr(new ProxyPolicyHandler())); |
| 560 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 559 handlers->AddHandler(make_scoped_ptr(new URLBlacklistPolicyHandler())); |
| 561 new ManagedBookmarksPolicyHandler(chrome_schema))); | |
| 562 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | |
| 563 new ProxyPolicyHandler())); | |
| 564 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | |
| 565 new URLBlacklistPolicyHandler())); | |
| 566 | 560 |
| 567 #if defined(OS_ANDROID) | 561 #if defined(OS_ANDROID) |
| 568 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 562 handlers->AddHandler( |
| 569 new ContextualSearchPolicyHandlerAndroid())); | 563 make_scoped_ptr(new ContextualSearchPolicyHandlerAndroid())); |
| 570 #endif | 564 #endif |
| 571 | 565 |
| 572 #if !defined(OS_IOS) | 566 #if !defined(OS_IOS) |
| 573 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 567 handlers->AddHandler( |
| 574 new FileSelectionDialogsPolicyHandler())); | 568 make_scoped_ptr(new FileSelectionDialogsPolicyHandler())); |
| 575 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 569 handlers->AddHandler(make_scoped_ptr(new JavascriptPolicyHandler())); |
| 576 new JavascriptPolicyHandler())); | 570 handlers->AddHandler(make_scoped_ptr(new NetworkPredictionPolicyHandler())); |
| 577 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 571 handlers->AddHandler(make_scoped_ptr(new RestoreOnStartupPolicyHandler())); |
| 578 new NetworkPredictionPolicyHandler())); | 572 handlers->AddHandler(make_scoped_ptr(new browser_sync::SyncPolicyHandler())); |
| 579 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | |
| 580 new RestoreOnStartupPolicyHandler())); | |
| 581 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | |
| 582 new browser_sync::SyncPolicyHandler())); | |
| 583 | 573 |
| 584 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 574 handlers->AddHandler(make_scoped_ptr(new StringMappingListPolicyHandler( |
| 585 new StringMappingListPolicyHandler( | 575 key::kEnableDeprecatedWebPlatformFeatures, |
| 586 key::kEnableDeprecatedWebPlatformFeatures, | 576 prefs::kEnableDeprecatedWebPlatformFeatures, |
| 587 prefs::kEnableDeprecatedWebPlatformFeatures, | 577 base::Bind(GetDeprecatedFeaturesMap)))); |
| 588 base::Bind(GetDeprecatedFeaturesMap)))); | |
| 589 #endif // !defined(OS_IOS) | 578 #endif // !defined(OS_IOS) |
| 590 | 579 |
| 591 #if defined(ENABLE_EXTENSIONS) | 580 #if defined(ENABLE_EXTENSIONS) |
| 592 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 581 handlers->AddHandler( |
| 593 new extensions::ExtensionListPolicyHandler( | 582 make_scoped_ptr(new extensions::ExtensionListPolicyHandler( |
| 594 key::kExtensionInstallWhitelist, | 583 key::kExtensionInstallWhitelist, |
| 595 extensions::pref_names::kInstallAllowList, | 584 extensions::pref_names::kInstallAllowList, false))); |
| 596 false))); | 585 handlers->AddHandler( |
| 597 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 586 make_scoped_ptr(new extensions::ExtensionListPolicyHandler( |
| 598 new extensions::ExtensionListPolicyHandler( | |
| 599 key::kExtensionInstallBlacklist, | 587 key::kExtensionInstallBlacklist, |
| 600 extensions::pref_names::kInstallDenyList, | 588 extensions::pref_names::kInstallDenyList, true))); |
| 601 true))); | 589 handlers->AddHandler(make_scoped_ptr( |
| 602 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | |
| 603 new extensions::ExtensionInstallForcelistPolicyHandler())); | 590 new extensions::ExtensionInstallForcelistPolicyHandler())); |
| 604 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 591 handlers->AddHandler( |
| 605 new extensions::ExtensionURLPatternListPolicyHandler( | 592 make_scoped_ptr(new extensions::ExtensionURLPatternListPolicyHandler( |
| 606 key::kExtensionInstallSources, | 593 key::kExtensionInstallSources, |
| 607 extensions::pref_names::kAllowedInstallSites))); | 594 extensions::pref_names::kAllowedInstallSites))); |
| 608 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 595 handlers->AddHandler(make_scoped_ptr(new StringMappingListPolicyHandler( |
| 609 new StringMappingListPolicyHandler( | 596 key::kExtensionAllowedTypes, extensions::pref_names::kAllowedTypes, |
| 610 key::kExtensionAllowedTypes, | 597 base::Bind(GetExtensionAllowedTypesMap)))); |
| 611 extensions::pref_names::kAllowedTypes, | 598 handlers->AddHandler(make_scoped_ptr( |
| 612 base::Bind(GetExtensionAllowedTypesMap)))); | |
| 613 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | |
| 614 new extensions::ExtensionSettingsPolicyHandler(chrome_schema))); | 599 new extensions::ExtensionSettingsPolicyHandler(chrome_schema))); |
| 615 #endif | 600 #endif |
| 616 | 601 |
| 617 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS) | 602 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS) |
| 618 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 603 handlers->AddHandler(make_scoped_ptr(new DiskCacheDirPolicyHandler())); |
| 619 new DiskCacheDirPolicyHandler())); | |
| 620 | 604 |
| 621 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 605 handlers->AddHandler( |
| 622 new extensions::NativeMessagingHostListPolicyHandler( | 606 make_scoped_ptr(new extensions::NativeMessagingHostListPolicyHandler( |
| 623 key::kNativeMessagingWhitelist, | 607 key::kNativeMessagingWhitelist, |
| 624 extensions::pref_names::kNativeMessagingWhitelist, | 608 extensions::pref_names::kNativeMessagingWhitelist, false))); |
| 625 false))); | 609 handlers->AddHandler( |
| 626 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 610 make_scoped_ptr(new extensions::NativeMessagingHostListPolicyHandler( |
| 627 new extensions::NativeMessagingHostListPolicyHandler( | |
| 628 key::kNativeMessagingBlacklist, | 611 key::kNativeMessagingBlacklist, |
| 629 extensions::pref_names::kNativeMessagingBlacklist, | 612 extensions::pref_names::kNativeMessagingBlacklist, true))); |
| 630 true))); | |
| 631 #endif // !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS) | 613 #endif // !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS) |
| 632 | 614 |
| 633 #if !defined(OS_ANDROID) && !defined(OS_IOS) | 615 #if !defined(OS_ANDROID) && !defined(OS_IOS) |
| 634 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 616 handlers->AddHandler(make_scoped_ptr(new DownloadDirPolicyHandler)); |
| 635 new DownloadDirPolicyHandler)); | |
| 636 | 617 |
| 637 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 618 handlers->AddHandler(make_scoped_ptr(new SimpleSchemaValidatingPolicyHandler( |
| 638 new SimpleSchemaValidatingPolicyHandler( | 619 key::kRegisteredProtocolHandlers, |
| 639 key::kRegisteredProtocolHandlers, | 620 prefs::kPolicyRegisteredProtocolHandlers, chrome_schema, SCHEMA_STRICT, |
| 640 prefs::kPolicyRegisteredProtocolHandlers, | 621 SimpleSchemaValidatingPolicyHandler::RECOMMENDED_ALLOWED, |
| 641 chrome_schema, | 622 SimpleSchemaValidatingPolicyHandler::MANDATORY_PROHIBITED))); |
| 642 SCHEMA_STRICT, | |
| 643 SimpleSchemaValidatingPolicyHandler::RECOMMENDED_ALLOWED, | |
| 644 SimpleSchemaValidatingPolicyHandler::MANDATORY_PROHIBITED))); | |
| 645 #endif | 623 #endif |
| 646 | 624 |
| 647 #if defined(OS_CHROMEOS) | 625 #if defined(OS_CHROMEOS) |
| 648 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 626 handlers->AddHandler( |
| 649 new extensions::ExtensionListPolicyHandler( | 627 make_scoped_ptr(new extensions::ExtensionListPolicyHandler( |
| 650 key::kAttestationExtensionWhitelist, | 628 key::kAttestationExtensionWhitelist, |
| 651 prefs::kAttestationExtensionWhitelist, | 629 prefs::kAttestationExtensionWhitelist, false))); |
| 652 false))); | 630 handlers->AddHandler(make_scoped_ptr( |
| 653 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | |
| 654 NetworkConfigurationPolicyHandler::CreateForDevicePolicy())); | 631 NetworkConfigurationPolicyHandler::CreateForDevicePolicy())); |
| 655 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 632 handlers->AddHandler(make_scoped_ptr( |
| 656 NetworkConfigurationPolicyHandler::CreateForUserPolicy())); | 633 NetworkConfigurationPolicyHandler::CreateForUserPolicy())); |
| 657 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 634 handlers->AddHandler(make_scoped_ptr(new PinnedLauncherAppsPolicyHandler())); |
| 658 new PinnedLauncherAppsPolicyHandler())); | 635 handlers->AddHandler(make_scoped_ptr(new ScreenMagnifierPolicyHandler())); |
| 659 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 636 handlers->AddHandler(make_scoped_ptr( |
| 660 new ScreenMagnifierPolicyHandler())); | |
| 661 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | |
| 662 new LoginScreenPowerManagementPolicyHandler(chrome_schema))); | 637 new LoginScreenPowerManagementPolicyHandler(chrome_schema))); |
| 663 | 638 |
| 664 ScopedVector<ConfigurationPolicyHandler> | 639 ScopedVector<ConfigurationPolicyHandler> |
| 665 power_management_idle_legacy_policies; | 640 power_management_idle_legacy_policies; |
| 666 power_management_idle_legacy_policies.push_back( | 641 power_management_idle_legacy_policies.push_back( |
| 667 new IntRangePolicyHandler(key::kScreenDimDelayAC, | 642 new IntRangePolicyHandler(key::kScreenDimDelayAC, |
| 668 prefs::kPowerAcScreenDimDelayMs, | 643 prefs::kPowerAcScreenDimDelayMs, |
| 669 0, | 644 0, |
| 670 INT_MAX, | 645 INT_MAX, |
| 671 true)); | 646 true)); |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 729 0, | 704 0, |
| 730 INT_MAX, | 705 INT_MAX, |
| 731 true)); | 706 true)); |
| 732 screen_lock_legacy_policies.push_back( | 707 screen_lock_legacy_policies.push_back( |
| 733 new IntRangePolicyHandler(key::kScreenLockDelayBattery, | 708 new IntRangePolicyHandler(key::kScreenLockDelayBattery, |
| 734 prefs::kPowerBatteryScreenLockDelayMs, | 709 prefs::kPowerBatteryScreenLockDelayMs, |
| 735 0, | 710 0, |
| 736 INT_MAX, | 711 INT_MAX, |
| 737 true)); | 712 true)); |
| 738 | 713 |
| 739 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 714 handlers->AddHandler(make_scoped_ptr(new IntRangePolicyHandler( |
| 740 new IntRangePolicyHandler(key::kSAMLOfflineSigninTimeLimit, | 715 key::kSAMLOfflineSigninTimeLimit, prefs::kSAMLOfflineSigninTimeLimit, -1, |
| 741 prefs::kSAMLOfflineSigninTimeLimit, | 716 INT_MAX, true))); |
| 742 -1, | 717 handlers->AddHandler(make_scoped_ptr(new IntRangePolicyHandler( |
| 743 INT_MAX, | 718 key::kLidCloseAction, prefs::kPowerLidClosedAction, |
| 744 true))); | 719 chromeos::PowerPolicyController::ACTION_SUSPEND, |
| 745 handlers->AddHandler( | 720 chromeos::PowerPolicyController::ACTION_DO_NOTHING, false))); |
| 746 make_scoped_ptr<ConfigurationPolicyHandler>(new IntRangePolicyHandler( | 721 handlers->AddHandler(make_scoped_ptr(new IntPercentageToDoublePolicyHandler( |
| 747 key::kLidCloseAction, | 722 key::kPresentationScreenDimDelayScale, |
| 748 prefs::kPowerLidClosedAction, | 723 prefs::kPowerPresentationScreenDimDelayFactor, 100, INT_MAX, true))); |
| 749 chromeos::PowerPolicyController::ACTION_SUSPEND, | 724 handlers->AddHandler(make_scoped_ptr(new IntPercentageToDoublePolicyHandler( |
| 750 chromeos::PowerPolicyController::ACTION_DO_NOTHING, | 725 key::kUserActivityScreenDimDelayScale, |
| 751 false))); | 726 prefs::kPowerUserActivityScreenDimDelayFactor, 100, INT_MAX, true))); |
| 752 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 727 handlers->AddHandler(make_scoped_ptr(new IntRangePolicyHandler( |
| 753 new IntPercentageToDoublePolicyHandler( | 728 key::kUptimeLimit, prefs::kUptimeLimit, 3600, INT_MAX, true))); |
| 754 key::kPresentationScreenDimDelayScale, | 729 handlers->AddHandler(make_scoped_ptr(new IntRangePolicyHandler( |
| 755 prefs::kPowerPresentationScreenDimDelayFactor, | 730 key::kDeviceLoginScreenDefaultScreenMagnifierType, NULL, 0, |
| 756 100, | 731 ui::MAGNIFIER_FULL, false))); |
| 757 INT_MAX, | |
| 758 true))); | |
| 759 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | |
| 760 new IntPercentageToDoublePolicyHandler( | |
| 761 key::kUserActivityScreenDimDelayScale, | |
| 762 prefs::kPowerUserActivityScreenDimDelayFactor, | |
| 763 100, | |
| 764 INT_MAX, | |
| 765 true))); | |
| 766 handlers->AddHandler( | |
| 767 make_scoped_ptr<ConfigurationPolicyHandler>(new IntRangePolicyHandler( | |
| 768 key::kUptimeLimit, prefs::kUptimeLimit, 3600, INT_MAX, true))); | |
| 769 handlers->AddHandler( | |
| 770 make_scoped_ptr<ConfigurationPolicyHandler>(new IntRangePolicyHandler( | |
| 771 key::kDeviceLoginScreenDefaultScreenMagnifierType, | |
| 772 NULL, | |
| 773 0, | |
| 774 ui::MAGNIFIER_FULL, | |
| 775 false))); | |
| 776 // TODO(binjin): Remove LegacyPoliciesDeprecatingPolicyHandler for these two | 732 // TODO(binjin): Remove LegacyPoliciesDeprecatingPolicyHandler for these two |
| 777 // policies once deprecation of legacy power management policies is done. | 733 // policies once deprecation of legacy power management policies is done. |
| 778 // http://crbug.com/346229 | 734 // http://crbug.com/346229 |
| 779 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 735 handlers->AddHandler( |
| 780 new LegacyPoliciesDeprecatingPolicyHandler( | 736 make_scoped_ptr(new LegacyPoliciesDeprecatingPolicyHandler( |
| 781 power_management_idle_legacy_policies.Pass(), | 737 power_management_idle_legacy_policies.Pass(), |
| 782 make_scoped_ptr<SchemaValidatingPolicyHandler>( | 738 make_scoped_ptr( |
| 783 new PowerManagementIdleSettingsPolicyHandler(chrome_schema))))); | 739 new PowerManagementIdleSettingsPolicyHandler(chrome_schema))))); |
| 784 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 740 handlers->AddHandler( |
| 785 new LegacyPoliciesDeprecatingPolicyHandler( | 741 make_scoped_ptr(new LegacyPoliciesDeprecatingPolicyHandler( |
| 786 screen_lock_legacy_policies.Pass(), | 742 screen_lock_legacy_policies.Pass(), |
| 787 make_scoped_ptr<SchemaValidatingPolicyHandler>( | 743 make_scoped_ptr(new ScreenLockDelayPolicyHandler(chrome_schema))))); |
| 788 new ScreenLockDelayPolicyHandler(chrome_schema))))); | 744 handlers->AddHandler( |
| 789 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 745 make_scoped_ptr(new ExternalDataPolicyHandler(key::kUserAvatarImage))); |
| 790 new ExternalDataPolicyHandler(key::kUserAvatarImage))); | 746 handlers->AddHandler( |
| 791 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 747 make_scoped_ptr(new ExternalDataPolicyHandler(key::kWallpaperImage))); |
| 792 new ExternalDataPolicyHandler(key::kWallpaperImage))); | 748 handlers->AddHandler(make_scoped_ptr(new SimpleSchemaValidatingPolicyHandler( |
| 793 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 749 key::kSessionLocales, NULL, chrome_schema, SCHEMA_STRICT, |
| 794 new SimpleSchemaValidatingPolicyHandler( | 750 SimpleSchemaValidatingPolicyHandler::RECOMMENDED_ALLOWED, |
| 795 key::kSessionLocales, | 751 SimpleSchemaValidatingPolicyHandler::MANDATORY_PROHIBITED))); |
| 796 NULL, | |
| 797 chrome_schema, | |
| 798 SCHEMA_STRICT, | |
| 799 SimpleSchemaValidatingPolicyHandler::RECOMMENDED_ALLOWED, | |
| 800 SimpleSchemaValidatingPolicyHandler::MANDATORY_PROHIBITED))); | |
| 801 #endif // defined(OS_CHROMEOS) | 752 #endif // defined(OS_CHROMEOS) |
| 802 | 753 |
| 803 return handlers.Pass(); | 754 return handlers.Pass(); |
| 804 } | 755 } |
| 805 | 756 |
| 806 } // namespace policy | 757 } // namespace policy |
| OLD | NEW |