Chromium Code Reviews| Index: chrome/browser/metrics/metrics_service.cc |
| diff --git a/chrome/browser/metrics/metrics_service.cc b/chrome/browser/metrics/metrics_service.cc |
| index c616651b2882537b5cc1fe5805301fc7f0569fde..34d9bb5dfa18f43d0df8ec906f22690b541243e4 100644 |
| --- a/chrome/browser/metrics/metrics_service.cc |
| +++ b/chrome/browser/metrics/metrics_service.cc |
| @@ -190,6 +190,7 @@ |
| #include "chrome/browser/metrics/metrics_state_manager.h" |
| #include "chrome/browser/metrics/network_metrics_provider.h" |
| #include "chrome/browser/metrics/omnibox_metrics_provider.h" |
| +#include "chrome/browser/metrics/profiler_metrics_provider.h" |
| #include "chrome/browser/metrics/tracking_synchronizer.h" |
| #include "chrome/common/pref_names.h" |
| #include "chrome/common/variations/variations_util.h" |
| @@ -395,6 +396,9 @@ MetricsService::MetricsService(metrics::MetricsStateManager* state_manager, |
| scoped_ptr<metrics::MetricsProvider>(new ChromeStabilityMetricsProvider)); |
| RegisterMetricsProvider( |
| scoped_ptr<metrics::MetricsProvider>(new GPUMetricsProvider())); |
| + profiler_metrics_provider_ = new ProfilerMetricsProvider; |
| + RegisterMetricsProvider( |
| + scoped_ptr<metrics::MetricsProvider>(profiler_metrics_provider_)); |
| #if defined(OS_WIN) |
| google_update_metrics_provider_ = new GoogleUpdateMetricsProviderWin; |
| @@ -735,19 +739,18 @@ void MetricsService::ReceivedProfilerData( |
| int process_type) { |
| DCHECK_EQ(INIT_TASK_SCHEDULED, state_); |
| - // Upon the first callback, create the initial log so that we can immediately |
| - // save the profiler data. |
| - if (!initial_metrics_log_.get()) { |
| - initial_metrics_log_ = CreateLog(MetricsLog::ONGOING_LOG); |
| - NotifyOnDidCreateMetricsLog(); |
| - } |
| - |
| - initial_metrics_log_->RecordProfilerData(process_data, process_type); |
| + profiler_metrics_provider_->RecordProfilerData(process_data, process_type); |
| } |
| void MetricsService::FinishedReceivingProfilerData() { |
| DCHECK_EQ(INIT_TASK_SCHEDULED, state_); |
| state_ = INIT_TASK_DONE; |
| + |
| + // Create the initial log. |
|
blundell
2014/06/01 16:49:26
Is this change safe? The other option is to add a
Alexei Svitkine (slow)
2014/06/02 15:17:06
I think the change of order (i.e. RecordProfilerDa
|
| + DCHECK(!initial_metrics_log_.get()); |
| + initial_metrics_log_ = CreateLog(MetricsLog::ONGOING_LOG); |
| + NotifyOnDidCreateMetricsLog(); |
| + |
| scheduler_->InitTaskComplete(); |
| } |