| Index: ash/metrics/user_metrics_recorder.cc
|
| diff --git a/ash/metrics/user_metrics_recorder.cc b/ash/metrics/user_metrics_recorder.cc
|
| index 0156819022bd5621f4a85e87c0933528b0991238..8959e6939763d71b4752479c416748a4bb37f17d 100644
|
| --- a/ash/metrics/user_metrics_recorder.cc
|
| +++ b/ash/metrics/user_metrics_recorder.cc
|
| @@ -18,10 +18,15 @@
|
| #include "ash/metrics/desktop_task_switch_metric_recorder.h"
|
| #include "ash/shell.h"
|
| #include "ash/wm/window_state_aura.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/metrics/histogram.h"
|
| #include "base/metrics/user_metrics.h"
|
| #include "ui/aura/window.h"
|
|
|
| +#if defined(OS_CHROMEOS)
|
| +#include "ash/common/metrics/pointer_metrics_recorder.h"
|
| +#endif
|
| +
|
| namespace ash {
|
|
|
| namespace {
|
| @@ -595,10 +600,20 @@ void UserMetricsRecorder::OnShellInitialized() {
|
| desktop_task_switch_metric_recorder_.reset(
|
| new DesktopTaskSwitchMetricRecorder());
|
| }
|
| +#if defined(OS_CHROMEOS)
|
| + pointer_metrics_recorder_ = base::MakeUnique<PointerMetricsRecorder>();
|
| +#endif
|
| }
|
|
|
| void UserMetricsRecorder::OnShellShuttingDown() {
|
| desktop_task_switch_metric_recorder_.reset();
|
| +
|
| +#if defined(OS_CHROMEOS)
|
| + // To clean up pointer_metrics_recorder_ properly, a valid shell instance is
|
| + // required, so explicitly delete it before the shell instance becomes
|
| + // invalid.
|
| + pointer_metrics_recorder_.reset();
|
| +#endif
|
| }
|
|
|
| void UserMetricsRecorder::RecordPeriodicMetrics() {
|
|
|