| 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 ae84c3eb7eb7b887cbf8ad2baf8febf69a305fa7..5a79df93a6a956d70f40f44c0d29fd73f1467289 100644
|
| --- a/chrome/browser/net/chrome_network_delegate.cc
|
| +++ b/chrome/browser/net/chrome_network_delegate.cc
|
| @@ -34,11 +34,6 @@
|
| #include "chrome/browser/profiles/profile_manager.h"
|
| #include "chrome/browser/task_manager/task_manager.h"
|
| #include "chrome/common/pref_names.h"
|
| -#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_auth_request_handler.h"
|
| -#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_metrics.h"
|
| -#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_statistics_prefs.h"
|
| -#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_usage_stats.h"
|
| -#include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h"
|
| #include "components/domain_reliability/monitor.h"
|
| #include "content/public/browser/browser_thread.h"
|
| #include "content/public/browser/render_frame_host.h"
|
| @@ -51,10 +46,6 @@
|
| #include "net/cookies/cookie_options.h"
|
| #include "net/http/http_request_headers.h"
|
| #include "net/http/http_response_headers.h"
|
| -#include "net/proxy/proxy_config.h"
|
| -#include "net/proxy/proxy_info.h"
|
| -#include "net/proxy/proxy_retry_info.h"
|
| -#include "net/proxy/proxy_server.h"
|
| #include "net/url_request/url_request.h"
|
| #include "net/url_request/url_request_context.h"
|
|
|
| @@ -115,90 +106,6 @@ void ForceGoogleSafeSearchCallbackWrapper(
|
| callback.Run(rv);
|
| }
|
|
|
| -void UpdateContentLengthPrefs(
|
| - int received_content_length,
|
| - int original_content_length,
|
| - data_reduction_proxy::DataReductionProxyRequestType request_type,
|
| - Profile* profile,
|
| - data_reduction_proxy::DataReductionProxyStatisticsPrefs* statistics_prefs) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - DCHECK_GE(received_content_length, 0);
|
| - DCHECK_GE(original_content_length, 0);
|
| -
|
| - // Can be NULL in a unit test.
|
| - if (!g_browser_process)
|
| - return;
|
| -
|
| - // Ignore off-the-record data.
|
| - if (!g_browser_process->profile_manager()->IsValidProfile(profile) ||
|
| - profile->IsOffTheRecord()) {
|
| - return;
|
| - }
|
| - data_reduction_proxy::UpdateContentLengthPrefs(
|
| - received_content_length,
|
| - original_content_length,
|
| - profile->GetPrefs(),
|
| - request_type, statistics_prefs);
|
| -}
|
| -
|
| -void StoreAccumulatedContentLength(
|
| - int received_content_length,
|
| - int original_content_length,
|
| - data_reduction_proxy::DataReductionProxyRequestType request_type,
|
| - Profile* profile,
|
| - data_reduction_proxy::DataReductionProxyStatisticsPrefs* statistics_prefs) {
|
| - BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
|
| - base::Bind(&UpdateContentLengthPrefs,
|
| - received_content_length,
|
| - original_content_length,
|
| - request_type,
|
| - profile,
|
| - statistics_prefs));
|
| -}
|
| -
|
| -void RecordContentLengthHistograms(
|
| - int64 received_content_length,
|
| - int64 original_content_length,
|
| - const base::TimeDelta& freshness_lifetime) {
|
| - // Add the current resource to these histograms only when a valid
|
| - // X-Original-Content-Length header is present.
|
| - if (original_content_length >= 0) {
|
| - UMA_HISTOGRAM_COUNTS("Net.HttpContentLengthWithValidOCL",
|
| - received_content_length);
|
| - UMA_HISTOGRAM_COUNTS("Net.HttpOriginalContentLengthWithValidOCL",
|
| - original_content_length);
|
| - UMA_HISTOGRAM_COUNTS("Net.HttpContentLengthDifferenceWithValidOCL",
|
| - original_content_length - received_content_length);
|
| - } else {
|
| - // Presume the original content length is the same as the received content
|
| - // length if the X-Original-Content-Header is not present.
|
| - original_content_length = received_content_length;
|
| - }
|
| - UMA_HISTOGRAM_COUNTS("Net.HttpContentLength", received_content_length);
|
| - UMA_HISTOGRAM_COUNTS("Net.HttpOriginalContentLength",
|
| - original_content_length);
|
| - UMA_HISTOGRAM_COUNTS("Net.HttpContentLengthDifference",
|
| - original_content_length - received_content_length);
|
| - UMA_HISTOGRAM_CUSTOM_COUNTS("Net.HttpContentFreshnessLifetime",
|
| - freshness_lifetime.InSeconds(),
|
| - base::TimeDelta::FromHours(1).InSeconds(),
|
| - base::TimeDelta::FromDays(30).InSeconds(),
|
| - 100);
|
| - if (freshness_lifetime.InSeconds() <= 0)
|
| - return;
|
| - UMA_HISTOGRAM_COUNTS("Net.HttpContentLengthCacheable",
|
| - received_content_length);
|
| - if (freshness_lifetime.InHours() < 4)
|
| - return;
|
| - UMA_HISTOGRAM_COUNTS("Net.HttpContentLengthCacheable4Hours",
|
| - received_content_length);
|
| -
|
| - if (freshness_lifetime.InHours() < 24)
|
| - return;
|
| - UMA_HISTOGRAM_COUNTS("Net.HttpContentLengthCacheable24Hours",
|
| - received_content_length);
|
| -}
|
| -
|
| #if defined(OS_ANDROID)
|
| void RecordPrecacheStatsOnUIThread(const GURL& url,
|
| const base::Time& fetch_time, int64 size,
|
| @@ -254,19 +161,12 @@ ChromeNetworkDelegate::ChromeNetworkDelegate(
|
| force_safe_search_(NULL),
|
| force_google_safe_search_(NULL),
|
| force_youtube_safety_mode_(NULL),
|
| - data_reduction_proxy_enabled_(NULL),
|
| #if defined(ENABLE_CONFIGURATION_POLICY)
|
| url_blacklist_manager_(NULL),
|
| #endif
|
| domain_reliability_monitor_(NULL),
|
| - received_content_length_(0),
|
| - original_content_length_(0),
|
| first_request_(true),
|
| - prerender_tracker_(NULL),
|
| - data_reduction_proxy_params_(NULL),
|
| - data_reduction_proxy_usage_stats_(NULL),
|
| - data_reduction_proxy_auth_request_handler_(NULL),
|
| - data_reduction_proxy_statistics_prefs_(NULL) {
|
| + prerender_tracker_(NULL) {
|
| DCHECK(enable_referrers);
|
| extensions_delegate_.reset(
|
| ChromeExtensionsNetworkDelegate::Create(event_router));
|
| @@ -347,36 +247,6 @@ void ChromeNetworkDelegate::AllowAccessToAllFiles() {
|
| g_allow_file_access_ = true;
|
| }
|
|
|
| -// static
|
| -// TODO(megjablon): Use data_reduction_proxy_delayed_pref_service to read prefs.
|
| -// Until updated the pref values may be up to an hour behind on desktop.
|
| -base::Value* ChromeNetworkDelegate::HistoricNetworkStatsInfoToValue(
|
| - PrefService* prefs) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - int64 total_received = prefs->GetInt64(
|
| - data_reduction_proxy::prefs::kHttpReceivedContentLength);
|
| - int64 total_original = prefs->GetInt64(
|
| - data_reduction_proxy::prefs::kHttpOriginalContentLength);
|
| -
|
| - base::DictionaryValue* dict = new base::DictionaryValue();
|
| - // Use strings to avoid overflow. base::Value only supports 32-bit integers.
|
| - dict->SetString("historic_received_content_length",
|
| - base::Int64ToString(total_received));
|
| - dict->SetString("historic_original_content_length",
|
| - base::Int64ToString(total_original));
|
| - return dict;
|
| -}
|
| -
|
| -base::Value* ChromeNetworkDelegate::SessionNetworkStatsInfoToValue() const {
|
| - base::DictionaryValue* dict = new base::DictionaryValue();
|
| - // Use strings to avoid overflow. base::Value only supports 32-bit integers.
|
| - dict->SetString("session_received_content_length",
|
| - base::Int64ToString(received_content_length_));
|
| - dict->SetString("session_original_content_length",
|
| - base::Int64ToString(original_content_length_));
|
| - return dict;
|
| -}
|
| -
|
| int ChromeNetworkDelegate::OnBeforeURLRequest(
|
| net::URLRequest* request,
|
| const net::CompletionCallback& callback,
|
| @@ -434,29 +304,6 @@ int ChromeNetworkDelegate::OnBeforeURLRequest(
|
| return rv;
|
| }
|
|
|
| -void ChromeNetworkDelegate::OnResolveProxy(
|
| - const GURL& url,
|
| - int load_flags,
|
| - const net::ProxyService& proxy_service,
|
| - net::ProxyInfo* result) {
|
| - if (!on_resolve_proxy_handler_.is_null() &&
|
| - !proxy_config_getter_.is_null()) {
|
| - on_resolve_proxy_handler_.Run(url, load_flags,
|
| - proxy_config_getter_.Run(),
|
| - proxy_service.config(),
|
| - proxy_service.proxy_retry_info(),
|
| - data_reduction_proxy_params_, result);
|
| - }
|
| -}
|
| -
|
| -void ChromeNetworkDelegate::OnProxyFallback(const net::ProxyServer& bad_proxy,
|
| - int net_error) {
|
| - if (data_reduction_proxy_usage_stats_) {
|
| - data_reduction_proxy_usage_stats_->OnProxyFallback(
|
| - bad_proxy, net_error);
|
| - }
|
| -}
|
| -
|
| int ChromeNetworkDelegate::OnBeforeSendHeaders(
|
| net::URLRequest* request,
|
| const net::CompletionCallback& callback,
|
| @@ -471,16 +318,6 @@ int ChromeNetworkDelegate::OnBeforeSendHeaders(
|
| return extensions_delegate_->OnBeforeSendHeaders(request, callback, headers);
|
| }
|
|
|
| -void ChromeNetworkDelegate::OnBeforeSendProxyHeaders(
|
| - net::URLRequest* request,
|
| - const net::ProxyInfo& proxy_info,
|
| - net::HttpRequestHeaders* headers) {
|
| - if (data_reduction_proxy_auth_request_handler_) {
|
| - data_reduction_proxy_auth_request_handler_->MaybeAddRequestHeader(
|
| - request, proxy_info.proxy_server(), headers);
|
| - }
|
| -}
|
| -
|
| void ChromeNetworkDelegate::OnSendHeaders(
|
| net::URLRequest* request,
|
| const net::HttpRequestHeaders& headers) {
|
| @@ -548,17 +385,14 @@ void ChromeNetworkDelegate::OnRawBytesRead(const net::URLRequest& request,
|
|
|
| void ChromeNetworkDelegate::OnCompleted(net::URLRequest* request,
|
| bool started) {
|
| - if (data_reduction_proxy_usage_stats_)
|
| - data_reduction_proxy_usage_stats_->OnUrlRequestCompleted(request, started);
|
| -
|
| TRACE_EVENT_ASYNC_END0("net", "URLRequest", request);
|
| if (request->status().status() == net::URLRequestStatus::SUCCESS) {
|
| +#if defined(OS_ANDROID)
|
| // For better accuracy, we use the actual bytes read instead of the length
|
| // specified with the Content-Length header, which may be inaccurate,
|
| // or missing, as is the case with chunked encoding.
|
| int64 received_content_length = request->received_response_content_length();
|
|
|
| -#if defined(OS_ANDROID)
|
| if (precache::PrecacheManager::IsPrecachingEnabled()) {
|
| // Record precache metrics when a fetch is completed successfully, if
|
| // precaching is enabled.
|
| @@ -569,48 +403,6 @@ void ChromeNetworkDelegate::OnCompleted(net::URLRequest* request,
|
| request->was_cached(), profile_));
|
| }
|
| #endif // defined(OS_ANDROID)
|
| -
|
| - // Only record for http or https urls.
|
| - bool is_http = request->url().SchemeIs("http");
|
| - bool is_https = request->url().SchemeIs("https");
|
| -
|
| - if (!request->was_cached() && // Don't record cached content
|
| - received_content_length && // Zero-byte responses aren't useful.
|
| - (is_http || is_https)) { // Only record for HTTP or HTTPS urls.
|
| - int64 original_content_length =
|
| - request->response_info().headers->GetInt64HeaderValue(
|
| - "x-original-content-length");
|
| - data_reduction_proxy::DataReductionProxyRequestType request_type =
|
| - data_reduction_proxy::GetDataReductionProxyRequestType(request);
|
| -
|
| - base::TimeDelta freshness_lifetime =
|
| - request->response_info().headers->GetFreshnessLifetimes(
|
| - request->response_info().response_time).freshness;
|
| - int64 adjusted_original_content_length =
|
| - data_reduction_proxy::GetAdjustedOriginalContentLength(
|
| - request_type, original_content_length,
|
| - received_content_length);
|
| - AccumulateContentLength(received_content_length,
|
| - adjusted_original_content_length,
|
| - request_type);
|
| - RecordContentLengthHistograms(received_content_length,
|
| - original_content_length,
|
| - freshness_lifetime);
|
| -
|
| - if (data_reduction_proxy_enabled_ &&
|
| - data_reduction_proxy_usage_stats_ &&
|
| - !proxy_config_getter_.is_null()) {
|
| - data_reduction_proxy_usage_stats_->RecordBytesHistograms(
|
| - request,
|
| - *data_reduction_proxy_enabled_,
|
| - proxy_config_getter_.Run());
|
| - }
|
| - DVLOG(2) << __FUNCTION__
|
| - << " received content length: " << received_content_length
|
| - << " original content length: " << original_content_length
|
| - << " url: " << request->url();
|
| - }
|
| -
|
| extensions_delegate_->OnCompleted(request, started);
|
| } else if (request->status().status() == net::URLRequestStatus::FAILED ||
|
| request->status().status() == net::URLRequestStatus::CANCELED) {
|
| @@ -822,20 +614,3 @@ bool ChromeNetworkDelegate::OnCancelURLRequestWithPolicyViolatingReferrerHeader(
|
| referrer_url, callstack));
|
| return true;
|
| }
|
| -
|
| -void ChromeNetworkDelegate::AccumulateContentLength(
|
| - int64 received_content_length,
|
| - int64 original_content_length,
|
| - data_reduction_proxy::DataReductionProxyRequestType request_type) {
|
| - DCHECK_GE(received_content_length, 0);
|
| - DCHECK_GE(original_content_length, 0);
|
| - if (data_reduction_proxy_statistics_prefs_) {
|
| - StoreAccumulatedContentLength(received_content_length,
|
| - original_content_length,
|
| - request_type,
|
| - reinterpret_cast<Profile*>(profile_),
|
| - data_reduction_proxy_statistics_prefs_);
|
| - }
|
| - received_content_length_ += received_content_length;
|
| - original_content_length_ += original_content_length;
|
| -}
|
|
|