Index: content/browser/renderer_host/input/input_router_impl.cc |
diff --git a/content/browser/renderer_host/input/input_router_impl.cc b/content/browser/renderer_host/input/input_router_impl.cc |
index 129f34698a3b97b521c3dbc4f61b1194154da54f..cb20560ce462cdddf9940368d32a9fd8d47819e9 100644 |
--- a/content/browser/renderer_host/input/input_router_impl.cc |
+++ b/content/browser/renderer_host/input/input_router_impl.cc |
@@ -446,8 +446,17 @@ void InputRouterImpl::OfferToHandlers(const WebInputEvent& input_event, |
OfferToRenderer(input_event, latency_info, is_keyboard_shortcut); |
+ // Touch events should always indicate in the event whether they are |
+ // cancelable (respect ACK disposition) or not. |
+ bool ignoresAck = |
+ WebInputEventTraits::IgnoresAckDisposition(input_event.type); |
+ if (WebInputEvent::isTouchEventType(input_event.type)) { |
+ DCHECK(!ignoresAck == |
+ static_cast<const blink::WebTouchEvent&>(input_event).cancelable); |
+ } |
+ |
// If we don't care about the ack disposition, send the ack immediately. |
- if (WebInputEventTraits::IgnoresAckDisposition(input_event.type)) { |
+ if (ignoresAck) { |
ProcessInputEventAck(input_event.type, |
INPUT_EVENT_ACK_STATE_IGNORED, |
latency_info, |