Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(337)

Side by Side Diff: third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.h

Issue 2650343008: Implement Element.scrollIntoView for scroll-behavior: smooth. (Closed)
Patch Set: Fixed nits. Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef ProgrammaticScrollAnimator_h 5 #ifndef ProgrammaticScrollAnimator_h
6 #define ProgrammaticScrollAnimator_h 6 #define ProgrammaticScrollAnimator_h
7 7
8 #include <memory> 8 #include <memory>
9 #include "platform/heap/Handle.h" 9 #include "platform/heap/Handle.h"
10 #include "platform/scroll/ScrollAnimatorCompositorCoordinator.h" 10 #include "platform/scroll/ScrollAnimatorCompositorCoordinator.h"
(...skipping 12 matching lines...) Expand all
23 WTF_MAKE_NONCOPYABLE(ProgrammaticScrollAnimator); 23 WTF_MAKE_NONCOPYABLE(ProgrammaticScrollAnimator);
24 24
25 public: 25 public:
26 static ProgrammaticScrollAnimator* Create(ScrollableArea* scrollable_area) { 26 static ProgrammaticScrollAnimator* Create(ScrollableArea* scrollable_area) {
27 return new ProgrammaticScrollAnimator(scrollable_area); 27 return new ProgrammaticScrollAnimator(scrollable_area);
28 } 28 }
29 29
30 virtual ~ProgrammaticScrollAnimator(); 30 virtual ~ProgrammaticScrollAnimator();
31 31
32 void ScrollToOffsetWithoutAnimation(const ScrollOffset&); 32 void ScrollToOffsetWithoutAnimation(const ScrollOffset&);
33 void AnimateToOffset(const ScrollOffset&); 33 void AnimateToOffset(const ScrollOffset&,
34 bool sequenced_for_smooth_scroll = false);
34 35
35 // ScrollAnimatorCompositorCoordinator implementation. 36 // ScrollAnimatorCompositorCoordinator implementation.
36 void ResetAnimationState() override; 37 void ResetAnimationState() override;
37 void CancelAnimation() override; 38 void CancelAnimation() override;
38 void TakeOverCompositorAnimation() override{}; 39 void TakeOverCompositorAnimation() override{};
39 ScrollableArea* GetScrollableArea() const override { 40 ScrollableArea* GetScrollableArea() const override {
40 return scrollable_area_; 41 return scrollable_area_;
41 } 42 }
42 void TickAnimation(double monotonic_time) override; 43 void TickAnimation(double monotonic_time) override;
43 void UpdateCompositorAnimations() override; 44 void UpdateCompositorAnimations() override;
44 void NotifyCompositorAnimationFinished(int group_id) override; 45 void NotifyCompositorAnimationFinished(int group_id) override;
45 void NotifyCompositorAnimationAborted(int group_id) override{}; 46 void NotifyCompositorAnimationAborted(int group_id) override{};
46 void LayerForCompositedScrollingDidChange( 47 void LayerForCompositedScrollingDidChange(
47 CompositorAnimationTimeline*) override; 48 CompositorAnimationTimeline*) override;
48 49
49 DECLARE_TRACE(); 50 DECLARE_TRACE();
50 51
51 private: 52 private:
52 explicit ProgrammaticScrollAnimator(ScrollableArea*); 53 explicit ProgrammaticScrollAnimator(ScrollableArea*);
53 54
54 void NotifyOffsetChanged(const ScrollOffset&); 55 void NotifyOffsetChanged(const ScrollOffset&);
56 void AnimationFinished();
55 57
56 Member<ScrollableArea> scrollable_area_; 58 Member<ScrollableArea> scrollable_area_;
57 std::unique_ptr<CompositorScrollOffsetAnimationCurve> animation_curve_; 59 std::unique_ptr<CompositorScrollOffsetAnimationCurve> animation_curve_;
58 ScrollOffset target_offset_; 60 ScrollOffset target_offset_;
59 double start_time_; 61 double start_time_;
62 bool sequenced_for_smooth_scroll_;
60 }; 63 };
61 64
62 } // namespace blink 65 } // namespace blink
63 66
64 #endif // ProgrammaticScrollAnimator_h 67 #endif // ProgrammaticScrollAnimator_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698