| Index: components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc
|
| diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc b/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc
|
| index f2dca56207cbce1311af543c3db085423b4f9773..770e3316cf1ddb26fe353e3174b09ec9e3e99bb0 100644
|
| --- a/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc
|
| +++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc
|
| @@ -5,24 +5,13 @@
|
| #include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h"
|
|
|
| #include <string>
|
| -#include <vector>
|
|
|
| #include "base/command_line.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| #include "base/metrics/field_trial.h"
|
| #include "base/strings/string_piece.h"
|
| -#include "base/time/time.h"
|
| -#include "base/values.h"
|
| #include "components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h"
|
| #include "net/base/host_port_pair.h"
|
| -#include "net/proxy/proxy_config.h"
|
| -#include "net/proxy/proxy_info.h"
|
| -#include "net/proxy/proxy_list.h"
|
| -#include "net/proxy/proxy_retry_info.h"
|
| #include "net/proxy/proxy_server.h"
|
| -#include "net/proxy/proxy_service.h"
|
| -#include "net/url_request/url_request.h"
|
| -#include "net/url_request/url_request_context.h"
|
| #include "url/url_constants.h"
|
|
|
| using base::FieldTrialList;
|
| @@ -169,23 +158,6 @@ DataReductionProxyParams::DataReductionProxyParams(int flags)
|
| DataReductionProxyParams::~DataReductionProxyParams() {
|
| }
|
|
|
| -DataReductionProxyParams::DataReductionProxyList
|
| -DataReductionProxyParams::GetAllowedProxies() const {
|
| - DataReductionProxyList list;
|
| - if (allowed_) {
|
| - list.push_back(origin_);
|
| - }
|
| - if (allowed_ && fallback_allowed_)
|
| - list.push_back(fallback_origin_);
|
| - if (alt_allowed_) {
|
| - list.push_back(alt_origin_);
|
| - list.push_back(ssl_origin_);
|
| - }
|
| - if (alt_allowed_ && alt_fallback_allowed_)
|
| - list.push_back(alt_fallback_origin_);
|
| - return list;
|
| -}
|
| -
|
| DataReductionProxyParams::DataReductionProxyParams(int flags,
|
| bool should_call_init)
|
| : allowed_((flags & kAllowed) == kAllowed),
|
| @@ -347,11 +319,10 @@ void DataReductionProxyParams::InitWithoutChecks() {
|
|
|
| }
|
|
|
| -bool DataReductionProxyParams::WasDataReductionProxyUsed(
|
| - const net::URLRequest* request,
|
| - DataReductionProxyTypeInfo* proxy_info) const {
|
| - DCHECK(request);
|
| - return IsDataReductionProxy(request->proxy_server(), proxy_info);
|
| +bool DataReductionProxyParams::UsingHTTPTunnel(
|
| + const net::HostPortPair& proxy_server) const {
|
| + return ssl_origin_.is_valid() &&
|
| + ssl_origin_.host_port_pair().Equals(proxy_server);
|
| }
|
|
|
| bool DataReductionProxyParams::IsDataReductionProxy(
|
| @@ -415,19 +386,71 @@ bool DataReductionProxyParams::IsDataReductionProxy(
|
| return false;
|
| }
|
|
|
| -bool DataReductionProxyParams::IsBypassedByDataReductionProxyLocalRules(
|
| - const net::URLRequest& request,
|
| - const net::ProxyConfig& data_reduction_proxy_config) const {
|
| - DCHECK(request.context());
|
| - DCHECK(request.context()->proxy_service());
|
| - net::ProxyInfo result;
|
| - data_reduction_proxy_config.proxy_rules().Apply(
|
| - request.url(), &result);
|
| - if (!result.proxy_server().is_valid())
|
| - return true;
|
| - if (result.proxy_server().is_direct())
|
| - return true;
|
| - return !IsDataReductionProxy(result.proxy_server().host_port_pair(), NULL);
|
| +// Returns the data reduction proxy primary origin.
|
| +const net::ProxyServer& DataReductionProxyParams::origin() const {
|
| + return origin_;
|
| +}
|
| +
|
| +// Returns the data reduction proxy fallback origin.
|
| +const net::ProxyServer& DataReductionProxyParams::fallback_origin() const {
|
| + return fallback_origin_;
|
| +}
|
| +
|
| +// Returns the data reduction proxy ssl origin that is used with the
|
| +// alternative proxy configuration.
|
| +const net::ProxyServer& DataReductionProxyParams::ssl_origin() const {
|
| + return ssl_origin_;
|
| +}
|
| +
|
| +// Returns the alternative data reduction proxy primary origin.
|
| +const net::ProxyServer& DataReductionProxyParams::alt_origin() const {
|
| + return alt_origin_;
|
| +}
|
| +
|
| +// Returns the alternative data reduction proxy fallback origin.
|
| +const net::ProxyServer& DataReductionProxyParams::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& DataReductionProxyParams::secure_proxy_check_url() const {
|
| + return secure_proxy_check_url_;
|
| +}
|
| +
|
| +// Returns true if the data reduction proxy configuration may be used.
|
| +bool DataReductionProxyParams::allowed() const {
|
| + return allowed_;
|
| +}
|
| +
|
| +// Returns true if the fallback proxy may be used.
|
| +bool DataReductionProxyParams::fallback_allowed() const {
|
| + return fallback_allowed_;
|
| +}
|
| +
|
| +// Returns true if the alternative data reduction proxy configuration may be
|
| +// used.
|
| +bool DataReductionProxyParams::alternative_allowed() const {
|
| + return alt_allowed_;
|
| +}
|
| +
|
| +// Returns true if the alternative fallback data reduction proxy
|
| +// configuration may be used.
|
| +bool DataReductionProxyParams::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 DataReductionProxyParams::promo_allowed() const {
|
| + return promo_allowed_;
|
| +}
|
| +
|
| +// Returns true if the data reduction proxy should not actually use the
|
| +// proxy if enabled.
|
| +bool DataReductionProxyParams::holdback() const {
|
| + return holdback_;
|
| }
|
|
|
| std::string DataReductionProxyParams::GetDefaultDevOrigin() const {
|
| @@ -456,91 +479,6 @@ std::string DataReductionProxyParams::GetDefaultDevFallbackOrigin() const {
|
| return std::string();
|
| }
|
|
|
| -bool DataReductionProxyParams::AreDataReductionProxiesBypassed(
|
| - const net::URLRequest& request,
|
| - const net::ProxyConfig& data_reduction_proxy_config,
|
| - base::TimeDelta* min_retry_delay) const {
|
| - if (request.context() != NULL &&
|
| - request.context()->proxy_service() != NULL) {
|
| - return AreProxiesBypassed(
|
| - request.context()->proxy_service()->proxy_retry_info(),
|
| - data_reduction_proxy_config.proxy_rules(),
|
| - request.url().SchemeIs(url::kHttpsScheme),
|
| - min_retry_delay);
|
| - }
|
| -
|
| - return false;
|
| -}
|
| -
|
| -bool DataReductionProxyParams::AreProxiesBypassed(
|
| - const net::ProxyRetryInfoMap& retry_map,
|
| - const net::ProxyConfig::ProxyRules& proxy_rules,
|
| - bool is_https,
|
| - base::TimeDelta* min_retry_delay) const {
|
| - // Data reduction proxy config is TYPE_PROXY_PER_SCHEME.
|
| - if (proxy_rules.type != net::ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME)
|
| - return false;
|
| -
|
| - const net::ProxyList* proxies = is_https ?
|
| - proxy_rules.MapUrlSchemeToProxyList(url::kHttpsScheme) :
|
| - proxy_rules.MapUrlSchemeToProxyList(url::kHttpScheme);
|
| -
|
| - if (!proxies)
|
| - return false;
|
| -
|
| - scoped_ptr<base::ListValue> proxy_list =
|
| - scoped_ptr<base::ListValue>(proxies->ToValue());
|
| -
|
| - base::TimeDelta min_delay = base::TimeDelta::Max();
|
| - base::TimeDelta delay;
|
| - bool bypassed = false;
|
| - std::string proxy;
|
| - net::HostPortPair host_port_pair;
|
| -
|
| - for (size_t i = 0; i < proxy_list->GetSize(); ++i) {
|
| - proxy_list->GetString(i, &proxy);
|
| - host_port_pair = net::HostPortPair::FromString(std::string());
|
| - net::ProxyServer proxy_server =
|
| - net::ProxyServer::FromURI(proxy, net::ProxyServer::SCHEME_HTTP);
|
| - if (proxy_server.is_valid() && !proxy_server.is_direct())
|
| - host_port_pair = proxy_server.host_port_pair();
|
| -
|
| - if (IsDataReductionProxy(host_port_pair, NULL)) {
|
| - if (!IsProxyBypassed(
|
| - retry_map,
|
| - net::ProxyServer::FromURI(proxy, net::ProxyServer::SCHEME_HTTP),
|
| - &delay))
|
| - return false;
|
| - if (delay < min_delay)
|
| - min_delay = delay;
|
| - bypassed = true;
|
| - }
|
| - }
|
| -
|
| - if (min_retry_delay && bypassed)
|
| - *min_retry_delay = min_delay;
|
| -
|
| - return bypassed;
|
| -}
|
| -
|
| -bool DataReductionProxyParams::IsProxyBypassed(
|
| - const net::ProxyRetryInfoMap& retry_map,
|
| - const net::ProxyServer& proxy_server,
|
| - base::TimeDelta* retry_delay) const {
|
| - net::ProxyRetryInfoMap::const_iterator found =
|
| - retry_map.find(proxy_server.ToURI());
|
| -
|
| - if (found == retry_map.end() ||
|
| - found->second.bad_until < base::TimeTicks::Now()) {
|
| - return false;
|
| - }
|
| -
|
| - if (retry_delay)
|
| - *retry_delay = found->second.current_delay;
|
| -
|
| - return true;
|
| -}
|
| -
|
| // TODO(kundaji): Remove tests for macro definitions.
|
| std::string DataReductionProxyParams::GetDefaultOrigin() const {
|
| return quic_enabled_ ?
|
|
|