Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(385)

Side by Side Diff: components/metrics/metrics_service.cc

Issue 922383003: Enable UMA log uploads for cellular networks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix for IOS Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « components/metrics/metrics_service.h ('k') | components/metrics/net/network_metrics_provider.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 //------------------------------------------------------------------------------ 5 //------------------------------------------------------------------------------
6 // Description of the life cycle of a instance of MetricsService. 6 // Description of the life cycle of a instance of MetricsService.
7 // 7 //
8 // OVERVIEW 8 // OVERVIEW
9 // 9 //
10 // A MetricsService instance is typically created at application startup. It is 10 // A MetricsService instance is typically created at application startup. It is
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 local_state_->SetInt64(prefs::kInstallDate, base::Time::Now().ToTimeT()); 341 local_state_->SetInt64(prefs::kInstallDate, base::Time::Now().ToTimeT());
342 } 342 }
343 343
344 MetricsService::~MetricsService() { 344 MetricsService::~MetricsService() {
345 DisableRecording(); 345 DisableRecording();
346 } 346 }
347 347
348 void MetricsService::InitializeMetricsRecordingState() { 348 void MetricsService::InitializeMetricsRecordingState() {
349 InitializeMetricsState(); 349 InitializeMetricsState();
350 350
351 base::Closure callback = base::Bind(&MetricsService::StartScheduledUpload, 351 base::Closure upload_callback =
352 self_ptr_factory_.GetWeakPtr()); 352 base::Bind(&MetricsService::StartScheduledUpload,
353 scheduler_.reset(new MetricsReportingScheduler(callback)); 353 self_ptr_factory_.GetWeakPtr());
354 base::Callback<void(bool*)> cellular_callback =
355 base::Bind(&MetricsService::GetIsCellularConnection,
356 self_ptr_factory_.GetWeakPtr());
357 scheduler_.reset(
358 new MetricsReportingScheduler(upload_callback, cellular_callback));
354 } 359 }
355 360
356 void MetricsService::Start() { 361 void MetricsService::Start() {
357 HandleIdleSinceLastTransmission(false); 362 HandleIdleSinceLastTransmission(false);
358 EnableRecording(); 363 EnableRecording();
359 EnableReporting(); 364 EnableReporting();
360 } 365 }
361 366
362 bool MetricsService::StartIfMetricsReportingEnabled() { 367 bool MetricsService::StartIfMetricsReportingEnabled() {
363 const bool enabled = state_manager_->IsMetricsReportingEnabled(); 368 const bool enabled = state_manager_->IsMetricsReportingEnabled();
(...skipping 892 matching lines...) Expand 10 before | Expand all | Expand 10 after
1256 DCHECK(IsSingleThreaded()); 1261 DCHECK(IsSingleThreaded());
1257 local_state_->SetBoolean(path, value); 1262 local_state_->SetBoolean(path, value);
1258 RecordCurrentState(local_state_); 1263 RecordCurrentState(local_state_);
1259 } 1264 }
1260 1265
1261 void MetricsService::RecordCurrentState(PrefService* pref) { 1266 void MetricsService::RecordCurrentState(PrefService* pref) {
1262 pref->SetInt64(prefs::kStabilityLastTimestampSec, 1267 pref->SetInt64(prefs::kStabilityLastTimestampSec,
1263 base::Time::Now().ToTimeT()); 1268 base::Time::Now().ToTimeT());
1264 } 1269 }
1265 1270
1271 void MetricsService::SetNetworkMetricsProvider(
1272 scoped_ptr<NetworkMetricsProvider> network_metrics_provider) {
1273 network_metrics_provider_ = network_metrics_provider.get();
1274 RegisterMetricsProvider(network_metrics_provider.Pass());
1275 }
1276
1277 bool MetricsService::IsCellularConnection() {
1278 // If network provider is not set than default to cellular connection because
Alexei Svitkine (slow) 2015/02/20 22:39:29 Nit: than -> then
gayane -on leave until 09-2017 2015/02/23 18:27:45 Removed
1279 // it is more conservative.
Alexei Svitkine (slow) 2015/02/20 22:39:29 I don't think we should default to cellular. If w
gayane -on leave until 09-2017 2015/02/23 18:27:45 Removed
1280 if (!network_metrics_provider_)
1281 return true;
1282
1283 SystemProfileProto::Network::ConnectionType connection_type =
1284 network_metrics_provider_->GetConnectionType();
1285
1286 switch (connection_type) {
1287 case SystemProfileProto_Network_ConnectionType_CONNECTION_2G:
1288 case SystemProfileProto_Network_ConnectionType_CONNECTION_3G:
1289 case SystemProfileProto_Network_ConnectionType_CONNECTION_4G:
1290 return true;
1291 default:
1292 return false;
1293 }
1294 }
1295
1296 void MetricsService::GetIsCellularConnection(bool* is_cellular_out) {
1297 *is_cellular_out = IsCellularConnection();
1298 }
1299
1266 } // namespace metrics 1300 } // namespace metrics
OLDNEW
« no previous file with comments | « components/metrics/metrics_service.h ('k') | components/metrics/net/network_metrics_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698