| Index: ui/views/touchui/touch_selection_controller_impl.cc
|
| diff --git a/ui/views/touchui/touch_selection_controller_impl.cc b/ui/views/touchui/touch_selection_controller_impl.cc
|
| index 3ed8c0b388a13f595a20c1c04366ca391c2f899e..c53c4880bfddcbc492795ce09793361b4874d631 100644
|
| --- a/ui/views/touchui/touch_selection_controller_impl.cc
|
| +++ b/ui/views/touchui/touch_selection_controller_impl.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "ui/views/touchui/touch_selection_controller_impl.h"
|
|
|
| +#include "base/metrics/histogram_macros.h"
|
| #include "base/time/time.h"
|
| #include "ui/aura/client/cursor_client.h"
|
| #include "ui/aura/env.h"
|
| @@ -415,7 +416,9 @@ TouchSelectionControllerImpl::TouchSelectionControllerImpl(
|
| client_view->GetNativeView(),
|
| true)),
|
| context_menu_(nullptr),
|
| + command_executed_(false),
|
| dragging_handle_(nullptr) {
|
| + selection_start_time_ = base::Time::Now();
|
| aura::Window* client_window = client_view_->GetNativeView();
|
| client_window->AddObserver(this);
|
| client_widget_ = Widget::GetTopLevelWidgetForNativeView(client_window);
|
| @@ -425,6 +428,10 @@ TouchSelectionControllerImpl::TouchSelectionControllerImpl(
|
| }
|
|
|
| TouchSelectionControllerImpl::~TouchSelectionControllerImpl() {
|
| + if (!command_executed_) {
|
| + UMA_HISTOGRAM_BOOLEAN("Event.TouchSelectionEndedWithAction", false);
|
| + LOG(ERROR) << "Event.TouchSelectionEndedWithAction = false";
|
| + }
|
| HideContextMenu();
|
| aura::Env::GetInstance()->RemovePreTargetHandler(this);
|
| if (client_widget_)
|
| @@ -594,6 +601,16 @@ bool TouchSelectionControllerImpl::IsCommandIdEnabled(int command_id) const {
|
|
|
| void TouchSelectionControllerImpl::ExecuteCommand(int command_id,
|
| int event_flags) {
|
| + command_executed_ = true;
|
| + UMA_HISTOGRAM_BOOLEAN("Event.TouchSelectionEndedWithAction", true);
|
| + base::TimeDelta duration = base::Time::Now() - selection_start_time_;
|
| + UMA_HISTOGRAM_CUSTOM_TIMES("Event.TouchSelectionDuration",
|
| + duration,
|
| + base::TimeDelta::FromMilliseconds(1),
|
| + base::TimeDelta::FromSeconds(60),
|
| + 50);
|
| + LOG(ERROR) << "Event.TouchSelectionEndedWithAction = true";
|
| + LOG(ERROR) << "duration=" << duration.InMilliseconds() << "ms";
|
| HideContextMenu();
|
| client_view_->ExecuteCommand(command_id, event_flags);
|
| }
|
|
|