Index: components/metrics/metrics_service.cc |
diff --git a/components/metrics/metrics_service.cc b/components/metrics/metrics_service.cc |
index 3537e68a31b8ef3ee92f2ff06da982f4fa557416..20d9b44c943bd6a69dd21cef525aec5747ea62c6 100644 |
--- a/components/metrics/metrics_service.cc |
+++ b/components/metrics/metrics_service.cc |
@@ -335,6 +335,10 @@ void MetricsService::Start() { |
HandleIdleSinceLastTransmission(false); |
EnableRecording(); |
EnableReporting(); |
+ |
+ FOR_EACH_OBSERVER(MetricsServiceObserver, |
+ metrics_service_observer_list_, |
+ OnMetricsServiceStart()); |
} |
void MetricsService::StartRecordingForTests() { |
@@ -344,6 +348,10 @@ void MetricsService::StartRecordingForTests() { |
} |
void MetricsService::Stop() { |
+ FOR_EACH_OBSERVER(MetricsServiceObserver, |
+ metrics_service_observer_list_, |
+ OnMetricsServiceStop()); |
+ |
HandleIdleSinceLastTransmission(false); |
DisableReporting(); |
DisableRecording(); |
@@ -1036,6 +1044,14 @@ void MetricsService::RemoveSyntheticTrialObserver( |
synthetic_trial_observer_list_.RemoveObserver(observer); |
} |
+void MetricsService::AddObserver(MetricsServiceObserver* observer) { |
+ metrics_service_observer_list_.AddObserver(observer); |
+} |
+ |
+void MetricsService::RemoveObserver(MetricsServiceObserver* observer) { |
+ metrics_service_observer_list_.RemoveObserver(observer); |
+} |
+ |
void MetricsService::RegisterSyntheticFieldTrial( |
const SyntheticTrialGroup& trial) { |
for (size_t i = 0; i < synthetic_trial_groups_.size(); ++i) { |