Chromium Code Reviews| 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 |