• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #include "chrome/browser/prefs/proxy_prefs.h"
6 
7 #include "base/basictypes.h"
8 #include "base/logging.h"
9 
10 namespace ProxyPrefs {
11 
12 namespace {
13 
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 };
21 
22 COMPILE_ASSERT(arraysize(kProxyModeNames) == kModeCount,
23                kProxyModeNames_must_have_size_of_NUM_MODES);
24 
25 }  // namespace
26 
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";
32 
IntToProxyMode(int in_value,ProxyMode * out_value)33 bool IntToProxyMode(int in_value, ProxyMode* out_value) {
34   DCHECK(out_value);
35   if (in_value < 0 || in_value >= kModeCount)
36     return false;
37   *out_value = static_cast<ProxyMode>(in_value);
38   return true;
39 }
40 
StringToProxyMode(const std::string & in_value,ProxyMode * out_value)41 bool StringToProxyMode(const std::string& in_value, ProxyMode* out_value) {
42   DCHECK(out_value);
43   for (int i = 0; i < kModeCount; i++) {
44     if (in_value == kProxyModeNames[i])
45       return IntToProxyMode(i, out_value);
46   }
47   return false;
48 }
49 
ProxyModeToString(ProxyMode mode)50 const char* ProxyModeToString(ProxyMode mode) {
51   return kProxyModeNames[mode];
52 }
53 
ConfigStateToDebugString(ConfigState state)54 std::string ConfigStateToDebugString(ConfigState state) {
55   switch (state) {
56     case CONFIG_POLICY:
57       return "config_policy";
58     case CONFIG_EXTENSION:
59       return "config_extension";
60     case CONFIG_OTHER_PRECEDE:
61       return "config_other_precede";
62     case CONFIG_SYSTEM:
63       return "config_system";
64     case CONFIG_FALLBACK:
65       return "config_fallback";
66     case CONFIG_UNSET:
67       return "config_unset";
68   }
69   NOTREACHED();
70   return "";
71 }
72 
73 }  // namespace ProxyPrefs
74