| Index: third_party/WebKit/Source/web/WebPagePopupImpl.cpp
|
| diff --git a/third_party/WebKit/Source/web/WebPagePopupImpl.cpp b/third_party/WebKit/Source/web/WebPagePopupImpl.cpp
|
| index dfb627750e88a6dcd620c7d8ba6f02651491c644..d2a8c4410f1709a7109f25c6d0ad94cbed97fcf7 100644
|
| --- a/third_party/WebKit/Source/web/WebPagePopupImpl.cpp
|
| +++ b/third_party/WebKit/Source/web/WebPagePopupImpl.cpp
|
| @@ -51,6 +51,7 @@
|
| #include "platform/EventDispatchForbiddenScope.h"
|
| #include "platform/LayoutTestSupport.h"
|
| #include "platform/ScriptForbiddenScope.h"
|
| +#include "platform/animation/CompositorAnimationHost.h"
|
| #include "platform/heap/Handle.h"
|
| #include "platform/tracing/TraceEvent.h"
|
| #include "public/platform/WebCompositeAndReadbackAsyncCallback.h"
|
| @@ -137,16 +138,14 @@ class PagePopupChromeClient final : public EmptyChromeClient {
|
|
|
| void attachCompositorAnimationTimeline(CompositorAnimationTimeline* timeline,
|
| LocalFrame*) override {
|
| - if (m_popup->m_layerTreeView)
|
| - m_popup->m_layerTreeView->attachCompositorAnimationTimeline(
|
| - timeline->animationTimeline());
|
| + if (m_popup->m_compositorAnimationHost)
|
| + m_popup->m_compositorAnimationHost->addTimeline(*timeline);
|
| }
|
|
|
| void detachCompositorAnimationTimeline(CompositorAnimationTimeline* timeline,
|
| LocalFrame*) override {
|
| - if (m_popup->m_layerTreeView)
|
| - m_popup->m_layerTreeView->detachCompositorAnimationTimeline(
|
| - timeline->animationTimeline());
|
| + if (m_popup->m_compositorAnimationHost)
|
| + m_popup->m_compositorAnimationHost->removeTimeline(*timeline);
|
| }
|
|
|
| WebScreenInfo screenInfo() const override {
|
| @@ -388,9 +387,12 @@ void WebPagePopupImpl::setIsAcceleratedCompositingActive(bool enter) {
|
| if (m_layerTreeView) {
|
| m_layerTreeView->setVisible(true);
|
| m_isAcceleratedCompositingActive = true;
|
| + m_compositorAnimationHost = WTF::makeUnique<CompositorAnimationHost>(
|
| + m_layerTreeView->compositorAnimationHost());
|
| m_page->layerTreeViewInitialized(*m_layerTreeView);
|
| } else {
|
| m_isAcceleratedCompositingActive = false;
|
| + m_compositorAnimationHost = nullptr;
|
| }
|
| }
|
| }
|
| @@ -408,7 +410,8 @@ void WebPagePopupImpl::willCloseLayerTreeView() {
|
| m_page->willCloseLayerTreeView(*m_layerTreeView);
|
|
|
| setIsAcceleratedCompositingActive(false);
|
| - m_layerTreeView = 0;
|
| + m_layerTreeView = nullptr;
|
| + m_compositorAnimationHost = nullptr;
|
| }
|
|
|
| void WebPagePopupImpl::updateAllLifecyclePhases() {
|
|
|