Ensure acks are sent for all blocking events.
It was possible for two touch moves that had acks to get coalesced together
and the main thread would only process one and deliver the ack for it. This
caused a situation where the hung renderer timer was getting fired because
there was an outstanding ack in the count. And this timer forced the
omnibox to not go away.
A large portion of this change (plumbing the ack_state will go away when
I land my multi-thread main_thread_event_queue design); but since this
needs to be merged back to M52 this is safest.
BUG=616991
Review-Url: https://codereview.chromium.org/2094323002
Cr-Commit-Position: refs/heads/master@{#402703}
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index fcb7f139..129ed07 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -867,13 +867,14 @@
}
void RenderWidget::NotifyInputEventHandled(
- blink::WebInputEvent::Type handled_type) {
+ blink::WebInputEvent::Type handled_type,
+ InputEventAckState ack_result) {
RenderThreadImpl* render_thread = RenderThreadImpl::current();
InputHandlerManager* input_handler_manager =
render_thread ? render_thread->input_handler_manager() : NULL;
if (input_handler_manager) {
- input_handler_manager->NotifyInputEventHandledOnMainThread(routing_id_,
- handled_type);
+ input_handler_manager->NotifyInputEventHandledOnMainThread(
+ routing_id_, handled_type, ack_result);
}
}