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

Side by Side Diff: content/renderer/input/input_handler_manager.cc

Issue 1415953004: Move content/renderer input handling for web input events to ui (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 5 years 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/renderer/input/input_handler_manager.h" 5 #include "content/renderer/input/input_handler_manager.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/location.h" 8 #include "base/location.h"
9 #include "base/single_thread_task_runner.h" 9 #include "base/single_thread_task_runner.h"
10 #include "base/thread_task_runner_handle.h" 10 #include "base/thread_task_runner_handle.h"
11 #include "base/trace_event/trace_event.h" 11 #include "base/trace_event/trace_event.h"
12 #include "cc/input/input_handler.h" 12 #include "cc/input/input_handler.h"
13 #include "components/scheduler/renderer/renderer_scheduler.h" 13 #include "components/scheduler/renderer/renderer_scheduler.h"
14 #include "content/common/input/web_input_event_traits.h"
14 #include "content/renderer/input/input_event_filter.h" 15 #include "content/renderer/input/input_event_filter.h"
15 #include "content/renderer/input/input_handler_manager_client.h" 16 #include "content/renderer/input/input_handler_manager_client.h"
16 #include "content/renderer/input/input_handler_wrapper.h" 17 #include "content/renderer/input/input_handler_wrapper.h"
17 #include "content/renderer/input/input_scroll_elasticity_controller.h" 18 #include "ui/events/blink/input_handler_proxy.h"
18 19
19 using blink::WebInputEvent; 20 using blink::WebInputEvent;
21 using ui::InputHandlerProxy;
20 using scheduler::RendererScheduler; 22 using scheduler::RendererScheduler;
21 23
22 namespace content { 24 namespace content {
23 25
24 namespace { 26 namespace {
25 27
26 InputEventAckState InputEventDispositionToAck( 28 InputEventAckState InputEventDispositionToAck(
27 InputHandlerProxy::EventDisposition disposition) { 29 InputHandlerProxy::EventDisposition disposition) {
28 switch (disposition) { 30 switch (disposition) {
29 case InputHandlerProxy::DID_HANDLE: 31 case InputHandlerProxy::DID_HANDLE:
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 DCHECK(proxy->scroll_elasticity_controller()); 132 DCHECK(proxy->scroll_elasticity_controller());
131 proxy->scroll_elasticity_controller()->ObserveWheelEventAndResult( 133 proxy->scroll_elasticity_controller()->ObserveWheelEventAndResult(
132 wheel_event, scroll_result); 134 wheel_event, scroll_result);
133 } 135 }
134 136
135 InputEventAckState InputHandlerManager::HandleInputEvent( 137 InputEventAckState InputHandlerManager::HandleInputEvent(
136 int routing_id, 138 int routing_id,
137 const WebInputEvent* input_event, 139 const WebInputEvent* input_event,
138 ui::LatencyInfo* latency_info) { 140 ui::LatencyInfo* latency_info) {
139 DCHECK(task_runner_->BelongsToCurrentThread()); 141 DCHECK(task_runner_->BelongsToCurrentThread());
142 TRACE_EVENT1("input,benchmark", "InputHandlerManager::HandleInputEvent",
143 "type", WebInputEventTraits::GetName(input_event->type));
140 144
141 auto it = input_handlers_.find(routing_id); 145 auto it = input_handlers_.find(routing_id);
142 if (it == input_handlers_.end()) { 146 if (it == input_handlers_.end()) {
143 TRACE_EVENT1("input", "InputHandlerManager::HandleInputEvent", 147 TRACE_EVENT1("input", "InputHandlerManager::HandleInputEvent",
144 "result", "NoInputHandlerFound"); 148 "result", "NoInputHandlerFound");
145 // Oops, we no longer have an interested input handler.. 149 // Oops, we no longer have an interested input handler..
146 return INPUT_EVENT_ACK_STATE_NOT_CONSUMED; 150 return INPUT_EVENT_ACK_STATE_NOT_CONSUMED;
147 } 151 }
148 152
153 TRACE_EVENT1("input", "InputHandlerManager::HandleInputEvent",
154 "result", "EventSentToInputHandlerProxy");
149 InputHandlerProxy* proxy = it->second->input_handler_proxy(); 155 InputHandlerProxy* proxy = it->second->input_handler_proxy();
150 InputEventAckState input_event_ack_state = InputEventDispositionToAck( 156 InputEventAckState input_event_ack_state = InputEventDispositionToAck(
151 proxy->HandleInputEventWithLatencyInfo(*input_event, latency_info)); 157 proxy->HandleInputEventWithLatencyInfo(*input_event, latency_info));
152 switch (input_event_ack_state) { 158 switch (input_event_ack_state) {
153 case INPUT_EVENT_ACK_STATE_CONSUMED: 159 case INPUT_EVENT_ACK_STATE_CONSUMED:
154 renderer_scheduler_->DidHandleInputEventOnCompositorThread( 160 renderer_scheduler_->DidHandleInputEventOnCompositorThread(
155 *input_event, 161 *input_event,
156 RendererScheduler::InputEventState::EVENT_CONSUMED_BY_COMPOSITOR); 162 RendererScheduler::InputEventState::EVENT_CONSUMED_BY_COMPOSITOR);
157 break; 163 break;
158 case INPUT_EVENT_ACK_STATE_NOT_CONSUMED: 164 case INPUT_EVENT_ACK_STATE_NOT_CONSUMED:
(...skipping 14 matching lines...) Expand all
173 179
174 void InputHandlerManager::DidStopFlinging(int routing_id) { 180 void InputHandlerManager::DidStopFlinging(int routing_id) {
175 client_->DidStopFlinging(routing_id); 181 client_->DidStopFlinging(routing_id);
176 } 182 }
177 183
178 void InputHandlerManager::DidAnimateForInput() { 184 void InputHandlerManager::DidAnimateForInput() {
179 renderer_scheduler_->DidAnimateForInputOnCompositorThread(); 185 renderer_scheduler_->DidAnimateForInputOnCompositorThread();
180 } 186 }
181 187
182 } // namespace content 188 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/input/input_event_filter.cc ('k') | content/renderer/input/input_handler_manager_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698