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

Unified Diff: chrome/browser/metrics/metrics_service.cc

Issue 253203002: Log operator code histogram on new metric log (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@api_move
Patch Set: . Created 6 years, 7 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 | « chrome/browser/metrics/metrics_service.h ('k') | chrome/browser/metrics/metrics_service_observer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/metrics/metrics_service.cc
diff --git a/chrome/browser/metrics/metrics_service.cc b/chrome/browser/metrics/metrics_service.cc
index d27ca1b9b5631676066742327ac9ad94ac2bb06d..1fa803d45d045692a227dcf59115810ce6af2541 100644
--- a/chrome/browser/metrics/metrics_service.cc
+++ b/chrome/browser/metrics/metrics_service.cc
@@ -1043,6 +1043,7 @@ void MetricsService::ReceivedProfilerData(
initial_metrics_log_.reset(
new MetricsLog(state_manager_->client_id(), session_id_,
MetricsLog::ONGOING_LOG));
+ NotifyOnDidCreateMetricsLog();
}
initial_metrics_log_->RecordProfilerData(process_data, process_type);
@@ -1076,6 +1077,22 @@ void MetricsService::GetUptimes(PrefService* pref,
}
}
+void MetricsService::AddObserver(MetricsServiceObserver* observer) {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ observers_.AddObserver(observer);
+}
+
+void MetricsService::RemoveObserver(MetricsServiceObserver* observer) {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ observers_.RemoveObserver(observer);
+}
+
+void MetricsService::NotifyOnDidCreateMetricsLog() {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ FOR_EACH_OBSERVER(
+ MetricsServiceObserver, observers_, OnDidCreateMetricsLog());
+}
+
//------------------------------------------------------------------------------
// State save methods
@@ -1111,6 +1128,7 @@ void MetricsService::OpenNewLog() {
log_manager_.BeginLoggingWithLog(
new MetricsLog(state_manager_->client_id(), session_id_,
MetricsLog::ONGOING_LOG));
+ NotifyOnDidCreateMetricsLog();
if (state_ == INITIALIZED) {
// We only need to schedule that run once.
state_ = INIT_TASK_SCHEDULED;
@@ -1408,6 +1426,10 @@ void MetricsService::PrepareInitialStabilityLog() {
scoped_ptr<MetricsLog> initial_stability_log(
new MetricsLog(state_manager_->client_id(), session_id_,
MetricsLog::INITIAL_STABILITY_LOG));
+
+ // Do not call NotifyOnDidCreateMetricsLog here because the stability
+ // log describes stats from the _previous_ session.
+
if (!initial_stability_log->LoadSavedEnvironmentFromPrefs())
return;
initial_stability_log->RecordStabilityMetrics(base::TimeDelta(),
@@ -1937,3 +1959,17 @@ bool MetricsServiceHelper::IsCrashReportingEnabled() {
return false;
#endif
}
+
+void MetricsServiceHelper::AddMetricsServiceObserver(
+ MetricsServiceObserver* observer) {
+ MetricsService* metrics_service = g_browser_process->metrics_service();
+ if (metrics_service)
+ metrics_service->AddObserver(observer);
+}
+
+void MetricsServiceHelper::RemoveMetricsServiceObserver(
+ MetricsServiceObserver* observer) {
+ MetricsService* metrics_service = g_browser_process->metrics_service();
+ if (metrics_service)
+ metrics_service->RemoveObserver(observer);
+}
« no previous file with comments | « chrome/browser/metrics/metrics_service.h ('k') | chrome/browser/metrics/metrics_service_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698