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

Side by Side Diff: ash/metrics/user_metrics_recorder.cc

Issue 2886933003: Use stricter type checking in UMA_HISTOGRAM_ENUMERATION (Closed)
Patch Set: nocompile test Created 3 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/metrics/user_metrics_recorder.h" 5 #include "ash/metrics/user_metrics_recorder.h"
6 6
7 #include "ash/metrics/desktop_task_switch_metric_recorder.h" 7 #include "ash/metrics/desktop_task_switch_metric_recorder.h"
8 #include "ash/metrics/pointer_metrics_recorder.h" 8 #include "ash/metrics/pointer_metrics_recorder.h"
9 #include "ash/public/cpp/shelf_item.h" 9 #include "ash/public/cpp/shelf_item.h"
10 #include "ash/public/cpp/shell_window_ids.h" 10 #include "ash/public/cpp/shell_window_ids.h"
(...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after
623 pointer_metrics_recorder_.reset(); 623 pointer_metrics_recorder_.reset();
624 } 624 }
625 625
626 void UserMetricsRecorder::RecordPeriodicMetrics() { 626 void UserMetricsRecorder::RecordPeriodicMetrics() {
627 Shelf* shelf = Shelf::ForWindow(Shell::GetPrimaryRootWindow()); 627 Shelf* shelf = Shelf::ForWindow(Shell::GetPrimaryRootWindow());
628 // TODO(bruthig): Investigating whether the check for |manager| is necessary 628 // TODO(bruthig): Investigating whether the check for |manager| is necessary
629 // and add tests if it is. 629 // and add tests if it is.
630 if (shelf) { 630 if (shelf) {
631 // TODO(bruthig): Consider tracking the time spent in each alignment. 631 // TODO(bruthig): Consider tracking the time spent in each alignment.
632 UMA_HISTOGRAM_ENUMERATION("Ash.ShelfAlignmentOverTime", 632 UMA_HISTOGRAM_ENUMERATION("Ash.ShelfAlignmentOverTime",
633 shelf->SelectValueForShelfAlignment( 633 static_cast<ShelfAlignmentUmaEnumValue>(
634 SHELF_ALIGNMENT_UMA_ENUM_VALUE_BOTTOM, 634 shelf->SelectValueForShelfAlignment(
635 SHELF_ALIGNMENT_UMA_ENUM_VALUE_LEFT, 635 SHELF_ALIGNMENT_UMA_ENUM_VALUE_BOTTOM,
636 SHELF_ALIGNMENT_UMA_ENUM_VALUE_RIGHT), 636 SHELF_ALIGNMENT_UMA_ENUM_VALUE_LEFT,
637 SHELF_ALIGNMENT_UMA_ENUM_VALUE_RIGHT)),
637 SHELF_ALIGNMENT_UMA_ENUM_VALUE_COUNT); 638 SHELF_ALIGNMENT_UMA_ENUM_VALUE_COUNT);
638 } 639 }
639 640
640 if (IsUserInActiveDesktopEnvironment()) { 641 if (IsUserInActiveDesktopEnvironment()) {
641 RecordShelfItemCounts(); 642 RecordShelfItemCounts();
642 UMA_HISTOGRAM_COUNTS_100("Ash.NumberOfVisibleWindowsInPrimaryDisplay", 643 UMA_HISTOGRAM_COUNTS_100("Ash.NumberOfVisibleWindowsInPrimaryDisplay",
643 GetNumVisibleWindowsInPrimaryDisplay()); 644 GetNumVisibleWindowsInPrimaryDisplay());
644 } 645 }
645 646
646 // TODO(bruthig): Find out if this should only be logged when the user is 647 // TODO(bruthig): Find out if this should only be logged when the user is
647 // active. 648 // active.
648 // TODO(bruthig): Consider tracking how long a particular type of window is 649 // TODO(bruthig): Consider tracking how long a particular type of window is
649 // active at a time. 650 // active at a time.
650 UMA_HISTOGRAM_ENUMERATION("Ash.ActiveWindowShowTypeOverTime", 651 UMA_HISTOGRAM_ENUMERATION("Ash.ActiveWindowShowTypeOverTime",
651 GetActiveWindowState(), 652 GetActiveWindowState(),
652 ACTIVE_WINDOW_STATE_TYPE_COUNT); 653 ACTIVE_WINDOW_STATE_TYPE_COUNT);
653 } 654 }
654 655
655 bool UserMetricsRecorder::IsUserInActiveDesktopEnvironment() const { 656 bool UserMetricsRecorder::IsUserInActiveDesktopEnvironment() const {
656 return IsUserActive() && !IsKioskModeActive() && !IsArcKioskModeActive(); 657 return IsUserActive() && !IsKioskModeActive() && !IsArcKioskModeActive();
657 } 658 }
658 659
659 void UserMetricsRecorder::StartTimer() { 660 void UserMetricsRecorder::StartTimer() {
660 timer_.Start(FROM_HERE, 661 timer_.Start(FROM_HERE,
661 base::TimeDelta::FromSeconds(kAshPeriodicMetricsTimeInSeconds), 662 base::TimeDelta::FromSeconds(kAshPeriodicMetricsTimeInSeconds),
662 this, &UserMetricsRecorder::RecordPeriodicMetrics); 663 this, &UserMetricsRecorder::RecordPeriodicMetrics);
663 } 664 }
664 665
665 } // namespace ash 666 } // namespace ash
OLDNEW
« no previous file with comments | « no previous file | ash/shelf/shelf_view.cc » ('j') | components/sync/driver/frontend_data_type_controller.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698