Home | History | Annotate | Download | only in prefs
      1 // Copyright (c) 2011 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 #ifndef CHROME_BROWSER_PREFS_PROXY_PREFS_H_
      6 #define CHROME_BROWSER_PREFS_PROXY_PREFS_H_
      7 
      8 #include <string>
      9 
     10 namespace ProxyPrefs {
     11 
     12 // Possible types of specifying proxy settings. Do not change the order of
     13 // the constants, because numeric values are exposed to users.
     14 // If you add an enum constant, you should also add a string to
     15 // kProxyModeNames in the .cc file.
     16 enum ProxyMode {
     17   // Direct connection to the network, other proxy preferences are ignored.
     18   MODE_DIRECT = 0,
     19 
     20   // Try to retrieve a PAC script from http://wpad/wpad.dat or fall back to
     21   // direct connection.
     22   MODE_AUTO_DETECT = 1,
     23 
     24   // Try to retrieve a PAC script from kProxyPacURL or fall back to direct
     25   // connection.
     26   MODE_PAC_SCRIPT = 2,
     27 
     28   // Use the settings specified in kProxyServer and kProxyBypassList.
     29   MODE_FIXED_SERVERS = 3,
     30 
     31   // The system's proxy settings are used, other proxy preferences are
     32   // ignored.
     33   MODE_SYSTEM = 4,
     34 
     35   kModeCount
     36 };
     37 
     38 // State of proxy configuration.
     39 enum ConfigState {
     40   // Configuration is from policy.
     41   CONFIG_POLICY,
     42   // Configuration is from extension.
     43   CONFIG_EXTENSION,
     44   // Configuration is not from policy or extension but still precedes others.
     45   CONFIG_OTHER_PRECEDE,
     46   // Configuration is from system.
     47   CONFIG_SYSTEM,
     48   // Configuration is recommended i.e there's a fallback configuration.
     49   CONFIG_FALLBACK,
     50   // Configuration is known to be not set.
     51   CONFIG_UNSET,
     52 };
     53 
     54 // Constants for string values used to specify the proxy mode through externally
     55 // visible APIs, e.g. through policy or the proxy extension API.
     56 extern const char kDirectProxyModeName[];
     57 extern const char kAutoDetectProxyModeName[];
     58 extern const char kPacScriptProxyModeName[];
     59 extern const char kFixedServersProxyModeName[];
     60 extern const char kSystemProxyModeName[];
     61 
     62 bool IntToProxyMode(int in_value, ProxyMode* out_value);
     63 bool StringToProxyMode(const std::string& in_value, ProxyMode* out_value);
     64 // Ownership of the return value is NOT passed to the caller.
     65 const char* ProxyModeToString(ProxyMode mode);
     66 std::string ConfigStateToDebugString(ConfigState state);
     67 
     68 }  // namespace ProxyPrefs
     69 
     70 #endif  // CHROME_BROWSER_PREFS_PROXY_PREFS_H_
     71