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

Unified Diff: third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp

Issue 2559273003: Blink Compositor Animation: Introduce CompositorAnimationHost correctly. (Closed)
Patch Set: Allocate on stack in unit tests. Created 4 years 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
diff --git a/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp b/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
index c9aff864c2fc5ab2aef09eda942e392dca6a0fdc..126c7e1df78494e91d952b882db88a6f2079a263 100644
--- a/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
+++ b/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
@@ -44,6 +44,7 @@
#include "core/page/Page.h"
#include "core/plugins/PluginView.h"
#include "platform/RuntimeEnabledFeatures.h"
+#include "platform/animation/CompositorAnimationHost.h"
#include "platform/animation/CompositorAnimationTimeline.h"
#include "platform/exported/WebScrollbarImpl.h"
#include "platform/exported/WebScrollbarThemeGeometryNative.h"
@@ -828,20 +829,24 @@ void ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread(
void ScrollingCoordinator::layerTreeViewInitialized(
WebLayerTreeView& layerTreeView) {
- if (Platform::current()->isThreadedAnimationEnabled()) {
+ if (Platform::current()->isThreadedAnimationEnabled() &&
+ layerTreeView.compositorAnimationHost()) {
+ m_compositorAnimationHost = WTF::makeUnique<CompositorAnimationHost>(
+ layerTreeView.compositorAnimationHost());
m_programmaticScrollAnimatorTimeline =
CompositorAnimationTimeline::create();
- layerTreeView.attachCompositorAnimationTimeline(
- m_programmaticScrollAnimatorTimeline->animationTimeline());
+ m_compositorAnimationHost->addTimeline(
+ *m_programmaticScrollAnimatorTimeline.get());
}
}
void ScrollingCoordinator::willCloseLayerTreeView(
WebLayerTreeView& layerTreeView) {
if (m_programmaticScrollAnimatorTimeline) {
- layerTreeView.detachCompositorAnimationTimeline(
- m_programmaticScrollAnimatorTimeline->animationTimeline());
- m_programmaticScrollAnimatorTimeline.reset();
+ m_compositorAnimationHost->removeTimeline(
+ *m_programmaticScrollAnimatorTimeline.get());
+ m_programmaticScrollAnimatorTimeline = nullptr;
+ m_compositorAnimationHost = nullptr;
}
}

Powered by Google App Engine
This is Rietveld 408576698