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

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: finish animations on main 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 "platform/PlatformExport.h" 8 #include "platform/PlatformExport.h"
9 #include "platform/heap/Handle.h" 9 #include "platform/heap/Handle.h"
10 #include "public/platform/WebCompositorAnimationDelegate.h" 10 #include "public/platform/WebCompositorAnimationDelegate.h"
11 #include "public/platform/WebCompositorAnimationPlayerClient.h" 11 #include "public/platform/WebCompositorAnimationPlayerClient.h"
12 #include "wtf/Allocator.h" 12 #include "wtf/Allocator.h"
13 #include "wtf/Noncopyable.h" 13 #include "wtf/Noncopyable.h"
14 #include "wtf/OwnPtr.h" 14 #include "wtf/OwnPtr.h"
15 15
16 namespace blink { 16 namespace blink {
17 17
18 class ScrollableArea; 18 class ScrollableArea;
19 class WebCompositorAnimationPlayer; 19 class WebCompositorAnimationPlayer;
20 class WebCompositorAnimationTimeline; 20 class WebCompositorAnimationTimeline;
21 21
22 class PLATFORM_EXPORT ScrollAnimatorCompositorCoordinator : public NoBaseWillBeG arbageCollectedFinalized<ScrollAnimatorCompositorCoordinator>, private WebCompos itorAnimationPlayerClient, WebCompositorAnimationDelegate { 22 class PLATFORM_EXPORT ScrollAnimatorCompositorCoordinator : public NoBaseWillBeG arbageCollectedFinalized<ScrollAnimatorCompositorCoordinator>, private WebCompos itorAnimationPlayerClient, WebCompositorAnimationDelegate {
23 USING_FAST_MALLOC_WILL_BE_REMOVED(ScrollAnimatorCompositorCoordinator); 23 USING_FAST_MALLOC_WILL_BE_REMOVED(ScrollAnimatorCompositorCoordinator);
24 WTF_MAKE_NONCOPYABLE(ScrollAnimatorCompositorCoordinator); 24 WTF_MAKE_NONCOPYABLE(ScrollAnimatorCompositorCoordinator);
25 public: 25 public:
26 virtual ~ScrollAnimatorCompositorCoordinator(); 26 virtual ~ScrollAnimatorCompositorCoordinator();
27 27
28 bool hasAnimationThatRequiresService() const; 28 bool hasAnimationThatRequiresService() const;
29 void clearMainThreadScrollingReasons(bool clear);
30
31 virtual bool hasRunningAnimation() const { return false; }
29 32
30 virtual void resetAnimationState(); 33 virtual void resetAnimationState();
31 virtual void cancelAnimation(); 34 virtual void cancelAnimation();
32 35
33 virtual ScrollableArea* scrollableArea() const = 0; 36 virtual ScrollableArea* scrollableArea() const = 0;
34 virtual void tickAnimation(double monotonicTime) = 0; 37 virtual void tickAnimation(double monotonicTime) = 0;
35 virtual void updateCompositorAnimations() = 0; 38 virtual void updateCompositorAnimations() = 0;
36 virtual void notifyCompositorAnimationFinished(int groupId) = 0; 39 virtual void notifyCompositorAnimationFinished(int groupId) = 0;
37 virtual void notifyCompositorAnimationAborted(int groupId) = 0; 40 virtual void notifyCompositorAnimationAborted(int groupId) = 0;
38 virtual void layerForCompositedScrollingDidChange(WebCompositorAnimationTime line*) = 0; 41 virtual void layerForCompositedScrollingDidChange(WebCompositorAnimationTime line*) = 0;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 // Waiting to cancel the animation currently running on the compositor. 83 // Waiting to cancel the animation currently running on the compositor.
81 // There is no pending animation to replace the canceled animation. 84 // There is no pending animation to replace the canceled animation.
82 WaitingToCancelOnCompositor 85 WaitingToCancelOnCompositor
83 }; 86 };
84 87
85 OwnPtr<WebCompositorAnimationPlayer> m_compositorPlayer; 88 OwnPtr<WebCompositorAnimationPlayer> m_compositorPlayer;
86 int m_compositorAnimationAttachedToLayerId; 89 int m_compositorAnimationAttachedToLayerId;
87 RunState m_runState; 90 RunState m_runState;
88 int m_compositorAnimationId; 91 int m_compositorAnimationId;
89 int m_compositorAnimationGroupId; 92 int m_compositorAnimationGroupId;
93
94 private:
95 void clearMainThreadScrollingReasonsOnLayer();
96
97 bool m_clearMainThreadScrollingReasons;
90 }; 98 };
91 99
92 } // namespace blink 100 } // namespace blink
93 101
94 #endif // ScrollAnimatorCompositorCoordinator_h 102 #endif // ScrollAnimatorCompositorCoordinator_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698