Index: chrome/browser/net/chrome_network_delegate.cc |
diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc |
index a7d81e5a9cece514d0f14bc5e25364972e4ec9ad..925777412f30befdb66d66636bfc598df5ebf3f6 100644 |
--- a/chrome/browser/net/chrome_network_delegate.cc |
+++ b/chrome/browser/net/chrome_network_delegate.cc |
@@ -298,6 +298,7 @@ ChromeNetworkDelegate::ChromeNetworkDelegate( |
enable_referrers_(enable_referrers), |
enable_do_not_track_(NULL), |
force_google_safe_search_(NULL), |
+ data_reduction_proxy_enabled_(NULL), |
#if defined(ENABLE_CONFIGURATION_POLICY) |
url_blacklist_manager_(NULL), |
#endif |
@@ -520,11 +521,15 @@ int ChromeNetworkDelegate::OnHeadersReceived( |
const net::HttpResponseHeaders* original_response_headers, |
scoped_refptr<net::HttpResponseHeaders>* override_response_headers, |
GURL* allowed_unsafe_redirect_url) { |
+ net::ProxyService::DataReductionProxyBypassType bypass_type; |
if (data_reduction_proxy::MaybeBypassProxyAndPrepareToRetry( |
data_reduction_proxy_params_, |
request, |
original_response_headers, |
- override_response_headers)) { |
+ override_response_headers, |
+ &bypass_type)) { |
+ if (data_reduction_proxy_usage_stats_) |
+ data_reduction_proxy_usage_stats_->SetBypassType(bypass_type); |
return net::OK; |
} |
@@ -614,6 +619,10 @@ void ChromeNetworkDelegate::OnCompleted(net::URLRequest* request, |
RecordContentLengthHistograms(received_content_length, |
original_content_length, |
freshness_lifetime); |
+ if (data_reduction_proxy_enabled_ && data_reduction_proxy_usage_stats_) { |
+ data_reduction_proxy_usage_stats_->RecordBypassedBytesHistograms( |
+ *request, *data_reduction_proxy_enabled_); |
+ } |
DVLOG(2) << __FUNCTION__ |
<< " received content length: " << received_content_length |
<< " original content length: " << original_content_length |