1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "components/proxy_config/proxy_prefs.h"
7 #include "base/basictypes.h"
8 #include "base/logging.h"
10 namespace ProxyPrefs
{
14 // These names are exposed to the proxy extension API. They must be in sync
15 // with the constants of ProxyPrefs.
16 const char* kProxyModeNames
[] = { kDirectProxyModeName
,
17 kAutoDetectProxyModeName
,
18 kPacScriptProxyModeName
,
19 kFixedServersProxyModeName
,
20 kSystemProxyModeName
};
22 static_assert(arraysize(kProxyModeNames
) == kModeCount
,
23 "kProxyModeNames must have kModeCount elements");
27 const char kDirectProxyModeName
[] = "direct";
28 const char kAutoDetectProxyModeName
[] = "auto_detect";
29 const char kPacScriptProxyModeName
[] = "pac_script";
30 const char kFixedServersProxyModeName
[] = "fixed_servers";
31 const char kSystemProxyModeName
[] = "system";
33 bool IntToProxyMode(int in_value
, ProxyMode
* out_value
) {
35 if (in_value
< 0 || in_value
>= kModeCount
)
37 *out_value
= static_cast<ProxyMode
>(in_value
);
41 bool StringToProxyMode(const std::string
& in_value
, ProxyMode
* out_value
) {
43 for (int i
= 0; i
< kModeCount
; i
++) {
44 if (in_value
== kProxyModeNames
[i
])
45 return IntToProxyMode(i
, out_value
);
50 const char* ProxyModeToString(ProxyMode mode
) {
51 return kProxyModeNames
[mode
];
54 std::string
ConfigStateToDebugString(ConfigState state
) {
57 return "config_policy";
58 case CONFIG_EXTENSION
:
59 return "config_extension";
60 case CONFIG_OTHER_PRECEDE
:
61 return "config_other_precede";
63 return "config_system";
65 return "config_fallback";
67 return "config_unset";
73 } // namespace ProxyPrefs