| 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 2a6be9e837313660c0a937b99ddaeea48b75a44d..d419d89617ab967cc393b067617d191c8a235dd0 100644
|
| --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
|
| +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
|
| @@ -712,6 +712,31 @@ void GetExtensionAllowedTypesMap(
|
| new base::FundamentalValue(entry.manifest_type))));
|
| }
|
| }
|
| +
|
| +// Piggy-back kDeveloperToolsDisabled set to true to also force-disable
|
| +// kExtensionsUIDeveloperMode.
|
| +class DevToolsExtensionsUIPolicyHandler : public TypeCheckingPolicyHandler {
|
| + public:
|
| + DevToolsExtensionsUIPolicyHandler()
|
| + : TypeCheckingPolicyHandler(key::kDeveloperToolsDisabled,
|
| + base::Value::Type::BOOLEAN) {}
|
| + ~DevToolsExtensionsUIPolicyHandler() override {}
|
| +
|
| + // ConfigurationPolicyHandler implementation:
|
| + void ApplyPolicySettings(const PolicyMap& policies,
|
| + PrefValueMap* prefs) override {
|
| + const base::Value* value = policies.GetValue(policy_name());
|
| + bool developerToolsDisabled;
|
| + if (value && value->GetAsBoolean(&developerToolsDisabled) &&
|
| + developerToolsDisabled) {
|
| + prefs->SetValue(prefs::kExtensionsUIDeveloperMode,
|
| + base::MakeUnique<base::FundamentalValue>(false));
|
| + }
|
| + }
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(DevToolsExtensionsUIPolicyHandler);
|
| +};
|
| #endif
|
|
|
| void GetDeprecatedFeaturesMap(
|
| @@ -798,6 +823,7 @@ std::unique_ptr<ConfigurationPolicyHandlerList> BuildHandlerList(
|
| handlers->AddHandler(
|
| base::MakeUnique<extensions::ExtensionSettingsPolicyHandler>(
|
| chrome_schema));
|
| + handlers->AddHandler(base::MakeUnique<DevToolsExtensionsUIPolicyHandler>());
|
| #endif
|
|
|
| #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID)
|
|
|