1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CONTENT_BROWSER_RENDERER_HOST_INPUT_INPUT_ACK_HANDLER_H_ 6 #define CONTENT_BROWSER_RENDERER_HOST_INPUT_INPUT_ACK_HANDLER_H_ 7 8 #include "base/basictypes.h" 9 #include "content/port/browser/event_with_latency_info.h" 10 #include "content/port/common/input_event_ack_state.h" 11 #include "content/public/browser/native_web_keyboard_event.h" 12 #include "third_party/WebKit/public/web/WebInputEvent.h" 13 14 namespace content { 15 16 // Provided customized ack response for input events. 17 class CONTENT_EXPORT InputAckHandler { 18 public: 19 virtual ~InputAckHandler() {} 20 21 // Called upon event ack receipt from the renderer. 22 virtual void OnKeyboardEventAck(const NativeWebKeyboardEvent& event, 23 InputEventAckState ack_result) = 0; 24 virtual void OnWheelEventAck(const MouseWheelEventWithLatencyInfo& event, 25 InputEventAckState ack_result) = 0; 26 virtual void OnTouchEventAck(const TouchEventWithLatencyInfo& event, 27 InputEventAckState ack_result) = 0; 28 virtual void OnGestureEventAck(const GestureEventWithLatencyInfo& event, 29 InputEventAckState ack_result) = 0; 30 31 enum UnexpectedEventAckType { 32 UNEXPECTED_ACK, 33 UNEXPECTED_EVENT_TYPE, 34 BAD_ACK_MESSAGE 35 }; 36 virtual void OnUnexpectedEventAck(UnexpectedEventAckType type) = 0; 37 }; 38 39 } // namespace content 40 41 #endif // CONTENT_BROWSER_RENDERER_HOST_INPUT_INPUT_ACK_HANDLER_H_ 42