Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.cc |
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.cc |
index 52a7b735e95cb5823846855edf6dd5fc77eb74de..eff9462cd81912e1303ae60c24eda4127843c86e 100644 |
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.cc |
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.cc |
@@ -42,25 +42,27 @@ DataReductionProxyDelegate::DataReductionProxyDelegate( |
DCHECK(event_creator); |
DCHECK(bypass_stats); |
DCHECK(net_log); |
} |
DataReductionProxyDelegate::~DataReductionProxyDelegate() { |
} |
void DataReductionProxyDelegate::OnResolveProxy( |
const GURL& url, |
+ const std::string& method, |
int load_flags, |
const net::ProxyService& proxy_service, |
net::ProxyInfo* result) { |
DCHECK(result); |
- OnResolveProxyHandler(url, load_flags, configurator_->GetProxyConfig(), |
+ OnResolveProxyHandler(url, method, load_flags, |
+ configurator_->GetProxyConfig(), |
proxy_service.proxy_retry_info(), config_, result); |
} |
void DataReductionProxyDelegate::OnTunnelConnectCompleted( |
const net::HostPortPair& endpoint, |
const net::HostPortPair& proxy_server, |
int net_error) { |
if (config_->IsDataReductionProxy(proxy_server, NULL)) { |
UMA_HISTOGRAM_SPARSE_SLOWLY("DataReductionProxy.HTTPConnectCompleted", |
std::abs(net_error)); |
@@ -103,32 +105,34 @@ bool DataReductionProxyDelegate::IsTrustedSpdyProxy( |
config_->IsDataReductionProxy(proxy_server.host_port_pair(), nullptr); |
} |
void DataReductionProxyDelegate::OnTunnelHeadersReceived( |
const net::HostPortPair& origin, |
const net::HostPortPair& proxy_server, |
const net::HttpResponseHeaders& response_headers) { |
} |
void OnResolveProxyHandler(const GURL& url, |
+ const std::string& method, |
int load_flags, |
const net::ProxyConfig& data_reduction_proxy_config, |
const net::ProxyRetryInfoMap& proxy_retry_info, |
const DataReductionProxyConfig* config, |
net::ProxyInfo* result) { |
DCHECK(config); |
DCHECK(result->is_empty() || result->is_direct() || |
!config->IsDataReductionProxy(result->proxy_server().host_port_pair(), |
NULL)); |
bool data_saver_proxy_used = true; |
if (result->is_empty() || !result->proxy_server().is_direct() || |
- result->proxy_list().size() != 1 || url.SchemeIsWSOrWSS()) { |
+ result->proxy_list().size() != 1 || url.SchemeIsWSOrWSS() || |
+ method == "POST") { |
return; |
} |
if (data_reduction_proxy_config.is_valid()) { |
net::ProxyInfo data_reduction_proxy_info; |
data_reduction_proxy_config.proxy_rules().Apply(url, |
&data_reduction_proxy_info); |
data_reduction_proxy_info.DeprioritizeBadProxies(proxy_retry_info); |
if (!data_reduction_proxy_info.proxy_server().is_direct()) |
result->OverrideProxyList(data_reduction_proxy_info.proxy_list()); |