158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// found in the LICENSE file. 458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#ifndef CONTENT_BROWSER_RENDERER_HOST_INPUT_MOCK_INPUT_ROUTER_CLIENT_H_ 658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#define CONTENT_BROWSER_RENDERER_HOST_INPUT_MOCK_INPUT_ROUTER_CLIENT_H_ 758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "base/memory/scoped_ptr.h" 958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "content/browser/renderer_host/input/input_router_client.h" 10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "content/common/input/did_overscroll_params.h" 1158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 1258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)namespace content { 1358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class InputEvent; 1558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)class InputRouter; 1658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 1758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)class MockInputRouterClient : public InputRouterClient { 1858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) public: 1958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) MockInputRouterClient(); 2058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual ~MockInputRouterClient(); 2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 2258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // InputRouterClient 2358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual InputEventAckState FilterInputEvent( 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebInputEvent& input_event, 2558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const ui::LatencyInfo& latency_info) OVERRIDE; 2658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void IncrementInFlightEventCount() OVERRIDE; 2758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void DecrementInFlightEventCount() OVERRIDE; 2858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void OnHasTouchEventHandlers(bool has_handlers) OVERRIDE; 2946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual void SetNeedsFlush() OVERRIDE; 3058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void DidFlush() OVERRIDE; 31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void DidOverscroll(const DidOverscrollParams& params) OVERRIDE; 3258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) bool GetAndResetFilterEventCalled(); 34c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch size_t GetAndResetDidFlushCount(); 35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DidOverscrollParams GetAndResetOverscroll(); 3658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 3758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void set_input_router(InputRouter* input_router) { 3858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) input_router_ = input_router; 3958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 4058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 4158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool has_touch_handler() const { return has_touch_handler_; } 4258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void set_filter_state(InputEventAckState filter_state) { 4358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) filter_state_ = filter_state; 4458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 4558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) int in_flight_event_count() const { 4658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return in_flight_event_count_; 4758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 4858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void set_allow_send_event(bool allow) { 494e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) filter_state_ = INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS; 5058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 5158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 5258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) private: 5358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) InputRouter* input_router_; 5458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) int in_flight_event_count_; 5558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool has_touch_handler_; 5658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 5758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) InputEventAckState filter_state_; 5858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 594e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) bool filter_input_event_called_; 604e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) scoped_ptr<InputEvent> last_filter_event_; 6158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 62c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch size_t did_flush_called_count_; 6358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool set_needs_flush_called_; 64cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 65cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DidOverscrollParams overscroll_; 6658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)}; 6758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 6858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} // namespace content 6958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 7058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#endif // CONTENT_BROWSER_RENDERER_HOST_INPUT_MOCK_INPUT_ROUTER_CLIENT_H_ 71