Index: components/data_reduction_proxy/core/common/data_reduction_proxy_params.h |
diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_params.h b/components/data_reduction_proxy/core/common/data_reduction_proxy_params.h |
index b43da33920cba060b1219f8e6daa48786a4e377b..256c6c4ef8bd399a88b0252fef9d3bd3422d63eb 100644 |
--- a/components/data_reduction_proxy/core/common/data_reduction_proxy_params.h |
+++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_params.h |
@@ -7,13 +7,8 @@ |
#include <string> |
#include <utility> |
-#include <vector> |
-#include "base/gtest_prod_util.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "net/base/host_port_pair.h" |
-#include "net/proxy/proxy_config.h" |
-#include "net/proxy/proxy_retry_info.h" |
+#include "components/data_reduction_proxy/core/common/data_reduction_proxy_config_values.h" |
#include "net/proxy/proxy_server.h" |
#include "url/gurl.h" |
@@ -22,8 +17,8 @@ class TimeDelta; |
} |
namespace net { |
+class HostPortPair; |
class ProxyServer; |
-class URLRequest; |
} |
namespace data_reduction_proxy { |
@@ -46,7 +41,7 @@ struct DataReductionProxyTypeInfo { |
// constants otherwise. The DataReductionProxySettings class and others use this |
// class to determine the necessary DNS names to configure use of the Data |
// Reduction Proxy. |
-class DataReductionProxyParams { |
+class DataReductionProxyParams : public DataReductionProxyConfigValues { |
public: |
// Flags used during construction that specify if the data reduction proxy |
// is allowed to be used, if the fallback proxy is allowed to be used, if |
@@ -61,8 +56,6 @@ class DataReductionProxyParams { |
static const unsigned int kPromoAllowed = (1 << 4); |
static const unsigned int kHoldback = (1 << 5); |
- typedef std::vector<net::ProxyServer> DataReductionProxyList; |
- |
// Returns true if this client is part of field trial to use an alternative |
// configuration for the data reduction proxy. |
static bool IsIncludedInAlternativeFieldTrial(); |
@@ -133,166 +126,41 @@ class DataReductionProxyParams { |
// fallback proxy for HTTP traffic, and an SSL proxy. |
explicit DataReductionProxyParams(int flags); |
- virtual ~DataReductionProxyParams(); |
- |
- // Returns true if the specified |host_port_pair| matches a data reduction |
- // proxy. If true, |proxy_info.proxy_servers.first| will contain the name of |
- // the proxy that matches. |proxy_info.proxy_servers.second| will contain the |
- // name of the data reduction proxy server that would be used if |
- // |proxy_info.proxy_server.first| is bypassed, if one exists. In addition, |
- // |proxy_info| will note if the proxy was a fallback, an alternative, or a |
- // proxy for ssl; these are not mutually exclusive. |proxy_info| can be NULL |
- // if the caller isn't interested in its values. Virtual for testing. |
- virtual bool IsDataReductionProxy( |
+ ~DataReductionProxyParams() override; |
+ |
+ // If true, uses QUIC instead of SPDY to connect to proxies that use TLS. |
+ void EnableQuic(bool enable); |
+ |
+ // Overrides of |DataReductionProxyConfigValues| |
+ bool UsingHTTPTunnel(const net::HostPortPair& proxy_server) const override; |
+ |
+ bool IsDataReductionProxy( |
const net::HostPortPair& host_port_pair, |
- DataReductionProxyTypeInfo* proxy_info) const; |
+ DataReductionProxyTypeInfo* proxy_info) const override; |
- protected: |
- // Returns true if this request would be bypassed by the data request proxy |
- // based on applying the |data_reduction_proxy_config| param rules to the |
- // request URL. Virutal for testing. |
- virtual bool IsBypassedByDataReductionProxyLocalRules( |
- const net::URLRequest& request, |
- const net::ProxyConfig& data_reduction_proxy_config) const; |
- |
- // Checks if all configured data reduction proxies are in the retry map. |
- // Returns true if the request is bypassed by all configured data reduction |
- // proxies that apply to the request scheme. If all possible data reduction |
- // proxies are bypassed, returns the minimum retry delay of the bypassed data |
- // reduction proxies in min_retry_delay (if not NULL). If there are no |
- // bypassed data reduction proxies for the request scheme, returns false and |
- // does not assign min_retry_delay. Virtual for testing. |
- virtual bool AreDataReductionProxiesBypassed( |
- const net::URLRequest& request, |
- const net::ProxyConfig& data_reduction_proxy_config, |
- base::TimeDelta* min_retry_delay) const; |
+ const net::ProxyServer& origin() const override; |
- private: |
- // TODO(jeremyim) Remove these temporary friends. |
- friend class DataReductionProxyConfig; |
- friend class DataReductionProxyParamsTest; |
- friend class TestDataReductionProxyConfig; |
- FRIEND_TEST_ALL_PREFIXES(DataReductionProxyConfigTest, |
- TestGetDataReductionProxies); |
- FRIEND_TEST_ALL_PREFIXES(DataReductionProxyParamsTest, |
- AreProxiesBypassed); |
- FRIEND_TEST_ALL_PREFIXES(DataReductionProxyParamsTest, |
- AreProxiesBypassedRetryDelay); |
+ const net::ProxyServer& fallback_origin() const override; |
- // If true, uses QUIC instead of SPDY to connect to proxies that use TLS. |
- void EnableQuic(bool enable); |
+ const net::ProxyServer& ssl_origin() const override; |
- // Returns true if a data reduction proxy was used for the given |request|. |
- // If true, |proxy_info.proxy_servers.first| will contain the name of the |
- // proxy that was used. |proxy_info.proxy_servers.second| will contain the |
- // name of the data reduction proxy server that would be used if |
- // |proxy_info.proxy_server.first| is bypassed, if one exists. In addition, |
- // |proxy_info| will note if the proxy used was a fallback, an alternative, |
- // or a proxy for ssl; these are not mutually exclusive. |proxy_info| can be |
- // NULL if the caller isn't interested in its values. |
- virtual bool WasDataReductionProxyUsed( |
- const net::URLRequest* request, |
- DataReductionProxyTypeInfo* proxy_info) const; |
- |
- // Checks if all configured data reduction proxies are in the retry map. |
- // Returns true if the request is bypassed by all configured data reduction |
- // proxies that apply to the request scheme. If all possible data reduction |
- // proxies are bypassed, returns the minimum retry delay of the bypassed data |
- // reduction proxies in min_retry_delay (if not NULL). If there are no |
- // bypassed data reduction proxies for the request scheme, returns false and |
- // does not assign min_retry_delay. |
- bool AreProxiesBypassed(const net::ProxyRetryInfoMap& retry_map, |
- const net::ProxyConfig::ProxyRules& proxy_rules, |
- bool is_https, |
- base::TimeDelta* min_retry_delay) const; |
- |
- // Returns true if the proxy is on the retry map and the retry delay is not |
- // expired. If proxy is bypassed, retry_delay (if not NULL) returns the delay |
- // of proxy_server. If proxy is not bypassed, retry_delay is not assigned. |
- bool IsProxyBypassed(const net::ProxyRetryInfoMap& retry_map, |
- const net::ProxyServer& proxy_server, |
- base::TimeDelta* retry_delay) const; |
- |
- // Returns the data reduction proxy primary origin. |
- const net::ProxyServer& origin() const { |
- return origin_; |
- } |
- |
- // Returns the data reduction proxy fallback origin. |
- const net::ProxyServer& fallback_origin() const { |
- return fallback_origin_; |
- } |
- |
- // Returns the data reduction proxy ssl origin that is used with the |
- // alternative proxy configuration. |
- const net::ProxyServer& ssl_origin() const { |
- return ssl_origin_; |
- } |
- |
- // Returns the alternative data reduction proxy primary origin. |
- const net::ProxyServer& alt_origin() const { |
- return alt_origin_; |
- } |
- |
- // Returns the alternative data reduction proxy fallback origin. |
- const net::ProxyServer& alt_fallback_origin() const { |
- return alt_fallback_origin_; |
- } |
- |
- // Returns the URL to check to decide if the secure proxy origin should be |
- // used. |
- const GURL& secure_proxy_check_url() const { |
- return secure_proxy_check_url_; |
- } |
- |
- // Returns the URL to fetch to warm the data reduction proxy connection. |
- const GURL& warmup_url() const { |
- return warmup_url_; |
- } |
- |
- // Returns true if the data reduction proxy configuration may be used. |
- bool allowed() const { |
- return allowed_; |
- } |
- |
- // Returns true if the fallback proxy may be used. |
- bool fallback_allowed() const { |
- return fallback_allowed_; |
- } |
- |
- // Returns true if the alternative data reduction proxy configuration may be |
- // used. |
- bool alternative_allowed() const { |
- return alt_allowed_; |
- } |
- |
- // Returns true if the alternative fallback data reduction proxy |
- // configuration may be used. |
- bool alternative_fallback_allowed() const { |
- return alt_fallback_allowed_; |
- } |
- |
- // Returns true if the data reduction proxy promo may be shown. |
- // This is idependent of whether the data reduction proxy is allowed. |
- // TODO(bengr): maybe tie to whether proxy is allowed. |
- bool promo_allowed() const { |
- return promo_allowed_; |
- } |
- |
- // Returns true if the data reduction proxy should not actually use the |
- // proxy if enabled. |
- bool holdback() const { |
- return holdback_; |
- } |
- |
- // Given |allowed_|, |fallback_allowed_|, and |alt_allowed_|, returns the |
- // list of data reduction proxies that may be used. |
- DataReductionProxyList GetAllowedProxies() const; |
- |
- // Returns true if any proxy origins are set on the command line. |
- bool is_configured_on_command_line() const { |
- return configured_on_command_line_; |
- } |
+ const net::ProxyServer& alt_origin() const override; |
+ |
+ const net::ProxyServer& alt_fallback_origin() const override; |
+ |
+ const GURL& secure_proxy_check_url() const override; |
+ |
+ bool allowed() const override; |
+ |
+ bool fallback_allowed() const override; |
+ |
+ bool alternative_allowed() const override; |
+ |
+ bool alternative_fallback_allowed() const override; |
+ |
+ bool promo_allowed() const override; |
+ |
+ bool holdback() const override; |
protected: |
// Test constructor that optionally won't call Init(); |
@@ -323,21 +191,10 @@ class DataReductionProxyParams { |
virtual std::string GetDefaultSecureProxyCheckURL() const; |
virtual std::string GetDefaultWarmupURL() const; |
- protected: |
net::ProxyServer origin_; |
net::ProxyServer fallback_origin_; |
private: |
- // Checks if the primary and fallback data reduction proxies are in the retry |
- // map. Returns true if the request is bypassed by both data reduction |
- // proxies and returns the shortest bypass delay in delay_seconds (if not |
- // NULL). If the fallback proxy is not valid, returns true if primary proxy |
- // was bypassed and returns its bypass delay. |
- bool ArePrimaryAndFallbackBypassed(const net::ProxyRetryInfoMap& retry_map, |
- const net::ProxyServer& primary, |
- const net::ProxyServer& fallback, |
- base::TimeDelta* min_retry_delay) const; |
- |
net::ProxyServer ssl_origin_; |
net::ProxyServer alt_origin_; |
net::ProxyServer alt_fallback_origin_; |