Home | History | Annotate | Download | only in prefs
      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 
     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 
     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 
     50 const char* ProxyModeToString(ProxyMode mode) {
     51   return kProxyModeNames[mode];
     52 }
     53 
     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