Index: content/renderer/input/render_widget_input_handler.cc |
diff --git a/content/renderer/input/render_widget_input_handler.cc b/content/renderer/input/render_widget_input_handler.cc |
index 6a0a652a335b31889ffe318323b2789e66718a7b..90734376315caa0fa148ce2776a0c0d4f099d40b 100644 |
--- a/content/renderer/input/render_widget_input_handler.cc |
+++ b/content/renderer/input/render_widget_input_handler.cc |
@@ -306,6 +306,8 @@ void RenderWidgetInputHandler::HandleInputEvent( |
} |
bool non_blocking = |
+ dispatch_type == |
+ InputEventDispatchType::DISPATCH_TYPE_NON_BLOCKING_NOTIFY_MAIN || |
dispatch_type == InputEventDispatchType::DISPATCH_TYPE_NON_BLOCKING; |
// TODO(dtapuska): Use the input_event.timeStampSeconds as the start |
// ideally this should be when the event was sent by the compositor to the |
@@ -397,14 +399,18 @@ void RenderWidgetInputHandler::HandleInputEvent( |
// Note that we can't use handling_event_type_ here since it will be overriden |
// by reentrant calls for events after the paused one. |
- bool no_ack = ignore_ack_for_mouse_move_from_debugger_ && |
- input_event.type == WebInputEvent::MouseMove; |
- if (non_blocking) { |
+ bool can_send_ack = !(ignore_ack_for_mouse_move_from_debugger_ && |
+ input_event.type == WebInputEvent::MouseMove); |
+ if (dispatch_type == DISPATCH_TYPE_BLOCKING_NOTIFY_MAIN || |
+ dispatch_type == DISPATCH_TYPE_NON_BLOCKING_NOTIFY_MAIN) { |
// |non_blocking| means it was ack'd already by the InputHandlerProxy |
// so let the delegate know the event has been handled. |
- delegate_->NonBlockingInputEventHandled(input_event.type); |
- } else if (WebInputEventTraits::WillReceiveAckFromRenderer(input_event) && |
- !no_ack) { |
+ delegate_->NotifyInputEventHandled(input_event.type); |
+ } |
+ |
+ if ((dispatch_type == DISPATCH_TYPE_BLOCKING || |
+ dispatch_type == DISPATCH_TYPE_BLOCKING_NOTIFY_MAIN) && |
+ can_send_ack) { |
scoped_ptr<InputEventAck> response(new InputEventAck( |
input_event.type, ack_result, swap_latency_info, |
std::move(event_overscroll), |
@@ -437,7 +443,7 @@ void RenderWidgetInputHandler::HandleInputEvent( |
} else { |
DCHECK(!event_overscroll) << "Unexpected overscroll for un-acked event"; |
} |
- if (!no_ack && RenderThreadImpl::current()) { |
+ if (can_send_ack && RenderThreadImpl::current()) { |
RenderThreadImpl::current() |
->GetRendererScheduler() |
->DidHandleInputEventOnMainThread(input_event); |