1// Copyright (c) 2012 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 NET_PROXY_PROXY_CONFIG_SOURCE_H_
6#define NET_PROXY_PROXY_CONFIG_SOURCE_H_
7
8namespace net {
9
10// Source of the configuration settings encapsulated in a ProxyConfig object.
11
12// The source information is used for determining how credentials are used and
13// for logging.  When adding new values, remember to add a string to
14// kSourceNames[] in proxy_config_source.cc.
15enum ProxyConfigSource {
16  PROXY_CONFIG_SOURCE_UNKNOWN,       // The source hasn't been set.
17  PROXY_CONFIG_SOURCE_SYSTEM,        // System settings (Win/Mac).
18  PROXY_CONFIG_SOURCE_SYSTEM_FAILED, // Default settings after failure to
19                                     // determine system settings.
20  PROXY_CONFIG_SOURCE_GCONF,         // GConf (Linux)
21  PROXY_CONFIG_SOURCE_GSETTINGS,     // GSettings (Linux).
22  PROXY_CONFIG_SOURCE_KDE,           // KDE (Linux).
23  PROXY_CONFIG_SOURCE_ENV,           // Environment variables.
24  PROXY_CONFIG_SOURCE_CUSTOM,        // Custom settings local to the
25                                     // application (command line,
26                                     // extensions, application
27                                     // specific preferences, etc.)
28  PROXY_CONFIG_SOURCE_TEST,          // Test settings.
29  NUM_PROXY_CONFIG_SOURCES
30};
31
32// Returns a textual representation of the source.
33const char* ProxyConfigSourceToString(ProxyConfigSource source);
34
35}  // namespace net
36
37#endif  // NET_PROXY_PROXY_CONFIG_SOURCE_H_
38