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

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

Issue 1148723006: Added Ash.TimeBetweenTaskSwitches to record time deltas between all recorded task switches. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merged with master. Created 5 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/task_switch_metrics_recorder.h" 5 #include "ash/metrics/task_switch_metrics_recorder.h"
6 6
7 #include "ash/metrics/task_switch_time_tracker.h" 7 #include "ash/metrics/task_switch_time_tracker.h"
8 8
9 namespace ash { 9 namespace ash {
10 10
11 namespace { 11 namespace {
12 12
13 const char kAshTaskSwitchHistogramName[] = "Ash.TimeBetweenTaskSwitches";
14
13 const char kDesktopHistogramName[] = 15 const char kDesktopHistogramName[] =
14 "Ash.Desktop.TimeBetweenNavigateToTaskSwitches"; 16 "Ash.Desktop.TimeBetweenNavigateToTaskSwitches";
15 17
16 const char kShelfHistogramName[] = 18 const char kShelfHistogramName[] =
17 "Ash.Shelf.TimeBetweenNavigateToTaskSwitches"; 19 "Ash.Shelf.TimeBetweenNavigateToTaskSwitches";
18 20
19 const char kTabStripHistogramName[] = 21 const char kTabStripHistogramName[] =
20 "Ash.Tab.TimeBetweenSwitchToExistingTabUserActions"; 22 "Ash.Tab.TimeBetweenSwitchToExistingTabUserActions";
21 23
22 const char kAcceleratorWindowCycleHistogramName[] = 24 const char kAcceleratorWindowCycleHistogramName[] =
23 "Ash.WindowCycleController.TimeBetweenTaskSwitches"; 25 "Ash.WindowCycleController.TimeBetweenTaskSwitches";
24 26
25 const char kAppListHistogramName[] = "Ash.AppList.TimeBetweenTaskSwitches"; 27 const char kAppListHistogramName[] = "Ash.AppList.TimeBetweenTaskSwitches";
26 28
27 const char kOverviewModeHistogramName[] = 29 const char kOverviewModeHistogramName[] =
28 "Ash.WindowSelector.TimeBetweenActiveWindowChanges"; 30 "Ash.WindowSelector.TimeBetweenActiveWindowChanges";
29 31
30 // Returns the histogram name for the given |task_switch_source|. 32 // Returns the histogram name for the given |task_switch_source|.
31 const char* GetHistogramName( 33 const char* GetHistogramName(
32 TaskSwitchMetricsRecorder::TaskSwitchSource task_switch_source) { 34 TaskSwitchMetricsRecorder::TaskSwitchSource task_switch_source) {
33 switch (task_switch_source) { 35 switch (task_switch_source) {
36 case TaskSwitchMetricsRecorder::kAny:
37 return kAshTaskSwitchHistogramName;
34 case TaskSwitchMetricsRecorder::kAppList: 38 case TaskSwitchMetricsRecorder::kAppList:
35 return kAppListHistogramName; 39 return kAppListHistogramName;
36 case TaskSwitchMetricsRecorder::kDesktop: 40 case TaskSwitchMetricsRecorder::kDesktop:
37 return kDesktopHistogramName; 41 return kDesktopHistogramName;
38 case TaskSwitchMetricsRecorder::kOverviewMode: 42 case TaskSwitchMetricsRecorder::kOverviewMode:
39 return kOverviewModeHistogramName; 43 return kOverviewModeHistogramName;
40 case TaskSwitchMetricsRecorder::kShelf: 44 case TaskSwitchMetricsRecorder::kShelf:
41 return kShelfHistogramName; 45 return kShelfHistogramName;
42 case TaskSwitchMetricsRecorder::kTabStrip: 46 case TaskSwitchMetricsRecorder::kTabStrip:
43 return kTabStripHistogramName; 47 return kTabStripHistogramName;
44 case TaskSwitchMetricsRecorder::kWindowCycleController: 48 case TaskSwitchMetricsRecorder::kWindowCycleController:
45 return kAcceleratorWindowCycleHistogramName; 49 return kAcceleratorWindowCycleHistogramName;
46 } 50 }
47 NOTREACHED(); 51 NOTREACHED();
48 return nullptr; 52 return nullptr;
49 } 53 }
50 54
51 } // namespace 55 } // namespace
52 56
53 TaskSwitchMetricsRecorder::TaskSwitchMetricsRecorder() { 57 TaskSwitchMetricsRecorder::TaskSwitchMetricsRecorder() {
54 } 58 }
55 59
56 TaskSwitchMetricsRecorder::~TaskSwitchMetricsRecorder() { 60 TaskSwitchMetricsRecorder::~TaskSwitchMetricsRecorder() {
57 } 61 }
58 62
59 void TaskSwitchMetricsRecorder::OnTaskSwitch( 63 void TaskSwitchMetricsRecorder::OnTaskSwitch(
60 TaskSwitchSource task_switch_source) { 64 TaskSwitchSource task_switch_source) {
65 DCHECK_NE(task_switch_source, kAny);
66 if (task_switch_source != kAny) {
67 OnTaskSwitchInternal(task_switch_source);
68 OnTaskSwitchInternal(kAny);
69 }
70 }
71
72 void TaskSwitchMetricsRecorder::OnTaskSwitchInternal(
73 TaskSwitchSource task_switch_source) {
61 TaskSwitchTimeTracker* task_switch_time_tracker = 74 TaskSwitchTimeTracker* task_switch_time_tracker =
62 FindTaskSwitchTimeTracker(task_switch_source); 75 FindTaskSwitchTimeTracker(task_switch_source);
63 if (!task_switch_time_tracker) 76 if (!task_switch_time_tracker)
64 AddTaskSwitchTimeTracker(task_switch_source); 77 AddTaskSwitchTimeTracker(task_switch_source);
65 78
66 task_switch_time_tracker = FindTaskSwitchTimeTracker(task_switch_source); 79 task_switch_time_tracker = FindTaskSwitchTimeTracker(task_switch_source);
67 CHECK(task_switch_time_tracker); 80 CHECK(task_switch_time_tracker);
68 81
69 task_switch_time_tracker->OnTaskSwitch(); 82 task_switch_time_tracker->OnTaskSwitch();
70 } 83 }
71 84
72 TaskSwitchTimeTracker* TaskSwitchMetricsRecorder::FindTaskSwitchTimeTracker( 85 TaskSwitchTimeTracker* TaskSwitchMetricsRecorder::FindTaskSwitchTimeTracker(
73 TaskSwitchSource task_switch_source) { 86 TaskSwitchSource task_switch_source) {
74 return histogram_map_.get(task_switch_source); 87 return histogram_map_.get(task_switch_source);
75 } 88 }
76 89
77 void TaskSwitchMetricsRecorder::AddTaskSwitchTimeTracker( 90 void TaskSwitchMetricsRecorder::AddTaskSwitchTimeTracker(
78 TaskSwitchSource task_switch_source) { 91 TaskSwitchSource task_switch_source) {
79 CHECK(histogram_map_.find(task_switch_source) == histogram_map_.end()); 92 CHECK(histogram_map_.find(task_switch_source) == histogram_map_.end());
80 93
81 const char* histogram_name = GetHistogramName(task_switch_source); 94 const char* histogram_name = GetHistogramName(task_switch_source);
82 DCHECK(histogram_name); 95 DCHECK(histogram_name);
83 96
84 histogram_map_.add( 97 histogram_map_.add(
85 task_switch_source, 98 task_switch_source,
86 make_scoped_ptr(new TaskSwitchTimeTracker(histogram_name))); 99 make_scoped_ptr(new TaskSwitchTimeTracker(histogram_name)));
87 } 100 }
88 101
89 } // namespace ash 102 } // namespace ash
OLDNEW
« no previous file with comments | « ash/metrics/task_switch_metrics_recorder.h ('k') | ash/metrics/task_switch_metrics_recorder_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698