| Index: chrome/browser/policy/configuration_policy_handler.cc
|
| diff --git a/chrome/browser/policy/configuration_policy_handler.cc b/chrome/browser/policy/configuration_policy_handler.cc
|
| index 18e5696923bfc8ad753f6fb682fff5538eb879de..ee470ea85bed68ea5b9905c7ef4e9ff341fe000b 100644
|
| --- a/chrome/browser/policy/configuration_policy_handler.cc
|
| +++ b/chrome/browser/policy/configuration_policy_handler.cc
|
| @@ -166,8 +166,15 @@ ConfigurationPolicyType TypeCheckingPolicyHandler::policy_type() const {
|
|
|
| bool TypeCheckingPolicyHandler::CheckPolicySettings(const PolicyMap& policies,
|
| PolicyErrorMap* errors) {
|
| - const Value* value = policies.Get(policy_type_);
|
| - if (value && value_type_ != value->GetType()) {
|
| + const Value* value = NULL;
|
| + return CheckAndGetValue(policies, errors, &value);
|
| +}
|
| +
|
| +bool TypeCheckingPolicyHandler::CheckAndGetValue(const PolicyMap& policies,
|
| + PolicyErrorMap* errors,
|
| + const Value** value) {
|
| + *value = policies.Get(policy_type_);
|
| + if (*value && !(*value)->IsType(value_type_)) {
|
| errors->AddError(policy_type_,
|
| IDS_POLICY_TYPE_ERROR,
|
| ValueTypeToString(value_type_));
|
| @@ -176,7 +183,6 @@ bool TypeCheckingPolicyHandler::CheckPolicySettings(const PolicyMap& policies,
|
| return true;
|
| }
|
|
|
| -
|
| // SimplePolicyHandler implementation ------------------------------------------
|
|
|
| SimplePolicyHandler::SimplePolicyHandler(
|
|
|