Index: net/proxy/proxy_config.h |
diff --git a/net/proxy/proxy_config.h b/net/proxy/proxy_config.h |
deleted file mode 100644 |
index 90ac96be83ab491a71820af33aa20d157d69cc6d..0000000000000000000000000000000000000000 |
--- a/net/proxy/proxy_config.h |
+++ /dev/null |
@@ -1,269 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef NET_PROXY_PROXY_CONFIG_H_ |
-#define NET_PROXY_PROXY_CONFIG_H_ |
- |
-#include <string> |
- |
-#include "net/base/net_export.h" |
-#include "net/proxy/proxy_bypass_rules.h" |
-#include "net/proxy/proxy_config_source.h" |
-#include "net/proxy/proxy_list.h" |
-#include "net/proxy/proxy_server.h" |
-#include "url/gurl.h" |
- |
-namespace base { |
-class Value; |
-} |
- |
-namespace net { |
- |
-class ProxyInfo; |
- |
-// ProxyConfig describes a user's proxy settings. |
-// |
-// There are two categories of proxy settings: |
-// (1) Automatic (indicates the methods to obtain a PAC script) |
-// (2) Manual (simple set of proxy servers per scheme, and bypass patterns) |
-// |
-// When both automatic and manual settings are specified, the Automatic ones |
-// take precedence over the manual ones. |
-// |
-// For more details see: |
-// http://www.chromium.org/developers/design-documents/proxy-settings-fallback |
-class NET_EXPORT ProxyConfig { |
- public: |
- // ProxyRules describes the "manual" proxy settings. |
- // TODO(eroman): Turn this into a class. |
- // TODO(marq): Update the enum names; "TYPE_SINGLE_PROXY" really means |
- // the same set of proxies are used for all requests. |
- struct NET_EXPORT ProxyRules { |
- enum Type { |
- TYPE_NO_RULES, |
- TYPE_SINGLE_PROXY, |
- TYPE_PROXY_PER_SCHEME, |
- }; |
- |
- // Note that the default of TYPE_NO_RULES results in direct connections |
- // being made when using this ProxyConfig. |
- ProxyRules(); |
- ~ProxyRules(); |
- |
- bool empty() const { |
- return type == TYPE_NO_RULES; |
- } |
- |
- // Sets |result| with the proxies to use for |url| based on the current |
- // rules. |
- void Apply(const GURL& url, ProxyInfo* result) const; |
- |
- // Parses the rules from a string, indicating which proxies to use. |
- // |
- // proxy-uri = [<proxy-scheme>"://"]<proxy-host>[":"<proxy-port>] |
- // |
- // proxy-uri-list = <proxy-uri>[","<proxy-uri-list>] |
- // |
- // url-scheme = "http" | "https" | "ftp" | "socks" |
- // |
- // scheme-proxies = [<url-scheme>"="]<proxy-uri-list> |
- // |
- // proxy-rules = scheme-proxies[";"<scheme-proxies>] |
- // |
- // Thus, the proxy-rules string should be a semicolon-separated list of |
- // ordered proxies that apply to a particular URL scheme. Unless specified, |
- // the proxy scheme for proxy-uris is assumed to be http. |
- // |
- // Some special cases: |
- // * If the scheme is omitted from the first proxy list, that list applies |
- // to all URL schemes and subsequent lists are ignored. |
- // * If a scheme is omitted from any proxy list after a list where a scheme |
- // has been provided, the list without a scheme is ignored. |
- // * If the url-scheme is set to 'socks', that sets a fallback list that |
- // to all otherwise unspecified url-schemes, however the default proxy- |
- // scheme for proxy urls in the 'socks' list is understood to be |
- // socks4:// if unspecified. |
- // |
- // For example: |
- // "http=foopy:80;ftp=foopy2" -- use HTTP proxy "foopy:80" for http:// |
- // URLs, and HTTP proxy "foopy2:80" for |
- // ftp:// URLs. |
- // "foopy:80" -- use HTTP proxy "foopy:80" for all URLs. |
- // "foopy:80,bar,direct://" -- use HTTP proxy "foopy:80" for all URLs, |
- // failing over to "bar" if "foopy:80" is |
- // unavailable, and after that using no |
- // proxy. |
- // "socks4://foopy" -- use SOCKS v4 proxy "foopy:1080" for all |
- // URLs. |
- // "http=foop,socks5://bar.com -- use HTTP proxy "foopy" for http URLs, |
- // and fail over to the SOCKS5 proxy |
- // "bar.com" if "foop" is unavailable. |
- // "http=foopy,direct:// -- use HTTP proxy "foopy" for http URLs, |
- // and use no proxy if "foopy" is |
- // unavailable. |
- // "http=foopy;socks=foopy2 -- use HTTP proxy "foopy" for http URLs, |
- // and use socks4://foopy2 for all other |
- // URLs. |
- void ParseFromString(const std::string& proxy_rules); |
- |
- // Returns one of {&proxies_for_http, &proxies_for_https, &proxies_for_ftp, |
- // &fallback_proxies}, or NULL if there is no proxy to use. |
- // Should only call this if the type is TYPE_PROXY_PER_SCHEME. |
- const ProxyList* MapUrlSchemeToProxyList( |
- const std::string& url_scheme) const; |
- |
- // Returns true if |*this| describes the same configuration as |other|. |
- bool Equals(const ProxyRules& other) const; |
- |
- // Exceptions for when not to use a proxy. |
- ProxyBypassRules bypass_rules; |
- |
- // Reverse the meaning of |bypass_rules|. |
- bool reverse_bypass; |
- |
- Type type; |
- |
- // Set if |type| is TYPE_SINGLE_PROXY. |
- ProxyList single_proxies; |
- |
- // Set if |type| is TYPE_PROXY_PER_SCHEME. |
- ProxyList proxies_for_http; |
- ProxyList proxies_for_https; |
- ProxyList proxies_for_ftp; |
- |
- // Used when a fallback has been defined and the url to be proxied doesn't |
- // match any of the standard schemes. |
- ProxyList fallback_proxies; |
- |
- private: |
- // Returns one of {&proxies_for_http, &proxies_for_https, &proxies_for_ftp} |
- // or NULL if it is a scheme that we don't have a mapping for. Should only |
- // call this if the type is TYPE_PROXY_PER_SCHEME. Intentionally returns |
- // NULL for "ws" and "wss" as those are handled specially by |
- // GetProxyListForWebSocketScheme(). |
- ProxyList* MapUrlSchemeToProxyListNoFallback(const std::string& scheme); |
- |
- // Returns the first of {&fallback_proxies, &proxies_for_https, |
- // &proxies_for_http} that is non-empty, or NULL. |
- const ProxyList* GetProxyListForWebSocketScheme() const; |
- }; |
- |
- typedef int ID; |
- |
- // Indicates an invalid proxy config. |
- static const ID kInvalidConfigID = 0; |
- |
- ProxyConfig(); |
- ProxyConfig(const ProxyConfig& config); |
- ~ProxyConfig(); |
- ProxyConfig& operator=(const ProxyConfig& config); |
- |
- // Used to numerically identify this configuration. |
- ID id() const { return id_; } |
- void set_id(ID id) { id_ = id; } |
- bool is_valid() const { return id_ != kInvalidConfigID; } |
- |
- // Returns true if the given config is equivalent to this config. The |
- // comparison ignores differences in |id()| and |source()|. |
- bool Equals(const ProxyConfig& other) const; |
- |
- // Returns true if this config contains any "automatic" settings. See the |
- // class description for what that means. |
- bool HasAutomaticSettings() const; |
- |
- void ClearAutomaticSettings(); |
- |
- // Creates a Value dump of this configuration. The caller is responsible for |
- // deleting the returned value. |
- base::DictionaryValue* ToValue() const; |
- |
- ProxyRules& proxy_rules() { |
- return proxy_rules_; |
- } |
- |
- const ProxyRules& proxy_rules() const { |
- return proxy_rules_; |
- } |
- |
- void set_pac_url(const GURL& url) { |
- pac_url_ = url; |
- } |
- |
- const GURL& pac_url() const { |
- return pac_url_; |
- } |
- |
- void set_pac_mandatory(bool enable_pac_mandatory) { |
- pac_mandatory_ = enable_pac_mandatory; |
- } |
- |
- bool pac_mandatory() const { |
- return pac_mandatory_; |
- } |
- |
- bool has_pac_url() const { |
- return pac_url_.is_valid(); |
- } |
- |
- void set_auto_detect(bool enable_auto_detect) { |
- auto_detect_ = enable_auto_detect; |
- } |
- |
- bool auto_detect() const { |
- return auto_detect_; |
- } |
- |
- void set_source(ProxyConfigSource source) { |
- source_ = source; |
- } |
- |
- ProxyConfigSource source() const { |
- return source_; |
- } |
- |
- // Helpers to construct some common proxy configurations. |
- |
- static ProxyConfig CreateDirect() { |
- return ProxyConfig(); |
- } |
- |
- static ProxyConfig CreateAutoDetect() { |
- ProxyConfig config; |
- config.set_auto_detect(true); |
- return config; |
- } |
- |
- static ProxyConfig CreateFromCustomPacURL(const GURL& pac_url) { |
- ProxyConfig config; |
- config.set_pac_url(pac_url); |
- // By default fall back to direct connection in case PAC script fails. |
- config.set_pac_mandatory(false); |
- return config; |
- } |
- |
- private: |
- // True if the proxy configuration should be auto-detected. |
- bool auto_detect_; |
- |
- // If non-empty, indicates the URL of the proxy auto-config file to use. |
- GURL pac_url_; |
- |
- // If true, blocks all traffic in case fetching the pac script from |pac_url_| |
- // fails. Only valid if |pac_url_| is non-empty. |
- bool pac_mandatory_; |
- |
- // Manual proxy settings. |
- ProxyRules proxy_rules_; |
- |
- // Source of proxy settings. |
- ProxyConfigSource source_; |
- |
- ID id_; |
-}; |
- |
-} // namespace net |
- |
- |
- |
-#endif // NET_PROXY_PROXY_CONFIG_H_ |