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 4e81a7bd4a102768eda9b363b662cf17e70c37b6..c068a3551c6e0d6e1b205552a4c10cbb4ba1014b 100644 |
--- a/chrome/browser/net/chrome_network_delegate.cc |
+++ b/chrome/browser/net/chrome_network_delegate.cc |
@@ -36,6 +36,7 @@ |
#include "components/data_reduction_proxy/browser/data_reduction_proxy_params.h" |
#include "components/data_reduction_proxy/browser/data_reduction_proxy_protocol.h" |
#include "components/data_reduction_proxy/browser/data_reduction_proxy_usage_stats.h" |
+#include "components/data_reduction_proxy/common/data_reduction_proxy_pref_names.h" |
#include "components/domain_reliability/monitor.h" |
#include "components/google/core/browser/google_util.h" |
#include "content/public/browser/browser_thread.h" |
@@ -293,6 +294,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 |
@@ -513,11 +515,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; |
} |
@@ -607,6 +613,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( |
+ received_content_length, *request, *data_reduction_proxy_enabled_); |
+ } |
DVLOG(2) << __FUNCTION__ |
<< " received content length: " << received_content_length |
<< " original content length: " << original_content_length |