Commit b4490383 authored by David Bokan's avatar David Bokan Committed by Commit Bot

Add tracing in gesture routing

There are several places where a gesture might get dropped/filtered in
the input router. The lack of tracing here makes it difficult to debug
"scrolling doesn't work" issues.

Bug: 1048098
Change-Id: I5917d3ceb5cd1b74f7c4ae3097dcb8e2ec009ade
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2106968
Auto-Submit: David Bokan <bokan@chromium.org>
Reviewed-by: default avatarNick Burris <nburris@chromium.org>
Commit-Queue: Nick Burris <nburris@chromium.org>
Cr-Commit-Position: refs/heads/master@{#751383}
parent 68d57f1a
...@@ -139,11 +139,13 @@ void InputRouterImpl::SendKeyboardEvent( ...@@ -139,11 +139,13 @@ void InputRouterImpl::SendKeyboardEvent(
void InputRouterImpl::SendGestureEvent( void InputRouterImpl::SendGestureEvent(
const GestureEventWithLatencyInfo& original_gesture_event) { const GestureEventWithLatencyInfo& original_gesture_event) {
TRACE_EVENT0("input", "InputRouterImpl::SendGestureEvent");
input_stream_validator_.Validate(original_gesture_event.event); input_stream_validator_.Validate(original_gesture_event.event);
GestureEventWithLatencyInfo gesture_event(original_gesture_event); GestureEventWithLatencyInfo gesture_event(original_gesture_event);
if (gesture_event_queue_.PassToFlingController(gesture_event)) { if (gesture_event_queue_.PassToFlingController(gesture_event)) {
TRACE_EVENT_INSTANT0("input", "FilteredForFling", TRACE_EVENT_SCOPE_THREAD);
disposition_handler_->OnGestureEventAck(gesture_event, disposition_handler_->OnGestureEventAck(gesture_event,
InputEventAckSource::BROWSER, InputEventAckSource::BROWSER,
INPUT_EVENT_ACK_STATE_CONSUMED); INPUT_EVENT_ACK_STATE_CONSUMED);
...@@ -154,6 +156,8 @@ void InputRouterImpl::SendGestureEvent( ...@@ -154,6 +156,8 @@ void InputRouterImpl::SendGestureEvent(
touch_action_filter_.FilterGestureEvent(&gesture_event.event); touch_action_filter_.FilterGestureEvent(&gesture_event.event);
if (compositor_touch_action_enabled_ && if (compositor_touch_action_enabled_ &&
result == FilterGestureEventResult::kFilterGestureEventDelayed) { result == FilterGestureEventResult::kFilterGestureEventDelayed) {
TRACE_EVENT_INSTANT0("input", "DeferredForTouchAction",
TRACE_EVENT_SCOPE_THREAD);
gesture_event_queue_.QueueDeferredEvents(gesture_event); gesture_event_queue_.QueueDeferredEvents(gesture_event);
return; return;
} }
...@@ -163,10 +167,13 @@ void InputRouterImpl::SendGestureEvent( ...@@ -163,10 +167,13 @@ void InputRouterImpl::SendGestureEvent(
void InputRouterImpl::SendGestureEventWithoutQueueing( void InputRouterImpl::SendGestureEventWithoutQueueing(
GestureEventWithLatencyInfo& gesture_event, GestureEventWithLatencyInfo& gesture_event,
const FilterGestureEventResult& existing_result) { const FilterGestureEventResult& existing_result) {
TRACE_EVENT0("input", "InputRouterImpl::SendGestureEventWithoutQueueing");
DCHECK_NE(existing_result, DCHECK_NE(existing_result,
FilterGestureEventResult::kFilterGestureEventDelayed); FilterGestureEventResult::kFilterGestureEventDelayed);
if (existing_result == if (existing_result ==
FilterGestureEventResult::kFilterGestureEventFiltered) { FilterGestureEventResult::kFilterGestureEventFiltered) {
TRACE_EVENT_INSTANT0("input", "FilteredForTouchAction",
TRACE_EVENT_SCOPE_THREAD);
disposition_handler_->OnGestureEventAck(gesture_event, disposition_handler_->OnGestureEventAck(gesture_event,
InputEventAckSource::BROWSER, InputEventAckSource::BROWSER,
INPUT_EVENT_ACK_STATE_CONSUMED); INPUT_EVENT_ACK_STATE_CONSUMED);
...@@ -200,6 +207,8 @@ void InputRouterImpl::SendGestureEventWithoutQueueing( ...@@ -200,6 +207,8 @@ void InputRouterImpl::SendGestureEventWithoutQueueing(
} }
if (!gesture_event_queue_.DebounceOrForwardEvent(gesture_event)) { if (!gesture_event_queue_.DebounceOrForwardEvent(gesture_event)) {
TRACE_EVENT_INSTANT0("input", "FilteredForDebounce",
TRACE_EVENT_SCOPE_THREAD);
disposition_handler_->OnGestureEventAck(gesture_event, disposition_handler_->OnGestureEventAck(gesture_event,
InputEventAckSource::BROWSER, InputEventAckSource::BROWSER,
INPUT_EVENT_ACK_STATE_CONSUMED); INPUT_EVENT_ACK_STATE_CONSUMED);
...@@ -261,6 +270,7 @@ void InputRouterImpl::StopFling() { ...@@ -261,6 +270,7 @@ void InputRouterImpl::StopFling() {
} }
void InputRouterImpl::ProcessDeferredGestureEventQueue() { void InputRouterImpl::ProcessDeferredGestureEventQueue() {
TRACE_EVENT0("input", "InputRouterImpl::ProcessDeferredGestureEventQueue");
GestureEventQueue::GestureQueue deferred_gesture_events = GestureEventQueue::GestureQueue deferred_gesture_events =
gesture_event_queue_.TakeDeferredEvents(); gesture_event_queue_.TakeDeferredEvents();
for (auto& it : deferred_gesture_events) { for (auto& it : deferred_gesture_events) {
...@@ -284,6 +294,8 @@ void InputRouterImpl::FallbackCursorModeSetCursorVisibility(bool visible) { ...@@ -284,6 +294,8 @@ void InputRouterImpl::FallbackCursorModeSetCursorVisibility(bool visible) {
#endif #endif
void InputRouterImpl::SetTouchActionFromMain(cc::TouchAction touch_action) { void InputRouterImpl::SetTouchActionFromMain(cc::TouchAction touch_action) {
TRACE_EVENT1("input", "InputRouterImpl::SetTouchActionFromMain",
"touch_action", TouchActionToString(touch_action));
if (compositor_touch_action_enabled_) { if (compositor_touch_action_enabled_) {
touch_action_filter_.OnSetTouchAction(touch_action); touch_action_filter_.OnSetTouchAction(touch_action);
touch_event_queue_.StopTimeoutMonitor(); touch_event_queue_.StopTimeoutMonitor();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment