Chromium Code Reviews| Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.cc |
| diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.cc |
| index 12b678567c8d377d51a5a883c6a674b468536332..2e39613a3c0df649f4f9b73527f1a302c80e47e4 100644 |
| --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.cc |
| +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.cc |
| @@ -25,6 +25,7 @@ |
| #include "components/data_reduction_proxy/core/common/version.h" |
| #include "crypto/random.h" |
| #include "net/base/host_port_pair.h" |
| +#include "net/base/load_flags.h" |
| #include "net/proxy/proxy_server.h" |
| #include "net/url_request/url_request.h" |
| @@ -126,7 +127,7 @@ DataReductionProxyRequestOptions::~DataReductionProxyRequestOptions() { |
| void DataReductionProxyRequestOptions::Init() { |
| key_ = GetDefaultKey(), |
| UpdateCredentials(); |
| - UpdateLoFi(); |
| + UpdateLoFi(net::LOAD_NORMAL); |
| UpdateVersion(); |
| UpdateExperiments(); |
| } |
| @@ -156,10 +157,14 @@ void DataReductionProxyRequestOptions::UpdateVersion() { |
| RegenerateRequestHeaderValue(); |
| } |
| -void DataReductionProxyRequestOptions::UpdateLoFi() { |
| +void DataReductionProxyRequestOptions::UpdateLoFi(int request_load_flags) { |
| + if (!lofi_.empty() && (request_load_flags & net::LOAD_BYPASS_CACHE)) { |
| + lofi_ = std::string(); |
| + RegenerateRequestHeaderValue(); |
| + return; |
| + } |
| // LoFi was not enabled, but now is. Add the header option. |
| - if (lofi_.empty() && |
| - DataReductionProxyParams::IsLoFiEnabled()) { |
| + if (lofi_.empty() && DataReductionProxyParams::IsLoFiEnabled()) { |
| lofi_ = "low"; |
| RegenerateRequestHeaderValue(); |
| return; |
| @@ -216,25 +221,27 @@ void DataReductionProxyRequestOptions::MaybeAddRequestHeader( |
| return; |
| if (proxy_server.is_direct()) |
| return; |
| - MaybeAddRequestHeaderImpl(proxy_server.host_port_pair(), |
| - false, |
| - request_headers); |
| + MaybeAddRequestHeaderImpl(proxy_server.host_port_pair(), false, |
| + request_headers, |
| + request ? request->load_flags() : net::LOAD_NORMAL); |
|
bengr
2015/05/11 20:35:40
Since looking at the load flags is probably not th
megjablon
2015/05/11 22:58:40
Done.
|
| } |
| void DataReductionProxyRequestOptions::MaybeAddProxyTunnelRequestHandler( |
| const net::HostPortPair& proxy_server, |
| net::HttpRequestHeaders* request_headers) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| - MaybeAddRequestHeaderImpl(proxy_server, true, request_headers); |
| + MaybeAddRequestHeaderImpl(proxy_server, true, request_headers, |
| + net::LOAD_NORMAL); |
| } |
| void DataReductionProxyRequestOptions::SetHeader( |
| - net::HttpRequestHeaders* headers) { |
| + net::HttpRequestHeaders* headers, |
| + int request_load_flags) { |
| base::Time now = Now(); |
| // Authorization credentials must be regenerated if they are expired. |
| if (!use_assigned_credentials_ && (now > credentials_expiration_time_)) |
| UpdateCredentials(); |
| - UpdateLoFi(); |
| + UpdateLoFi(request_load_flags); |
| const char kChromeProxyHeader[] = "Chrome-Proxy"; |
| std::string header_value; |
| if (headers->HasHeader(kChromeProxyHeader)) { |
| @@ -349,14 +356,15 @@ const std::string& DataReductionProxyRequestOptions::GetSecureSession() const { |
| void DataReductionProxyRequestOptions::MaybeAddRequestHeaderImpl( |
| const net::HostPortPair& proxy_server, |
| bool expect_ssl, |
| - net::HttpRequestHeaders* request_headers) { |
| + net::HttpRequestHeaders* request_headers, |
| + int request_load_flags) { |
| if (proxy_server.IsEmpty()) |
| return; |
| if (data_reduction_proxy_config_ && |
| data_reduction_proxy_config_->IsDataReductionProxy(proxy_server, NULL) && |
| data_reduction_proxy_config_->UsingHTTPTunnel(proxy_server) == |
| expect_ssl) { |
| - SetHeader(request_headers); |
| + SetHeader(request_headers, request_load_flags); |
| } |
| } |