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

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: nits 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 // Returns true if the compositor player was attached to a new layer.
54 bool reattachCompositorPlayerIfNeeded(WebCompositorAnimationTimeline*);
52 55
53 // WebCompositorAnimationDelegate implementation. 56 // WebCompositorAnimationDelegate implementation.
54 void notifyAnimationStarted(double monotonicTime, int group) override; 57 void notifyAnimationStarted(double monotonicTime, int group) override;
55 void notifyAnimationFinished(double monotonicTime, int group) override; 58 void notifyAnimationFinished(double monotonicTime, int group) override;
56 void notifyAnimationAborted(double monotonicTime, int group) override; 59 void notifyAnimationAborted(double monotonicTime, int group) override;
57 60
58 // WebCompositorAnimationPlayerClient implementation. 61 // WebCompositorAnimationPlayerClient implementation.
59 WebCompositorAnimationPlayer* compositorPlayer() const override; 62 WebCompositorAnimationPlayer* compositorPlayer() const override;
60 63
61 friend class Internals; 64 friend class Internals;
(...skipping 30 matching lines...) Expand all
92 OwnPtr<WebCompositorAnimationPlayer> m_compositorPlayer; 95 OwnPtr<WebCompositorAnimationPlayer> m_compositorPlayer;
93 int m_compositorAnimationAttachedToLayerId; 96 int m_compositorAnimationAttachedToLayerId;
94 RunState m_runState; 97 RunState m_runState;
95 int m_compositorAnimationId; 98 int m_compositorAnimationId;
96 int m_compositorAnimationGroupId; 99 int m_compositorAnimationGroupId;
97 }; 100 };
98 101
99 } // namespace blink 102 } // namespace blink
100 103
101 #endif // ScrollAnimatorCompositorCoordinator_h 104 #endif // ScrollAnimatorCompositorCoordinator_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698