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

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: skip irrelevant test on mac 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/animation/CompositorAnimationPlayerClient.h" 10 #include "platform/animation/CompositorAnimationPlayerClient.h"
(...skipping 13 matching lines...) Expand all
24 class PLATFORM_EXPORT ScrollAnimatorCompositorCoordinator : public NoBaseWillBeG arbageCollectedFinalized<ScrollAnimatorCompositorCoordinator>, private Composito rAnimationPlayerClient, WebCompositorAnimationDelegate { 24 class PLATFORM_EXPORT ScrollAnimatorCompositorCoordinator : public NoBaseWillBeG arbageCollectedFinalized<ScrollAnimatorCompositorCoordinator>, private Composito rAnimationPlayerClient, WebCompositorAnimationDelegate {
25 USING_FAST_MALLOC_WILL_BE_REMOVED(ScrollAnimatorCompositorCoordinator); 25 USING_FAST_MALLOC_WILL_BE_REMOVED(ScrollAnimatorCompositorCoordinator);
26 WTF_MAKE_NONCOPYABLE(ScrollAnimatorCompositorCoordinator); 26 WTF_MAKE_NONCOPYABLE(ScrollAnimatorCompositorCoordinator);
27 WILL_BE_USING_PRE_FINALIZER(ScrollAnimatorCompositorCoordinator, dispose); 27 WILL_BE_USING_PRE_FINALIZER(ScrollAnimatorCompositorCoordinator, dispose);
28 public: 28 public:
29 virtual ~ScrollAnimatorCompositorCoordinator(); 29 virtual ~ScrollAnimatorCompositorCoordinator();
30 30
31 bool hasAnimationThatRequiresService() const; 31 bool hasAnimationThatRequiresService() const;
32 void dispose(); 32 void dispose();
33 33
34 virtual bool hasRunningAnimation() const { return false; }
35
34 virtual void resetAnimationState(); 36 virtual void resetAnimationState();
35 virtual void cancelAnimation(); 37 virtual void cancelAnimation();
36 38
37 virtual ScrollableArea* scrollableArea() const = 0; 39 virtual ScrollableArea* scrollableArea() const = 0;
38 virtual void tickAnimation(double monotonicTime) = 0; 40 virtual void tickAnimation(double monotonicTime) = 0;
39 virtual void updateCompositorAnimations() = 0; 41 virtual void updateCompositorAnimations() = 0;
40 virtual void notifyCompositorAnimationFinished(int groupId) = 0; 42 virtual void notifyCompositorAnimationFinished(int groupId) = 0;
41 virtual void notifyCompositorAnimationAborted(int groupId) = 0; 43 virtual void notifyCompositorAnimationAborted(int groupId) = 0;
42 virtual void layerForCompositedScrollingDidChange(CompositorAnimationTimelin e*) = 0; 44 virtual void layerForCompositedScrollingDidChange(CompositorAnimationTimelin e*) = 0;
43 45
44 DEFINE_INLINE_VIRTUAL_TRACE() { } 46 DEFINE_INLINE_VIRTUAL_TRACE() { }
45 47
46 protected: 48 protected:
47 explicit ScrollAnimatorCompositorCoordinator(); 49 explicit ScrollAnimatorCompositorCoordinator();
48 50
49 bool addAnimation(PassOwnPtr<CompositorAnimation>); 51 bool addAnimation(PassOwnPtr<CompositorAnimation>);
50 void removeAnimation(); 52 void removeAnimation();
51 void abortAnimation(); 53 void abortAnimation();
52 54
53 void compositorAnimationFinished(int groupId); 55 void compositorAnimationFinished(int groupId);
54 void reattachCompositorPlayerIfNeeded(CompositorAnimationTimeline*); 56 // Returns true if the compositor player was attached to a new layer.
57 bool reattachCompositorPlayerIfNeeded(CompositorAnimationTimeline*);
55 58
56 // WebCompositorAnimationDelegate implementation. 59 // WebCompositorAnimationDelegate implementation.
57 void notifyAnimationStarted(double monotonicTime, int group) override; 60 void notifyAnimationStarted(double monotonicTime, int group) override;
58 void notifyAnimationFinished(double monotonicTime, int group) override; 61 void notifyAnimationFinished(double monotonicTime, int group) override;
59 void notifyAnimationAborted(double monotonicTime, int group) override; 62 void notifyAnimationAborted(double monotonicTime, int group) override;
60 63
61 // CompositorAnimationPlayerClient implementation. 64 // CompositorAnimationPlayerClient implementation.
62 CompositorAnimationPlayer* compositorPlayer() const override; 65 CompositorAnimationPlayer* compositorPlayer() const override;
63 66
64 friend class Internals; 67 friend class Internals;
(...skipping 30 matching lines...) Expand all
95 OwnPtr<CompositorAnimationPlayer> m_compositorPlayer; 98 OwnPtr<CompositorAnimationPlayer> m_compositorPlayer;
96 int m_compositorAnimationAttachedToLayerId; 99 int m_compositorAnimationAttachedToLayerId;
97 RunState m_runState; 100 RunState m_runState;
98 int m_compositorAnimationId; 101 int m_compositorAnimationId;
99 int m_compositorAnimationGroupId; 102 int m_compositorAnimationGroupId;
100 }; 103 };
101 104
102 } // namespace blink 105 } // namespace blink
103 106
104 #endif // ScrollAnimatorCompositorCoordinator_h 107 #endif // ScrollAnimatorCompositorCoordinator_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698