| 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 6558ae123a8d01eac386242f1b1d44222e8e392a..adf1e32effb21f1c151e9012f804c87b16b32a50 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"
|
| @@ -292,6 +293,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
|
| @@ -346,6 +348,7 @@ void ChromeNetworkDelegate::InitializePrefsOnUIThread(
|
| BooleanPrefMember* enable_referrers,
|
| BooleanPrefMember* enable_do_not_track,
|
| BooleanPrefMember* force_google_safe_search,
|
| + BooleanPrefMember* data_reduction_proxy_enabled,
|
| PrefService* pref_service) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| enable_referrers->Init(prefs::kEnableReferrers, pref_service);
|
| @@ -361,6 +364,13 @@ void ChromeNetworkDelegate::InitializePrefsOnUIThread(
|
| force_google_safe_search->MoveToThread(
|
| BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO));
|
| }
|
| + if (data_reduction_proxy_enabled) {
|
| + data_reduction_proxy_enabled->Init(
|
| + data_reduction_proxy::prefs::kDataReductionProxyEnabled,
|
| + pref_service);
|
| + data_reduction_proxy_enabled->MoveToThread(
|
| + BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO));
|
| + }
|
| }
|
|
|
| // static
|
| @@ -504,11 +514,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 =
|
| + net::ProxyService::BYPASS_EVENT_TYPE_MAX;
|
| if (data_reduction_proxy::MaybeBypassProxyAndPrepareToRetry(
|
| + bypass_type,
|
| data_reduction_proxy_params_,
|
| request,
|
| original_response_headers,
|
| override_response_headers)) {
|
| + data_reduction_proxy_usage_stats_->SetBypassType(bypass_type);
|
| return net::OK;
|
| }
|
|
|
| @@ -598,6 +612,11 @@ void ChromeNetworkDelegate::OnCompleted(net::URLRequest* request,
|
| RecordContentLengthHistograms(received_content_length,
|
| original_content_length,
|
| freshness_lifetime);
|
| + if (data_reduction_proxy_enabled_ &&
|
| + data_reduction_proxy_enabled_->GetValue()) {
|
| + data_reduction_proxy_usage_stats_->RecordBypassedBytesHistograms(
|
| + received_content_length, request);
|
| + }
|
| DVLOG(2) << __FUNCTION__
|
| << " received content length: " << received_content_length
|
| << " original content length: " << original_content_length
|
|
|