Chromium Code Reviews| Index: components/metrics/metrics_service.cc |
| diff --git a/components/metrics/metrics_service.cc b/components/metrics/metrics_service.cc |
| index 18ec2e55bddae79355348dcc22bbf3e848231092..58cecf6ab00fe7aa7cbd2fc5091044f72372c3ff 100644 |
| --- a/components/metrics/metrics_service.cc |
| +++ b/components/metrics/metrics_service.cc |
| @@ -311,6 +311,8 @@ void MetricsService::RegisterPrefs(PrefRegistrySimple* registry) { |
| registry->RegisterInt64Pref(prefs::kUninstallMetricsUptimeSec, 0); |
| } |
| +bool Test(){ return false;} |
|
Alexei Svitkine (slow)
2015/02/17 20:50:04
Remove this. ;)
gayane -on leave until 09-2017
2015/02/18 00:30:35
Done.
|
| + |
| MetricsService::MetricsService(MetricsStateManager* state_manager, |
| MetricsServiceClient* client, |
| PrefService* local_state) |
| @@ -350,7 +352,10 @@ void MetricsService::InitializeMetricsRecordingState() { |
| base::Closure callback = base::Bind(&MetricsService::StartScheduledUpload, |
| self_ptr_factory_.GetWeakPtr()); |
| - scheduler_.reset(new MetricsReportingScheduler(callback)); |
| + base::Closure func = |
| + base::Bind(&MetricsService::UpdateSchedulerConnectionType, |
|
Alexei Svitkine (slow)
2015/02/17 20:50:04
Sorry, I don't like this structure.
I suggest the
gayane -on leave until 09-2017
2015/02/18 00:30:35
Done.
|
| + self_ptr_factory_.GetWeakPtr()); |
| + scheduler_.reset(new MetricsReportingScheduler(callback, func)); |
| } |
| void MetricsService::Start() { |
| @@ -1263,4 +1268,29 @@ void MetricsService::RecordCurrentState(PrefService* pref) { |
| base::Time::Now().ToTimeT()); |
| } |
| +void MetricsService::SetNetworkMetricsProvider( |
| + metrics::NetworkMetricsProvider* network_metrics_provider) { |
| + RegisterMetricsProvider( |
| + scoped_ptr<metrics::MetricsProvider>(network_metrics_provider)); |
| + network_metrics_provider_ = network_metrics_provider; |
| +} |
| + |
| +bool MetricsService::IsCellularConnection() { |
| + SystemProfileProto::Network::ConnectionType connection_type = |
| + network_metrics_provider_->GetConnectionType(); |
| + |
| + switch (connection_type) { |
| + case SystemProfileProto_Network_ConnectionType_CONNECTION_2G: |
| + case SystemProfileProto_Network_ConnectionType_CONNECTION_3G: |
| + case SystemProfileProto_Network_ConnectionType_CONNECTION_4G: |
| + return true; |
| + default: |
| + return false; |
| + } |
| +} |
| + |
| +void MetricsService::UpdateSchedulerConnectionType() { |
| + scheduler_->SetConnectionType(IsCellularConnection()); |
| +} |
| + |
| } // namespace metrics |