| 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 e0d276c1d2c42cf8661c3608c1b50ba38aade4b5..1cb7bf035b8adca52817e3c062ff9626048b8611 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"
|
| @@ -834,20 +835,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;
|
| }
|
| }
|
|
|
|
|