| Index: content/renderer/input/input_event_filter.cc
|
| diff --git a/content/renderer/input/input_event_filter.cc b/content/renderer/input/input_event_filter.cc
|
| index 1cb4efe7ea2e119301d96a7ecc5b513f668d2f05..32259cf4b78cf68724f169db109d4d1931087893 100644
|
| --- a/content/renderer/input/input_event_filter.cc
|
| +++ b/content/renderer/input/input_event_filter.cc
|
| @@ -95,6 +95,15 @@ void InputEventFilter::DidStopFlinging(int routing_id) {
|
| SendMessage(base::MakeUnique<InputHostMsg_DidStopFlinging>(routing_id));
|
| }
|
|
|
| +void InputEventFilter::QueueClosureForMainThreadEventQueue(
|
| + int routing_id,
|
| + const base::Closure& closure) {
|
| + DCHECK(target_task_runner_->BelongsToCurrentThread());
|
| + RouteQueueMap::iterator iter = route_queues_.find(routing_id);
|
| + if (iter != route_queues_.end())
|
| + iter->second->QueueClosure(closure);
|
| +}
|
| +
|
| void InputEventFilter::DispatchNonBlockingEventToMainThread(
|
| int routing_id,
|
| ui::WebScopedInputEvent event,
|
| @@ -198,18 +207,17 @@ void InputEventFilter::ForwardToHandler(const IPC::Message& message,
|
| TRACE_EVENT1("input", "InputEventFilter::ForwardToHandler",
|
| "message_type", GetInputMessageTypeName(message));
|
|
|
| + int routing_id = message.routing_id();
|
| if (message.type() != InputMsg_HandleInputEvent::ID) {
|
| TRACE_EVENT_INSTANT0(
|
| "input",
|
| "InputEventFilter::ForwardToHandler::ForwardToMainListener",
|
| TRACE_EVENT_SCOPE_THREAD);
|
| - CHECK(main_task_runner_->PostTask(FROM_HERE,
|
| - base::Bind(main_listener_, message)))
|
| - << "PostTask failed";
|
| + input_handler_manager_->QueueClosureForMainThreadEventQueue(
|
| + routing_id, base::Bind(main_listener_, message));
|
| return;
|
| }
|
|
|
| - int routing_id = message.routing_id();
|
| InputMsg_HandleInputEvent::Param params;
|
| if (!InputMsg_HandleInputEvent::Read(&message, ¶ms))
|
| return;
|
|
|