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); |
} |
} |