| Index: components/policy/core/browser/configuration_policy_handler.h
|
| diff --git a/components/policy/core/browser/configuration_policy_handler.h b/components/policy/core/browser/configuration_policy_handler.h
|
| index 814f65b8f542273ccdd7a975b9afa858f833850a..54e77a257c456ec23281adbe658cd79becbbb0c8 100644
|
| --- a/components/policy/core/browser/configuration_policy_handler.h
|
| +++ b/components/policy/core/browser/configuration_policy_handler.h
|
| @@ -273,6 +273,41 @@ class POLICY_EXPORT SchemaValidatingPolicyHandler
|
| DISALLOW_COPY_AND_ASSIGN(SchemaValidatingPolicyHandler);
|
| };
|
|
|
| +// Maps policy to pref like SimplePolicyHandler while ensuring that the value
|
| +// set matches the schema. |schema| is the schema used for policies, and
|
| +// |strategy| is the strategy used for schema validation errors. The
|
| +// |recommended_permission| and |mandatory_permission| flags indicate the levels
|
| +// at which the policy can be set. A value set at an unsupported level will be
|
| +// ignored.
|
| +class POLICY_EXPORT SimpleSchemaValidatingPolicyHandler
|
| + : public SchemaValidatingPolicyHandler {
|
| + public:
|
| + enum MandatoryPermission { MANDATORY_ALLOWED, MANDATORY_PROHIBITED };
|
| + enum RecommendedPermission { RECOMMENDED_ALLOWED, RECOMMENDED_PROHIBITED };
|
| +
|
| + SimpleSchemaValidatingPolicyHandler(
|
| + const char* policy_name,
|
| + const char* pref_path,
|
| + Schema schema,
|
| + SchemaOnErrorStrategy strategy,
|
| + RecommendedPermission recommended_permission,
|
| + MandatoryPermission mandatory_permission);
|
| + virtual ~SimpleSchemaValidatingPolicyHandler();
|
| +
|
| + // ConfigurationPolicyHandler:
|
| + virtual bool CheckPolicySettings(const PolicyMap& policies,
|
| + PolicyErrorMap* errors) OVERRIDE;
|
| + virtual void ApplyPolicySettings(const PolicyMap& policies,
|
| + PrefValueMap* prefs) OVERRIDE;
|
| +
|
| + private:
|
| + const char* pref_path_;
|
| + const bool allow_recommended_;
|
| + const bool allow_mandatory_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(SimpleSchemaValidatingPolicyHandler);
|
| +};
|
| +
|
| // A policy handler to deprecate multiple legacy policies with a new one.
|
| // This handler will completely ignore any of legacy policy values if the new
|
| // one is set.
|
|
|