Chromium Code Reviews| Index: ash/ash_periodic_metrics_recorder.cc |
| diff --git a/ash/ash_periodic_metrics_recorder.cc b/ash/ash_periodic_metrics_recorder.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c31d914a1cce43bab2a6823cfd7bb2c9b06b0ea7 |
| --- /dev/null |
| +++ b/ash/ash_periodic_metrics_recorder.cc |
| @@ -0,0 +1,48 @@ |
| +// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "ash/ash_periodic_metrics_recorder.h" |
| + |
| +#include "ash/shelf/shelf_layout_manager.h" |
| +#include "ash/shelf/shelf_widget.h" |
| +#include "ash/shell.h" |
| +#include "base/metrics/histogram.h" |
| + |
| +namespace ash { |
| +namespace { |
| +const int SHELF_ALIGNMENT_UMA_ENUM_VALUE_BOTTOM = 0; |
| +const int SHELF_ALIGNMENT_UMA_ENUM_VALUE_LEFT = 1; |
| +const int SHELF_ALIGNMENT_UMA_ENUM_VALUE_RIGHT = 2; |
| +const int SHELF_ALIGNMENT_UMA_ENUM_VALUE_COUNT = 3; |
| +} |
| + |
| +// Time in seconds between calls to "RecordMetrics". |
| +const int kAshPeridicMetricsTimeInSeconds = 1 * 60; |
|
James Cook
2013/11/01 00:28:51
Peridic -> Periodic
Harry McCleave
2013/11/01 01:00:38
Done.
|
| + |
| +AshPeriodicMetricsRecorder::AshPeriodicMetricsRecorder() { |
| + timer_.Start(FROM_HERE, |
| + base::TimeDelta::FromSeconds(kAshPeridicMetricsTimeInSeconds), |
| + this, |
| + &AshPeriodicMetricsRecorder::RecordMetrics); |
| +} |
| + |
| +AshPeriodicMetricsRecorder::~AshPeriodicMetricsRecorder() { |
| + timer_.Stop(); |
| +} |
| + |
| +void AshPeriodicMetricsRecorder::RecordMetrics() { |
| + internal::ShelfLayoutManager *manager = |
|
James Cook
2013/11/01 00:28:51
nit: * on left
Harry McCleave
2013/11/01 01:00:38
Done.
|
| + internal::ShelfLayoutManager::ForLauncher(Shell::GetPrimaryRootWindow()); |
| + if (manager) { |
| + UMA_HISTOGRAM_ENUMERATION("Ash.ShelfAlignmentOverTime", |
| + manager->SelectValueForShelfAlignment( |
| + SHELF_ALIGNMENT_UMA_ENUM_VALUE_BOTTOM, |
| + SHELF_ALIGNMENT_UMA_ENUM_VALUE_LEFT, |
| + SHELF_ALIGNMENT_UMA_ENUM_VALUE_RIGHT, |
| + -1), |
| + SHELF_ALIGNMENT_UMA_ENUM_VALUE_COUNT); |
| + } |
| +} |
| + |
| +} // namespace ash |