| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_PARAMS_H_ | 5 #ifndef COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_PARAMS_H_ |
| 6 #define COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_PARAMS_H_ | 6 #define COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_PARAMS_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| 11 | 11 |
| 12 #include "base/macros.h" | 12 #include "base/macros.h" |
| 13 #include "net/base/host_port_pair.h" | 13 #include "net/base/host_port_pair.h" |
| 14 #include "net/proxy/proxy_retry_info.h" |
| 14 #include "url/gurl.h" | 15 #include "url/gurl.h" |
| 15 | 16 |
| 17 namespace base { |
| 18 class TimeDelta; |
| 19 } |
| 20 |
| 16 namespace net { | 21 namespace net { |
| 17 class URLRequest; | 22 class URLRequest; |
| 18 } | 23 } |
| 19 | 24 |
| 20 namespace data_reduction_proxy { | 25 namespace data_reduction_proxy { |
| 21 // Provides initialization parameters. Proxy origins, and the probe url are | 26 // Provides initialization parameters. Proxy origins, and the probe url are |
| 22 // are taken from flags if available and from preprocessor constants otherwise. | 27 // are taken from flags if available and from preprocessor constants otherwise. |
| 23 // The DataReductionProxySettings class and others use this class to determine | 28 // The DataReductionProxySettings class and others use this class to determine |
| 24 // the necessary DNS names to configure use of the data reduction proxy. | 29 // the necessary DNS names to configure use of the data reduction proxy. |
| 25 class DataReductionProxyParams { | 30 class DataReductionProxyParams { |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 // bypassed, if one exists. |proxy_servers| can be NULL if the caller isn't | 90 // bypassed, if one exists. |proxy_servers| can be NULL if the caller isn't |
| 86 // interested in its values. Virtual for testing. | 91 // interested in its values. Virtual for testing. |
| 87 virtual bool IsDataReductionProxy(const net::HostPortPair& host_port_pair, | 92 virtual bool IsDataReductionProxy(const net::HostPortPair& host_port_pair, |
| 88 std::pair<GURL, GURL>* proxy_servers) const; | 93 std::pair<GURL, GURL>* proxy_servers) const; |
| 89 | 94 |
| 90 // Returns true if this request will be sent through the data request proxy | 95 // Returns true if this request will be sent through the data request proxy |
| 91 // based on applying the param rules to the URL. We do not check bad proxy | 96 // based on applying the param rules to the URL. We do not check bad proxy |
| 92 // list. | 97 // list. |
| 93 virtual bool IsDataReductionProxyEligible(const net::URLRequest* request); | 98 virtual bool IsDataReductionProxyEligible(const net::URLRequest* request); |
| 94 | 99 |
| 100 // Checks if all configured data reduction proxies are in the retry map. |
| 101 // Returns true if the request is bypassed by all configured data reduction |
| 102 // proxies and returns the bypass delay in delay_seconds (if not NULL). If |
| 103 // there are no configured data reduction proxies, returns false. If |
| 104 // the request is bypassed by more than one proxy, delay_seconds returns |
| 105 // the shortest delay. |
| 106 bool AreDataReductionProxiesBypassed(const net::URLRequest& request, |
| 107 base::TimeDelta* min_retry_delay) const; |
| 108 |
| 109 // Checks if all configured data reduction proxies are in the retry map. |
| 110 // Returns true if the request is bypassed by all configured data reduction |
| 111 // proxies and returns the bypass delay in delay_seconds (if not NULL). If |
| 112 // there are no configured data reduction proxies, returns false. If |
| 113 // the request is bypassed by more than one proxy, delay_seconds returns |
| 114 // the shortest delay. |
| 115 bool AreProxiesBypassed(const net::ProxyRetryInfoMap& retry_map, |
| 116 bool is_https, |
| 117 base::TimeDelta* min_retry_delay) const; |
| 118 |
| 95 // Returns the data reduction proxy primary origin. | 119 // Returns the data reduction proxy primary origin. |
| 96 const GURL& origin() const { | 120 const GURL& origin() const { |
| 97 return origin_; | 121 return origin_; |
| 98 } | 122 } |
| 99 | 123 |
| 100 // Returns the data reduction proxy fallback origin. | 124 // Returns the data reduction proxy fallback origin. |
| 101 const GURL& fallback_origin() const { | 125 const GURL& fallback_origin() const { |
| 102 return fallback_origin_; | 126 return fallback_origin_; |
| 103 } | 127 } |
| 104 | 128 |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 virtual std::string GetDefaultDevOrigin() const; | 203 virtual std::string GetDefaultDevOrigin() const; |
| 180 virtual std::string GetDefaultOrigin() const; | 204 virtual std::string GetDefaultOrigin() const; |
| 181 virtual std::string GetDefaultFallbackOrigin() const; | 205 virtual std::string GetDefaultFallbackOrigin() const; |
| 182 virtual std::string GetDefaultSSLOrigin() const; | 206 virtual std::string GetDefaultSSLOrigin() const; |
| 183 virtual std::string GetDefaultAltOrigin() const; | 207 virtual std::string GetDefaultAltOrigin() const; |
| 184 virtual std::string GetDefaultAltFallbackOrigin() const; | 208 virtual std::string GetDefaultAltFallbackOrigin() const; |
| 185 virtual std::string GetDefaultProbeURL() const; | 209 virtual std::string GetDefaultProbeURL() const; |
| 186 virtual std::string GetDefaultWarmupURL() const; | 210 virtual std::string GetDefaultWarmupURL() const; |
| 187 | 211 |
| 188 private: | 212 private: |
| 213 // Checks if the primary and fallback data reduction proxies are in the retry |
| 214 // map. Returns true if the request is bypassed by both data reduction |
| 215 // proxies and returns the shortest bypass delay in delay_seconds (if not |
| 216 // NULL). If the fallback proxy is not valid, returns true if primary proxy |
| 217 // was bypassed and returns its bypass delay. |
| 218 bool ArePrimaryAndFallbackBypassed(const net::ProxyRetryInfoMap& retry_map, |
| 219 const GURL& primary, |
| 220 const GURL& fallback, |
| 221 base::TimeDelta* min_retry_delay) const; |
| 189 GURL origin_; | 222 GURL origin_; |
| 190 GURL fallback_origin_; | 223 GURL fallback_origin_; |
| 191 GURL ssl_origin_; | 224 GURL ssl_origin_; |
| 192 GURL alt_origin_; | 225 GURL alt_origin_; |
| 193 GURL alt_fallback_origin_; | 226 GURL alt_fallback_origin_; |
| 194 GURL probe_url_; | 227 GURL probe_url_; |
| 195 GURL warmup_url_; | 228 GURL warmup_url_; |
| 196 | 229 |
| 197 bool allowed_; | 230 bool allowed_; |
| 198 const bool fallback_allowed_; | 231 const bool fallback_allowed_; |
| 199 bool alt_allowed_; | 232 bool alt_allowed_; |
| 200 const bool promo_allowed_; | 233 const bool promo_allowed_; |
| 201 | 234 |
| 202 bool configured_on_command_line_; | 235 bool configured_on_command_line_; |
| 203 | 236 |
| 204 DISALLOW_COPY_AND_ASSIGN(DataReductionProxyParams); | 237 DISALLOW_COPY_AND_ASSIGN(DataReductionProxyParams); |
| 205 }; | 238 }; |
| 206 | 239 |
| 207 } // namespace data_reduction_proxy | 240 } // namespace data_reduction_proxy |
| 208 #endif // COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_PARAMS_H
_ | 241 #endif // COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_PARAMS_H
_ |
| OLD | NEW |