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

Unified Diff: net/proxy/proxy_bypass_rules.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/polling_proxy_config_service.cc ('k') | net/proxy/proxy_bypass_rules.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/proxy/proxy_bypass_rules.h
diff --git a/net/proxy/proxy_bypass_rules.h b/net/proxy/proxy_bypass_rules.h
deleted file mode 100644
index 6afeeee88c1d789c37db22f908fa01d14644c894..0000000000000000000000000000000000000000
--- a/net/proxy/proxy_bypass_rules.h
+++ /dev/null
@@ -1,182 +0,0 @@
-// Copyright (c) 2011 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_BYPASS_RULES_H_
-#define NET_PROXY_PROXY_BYPASS_RULES_H_
-
-#include <string>
-#include <vector>
-
-#include "net/base/net_export.h"
-#include "url/gurl.h"
-
-namespace net {
-
-// ProxyBypassRules describes the set of URLs that should bypass the proxy
-// settings, as a list of rules. A URL is said to match the bypass rules
-// if it matches any one of these rules.
-class NET_EXPORT ProxyBypassRules {
- public:
- // Interface for an individual proxy bypass rule.
- class NET_EXPORT Rule {
- public:
- Rule();
- virtual ~Rule();
-
- // Returns true if |url| matches the rule.
- virtual bool Matches(const GURL& url) const = 0;
-
- // Returns a string representation of this rule. This is used both for
- // visualizing the rules, and also to test equality of a rules list.
- virtual std::string ToString() const = 0;
-
- // Creates a copy of this rule. (Caller is responsible for deleting it)
- virtual Rule* Clone() const = 0;
-
- bool Equals(const Rule& rule) const;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(Rule);
- };
-
- typedef std::vector<const Rule*> RuleList;
-
- // Note: This class supports copy constructor and assignment.
- ProxyBypassRules();
- ProxyBypassRules(const ProxyBypassRules& rhs);
- ~ProxyBypassRules();
- ProxyBypassRules& operator=(const ProxyBypassRules& rhs);
-
- // Returns the current list of rules. The rules list contains pointers
- // which are owned by this class, callers should NOT keep references
- // or delete them.
- const RuleList& rules() const { return rules_; }
-
- // Returns true if |url| matches any of the proxy bypass rules.
- bool Matches(const GURL& url) const;
-
- // Returns true if |*this| is equal to |other|; in other words, whether they
- // describe the same set of rules.
- bool Equals(const ProxyBypassRules& other) const;
-
- // Initializes the list of rules by parsing the string |raw|. |raw| is a
- // comma separated list of rules. See AddRuleFromString() to see the list
- // of supported formats.
- void ParseFromString(const std::string& raw);
-
- // This is a variant of ParseFromString, which interprets hostname patterns
- // as suffix tests rather than hostname tests (so "google.com" would actually
- // match "*google.com"). This is only currently used for the linux no_proxy
- // evironment variable. It is less flexible, since with the suffix matching
- // format you can't match an individual host.
- // NOTE: Use ParseFromString() unless you truly need this behavior.
- void ParseFromStringUsingSuffixMatching(const std::string& raw);
-
- // Adds a rule that matches a URL when all of the following are true:
- // (a) The URL's scheme matches |optional_scheme|, if
- // |!optional_scheme.empty()|
- // (b) The URL's hostname matches |hostname_pattern|.
- // (c) The URL's (effective) port number matches |optional_port| if
- // |optional_port != -1|
- // Returns true if the rule was successfully added.
- bool AddRuleForHostname(const std::string& optional_scheme,
- const std::string& hostname_pattern,
- int optional_port);
-
- // Adds a rule that bypasses all "local" hostnames.
- // This matches IE's interpretation of the
- // "Bypass proxy server for local addresses" settings checkbox. Fully
- // qualified domain names or IP addresses are considered non-local,
- // regardless of what they map to (except for the loopback addresses).
- void AddRuleToBypassLocal();
-
- // Adds a rule given by the string |raw|. The format of |raw| can be any of
- // the following:
- //
- // (1) [ URL_SCHEME "://" ] HOSTNAME_PATTERN [ ":" <port> ]
- //
- // Match all hostnames that match the pattern HOSTNAME_PATTERN.
- //
- // Examples:
- // "foobar.com", "*foobar.com", "*.foobar.com", "*foobar.com:99",
- // "https://x.*.y.com:99"
- //
- // (2) "." HOSTNAME_SUFFIX_PATTERN [ ":" PORT ]
- //
- // Match a particular domain suffix.
- //
- // Examples:
- // ".google.com", ".com", "http://.google.com"
- //
- // (3) [ SCHEME "://" ] IP_LITERAL [ ":" PORT ]
- //
- // Match URLs which are IP address literals.
- //
- // Conceptually this is the similar to (1), but with special cases
- // to handle IP literal canonicalization. For example matching
- // on "[0:0:0::1]" would be the same as matching on "[::1]" since
- // the IPv6 canonicalization is done internally.
- //
- // Examples:
- // "127.0.1", "[0:0::1]", "[::1]", "http://[::1]:99"
- //
- // (4) IP_LITERAL "/" PREFIX_LENGHT_IN_BITS
- //
- // Match any URL that is to an IP literal that falls between the
- // given range. IP range is specified using CIDR notation.
- //
- // Examples:
- // "192.168.1.1/16", "fefe:13::abc/33".
- //
- // (5) "<local>"
- //
- // Match local addresses. The meaning of "<local>" is whether the
- // host matches one of: "127.0.0.1", "::1", "localhost".
- //
- // See the unit-tests for more examples.
- //
- // Returns true if the rule was successfully added.
- //
- // TODO(eroman): support IPv6 literals without brackets.
- //
- bool AddRuleFromString(const std::string& raw);
-
- // This is a variant of AddFromString, which interprets hostname patterns as
- // suffix tests rather than hostname tests (so "google.com" would actually
- // match "*google.com"). This is used for KDE which interprets every rule as
- // a suffix test. It is less flexible, since with the suffix matching format
- // you can't match an individual host.
- //
- // Returns true if the rule was successfully added.
- //
- // NOTE: Use AddRuleFromString() unless you truly need this behavior.
- bool AddRuleFromStringUsingSuffixMatching(const std::string& raw);
-
- // Converts the rules to string representation. Inverse operation to
- // ParseFromString().
- std::string ToString() const;
-
- // Removes all the rules.
- void Clear();
-
- // Sets |*this| to |other|.
- void AssignFrom(const ProxyBypassRules& other);
-
- private:
- // The following are variants of ParseFromString() and AddRuleFromString(),
- // which additionally prefix hostname patterns with a wildcard if
- // |use_hostname_suffix_matching| was true.
- void ParseFromStringInternal(const std::string& raw,
- bool use_hostname_suffix_matching);
- bool AddRuleFromStringInternal(const std::string& raw,
- bool use_hostname_suffix_matching);
- bool AddRuleFromStringInternalWithLogging(const std::string& raw,
- bool use_hostname_suffix_matching);
-
- RuleList rules_;
-};
-
-} // namespace net
-
-#endif // NET_PROXY_PROXY_BYPASS_RULES_H_
« no previous file with comments | « net/proxy/polling_proxy_config_service.cc ('k') | net/proxy/proxy_bypass_rules.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698