Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(27)

Side by Side Diff: content/browser/renderer_host/input/input_router_impl.cc

Issue 1923973002: Add UMA metric for tracking listeners for blocking touch while fling is happening (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698