Chromium Code Reviews| Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.cc |
| diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.cc |
| index c21bf44cb429319c931cdd0f8c195080fd7b04d6..389b57bd4b144185637aa8343e76794b89801c4c 100644 |
| --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.cc |
| +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.cc |
| @@ -115,6 +115,21 @@ int64_t EstimateOriginalReceivedBytes(const net::URLRequest& request) { |
| util::CalculateEffectiveOCL(request); |
| } |
| +// Verifies that the chrome proxy related request headers are set correctly. |
| +// |via_chrome_proxy| is true if the request is being fetched via Chrome data |
| +// saver proxy. |
| +void VerifyHttpRequestHeaders(bool via_chrome_proxy, |
|
megjablon
2017/03/29 22:20:01
Capitalize Data Saver?
tbansal1
2017/03/29 22:37:54
Done.
|
| + const net::HttpRequestHeaders& headers) { |
| + if (via_chrome_proxy) { |
| + DCHECK(headers.HasHeader(chrome_proxy_header())); |
| + DCHECK(headers.HasHeader(chrome_proxy_ect_header())); |
| + } else { |
| + DCHECK(!headers.HasHeader(chrome_proxy_header())); |
| + DCHECK(!headers.HasHeader(chrome_proxy_accept_transform_header())); |
| + DCHECK(!headers.HasHeader(chrome_proxy_ect_header())); |
| + } |
| +} |
| + |
| } // namespace |
| DataReductionProxyNetworkDelegate::DataReductionProxyNetworkDelegate( |
| @@ -220,6 +235,7 @@ void DataReductionProxyNetworkDelegate::OnBeforeSendHeadersInternal( |
| DataReductionProxyData::GetDataAndCreateIfNecessary(request); |
| if (data) |
| data->set_used_data_reduction_proxy(true); |
| + VerifyHttpRequestHeaders(false, *headers); |
| return; |
| } |
| @@ -246,6 +262,7 @@ void DataReductionProxyNetworkDelegate::OnBeforeSendHeadersInternal( |
| lofi_decider->RemoveAcceptTransformHeader(headers); |
| } |
| RemoveChromeProxyECTHeader(headers); |
| + VerifyHttpRequestHeaders(false, *headers); |
| return; |
| } |
| @@ -282,6 +299,7 @@ void DataReductionProxyNetworkDelegate::OnBeforeSendHeadersInternal( |
| data_reduction_proxy_request_options_->AddRequestHeader(headers); |
| if (lofi_decider) |
| lofi_decider->MaybeSetIgnorePreviewsBlacklistDirective(headers); |
| + VerifyHttpRequestHeaders(true, *headers); |
| } |
| void DataReductionProxyNetworkDelegate::OnBeforeRedirectInternal( |
| @@ -514,7 +532,8 @@ void DataReductionProxyNetworkDelegate::MaybeAddChromeProxyECTHeader( |
| DCHECK(!request.url().SchemeIsCryptographic()); |
| DCHECK(request.url().SchemeIsHTTPOrHTTPS()); |
| - DCHECK(!request_headers->HasHeader(chrome_proxy_ect_header())); |
| + if (request_headers->HasHeader(chrome_proxy_ect_header())) |
| + request_headers->RemoveHeader(chrome_proxy_ect_header()); |
| if (request.context()->network_quality_estimator()) { |
| net::EffectiveConnectionType type = request.context() |