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 |