Chromium Code Reviews| Index: chrome/browser/metrics/chrome_metrics_service_client.cc |
| diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc |
| index c68d2bf7b816bb4688c11c63d1dc4ad2a3f3648f..230c376f4206894f9c81697714ec0e335183b3cd 100644 |
| --- a/chrome/browser/metrics/chrome_metrics_service_client.cc |
| +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc |
| @@ -13,6 +13,7 @@ |
| #include "base/logging.h" |
| #include "base/metrics/field_trial.h" |
| #include "base/metrics/histogram.h" |
| +#include "base/metrics/sparse_histogram.h" |
| #include "base/prefs/pref_registry_simple.h" |
| #include "base/prefs/pref_service.h" |
| #include "base/strings/string16.h" |
| @@ -205,7 +206,13 @@ std::string ChromeMetricsServiceClient::GetVersionString() { |
| return version; |
| } |
| -void ChromeMetricsServiceClient::OnLogUploadComplete() { |
| +void ChromeMetricsServiceClient::OnLogUploadComplete(bool upload_succeeded) { |
| + // Record the network connection type. |
| + if (upload_succeeded) { |
| + UMA_HISTOGRAM_SPARSE_SLOWLY("UMA.LogUpload.ConnetionType", |
| + network_metrics_provider_->GetConnectionType()); |
|
Ilya Sherman
2015/03/24 00:14:23
The connection type is already recorded in the sys
Ilya Sherman
2015/03/24 00:14:23
FWIW, this histogram doesn't really need to be spa
gayane -on leave until 09-2017
2015/03/24 20:45:55
As discussed, system profile records the connectio
gayane -on leave until 09-2017
2015/03/24 20:45:55
Done.
|
| + } |
| + |
| // Collect network stats after each UMA upload. |
| network_stats_uploader_.CollectAndReportNetworkStats(); |
| } |
| @@ -267,10 +274,8 @@ ChromeMetricsServiceClient::CreateUploader( |
| base::TimeDelta ChromeMetricsServiceClient::GetStandardUploadInterval() { |
| #if defined(OS_ANDROID) || defined(OS_IOS) |
| - bool is_cellular = false; |
| - cellular_callback_.Run(&is_cellular); |
| - |
| - if (is_cellular && IsCellularEnabledByExperiment()) |
| + if (network_metrics_provider_->IsCellularConnection() && |
| + IsCellularEnabledByExperiment()) |
| return base::TimeDelta::FromSeconds(kStandardUploadIntervalCellularSeconds); |
| #endif |
| return base::TimeDelta::FromSeconds(kStandardUploadIntervalSeconds); |
| @@ -306,7 +311,14 @@ void ChromeMetricsServiceClient::Initialize() { |
| scoped_ptr<metrics::NetworkMetricsProvider> network_metrics_provider( |
| new metrics::NetworkMetricsProvider( |
| content::BrowserThread::GetBlockingPool())); |
| - cellular_callback_ = network_metrics_provider->GetConnectionCallback(); |
| + |
| + // GetConnectionCallback should be called from non const pointer. |
|
Ilya Sherman
2015/03/24 00:14:23
I don't understand this comment. Why does this ne
gayane -on leave until 09-2017
2015/03/24 20:45:55
As network_metrics_provider_ as a const pointer I
|
| + profiler_metrics_provider_ = new metrics::ProfilerMetricsProvider( |
| + network_metrics_provider.get()->GetConnectionCallback()); |
| + metrics_service_->RegisterMetricsProvider( |
| + scoped_ptr<metrics::MetricsProvider>(profiler_metrics_provider_)); |
| + |
| + network_metrics_provider_ = network_metrics_provider.get(); |
| metrics_service_->RegisterMetricsProvider(network_metrics_provider.Pass()); |
| metrics_service_->RegisterMetricsProvider( |
| @@ -316,11 +328,6 @@ void ChromeMetricsServiceClient::Initialize() { |
| metrics_service_->RegisterMetricsProvider( |
| scoped_ptr<metrics::MetricsProvider>(new metrics::GPUMetricsProvider())); |
| - profiler_metrics_provider_ = |
| - new metrics::ProfilerMetricsProvider(cellular_callback_); |
| - metrics_service_->RegisterMetricsProvider( |
| - scoped_ptr<metrics::MetricsProvider>(profiler_metrics_provider_)); |
| - |
| #if defined(OS_ANDROID) |
| metrics_service_->RegisterMetricsProvider( |
| scoped_ptr<metrics::MetricsProvider>( |