Chromium Code Reviews| Index: components/scheduler/renderer/user_model.cc |
| diff --git a/components/scheduler/renderer/user_model.cc b/components/scheduler/renderer/user_model.cc |
| index c71e86c21d8e20f63ab20981964971f4639a08d4..3b3ea340b572a276c26bf119695b224803b8d58a 100644 |
| --- a/components/scheduler/renderer/user_model.cc |
| +++ b/components/scheduler/renderer/user_model.cc |
| @@ -5,6 +5,8 @@ |
| #include "components/scheduler/renderer/user_model.h" |
| #include "base/metrics/histogram_macros.h" |
| +#include "base/metrics/user_metrics.h" |
| +#include "base/single_thread_task_runner.h" |
| namespace scheduler { |
| @@ -26,8 +28,18 @@ void RecordGesturePrediction(GesturePredictionResult result) { |
| } // namespace |
| -UserModel::UserModel() |
| - : pending_input_event_count_(0), |
| +namespace features { |
| + |
| +// Enables the recording of gesture as UMA user actions. |
| +const base::Feature kRecordGestureAction = {"RecordGestureActions", |
| + base::FEATURE_DISABLED_BY_DEFAULT}; |
| + |
| +} // namespace features |
| + |
| +UserModel::UserModel( |
| + const scoped_refptr<base::SingleThreadTaskRunner>& default_task_runner) |
| + : default_task_runner_(default_task_runner), |
| + pending_input_event_count_(0), |
| is_gesture_active_(false), |
| is_gesture_expected_(false) {} |
| UserModel::~UserModel() {} |
| @@ -42,6 +54,14 @@ void UserModel::DidStartProcessingInputEvent(blink::WebInputEvent::Type type, |
| if (!is_gesture_active_) { |
| last_gesture_start_time_ = now; |
| + if (base::FeatureList::IsEnabled(features::kRecordGestureAction)) { |
|
alex clarke (OOO till 29th)
2016/03/17 17:11:11
I wonder if it's worth caching this? Sami WDYT?
beaudoin
2016/03/17 17:35:34
Good call. Looking at the code, it's a map<> looku
|
| + default_task_runner_->PostTask( |
| + FROM_HERE, |
| + base::Bind(&base::RecordAction, |
| + base::UserMetricsAction( |
| + "RendererScheduler.UserModel.GestureStart"))); |
| + } |
| + |
| RecordGesturePrediction(is_gesture_expected_ |
| ? GESTURE_OCCURED_WAS_PREDICTED |
| : GESTURE_OCCURED_BUT_NOT_PREDICTED); |
| @@ -91,6 +111,13 @@ void UserModel::DidStartProcessingInputEvent(blink::WebInputEvent::Type type, |
| base::TimeDelta duration = now - last_gesture_start_time_; |
| UMA_HISTOGRAM_TIMES("RendererScheduler.UserModel.GestureDuration", |
| duration); |
| + if (base::FeatureList::IsEnabled(features::kRecordGestureAction)) { |
| + default_task_runner_->PostTask( |
| + FROM_HERE, |
| + base::Bind(&base::RecordAction, |
| + base::UserMetricsAction( |
| + "RendererScheduler.UserModel.GestureEnd"))); |
| + } |
| } |
| is_gesture_active_ = false; |
| } |