Index: content/renderer/input/input_handler_proxy.h |
diff --git a/content/renderer/input/input_handler_proxy.h b/content/renderer/input/input_handler_proxy.h |
deleted file mode 100644 |
index d2345111544c8fa84dc4dfa9c6da3c6013a165c8..0000000000000000000000000000000000000000 |
--- a/content/renderer/input/input_handler_proxy.h |
+++ /dev/null |
@@ -1,189 +0,0 @@ |
-// Copyright 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef CONTENT_RENDERER_INPUT_INPUT_HANDLER_PROXY_H_ |
-#define CONTENT_RENDERER_INPUT_INPUT_HANDLER_PROXY_H_ |
- |
-#include "base/basictypes.h" |
-#include "base/containers/hash_tables.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "cc/input/input_handler.h" |
-#include "content/common/content_export.h" |
-#include "content/renderer/input/synchronous_input_handler_proxy.h" |
-#include "third_party/WebKit/public/platform/WebGestureCurve.h" |
-#include "third_party/WebKit/public/platform/WebGestureCurveTarget.h" |
-#include "third_party/WebKit/public/web/WebActiveWheelFlingParameters.h" |
-#include "third_party/WebKit/public/web/WebInputEvent.h" |
- |
-namespace content { |
- |
-namespace test { |
-class InputHandlerProxyTest; |
-} |
- |
-class InputHandlerProxyClient; |
-class InputScrollElasticityController; |
- |
-// This class is a proxy between the content input event filtering and the |
-// compositor's input handling logic. InputHandlerProxy instances live entirely |
-// on the compositor thread. Each InputHandler instance handles input events |
-// intended for a specific WebWidget. |
-class CONTENT_EXPORT InputHandlerProxy |
- : public cc::InputHandlerClient, |
- public SynchronousInputHandlerProxy, |
- public NON_EXPORTED_BASE(blink::WebGestureCurveTarget) { |
- public: |
- InputHandlerProxy(cc::InputHandler* input_handler, |
- InputHandlerProxyClient* client); |
- ~InputHandlerProxy() override; |
- |
- InputScrollElasticityController* scroll_elasticity_controller() { |
- return scroll_elasticity_controller_.get(); |
- } |
- |
- enum EventDisposition { |
- DID_HANDLE, |
- DID_NOT_HANDLE, |
- DROP_EVENT |
- }; |
- EventDisposition HandleInputEventWithLatencyInfo( |
- const blink::WebInputEvent& event, |
- ui::LatencyInfo* latency_info); |
- EventDisposition HandleInputEvent(const blink::WebInputEvent& event); |
- |
- // cc::InputHandlerClient implementation. |
- void WillShutdown() override; |
- void Animate(base::TimeTicks time) override; |
- void MainThreadHasStoppedFlinging() override; |
- void ReconcileElasticOverscrollAndRootScroll() override; |
- void UpdateRootLayerStateForSynchronousInputHandler( |
- const gfx::ScrollOffset& total_scroll_offset, |
- const gfx::ScrollOffset& max_scroll_offset, |
- const gfx::SizeF& scrollable_size, |
- float page_scale_factor, |
- float min_page_scale_factor, |
- float max_page_scale_factor) override; |
- |
- // SynchronousInputHandlerProxy implementation. |
- void SetOnlySynchronouslyAnimateRootFlings( |
- SynchronousInputHandler* synchronous_input_handler) override; |
- void SynchronouslyAnimate(base::TimeTicks time) override; |
- void SynchronouslySetRootScrollOffset( |
- const gfx::ScrollOffset& root_offset) override; |
- |
- // blink::WebGestureCurveTarget implementation. |
- bool scrollBy(const blink::WebFloatSize& offset, |
- const blink::WebFloatSize& velocity) override; |
- |
- bool gesture_scroll_on_impl_thread_for_testing() const { |
- return gesture_scroll_on_impl_thread_; |
- } |
- |
- private: |
- friend class test::InputHandlerProxyTest; |
- |
- // Helper functions for handling more complicated input events. |
- EventDisposition HandleMouseWheel( |
- const blink::WebMouseWheelEvent& event); |
- EventDisposition HandleGestureScrollBegin( |
- const blink::WebGestureEvent& event); |
- EventDisposition HandleGestureScrollUpdate( |
- const blink::WebGestureEvent& event); |
- EventDisposition HandleGestureScrollEnd( |
- const blink::WebGestureEvent& event); |
- EventDisposition HandleGestureFlingStart( |
- const blink::WebGestureEvent& event); |
- EventDisposition HandleTouchStart( |
- const blink::WebTouchEvent& event); |
- |
- // Returns true if the event should be suppressed due to to an active, |
- // boost-enabled fling, in which case further processing should cease. |
- bool FilterInputEventForFlingBoosting(const blink::WebInputEvent& event); |
- |
- // Schedule a time in the future after which a boost-enabled fling will |
- // terminate without further momentum from the user (see |Animate()|). |
- void ExtendBoostedFlingTimeout(const blink::WebGestureEvent& event); |
- |
- // Returns true if we scrolled by the increment. |
- bool TouchpadFlingScroll(const blink::WebFloatSize& increment); |
- |
- // Returns true if we actually had an active fling to cancel, also notifying |
- // the client that the fling has ended. Note that if a boosted fling is active |
- // and suppressing an active scroll sequence, a synthetic GestureScrollBegin |
- // will be injected to resume scrolling. |
- bool CancelCurrentFling(); |
- |
- // Returns true if we actually had an active fling to cancel. |
- bool CancelCurrentFlingWithoutNotifyingClient(); |
- |
- // Request a frame of animation from the InputHandler or |
- // SynchronousInputHandler. They can provide that by calling Animate(). |
- void RequestAnimation(); |
- |
- // Used to send overscroll messages to the browser. |
- void HandleOverscroll( |
- const gfx::Point& causal_event_viewport_point, |
- const cc::InputHandlerScrollResult& scroll_result); |
- |
- scoped_ptr<blink::WebGestureCurve> fling_curve_; |
- // Parameters for the active fling animation, stored in case we need to |
- // transfer it out later. |
- blink::WebActiveWheelFlingParameters fling_parameters_; |
- |
- InputHandlerProxyClient* client_; |
- cc::InputHandler* input_handler_; |
- |
- // Time at which an active fling should expire due to a deferred cancellation |
- // event. A call to |Animate()| after this time will end the fling. |
- double deferred_fling_cancel_time_seconds_; |
- |
- // The last event that extended the lifetime of the boosted fling. If the |
- // event was a scroll gesture, a GestureScrollBegin will be inserted if the |
- // fling terminates (via |CancelCurrentFling()|). |
- blink::WebGestureEvent last_fling_boost_event_; |
- |
- // When present, Animates are not requested to the InputHandler, but to this |
- // SynchronousInputHandler instead. And all Animate() calls are expected to |
- // happen via the SynchronouslyAnimate() call instead of coming directly from |
- // the InputHandler. |
- SynchronousInputHandler* synchronous_input_handler_; |
- bool allow_root_animate_; |
- |
-#ifndef NDEBUG |
- bool expect_scroll_update_end_; |
-#endif |
- bool gesture_scroll_on_impl_thread_; |
- bool gesture_pinch_on_impl_thread_; |
- // This is always false when there are no flings on the main thread, but |
- // conservative in the sense that we might not be actually flinging when it is |
- // true. |
- bool fling_may_be_active_on_main_thread_; |
- // The axes on which the current fling is allowed to scroll. If a given fling |
- // has overscrolled on a particular axis, further fling scrolls on that axis |
- // will be disabled. |
- bool disallow_horizontal_fling_scroll_; |
- bool disallow_vertical_fling_scroll_; |
- |
- // Whether an active fling has seen an |Animate()| call. This is useful for |
- // determining if the fling start time should be re-initialized. |
- bool has_fling_animation_started_; |
- |
- // Non-zero only within the scope of |scrollBy|. |
- gfx::Vector2dF current_fling_velocity_; |
- |
- // Used to animate rubber-band over-scroll effect on Mac. |
- scoped_ptr<InputScrollElasticityController> scroll_elasticity_controller_; |
- |
- bool smooth_scroll_enabled_; |
- |
- bool uma_latency_reporting_enabled_; |
- |
- base::TimeTicks last_fling_animate_time_; |
- |
- DISALLOW_COPY_AND_ASSIGN(InputHandlerProxy); |
-}; |
- |
-} // namespace content |
- |
-#endif // CONTENT_RENDERER_INPUT_INPUT_HANDLER_PROXY_H_ |