| 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 894c04a548d845cb91eff2265a28fc5c701bbb6c..3695f59e3277f6258c0ed8bda1bf527b3e9f8bca 100644
|
| --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
|
| +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
|
| @@ -708,6 +708,33 @@ 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(
|
| @@ -793,6 +820,8 @@ 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)
|
|
|