| Index: chrome/browser/policy/configuration_policy_handler_list_factory.cc
|
| diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
|
| index 3739445cce9664ca78d1ccc210b47035d92c54a8..b5c1210616fd30647e10aa711821f0ae80ff2cf4 100644
|
| --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
|
| +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
|
| @@ -16,6 +16,7 @@
|
| #include "base/values.h"
|
| #include "build/build_config.h"
|
| #include "chrome/browser/net/disk_cache_dir_policy_handler.h"
|
| +#include "chrome/browser/net/safe_search_util.h"
|
| #include "chrome/browser/policy/file_selection_dialogs_policy_handler.h"
|
| #include "chrome/browser/policy/javascript_policy_handler.h"
|
| #include "chrome/browser/policy/managed_bookmarks_policy_handler.h"
|
| @@ -119,9 +120,9 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = {
|
| { key::kForceGoogleSafeSearch,
|
| prefs::kForceGoogleSafeSearch,
|
| base::Value::TYPE_BOOLEAN },
|
| - { key::kForceYouTubeSafetyMode,
|
| - prefs::kForceYouTubeSafetyMode,
|
| - base::Value::TYPE_BOOLEAN },
|
| + { key::kForceYouTubeRestrict,
|
| + prefs::kForceYouTubeRestrict,
|
| + base::Value::TYPE_INTEGER},
|
| { key::kPasswordManagerEnabled,
|
| password_manager::prefs::kPasswordManagerSavingEnabled,
|
| base::Value::TYPE_BOOLEAN },
|
| @@ -618,17 +619,30 @@ class ForceSafeSearchPolicyHandler : public TypeCheckingPolicyHandler {
|
| // ConfigurationPolicyHandler implementation:
|
| void ApplyPolicySettings(const PolicyMap& policies,
|
| PrefValueMap* prefs) override {
|
| - // If either of the new GoogleSafeSearch or YouTubeSafetyMode policies is
|
| - // defined, then this one should be ignored. crbug.com/476908
|
| - // Note: Those policies are declared in kSimplePolicyMap above.
|
| + // If either of the new ForceGoogleSafeSearch, ForceYouTubeSafetyMode or
|
| + // ForceYouTubeRestrict policies are defined, then this one should be
|
| + // ignored. crbug.com/476908, crbug.com/590478
|
| + // Note: Those policies are declared in kSimplePolicyMap above, except
|
| + // ForceYouTubeSafetyMode, which has been replaced by ForceYouTubeRestrict.
|
| if (policies.GetValue(key::kForceGoogleSafeSearch) ||
|
| - policies.GetValue(key::kForceYouTubeSafetyMode)) {
|
| + policies.GetValue(key::kForceYouTubeSafetyMode) ||
|
| + policies.GetValue(key::kForceYouTubeRestrict)) {
|
| return;
|
| }
|
| const base::Value* value = policies.GetValue(policy_name());
|
| if (value) {
|
| + bool enabled;
|
| prefs->SetValue(prefs::kForceGoogleSafeSearch, value->CreateDeepCopy());
|
| - prefs->SetValue(prefs::kForceYouTubeSafetyMode, value->CreateDeepCopy());
|
| +
|
| + // Note that ForceYouTubeRestrict is an int policy, we cannot simply deep
|
| + // copy value, which is a boolean.
|
| + if (value->GetAsBoolean(&enabled)) {
|
| + prefs->SetValue(
|
| + prefs::kForceYouTubeRestrict,
|
| + base::MakeUnique<base::FundamentalValue>(
|
| + enabled ? safe_search_util::YOUTUBE_RESTRICT_MODERATE
|
| + : safe_search_util::YOUTUBE_RESTRICT_OFF));
|
| + }
|
| }
|
| }
|
|
|
| @@ -636,6 +650,36 @@ class ForceSafeSearchPolicyHandler : public TypeCheckingPolicyHandler {
|
| DISALLOW_COPY_AND_ASSIGN(ForceSafeSearchPolicyHandler);
|
| };
|
|
|
| +class ForceYouTubeSafetyModePolicyHandler : public TypeCheckingPolicyHandler {
|
| + public:
|
| + ForceYouTubeSafetyModePolicyHandler()
|
| + : TypeCheckingPolicyHandler(key::kForceYouTubeSafetyMode,
|
| + base::Value::TYPE_BOOLEAN) {}
|
| + ~ForceYouTubeSafetyModePolicyHandler() override {}
|
| +
|
| + // ConfigurationPolicyHandler implementation:
|
| + void ApplyPolicySettings(const PolicyMap& policies,
|
| + PrefValueMap* prefs) override {
|
| + // If only the deprecated ForceYouTubeSafetyMode policy is set,
|
| + // but not ForceYouTubeRestrict, set ForceYouTubeRestrict to Moderate.
|
| + if (policies.GetValue(key::kForceYouTubeRestrict))
|
| + return;
|
| +
|
| + const base::Value* value = policies.GetValue(policy_name());
|
| + bool enabled;
|
| + if (value && value->GetAsBoolean(&enabled)) {
|
| + prefs->SetValue(
|
| + prefs::kForceYouTubeRestrict,
|
| + base::MakeUnique<base::FundamentalValue>(
|
| + enabled ? safe_search_util::YOUTUBE_RESTRICT_MODERATE
|
| + : safe_search_util::YOUTUBE_RESTRICT_OFF));
|
| + }
|
| + }
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(ForceYouTubeSafetyModePolicyHandler);
|
| +};
|
| +
|
| #if defined(ENABLE_EXTENSIONS)
|
| void GetExtensionAllowedTypesMap(
|
| ScopedVector<StringMappingListPolicyHandler::MappingEntry>* result) {
|
| @@ -686,6 +730,7 @@ std::unique_ptr<ConfigurationPolicyHandlerList> BuildHandlerList(
|
| handlers->AddHandler(base::MakeUnique<AutofillPolicyHandler>());
|
| handlers->AddHandler(base::MakeUnique<DefaultSearchPolicyHandler>());
|
| handlers->AddHandler(base::MakeUnique<ForceSafeSearchPolicyHandler>());
|
| + handlers->AddHandler(base::MakeUnique<ForceYouTubeSafetyModePolicyHandler>());
|
| handlers->AddHandler(base::MakeUnique<IncognitoModePolicyHandler>());
|
| handlers->AddHandler(
|
| base::MakeUnique<ManagedBookmarksPolicyHandler>(chrome_schema));
|
|
|