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 |
deleted file mode 100644 |
index d0341d9ad0e16fa188651dce310c56c464f02bc9..0000000000000000000000000000000000000000 |
--- a/chrome/browser/policy/configuration_policy_handler.cc |
+++ /dev/null |
@@ -1,298 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/browser/policy/configuration_policy_handler.h" |
- |
-#include <algorithm> |
- |
-#include "base/callback.h" |
-#include "base/files/file_path.h" |
-#include "base/logging.h" |
-#include "base/prefs/pref_value_map.h" |
-#include "base/strings/string16.h" |
-#include "base/strings/string_number_conversions.h" |
-#include "base/strings/string_util.h" |
-#include "chrome/browser/policy/configuration_policy_pref_store.h" |
-#include "components/policy/core/browser/policy_error_map.h" |
-#include "components/policy/core/common/policy_map.h" |
-#include "grit/component_strings.h" |
-#include "url/gurl.h" |
- |
-namespace policy { |
- |
-// ConfigurationPolicyHandler implementation ----------------------------------- |
- |
-// static |
-std::string ConfigurationPolicyHandler::ValueTypeToString(Value::Type type) { |
- static const char* strings[] = { |
- "null", |
- "boolean", |
- "integer", |
- "double", |
- "string", |
- "binary", |
- "dictionary", |
- "list" |
- }; |
- CHECK(static_cast<size_t>(type) < arraysize(strings)); |
- return std::string(strings[type]); |
-} |
- |
-ConfigurationPolicyHandler::ConfigurationPolicyHandler() { |
-} |
- |
-ConfigurationPolicyHandler::~ConfigurationPolicyHandler() { |
-} |
- |
-void ConfigurationPolicyHandler::PrepareForDisplaying( |
- PolicyMap* policies) const {} |
- |
- |
-// TypeCheckingPolicyHandler implementation ------------------------------------ |
- |
-TypeCheckingPolicyHandler::TypeCheckingPolicyHandler( |
- const char* policy_name, |
- Value::Type value_type) |
- : policy_name_(policy_name), |
- value_type_(value_type) { |
-} |
- |
-TypeCheckingPolicyHandler::~TypeCheckingPolicyHandler() { |
-} |
- |
-const char* TypeCheckingPolicyHandler::policy_name() const { |
- return policy_name_; |
-} |
- |
-bool TypeCheckingPolicyHandler::CheckPolicySettings(const PolicyMap& policies, |
- PolicyErrorMap* errors) { |
- const Value* value = NULL; |
- return CheckAndGetValue(policies, errors, &value); |
-} |
- |
-bool TypeCheckingPolicyHandler::CheckAndGetValue(const PolicyMap& policies, |
- PolicyErrorMap* errors, |
- const Value** value) { |
- *value = policies.GetValue(policy_name_); |
- if (*value && !(*value)->IsType(value_type_)) { |
- errors->AddError(policy_name_, |
- IDS_POLICY_TYPE_ERROR, |
- ValueTypeToString(value_type_)); |
- return false; |
- } |
- return true; |
-} |
- |
- |
-// IntRangePolicyHandlerBase implementation ------------------------------------ |
- |
-IntRangePolicyHandlerBase::IntRangePolicyHandlerBase( |
- const char* policy_name, |
- int min, |
- int max, |
- bool clamp) |
- : TypeCheckingPolicyHandler(policy_name, base::Value::TYPE_INTEGER), |
- min_(min), |
- max_(max), |
- clamp_(clamp) { |
-} |
- |
-bool IntRangePolicyHandlerBase::CheckPolicySettings(const PolicyMap& policies, |
- PolicyErrorMap* errors) { |
- const base::Value* value; |
- return CheckAndGetValue(policies, errors, &value) && |
- EnsureInRange(value, NULL, errors); |
-} |
- |
-IntRangePolicyHandlerBase::~IntRangePolicyHandlerBase() { |
-} |
- |
-bool IntRangePolicyHandlerBase::EnsureInRange(const base::Value* input, |
- int* output, |
- PolicyErrorMap* errors) { |
- if (!input) |
- return true; |
- |
- int value; |
- if (!input->GetAsInteger(&value)) { |
- NOTREACHED(); |
- return false; |
- } |
- |
- if (value < min_ || value > max_) { |
- if (errors) { |
- errors->AddError(policy_name(), |
- IDS_POLICY_OUT_OF_RANGE_ERROR, |
- base::IntToString(value)); |
- } |
- |
- if (!clamp_) |
- return false; |
- |
- value = std::min(std::max(value, min_), max_); |
- } |
- |
- if (output) |
- *output = value; |
- return true; |
-} |
- |
- |
-// StringToIntEnumListPolicyHandler implementation ----------------------------- |
- |
-StringToIntEnumListPolicyHandler::StringToIntEnumListPolicyHandler( |
- const char* policy_name, |
- const char* pref_path, |
- const MappingEntry* mapping_begin, |
- const MappingEntry* mapping_end) |
- : TypeCheckingPolicyHandler(policy_name, base::Value::TYPE_LIST), |
- pref_path_(pref_path), |
- mapping_begin_(mapping_begin), |
- mapping_end_(mapping_end) {} |
- |
-bool StringToIntEnumListPolicyHandler::CheckPolicySettings( |
- const PolicyMap& policies, |
- PolicyErrorMap* errors) { |
- const base::Value* value; |
- return CheckAndGetValue(policies, errors, &value) && |
- Convert(value, NULL, errors); |
-} |
- |
-void StringToIntEnumListPolicyHandler::ApplyPolicySettings( |
- const PolicyMap& policies, |
- PrefValueMap* prefs) { |
- if (!pref_path_) |
- return; |
- const base::Value* value = policies.GetValue(policy_name()); |
- scoped_ptr<base::ListValue> list(new base::ListValue()); |
- if (value && Convert(value, list.get(), NULL)) |
- prefs->SetValue(pref_path_, list.release()); |
-} |
- |
-bool StringToIntEnumListPolicyHandler::Convert(const base::Value* input, |
- base::ListValue* output, |
- PolicyErrorMap* errors) { |
- if (!input) |
- return true; |
- |
- const base::ListValue* list_value = NULL; |
- if (!input->GetAsList(&list_value)) { |
- NOTREACHED(); |
- return false; |
- } |
- |
- for (base::ListValue::const_iterator entry(list_value->begin()); |
- entry != list_value->end(); ++entry) { |
- std::string entry_value; |
- if (!(*entry)->GetAsString(&entry_value)) { |
- if (errors) { |
- errors->AddError(policy_name(), |
- entry - list_value->begin(), |
- IDS_POLICY_TYPE_ERROR, |
- ValueTypeToString(base::Value::TYPE_STRING)); |
- } |
- continue; |
- } |
- bool found = false; |
- for (const MappingEntry* mapping_entry(mapping_begin_); |
- mapping_entry != mapping_end_; ++mapping_entry) { |
- if (mapping_entry->enum_value == entry_value) { |
- found = true; |
- if (output) |
- output->AppendInteger(mapping_entry->int_value); |
- break; |
- } |
- } |
- if (!found) { |
- if (errors) { |
- errors->AddError(policy_name(), |
- entry - list_value->begin(), |
- IDS_POLICY_OUT_OF_RANGE_ERROR); |
- } |
- } |
- } |
- |
- return true; |
-} |
- |
- |
-// IntRangePolicyHandler implementation ---------------------------------------- |
- |
-IntRangePolicyHandler::IntRangePolicyHandler(const char* policy_name, |
- const char* pref_path, |
- int min, |
- int max, |
- bool clamp) |
- : IntRangePolicyHandlerBase(policy_name, min, max, clamp), |
- pref_path_(pref_path) { |
-} |
- |
-IntRangePolicyHandler::~IntRangePolicyHandler() { |
-} |
- |
-void IntRangePolicyHandler::ApplyPolicySettings(const PolicyMap& policies, |
- PrefValueMap* prefs) { |
- if (!pref_path_) |
- return; |
- const base::Value* value = policies.GetValue(policy_name()); |
- int value_in_range; |
- if (value && EnsureInRange(value, &value_in_range, NULL)) { |
- prefs->SetValue(pref_path_, |
- base::Value::CreateIntegerValue(value_in_range)); |
- } |
-} |
- |
- |
-// IntPercentageToDoublePolicyHandler implementation --------------------------- |
- |
-IntPercentageToDoublePolicyHandler::IntPercentageToDoublePolicyHandler( |
- const char* policy_name, |
- const char* pref_path, |
- int min, |
- int max, |
- bool clamp) |
- : IntRangePolicyHandlerBase(policy_name, min, max, clamp), |
- pref_path_(pref_path) { |
-} |
- |
-IntPercentageToDoublePolicyHandler::~IntPercentageToDoublePolicyHandler() { |
-} |
- |
-void IntPercentageToDoublePolicyHandler::ApplyPolicySettings( |
- const PolicyMap& policies, |
- PrefValueMap* prefs) { |
- if (!pref_path_) |
- return; |
- const base::Value* value = policies.GetValue(policy_name()); |
- int percentage; |
- if (value && EnsureInRange(value, &percentage, NULL)) { |
- prefs->SetValue(pref_path_, base::Value::CreateDoubleValue( |
- static_cast<double>(percentage) / 100.)); |
- } |
-} |
- |
- |
-// SimplePolicyHandler implementation ------------------------------------------ |
- |
-SimplePolicyHandler::SimplePolicyHandler( |
- const char* policy_name, |
- const char* pref_path, |
- Value::Type value_type) |
- : TypeCheckingPolicyHandler(policy_name, value_type), |
- pref_path_(pref_path) { |
-} |
- |
-SimplePolicyHandler::~SimplePolicyHandler() { |
-} |
- |
-void SimplePolicyHandler::ApplyPolicySettings(const PolicyMap& policies, |
- PrefValueMap* prefs) { |
- if (!pref_path_) |
- return; |
- const Value* value = policies.GetValue(policy_name()); |
- if (value) |
- prefs->SetValue(pref_path_, value->DeepCopy()); |
-} |
- |
-} // namespace policy |