Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(230)

Unified Diff: net/proxy/proxy_config.h

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/proxy/proxy_bypass_rules_unittest.cc ('k') | net/proxy/proxy_config.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_
« no previous file with comments | « net/proxy/proxy_bypass_rules_unittest.cc ('k') | net/proxy/proxy_config.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698