1 // Copyright (c) 2012 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_PORT_BROWSER_SMOOTH_SCROLL_GESTURE_H_ 6 #define CONTENT_PORT_BROWSER_SMOOTH_SCROLL_GESTURE_H_ 7 8 #include "base/memory/ref_counted.h" 9 #include "base/time/time.h" 10 11 namespace content { 12 13 class RenderWidgetHost; 14 15 // This is a base class representing a single scroll gesture. These gestures are 16 // paired with the rendering benchmarking system to (automatically) measure how 17 // smoothnly chrome is responding to user input. 18 class SmoothScrollGesture : public base::RefCounted<SmoothScrollGesture> { 19 public: 20 21 // When called, the gesture should compute its state at the provided timestamp 22 // and send the right input events to the provided RenderWidgetHost to 23 // simulate the gesture having run up to that point in time. 24 // 25 // This function should return true until the gesture is over. A false return 26 // value will stop ticking the gesture and clean it up. 27 virtual bool ForwardInputEvents(base::TimeTicks now, 28 RenderWidgetHost* host) = 0; 29 protected: 30 friend class base::RefCounted<SmoothScrollGesture>; 31 virtual ~SmoothScrollGesture() {} 32 }; 33 34 } // namespace content 35 36 #endif // CONTENT_PORT_BROWSER_SMOOTH_SCROLL_GESTURE_H_ 37