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..6038705b6b862ac0dbad5a9ba796cea81fe097bf 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 |
Daniel Erat
2016/09/29 22:58:46
total nit: change ". So" to ", so"
xiaoyinh(OOO Sep 11-29)
2016/09/30 00:25:40
Done.
|
+ // invalid. |
+ pointer_metrics_recorder_.reset(); |
+#endif |
} |
void UserMetricsRecorder::RecordPeriodicMetrics() { |