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

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

Issue 2162143002: Don't use PostTask queueing between compositor and main thread. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix fairness of post tasks it was causing some tests to fail Created 4 years, 4 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/renderer/input/input_handler_manager.h" 5 #include "content/renderer/input/input_handler_manager.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 InputHandlerProxy* proxy = it->second->input_handler_proxy(); 182 InputHandlerProxy* proxy = it->second->input_handler_proxy();
183 DCHECK(proxy->scroll_elasticity_controller()); 183 DCHECK(proxy->scroll_elasticity_controller());
184 proxy->scroll_elasticity_controller()->ObserveGestureEventAndResult( 184 proxy->scroll_elasticity_controller()->ObserveGestureEventAndResult(
185 gesture_event, scroll_result); 185 gesture_event, scroll_result);
186 } 186 }
187 187
188 void InputHandlerManager::NotifyInputEventHandledOnMainThread( 188 void InputHandlerManager::NotifyInputEventHandledOnMainThread(
189 int routing_id, 189 int routing_id,
190 blink::WebInputEvent::Type type, 190 blink::WebInputEvent::Type type,
191 InputEventAckState ack_result) { 191 InputEventAckState ack_result) {
192 task_runner_->PostTask( 192 client_->NotifyInputEventHandled(routing_id, type, ack_result);
193 FROM_HERE,
194 base::Bind(
195 &InputHandlerManager::NotifyInputEventHandledOnCompositorThread,
196 base::Unretained(this), routing_id, type, ack_result));
197 }
198
199 void InputHandlerManager::NotifyInputEventHandledOnCompositorThread(
200 int routing_id,
201 blink::WebInputEvent::Type handled_type,
202 InputEventAckState ack_result) {
203 DCHECK(task_runner_->BelongsToCurrentThread());
204 auto it = input_handlers_.find(routing_id);
205 if (it == input_handlers_.end())
206 return;
207
208 client_->NotifyInputEventHandled(routing_id, handled_type, ack_result);
209 } 193 }
210 194
211 InputEventAckState InputHandlerManager::HandleInputEvent( 195 InputEventAckState InputHandlerManager::HandleInputEvent(
212 int routing_id, 196 int routing_id,
213 const WebInputEvent* input_event, 197 const WebInputEvent* input_event,
214 ui::LatencyInfo* latency_info) { 198 ui::LatencyInfo* latency_info) {
215 DCHECK(task_runner_->BelongsToCurrentThread()); 199 DCHECK(task_runner_->BelongsToCurrentThread());
216 TRACE_EVENT1("input,benchmark", "InputHandlerManager::HandleInputEvent", 200 TRACE_EVENT1("input,benchmark", "InputHandlerManager::HandleInputEvent",
217 "type", WebInputEventTraits::GetName(input_event->type)); 201 "type", WebInputEventTraits::GetName(input_event->type));
218 202
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 241
258 void InputHandlerManager::DidStopFlinging(int routing_id) { 242 void InputHandlerManager::DidStopFlinging(int routing_id) {
259 client_->DidStopFlinging(routing_id); 243 client_->DidStopFlinging(routing_id);
260 } 244 }
261 245
262 void InputHandlerManager::DidAnimateForInput() { 246 void InputHandlerManager::DidAnimateForInput() {
263 renderer_scheduler_->DidAnimateForInputOnCompositorThread(); 247 renderer_scheduler_->DidAnimateForInputOnCompositorThread();
264 } 248 }
265 249
266 } // namespace content 250 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/input/input_handler_manager.h ('k') | content/renderer/input/input_handler_manager_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698