Index: components/data_reduction_proxy/browser/data_reduction_proxy_protocol.cc |
diff --git a/components/data_reduction_proxy/browser/data_reduction_proxy_protocol.cc b/components/data_reduction_proxy/browser/data_reduction_proxy_protocol.cc |
index 2ec31e750924280bffa3c74a7e7d0787ca2fccd6..97ee818a78517d08993bf1702c1f2a8fb5a46252 100644 |
--- a/components/data_reduction_proxy/browser/data_reduction_proxy_protocol.cc |
+++ b/components/data_reduction_proxy/browser/data_reduction_proxy_protocol.cc |
@@ -18,6 +18,7 @@ |
#include "net/url_request/url_request_context.h" |
#include "url/gurl.h" |
+ |
namespace { |
bool SetProxyServerFromGURL(const GURL& gurl, |
net::ProxyServer* proxy_server) { |
@@ -85,7 +86,20 @@ bool MaybeBypassProxyAndPrepareToRetry( |
return true; |
} |
- |
+void OnResolveProxyHandler(const GURL& url, |
+ int load_flags, |
+ const DataReductionProxyParams* params, |
+ net::ProxyInfo* result) { |
+ if ((load_flags & net::LOAD_BYPASS_DATA_REDUCTION_PROXY) && |
+ DataReductionProxyParams::IsIncludedInCriticalPathBypassFieldTrial() && |
+ !result->is_empty() && |
+ !result->is_direct() && |
+ params && |
+ params->IsDataReductionProxy( |
+ result->proxy_server().host_port_pair(), NULL)) { |
+ result->UseDirect(); |
+ } |
+} |
bool IsRequestIdempotent(const net::URLRequest* request) { |
DCHECK(request); |