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 747f670bfc10b753149a2e07a67728e818375ee4..5a1b9f77e36d458286543edfd40f49e119dd2008 100644 |
--- a/chrome/browser/net/chrome_network_delegate.cc |
+++ b/chrome/browser/net/chrome_network_delegate.cc |
@@ -6,6 +6,7 @@ |
#include <stdlib.h> |
+#include <limits> |
#include <vector> |
#include "base/base_paths.h" |
@@ -272,7 +273,8 @@ void StoreAccumulatedContentLength( |
void RecordContentLengthHistograms( |
int64 received_content_length, |
int64 original_content_length, |
- const base::TimeDelta& freshness_lifetime) { |
+ base::TimeDelta freshness_lifetime, |
+ bool has_finite_freshness_lifetime) { |
#if defined(OS_ANDROID) |
// Add the current resource to these histograms only when a valid |
// X-Original-Content-Length header is present. |
@@ -293,8 +295,12 @@ void RecordContentLengthHistograms( |
original_content_length); |
UMA_HISTOGRAM_COUNTS("Net.HttpContentLengthDifference", |
original_content_length - received_content_length); |
+ |
+ const double freshness_lifetime_seconds = |
+ has_finite_freshness_lifetime ? freshness_lifetime.InSeconds() : |
+ std::numeric_limit<double>::max(); |
UMA_HISTOGRAM_CUSTOM_COUNTS("Net.HttpContentFreshnessLifetime", |
- freshness_lifetime.InSeconds(), |
+ freshness_lifetime_seconds, |
base::TimeDelta::FromHours(1).InSeconds(), |
base::TimeDelta::FromDays(30).InSeconds(), |
100); |
@@ -576,9 +582,6 @@ void ChromeNetworkDelegate::OnCompleted(net::URLRequest* request, |
spdyproxy::DataReductionRequestType data_reduction_type = |
spdyproxy::GetDataReductionRequestType(request); |
- base::TimeDelta freshness_lifetime = |
- request->response_info().headers->GetFreshnessLifetime( |
- request->response_info().response_time); |
int64 adjusted_original_content_length = |
spdyproxy::GetAdjustedOriginalContentLength( |
data_reduction_type, original_content_length, |
@@ -586,9 +589,15 @@ void ChromeNetworkDelegate::OnCompleted(net::URLRequest* request, |
AccumulateContentLength(received_content_length, |
adjusted_original_content_length, |
data_reduction_type); |
+ base::TimeDelta freshness_lifetime; |
+ bool has_finite_freshness_lifetime; |
+ request->response_info().headers->GetFreshnessLifetime( |
+ request->response_info().response_time, |
+ &freshness_lifetime, &has_finite_freshness_lifetime); |
RecordContentLengthHistograms(received_content_length, |
original_content_length, |
- freshness_lifetime); |
+ freshness_lifetime, |
+ has_finite_freshness_lifetime); |
DVLOG(2) << __FUNCTION__ |
<< " received content length: " << received_content_length |
<< " original content length: " << original_content_length |