blob: 1bcfaff0f4e74783f669f11a240281f53484d2ea [file] [log] [blame]
// Copyright (c) 2010 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/configuration_policy_provider.h"
#include "base/values.h"
namespace {
// TODO(avi): Use this mapping to auto-generate MCX manifests and Windows
// ADM/ADMX files. http://crbug.com/49316
struct InternalPolicyValueMapEntry {
ConfigurationPolicyStore::PolicyType policy_type;
Value::ValueType value_type;
const char* name;
};
const InternalPolicyValueMapEntry kPolicyValueMap[] = {
{ ConfigurationPolicyStore::kPolicyHomePage,
Value::TYPE_STRING, "HomepageLocation" },
{ ConfigurationPolicyStore::kPolicyHomepageIsNewTabPage,
Value::TYPE_BOOLEAN, "HomepageIsNewTabPage" },
{ ConfigurationPolicyStore::kPolicyProxyServerMode,
Value::TYPE_INTEGER, "ProxyServerMode" },
{ ConfigurationPolicyStore::kPolicyProxyServer,
Value::TYPE_STRING, "ProxyServer" },
{ ConfigurationPolicyStore::kPolicyProxyPacUrl,
Value::TYPE_STRING, "ProxyPacUrl" },
{ ConfigurationPolicyStore::kPolicyProxyBypassList,
Value::TYPE_STRING, "ProxyBypassList" },
{ ConfigurationPolicyStore::kPolicyAlternateErrorPagesEnabled,
Value::TYPE_BOOLEAN, "AlternateErrorPagesEnabled" },
{ ConfigurationPolicyStore::kPolicySearchSuggestEnabled,
Value::TYPE_BOOLEAN, "SearchSuggestEnabled" },
{ ConfigurationPolicyStore::kPolicyDnsPrefetchingEnabled,
Value::TYPE_BOOLEAN, "DnsPrefetchingEnabled" },
{ ConfigurationPolicyStore::kPolicySafeBrowsingEnabled,
Value::TYPE_BOOLEAN, "SafeBrowsingEnabled" },
{ ConfigurationPolicyStore::kPolicyMetricsReportingEnabled,
Value::TYPE_BOOLEAN, "MetricsReportingEnabled" },
{ ConfigurationPolicyStore::kPolicyPasswordManagerEnabled,
Value::TYPE_BOOLEAN, "PasswordManagerEnabled" },
{ ConfigurationPolicyStore::kPolicyDisabledPlugins,
Value::TYPE_STRING, "DisabledPluginsList" },
{ ConfigurationPolicyStore::kPolicyApplicationLocale,
Value::TYPE_STRING, "ApplicationLocaleValue" },
{ ConfigurationPolicyStore::kPolicySyncDisabled,
Value::TYPE_BOOLEAN, "SyncDisabled" },
};
} // namespace
/* static */
const ConfigurationPolicyProvider::PolicyValueMap*
ConfigurationPolicyProvider::PolicyValueMapping() {
static PolicyValueMap* mapping;
if (!mapping) {
mapping = new PolicyValueMap();
for (size_t i = 0; i < arraysize(kPolicyValueMap); ++i) {
const InternalPolicyValueMapEntry& internal_entry = kPolicyValueMap[i];
PolicyValueMapEntry entry;
entry.policy_type = internal_entry.policy_type;
entry.value_type = internal_entry.value_type;
entry.name = std::string(internal_entry.name);
mapping->push_back(entry);
}
}
return mapping;
}