| OLD | NEW |
| 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 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
| 9 | 9 |
| 10 namespace ash { | 10 namespace ash { |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 | 24 |
| 25 const char kAcceleratorWindowCycleHistogramName[] = | 25 const char kAcceleratorWindowCycleHistogramName[] = |
| 26 "Ash.WindowCycleController.TimeBetweenTaskSwitches"; | 26 "Ash.WindowCycleController.TimeBetweenTaskSwitches"; |
| 27 | 27 |
| 28 const char kAppListHistogramName[] = "Ash.AppList.TimeBetweenTaskSwitches"; | 28 const char kAppListHistogramName[] = "Ash.AppList.TimeBetweenTaskSwitches"; |
| 29 | 29 |
| 30 const char kOverviewModeHistogramName[] = | 30 const char kOverviewModeHistogramName[] = |
| 31 "Ash.WindowSelector.TimeBetweenActiveWindowChanges"; | 31 "Ash.WindowSelector.TimeBetweenActiveWindowChanges"; |
| 32 | 32 |
| 33 // Returns the histogram name for the given |task_switch_source|. | 33 // Returns the histogram name for the given |task_switch_source|. |
| 34 const char* GetHistogramName( | 34 const char* GetHistogramName(TaskSwitchSource task_switch_source) { |
| 35 TaskSwitchMetricsRecorder::TaskSwitchSource task_switch_source) { | |
| 36 switch (task_switch_source) { | 35 switch (task_switch_source) { |
| 37 case TaskSwitchMetricsRecorder::ANY: | 36 case TaskSwitchSource::ANY: |
| 38 return kAshTaskSwitchHistogramName; | 37 return kAshTaskSwitchHistogramName; |
| 39 case TaskSwitchMetricsRecorder::APP_LIST: | 38 case TaskSwitchSource::APP_LIST: |
| 40 return kAppListHistogramName; | 39 return kAppListHistogramName; |
| 41 case TaskSwitchMetricsRecorder::DESKTOP: | 40 case TaskSwitchSource::DESKTOP: |
| 42 return kDesktopHistogramName; | 41 return kDesktopHistogramName; |
| 43 case TaskSwitchMetricsRecorder::OVERVIEW_MODE: | 42 case TaskSwitchSource::OVERVIEW_MODE: |
| 44 return kOverviewModeHistogramName; | 43 return kOverviewModeHistogramName; |
| 45 case TaskSwitchMetricsRecorder::SHELF: | 44 case TaskSwitchSource::SHELF: |
| 46 return kShelfHistogramName; | 45 return kShelfHistogramName; |
| 47 case TaskSwitchMetricsRecorder::TAB_STRIP: | 46 case TaskSwitchSource::TAB_STRIP: |
| 48 return kTabStripHistogramName; | 47 return kTabStripHistogramName; |
| 49 case TaskSwitchMetricsRecorder::WINDOW_CYCLE_CONTROLLER: | 48 case TaskSwitchSource::WINDOW_CYCLE_CONTROLLER: |
| 50 return kAcceleratorWindowCycleHistogramName; | 49 return kAcceleratorWindowCycleHistogramName; |
| 51 } | 50 } |
| 52 NOTREACHED(); | 51 NOTREACHED(); |
| 53 return nullptr; | 52 return nullptr; |
| 54 } | 53 } |
| 55 | 54 |
| 56 } // namespace | 55 } // namespace |
| 57 | 56 |
| 58 TaskSwitchMetricsRecorder::TaskSwitchMetricsRecorder() {} | 57 TaskSwitchMetricsRecorder::TaskSwitchMetricsRecorder() {} |
| 59 | 58 |
| 60 TaskSwitchMetricsRecorder::~TaskSwitchMetricsRecorder() {} | 59 TaskSwitchMetricsRecorder::~TaskSwitchMetricsRecorder() {} |
| 61 | 60 |
| 62 void TaskSwitchMetricsRecorder::OnTaskSwitch( | 61 void TaskSwitchMetricsRecorder::OnTaskSwitch( |
| 63 TaskSwitchSource task_switch_source) { | 62 TaskSwitchSource task_switch_source) { |
| 64 DCHECK_NE(task_switch_source, ANY); | 63 DCHECK_NE(task_switch_source, TaskSwitchSource::ANY); |
| 65 if (task_switch_source != ANY) { | 64 if (task_switch_source != TaskSwitchSource::ANY) { |
| 66 OnTaskSwitchInternal(task_switch_source); | 65 OnTaskSwitchInternal(task_switch_source); |
| 67 OnTaskSwitchInternal(ANY); | 66 OnTaskSwitchInternal(TaskSwitchSource::ANY); |
| 68 } | 67 } |
| 69 } | 68 } |
| 70 | 69 |
| 71 void TaskSwitchMetricsRecorder::OnTaskSwitchInternal( | 70 void TaskSwitchMetricsRecorder::OnTaskSwitchInternal( |
| 72 TaskSwitchSource task_switch_source) { | 71 TaskSwitchSource task_switch_source) { |
| 73 TaskSwitchTimeTracker* task_switch_time_tracker = | 72 TaskSwitchTimeTracker* task_switch_time_tracker = |
| 74 FindTaskSwitchTimeTracker(task_switch_source); | 73 FindTaskSwitchTimeTracker(task_switch_source); |
| 75 if (!task_switch_time_tracker) | 74 if (!task_switch_time_tracker) |
| 76 AddTaskSwitchTimeTracker(task_switch_source); | 75 AddTaskSwitchTimeTracker(task_switch_source); |
| 77 | 76 |
| 78 task_switch_time_tracker = FindTaskSwitchTimeTracker(task_switch_source); | 77 task_switch_time_tracker = FindTaskSwitchTimeTracker(task_switch_source); |
| 79 CHECK(task_switch_time_tracker); | 78 CHECK(task_switch_time_tracker); |
| 80 | 79 |
| 81 task_switch_time_tracker->OnTaskSwitch(); | 80 task_switch_time_tracker->OnTaskSwitch(); |
| 82 } | 81 } |
| 83 | 82 |
| 84 TaskSwitchTimeTracker* TaskSwitchMetricsRecorder::FindTaskSwitchTimeTracker( | 83 TaskSwitchTimeTracker* TaskSwitchMetricsRecorder::FindTaskSwitchTimeTracker( |
| 85 TaskSwitchSource task_switch_source) { | 84 TaskSwitchSource task_switch_source) { |
| 86 return histogram_map_.get(task_switch_source); | 85 return histogram_map_.get(static_cast<int>(task_switch_source)); |
| 87 } | 86 } |
| 88 | 87 |
| 89 void TaskSwitchMetricsRecorder::AddTaskSwitchTimeTracker( | 88 void TaskSwitchMetricsRecorder::AddTaskSwitchTimeTracker( |
| 90 TaskSwitchSource task_switch_source) { | 89 TaskSwitchSource task_switch_source) { |
| 91 CHECK(histogram_map_.find(task_switch_source) == histogram_map_.end()); | 90 CHECK(histogram_map_.find(static_cast<int>(task_switch_source)) == |
| 91 histogram_map_.end()); |
| 92 | 92 |
| 93 const char* histogram_name = GetHistogramName(task_switch_source); | 93 const char* histogram_name = GetHistogramName(task_switch_source); |
| 94 DCHECK(histogram_name); | 94 DCHECK(histogram_name); |
| 95 | 95 |
| 96 histogram_map_.add( | 96 histogram_map_.add( |
| 97 task_switch_source, | 97 static_cast<int>(task_switch_source), |
| 98 base::WrapUnique(new TaskSwitchTimeTracker(histogram_name))); | 98 base::WrapUnique(new TaskSwitchTimeTracker(histogram_name))); |
| 99 } | 99 } |
| 100 | 100 |
| 101 } // namespace ash | 101 } // namespace ash |
| OLD | NEW |