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

Unified Diff: components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol.cc

Issue 1124073008: Base Data Reduction Proxy configuration on vectors of servers per origin scheme. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: bengr CR comments Created 5 years, 7 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 | « no previous file | components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_stats.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol.cc
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol.cc
index 9d68955d6f41f6bcbe4c4fcf795227fe9eb59362..6ef6ac6cc1837f66d1dae841e11646a3886c024a 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol.cc
@@ -37,28 +37,21 @@ void MarkProxiesAsBadUntil(
net::URLRequest* request,
const base::TimeDelta& bypass_duration,
bool bypass_all,
- const std::pair<net::ProxyServer, net::ProxyServer>&
- data_reduction_proxies) {
- DCHECK(data_reduction_proxies.first.is_valid());
- DCHECK(!data_reduction_proxies.first.host_port_pair().IsEmpty());
+ const std::vector<net::ProxyServer>& data_reduction_proxies) {
+ DCHECK(!data_reduction_proxies.empty());
// Synthesize a suitable |ProxyInfo| to add the proxies to the
// |ProxyRetryInfoMap| of the proxy service.
net::ProxyList proxy_list;
std::vector<net::ProxyServer> additional_bad_proxies;
- net::ProxyServer primary = data_reduction_proxies.first;
- if (primary.is_valid())
- proxy_list.AddProxyServer(primary);
- net::ProxyServer fallback;
- if (bypass_all) {
- if (data_reduction_proxies.second.is_valid() &&
- !data_reduction_proxies.second.host_port_pair().IsEmpty())
- fallback = data_reduction_proxies.second;
- if (fallback.is_valid()) {
- proxy_list.AddProxyServer(fallback);
- additional_bad_proxies.push_back(fallback);
- }
- proxy_list.AddProxyServer(net::ProxyServer::Direct());
+ for (const net::ProxyServer& proxy_server : data_reduction_proxies) {
+ DCHECK(proxy_server.is_valid());
+ proxy_list.AddProxyServer(proxy_server);
+ if (!bypass_all)
+ break;
+ additional_bad_proxies.push_back(proxy_server);
}
+ proxy_list.AddProxyServer(net::ProxyServer::Direct());
+
net::ProxyInfo proxy_info;
proxy_info.UseProxyList(proxy_list);
DCHECK(request->context());
@@ -123,10 +116,10 @@ bool DataReductionProxyBypassProtocol::MaybeBypassProxyAndPrepareToRetry(
// then apply the bypass logic regardless.
// TODO(sclittle): Remove this workaround once http://crbug.com/476610 is
// fixed.
- data_reduction_proxy_type_info.proxy_servers.first = net::ProxyServer(
- net::ProxyServer::SCHEME_HTTPS, request->proxy_server());
- data_reduction_proxy_type_info.proxy_servers.second = net::ProxyServer(
- net::ProxyServer::SCHEME_HTTP, request->proxy_server());
+ data_reduction_proxy_type_info.proxy_servers.push_back(net::ProxyServer(
+ net::ProxyServer::SCHEME_HTTPS, request->proxy_server()));
+ data_reduction_proxy_type_info.proxy_servers.push_back(net::ProxyServer(
+ net::ProxyServer::SCHEME_HTTP, request->proxy_server()));
data_reduction_proxy_type_info.is_alternative = false;
data_reduction_proxy_type_info.is_fallback = false;
data_reduction_proxy_type_info.is_ssl =
@@ -139,18 +132,13 @@ bool DataReductionProxyBypassProtocol::MaybeBypassProxyAndPrepareToRetry(
if (data_reduction_proxy_type_info.is_ssl)
return false;
- const net::ProxyServer& first =
- data_reduction_proxy_type_info.proxy_servers.first;
- if (!first.is_valid() || first.host_port_pair().IsEmpty())
+ if (data_reduction_proxy_type_info.proxy_servers.empty())
return false;
// At this point, the response is expected to have the data reduction proxy
// via header, so detect and report cases where the via header is missing.
- const net::ProxyServer& second =
- data_reduction_proxy_type_info.proxy_servers.second;
DataReductionProxyBypassStats::DetectAndRecordMissingViaHeaderResponseCode(
- second.is_valid() && !second.host_port_pair().IsEmpty(),
- response_headers);
+ !data_reduction_proxy_type_info.is_fallback, response_headers);
if (DataReductionProxyParams::
IsIncludedInRelaxMissingViaHeaderOtherBypassFieldTrial() &&
@@ -188,14 +176,14 @@ bool DataReductionProxyBypassProtocol::MaybeBypassProxyAndPrepareToRetry(
DCHECK(request->context());
DCHECK(request->context()->proxy_service());
net::ProxyServer proxy_server =
- data_reduction_proxy_type_info.proxy_servers.first;
+ data_reduction_proxy_type_info.proxy_servers.front();
// Only record UMA if the proxy isn't already on the retry list.
if (!config_->IsProxyBypassed(
request->context()->proxy_service()->proxy_retry_info(), proxy_server,
NULL)) {
DataReductionProxyBypassStats::RecordDataReductionProxyBypassInfo(
- second.is_valid() && !second.host_port_pair().IsEmpty(),
+ !data_reduction_proxy_type_info.is_fallback,
data_reduction_proxy_info->bypass_all, proxy_server, bypass_type);
}
@@ -210,8 +198,8 @@ bool DataReductionProxyBypassProtocol::MaybeBypassProxyAndPrepareToRetry(
}
// Retry if block-once was specified or if method is idempotent.
- return bypass_type == BYPASS_EVENT_TYPE_CURRENT ||
- IsRequestIdempotent(request);
+ return bypass_type == BYPASS_EVENT_TYPE_CURRENT ||
+ IsRequestIdempotent(request);
}
// static
« no previous file with comments | « no previous file | components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_stats.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698