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

Unified Diff: components/ukm/ukm_service.cc

Issue 2671603002: Add network information to UKM (Closed)
Patch Set: fix comments and includes Created 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/ukm/ukm_service.h ('k') | components/ukm/ukm_service_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/ukm/ukm_service.cc
diff --git a/components/ukm/ukm_service.cc b/components/ukm/ukm_service.cc
index 42bb7ad38383b0c53f7bc3c836dcd07392131ad2..b7cdcab2c3315832aecc2640116decfa0cc38c74 100644
--- a/components/ukm/ukm_service.cc
+++ b/components/ukm/ukm_service.cc
@@ -114,6 +114,9 @@ UkmService::UkmService(PrefService* pref_service,
base::Unretained(client_));
scheduler_.reset(new ukm::MetricsReportingScheduler(
rotate_callback, get_upload_interval_callback));
+
+ for (auto& provider : metrics_providers_)
+ provider->Init();
}
UkmService::~UkmService() {
@@ -134,6 +137,10 @@ void UkmService::Initialize() {
void UkmService::EnableReporting() {
DCHECK(thread_checker_.CalledOnValidThread());
DVLOG(1) << "UkmService::EnableReporting";
+
+ for (auto& provider : metrics_providers_)
+ provider->OnRecordingEnabled();
+
if (!initialize_started_)
Initialize();
scheduler_->Start();
@@ -142,6 +149,10 @@ void UkmService::EnableReporting() {
void UkmService::DisableReporting() {
DCHECK(thread_checker_.CalledOnValidThread());
DVLOG(1) << "UkmService::DisableReporting";
+
+ for (auto& provider : metrics_providers_)
+ provider->OnRecordingDisabled();
+
scheduler_->Stop();
Flush();
}
@@ -158,6 +169,11 @@ void UkmService::Purge() {
sources_.clear();
}
+void UkmService::RegisterMetricsProvider(
+ std::unique_ptr<metrics::MetricsProvider> provider) {
+ metrics_providers_.push_back(std::move(provider));
+}
+
// static
void UkmService::RegisterPrefs(PrefRegistrySimple* registry) {
registry->RegisterInt64Pref(prefs::kUkmClientId, 0);
@@ -204,7 +220,11 @@ void UkmService::BuildAndStoreLog() {
metrics::MetricsLog::RecordCoreSystemProfile(client_,
report.mutable_system_profile());
- // TODO(rkaplow): Populate network information.
+
+ for (auto& provider : metrics_providers_) {
+ provider->ProvideSystemProfileMetrics(report.mutable_system_profile());
+ }
+
std::string serialized_log;
report.SerializeToString(&serialized_log);
persisted_logs_.StoreLog(serialized_log);
« no previous file with comments | « components/ukm/ukm_service.h ('k') | components/ukm/ukm_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698