Chromium Code Reviews| Index: components/policy/core/common/schema.h |
| diff --git a/components/policy/core/common/schema.h b/components/policy/core/common/schema.h |
| index e4190fbde4a65b4c0b8c0a0de5ebc6a30142d8cd..69b7d99669e27c3da8e918f43d41228d2fa23334 100644 |
| --- a/components/policy/core/common/schema.h |
| +++ b/components/policy/core/common/schema.h |
| @@ -22,6 +22,19 @@ struct POLICY_EXPORT PropertiesNode; |
| } // namespace internal |
| +// Option flags passed to Schema::Validate() and Schema::Normalize(), describing |
| +// the strategy to handle unknown or invalid properties for dict type. Note |
| +// that in Schema::Normalize() allowed errors will be dropped and thus |
| +// ignored. |
| +enum SchemaOnErrorStrategy { |
| + SCHEMA_VERY_STRICT = 0, |
|
Joao da Silva
2014/01/22 10:49:53
just SCHEMA_STRICT. Add a documenting comment:
//
binjin
2014/01/23 12:01:31
Done.
|
| + SCHEMA_ALLOW_UNKNOWN_TOPLEVEL, |
|
Joao da Silva
2014/01/22 10:49:53
Add a comment:
// Unknown properties in the top-l
binjin
2014/01/23 12:01:31
Done.
|
| + SCHEMA_ALLOW_UNKNOWN, |
|
Joao da Silva
2014/01/22 10:49:53
Add a comment:
// Unknown properties in any dicti
binjin
2014/01/23 12:01:31
Done.
|
| + SCHEMA_ALLOW_INVALID_TOPLEVEL, |
|
Joao da Silva
2014/01/22 10:49:53
Add a comment:
// Mismatched values will be ignor
binjin
2014/01/23 12:01:31
Done.
|
| + SCHEMA_ALLOW_INVALID_TOPLEVEL_AND_ALLOW_UNKNOWN, |
|
Joao da Silva
2014/01/22 10:49:53
Add a comment:
// Mismatched values will be ignor
binjin
2014/01/23 12:01:31
Done.
|
| + SCHEMA_ALLOW_INVALID, |
|
Joao da Silva
2014/01/22 10:49:53
Add a comment:
// Mismatched values will be ignor
binjin
2014/01/23 12:01:31
Done.
|
| +}; |
| + |
| // Describes the expected type of one policy. Also recursively describes the |
| // types of inner elements, for structured types. |
| // Objects of this class refer to external, immutable data and are cheap to |
| @@ -57,8 +70,21 @@ class POLICY_EXPORT Schema { |
| base::Value::Type type() const; |
| - // Returns true if |value| conforms to this Schema. |
| - bool Validate(const base::Value& value) const; |
| + // Validate |value| against current schema, |strategy| is the strategy to |
| + // handle unknown or invalid properties in dict type. Allowed errors will be |
| + // ignored. If |value| don't conform the schema, false will be returned and |
| + // |error| will contain a message state the detailed reason. |
|
Joao da Silva
2014/01/22 10:49:53
|error| will contain the detailed reason.
binjin
2014/01/23 12:01:31
Done.
|
| + bool Validate(const base::Value& value, |
| + SchemaOnErrorStrategy strategy, |
| + std::string* error) const; |
| + |
| + // Validate |value| against current schema, |strategy| is the strategy to |
| + // handle unknown or invalid properties in dict type. Allowed errors will be |
| + // dropped in place. If |value| don't conform the schema, false will be |
| + // returned and |error| will contain a message state the detailed message. |
|
Joao da Silva
2014/01/22 10:49:53
returned and |error| will contain the detailed rea
binjin
2014/01/23 12:01:31
Done.
|
| + bool Normalize(base::Value* value, |
| + SchemaOnErrorStrategy strategy, |
| + std::string* error) const; |
| // Used to iterate over the known properties of TYPE_DICTIONARY schemas. |
| class POLICY_EXPORT Iterator { |