OLD | NEW |
---|---|
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 "content/browser/renderer_host/input/input_router_impl.h" | 5 #include "content/browser/renderer_host/input/input_router_impl.h" |
6 | 6 |
7 #include <math.h> | 7 #include <math.h> |
8 | 8 |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
55 case INPUT_EVENT_ACK_STATE_NOT_CONSUMED: return "NOT_CONSUMED"; | 55 case INPUT_EVENT_ACK_STATE_NOT_CONSUMED: return "NOT_CONSUMED"; |
56 case INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS: return "NO_CONSUMER_EXISTS"; | 56 case INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS: return "NO_CONSUMER_EXISTS"; |
57 case INPUT_EVENT_ACK_STATE_IGNORED: return "IGNORED"; | 57 case INPUT_EVENT_ACK_STATE_IGNORED: return "IGNORED"; |
58 case INPUT_EVENT_ACK_STATE_SET_NON_BLOCKING: | 58 case INPUT_EVENT_ACK_STATE_SET_NON_BLOCKING: |
59 return "SET_NON_BLOCKING"; | 59 return "SET_NON_BLOCKING"; |
60 } | 60 } |
61 DLOG(WARNING) << "Unhandled InputEventAckState in GetEventAckName."; | 61 DLOG(WARNING) << "Unhandled InputEventAckState in GetEventAckName."; |
62 return ""; | 62 return ""; |
63 } | 63 } |
64 | 64 |
65 enum TouchEventDispatchResultType { | |
66 UNHANDLED_TOUCHES, // Unhandled touch events. | |
67 HANDLED_TOUCHES, // Handled touch events. | |
68 TOUCH_EVENT_DISPATCH_RESULT_TYPE_COUNT | |
69 }; | |
70 | |
65 } // namespace | 71 } // namespace |
66 | 72 |
67 InputRouterImpl::Config::Config() { | 73 InputRouterImpl::Config::Config() { |
68 } | 74 } |
69 | 75 |
70 InputRouterImpl::InputRouterImpl(IPC::Sender* sender, | 76 InputRouterImpl::InputRouterImpl(IPC::Sender* sender, |
71 InputRouterClient* client, | 77 InputRouterClient* client, |
72 InputAckHandler* ack_handler, | 78 InputAckHandler* ack_handler, |
73 int routing_id, | 79 int routing_id, |
74 const Config& config) | 80 const Config& config) |
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
447 // Log the time delta for processing an input event. | 453 // Log the time delta for processing an input event. |
448 TimeDelta delta = TimeTicks::Now() - input_event_start_time_; | 454 TimeDelta delta = TimeTicks::Now() - input_event_start_time_; |
449 UMA_HISTOGRAM_TIMES("MPArch.IIR_InputEventDelta", delta); | 455 UMA_HISTOGRAM_TIMES("MPArch.IIR_InputEventDelta", delta); |
450 | 456 |
451 if (ack.overscroll) { | 457 if (ack.overscroll) { |
452 DCHECK(ack.type == WebInputEvent::MouseWheel || | 458 DCHECK(ack.type == WebInputEvent::MouseWheel || |
453 ack.type == WebInputEvent::GestureScrollUpdate); | 459 ack.type == WebInputEvent::GestureScrollUpdate); |
454 OnDidOverscroll(*ack.overscroll); | 460 OnDidOverscroll(*ack.overscroll); |
455 } | 461 } |
456 | 462 |
463 // Count the canceled touch starts while there is an active fling animation. | |
464 if (gesture_event_queue_.FlingInProgress() && | |
465 ack.type == WebInputEvent::TouchStart) { | |
466 TouchEventDispatchResultType result = | |
467 (ack.state == INPUT_EVENT_ACK_STATE_CONSUMED) ? HANDLED_TOUCHES | |
dtapuska
2016/04/27 19:05:13
I presume the passive ones counted as unhandled is
| |
468 : UNHANDLED_TOUCHES; | |
469 UMA_HISTOGRAM_ENUMERATION("Event.Touch.TouchStartsCanceledDuringFling", | |
470 result, TOUCH_EVENT_DISPATCH_RESULT_TYPE_COUNT); | |
471 } | |
472 | |
457 ProcessInputEventAck(ack.type, ack.state, ack.latency, | 473 ProcessInputEventAck(ack.type, ack.state, ack.latency, |
458 ack.unique_touch_event_id, RENDERER); | 474 ack.unique_touch_event_id, RENDERER); |
459 } | 475 } |
460 | 476 |
461 void InputRouterImpl::OnDidOverscroll(const DidOverscrollParams& params) { | 477 void InputRouterImpl::OnDidOverscroll(const DidOverscrollParams& params) { |
462 client_->DidOverscroll(params); | 478 client_->DidOverscroll(params); |
463 } | 479 } |
464 | 480 |
465 void InputRouterImpl::OnMsgMoveCaretAck() { | 481 void InputRouterImpl::OnMsgMoveCaretAck() { |
466 move_caret_pending_ = false; | 482 move_caret_pending_ = false; |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
639 | 655 |
640 flush_requested_ = false; | 656 flush_requested_ = false; |
641 client_->DidFlush(); | 657 client_->DidFlush(); |
642 } | 658 } |
643 | 659 |
644 void InputRouterImpl::SetFrameTreeNodeId(int frameTreeNodeId) { | 660 void InputRouterImpl::SetFrameTreeNodeId(int frameTreeNodeId) { |
645 frame_tree_node_id_ = frameTreeNodeId; | 661 frame_tree_node_id_ = frameTreeNodeId; |
646 } | 662 } |
647 | 663 |
648 } // namespace content | 664 } // namespace content |
OLD | NEW |