Index: content/browser/renderer_host/input/immediate_input_router.cc |
diff --git a/content/browser/renderer_host/input/immediate_input_router.cc b/content/browser/renderer_host/input/immediate_input_router.cc |
index 444678fda27412acab88c21914cdf0a8ff814935..1cb371f8b5fdb25263d4c183d75cce44e0ec0c1b 100644 |
--- a/content/browser/renderer_host/input/immediate_input_router.cc |
+++ b/content/browser/renderer_host/input/immediate_input_router.cc |
@@ -339,6 +339,14 @@ void ImmediateInputRouter::OfferToHandlers(const WebInputEvent& input_event, |
return; |
OfferToRenderer(input_event, latency_info, is_keyboard_shortcut); |
+ |
+ // If we don't care about the ack disposition, send the ack immediately. |
+ if (WebInputEventTraits::IgnoresAckDisposition(input_event.type)) { |
+ ProcessInputEventAck(input_event.type, |
+ INPUT_EVENT_ACK_STATE_IGNORED, |
+ latency_info, |
+ IGNORING_DISPOSITION); |
+ } |
} |
bool ImmediateInputRouter::OfferToOverscrollController( |
@@ -424,6 +432,10 @@ void ImmediateInputRouter::OnInputEventAck( |
client_->DecrementInFlightEventCount(); |
+ // A synthetic ack will already have been sent for this event. |
+ if (WebInputEventTraits::IgnoresAckDisposition(event_type)) |
+ return; |
+ |
ProcessInputEventAck(event_type, ack_result, latency_info, RENDERER); |
// WARNING: |this| may be deleted at this point. |