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

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

Issue 1648293003: Fix smooth scroll jump when switching scroll handling between MT and CC (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: todo + nit Created 4 years, 10 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 ScrollAnimatorCompositorCoordinator_h 5 #ifndef ScrollAnimatorCompositorCoordinator_h
6 #define ScrollAnimatorCompositorCoordinator_h 6 #define ScrollAnimatorCompositorCoordinator_h
7 7
8 #include "base/gtest_prod_util.h" 8 #include "base/gtest_prod_util.h"
9 #include "platform/PlatformExport.h" 9 #include "platform/PlatformExport.h"
10 #include "platform/heap/Handle.h" 10 #include "platform/heap/Handle.h"
(...skipping 10 matching lines...) Expand all
21 class WebCompositorAnimationTimeline; 21 class WebCompositorAnimationTimeline;
22 22
23 class PLATFORM_EXPORT ScrollAnimatorCompositorCoordinator : public NoBaseWillBeG arbageCollectedFinalized<ScrollAnimatorCompositorCoordinator>, private WebCompos itorAnimationPlayerClient, WebCompositorAnimationDelegate { 23 class PLATFORM_EXPORT ScrollAnimatorCompositorCoordinator : public NoBaseWillBeG arbageCollectedFinalized<ScrollAnimatorCompositorCoordinator>, private WebCompos itorAnimationPlayerClient, WebCompositorAnimationDelegate {
24 USING_FAST_MALLOC_WILL_BE_REMOVED(ScrollAnimatorCompositorCoordinator); 24 USING_FAST_MALLOC_WILL_BE_REMOVED(ScrollAnimatorCompositorCoordinator);
25 WTF_MAKE_NONCOPYABLE(ScrollAnimatorCompositorCoordinator); 25 WTF_MAKE_NONCOPYABLE(ScrollAnimatorCompositorCoordinator);
26 public: 26 public:
27 virtual ~ScrollAnimatorCompositorCoordinator(); 27 virtual ~ScrollAnimatorCompositorCoordinator();
28 28
29 bool hasAnimationThatRequiresService() const; 29 bool hasAnimationThatRequiresService() const;
30 30
31 virtual bool hasRunningAnimation() const { return false; }
32
31 virtual void resetAnimationState(); 33 virtual void resetAnimationState();
32 virtual void cancelAnimation(); 34 virtual void cancelAnimation();
33 35
34 virtual ScrollableArea* scrollableArea() const = 0; 36 virtual ScrollableArea* scrollableArea() const = 0;
35 virtual void tickAnimation(double monotonicTime) = 0; 37 virtual void tickAnimation(double monotonicTime) = 0;
36 virtual void updateCompositorAnimations() = 0; 38 virtual void updateCompositorAnimations() = 0;
37 virtual void notifyCompositorAnimationFinished(int groupId) = 0; 39 virtual void notifyCompositorAnimationFinished(int groupId) = 0;
38 virtual void notifyCompositorAnimationAborted(int groupId) = 0; 40 virtual void notifyCompositorAnimationAborted(int groupId) = 0;
39 virtual void layerForCompositedScrollingDidChange(WebCompositorAnimationTime line*) = 0; 41 virtual void layerForCompositedScrollingDidChange(WebCompositorAnimationTime line*) = 0;
40 42
41 DEFINE_INLINE_VIRTUAL_TRACE() { } 43 DEFINE_INLINE_VIRTUAL_TRACE() { }
42 44
43 protected: 45 protected:
44 explicit ScrollAnimatorCompositorCoordinator(); 46 explicit ScrollAnimatorCompositorCoordinator();
45 47
46 bool addAnimation(PassOwnPtr<WebCompositorAnimation>); 48 bool addAnimation(PassOwnPtr<WebCompositorAnimation>);
47 void removeAnimation(); 49 void removeAnimation();
48 void abortAnimation(); 50 void abortAnimation();
49 51
50 void compositorAnimationFinished(int groupId); 52 void compositorAnimationFinished(int groupId);
51 void reattachCompositorPlayerIfNeeded(WebCompositorAnimationTimeline*); 53 bool reattachCompositorPlayerIfNeeded(WebCompositorAnimationTimeline*);
jbroman 2016/02/10 20:36:38 nit: consider a short comment explaining what the
ymalik 2016/02/10 21:57:58 Done.
52 54
53 // WebCompositorAnimationDelegate implementation. 55 // WebCompositorAnimationDelegate implementation.
54 void notifyAnimationStarted(double monotonicTime, int group) override; 56 void notifyAnimationStarted(double monotonicTime, int group) override;
55 void notifyAnimationFinished(double monotonicTime, int group) override; 57 void notifyAnimationFinished(double monotonicTime, int group) override;
56 void notifyAnimationAborted(double monotonicTime, int group) override; 58 void notifyAnimationAborted(double monotonicTime, int group) override;
57 59
58 // WebCompositorAnimationPlayerClient implementation. 60 // WebCompositorAnimationPlayerClient implementation.
59 WebCompositorAnimationPlayer* compositorPlayer() const override; 61 WebCompositorAnimationPlayer* compositorPlayer() const override;
60 62
61 friend class Internals; 63 friend class Internals;
(...skipping 30 matching lines...) Expand all
92 OwnPtr<WebCompositorAnimationPlayer> m_compositorPlayer; 94 OwnPtr<WebCompositorAnimationPlayer> m_compositorPlayer;
93 int m_compositorAnimationAttachedToLayerId; 95 int m_compositorAnimationAttachedToLayerId;
94 RunState m_runState; 96 RunState m_runState;
95 int m_compositorAnimationId; 97 int m_compositorAnimationId;
96 int m_compositorAnimationGroupId; 98 int m_compositorAnimationGroupId;
97 }; 99 };
98 100
99 } // namespace blink 101 } // namespace blink
100 102
101 #endif // ScrollAnimatorCompositorCoordinator_h 103 #endif // ScrollAnimatorCompositorCoordinator_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698