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

Unified Diff: third_party/WebKit/Source/web/WebViewImpl.cpp

Issue 2559273003: Blink Compositor Animation: Introduce CompositorAnimationHost correctly. (Closed)
Patch Set: Add nullcheck for m_layerTreeView in WebViewImpl 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/web/WebViewImpl.cpp
diff --git a/third_party/WebKit/Source/web/WebViewImpl.cpp b/third_party/WebKit/Source/web/WebViewImpl.cpp
index a3385911ce5d3f9c65ae83beed3686e6af0325c1..ade550149e2af9d6696c9f397c0102c17151d2ed 100644
--- a/third_party/WebKit/Source/web/WebViewImpl.cpp
+++ b/third_party/WebKit/Source/web/WebViewImpl.cpp
@@ -102,6 +102,7 @@
#include "platform/PlatformMouseEvent.h"
#include "platform/RuntimeEnabledFeatures.h"
#include "platform/UserGestureIndicator.h"
+#include "platform/animation/CompositorAnimationHost.h"
#include "platform/exported/WebActiveGestureAnimation.h"
#include "platform/fonts/FontCache.h"
#include "platform/geometry/FloatRect.h"
@@ -2528,6 +2529,7 @@ void WebViewImpl::willCloseLayerTreeView() {
page()->willCloseLayerTreeView(*m_layerTreeView);
setRootLayer(nullptr);
+ m_compositorAnimationHost = nullptr;
m_mutator = nullptr;
m_layerTreeView = nullptr;
@@ -3946,22 +3948,24 @@ void WebViewImpl::scheduleAnimationForWidget() {
void WebViewImpl::attachCompositorAnimationTimeline(
CompositorAnimationTimeline* timeline) {
- if (m_layerTreeView)
- m_layerTreeView->attachCompositorAnimationTimeline(
- timeline->animationTimeline());
+ if (m_compositorAnimationHost)
+ m_compositorAnimationHost->addTimeline(timeline);
}
void WebViewImpl::detachCompositorAnimationTimeline(
CompositorAnimationTimeline* timeline) {
- if (m_layerTreeView)
- m_layerTreeView->detachCompositorAnimationTimeline(
- timeline->animationTimeline());
+ if (m_compositorAnimationHost)
+ m_compositorAnimationHost->removeTimeline(timeline);
}
void WebViewImpl::initializeLayerTreeView() {
if (m_client) {
m_client->initializeLayerTreeView();
m_layerTreeView = m_client->widgetClient()->layerTreeView();
+ if (m_layerTreeView && m_layerTreeView->compositorAnimationHost()) {
+ m_compositorAnimationHost = WTF::makeUnique<CompositorAnimationHost>(
+ m_layerTreeView->compositorAnimationHost());
+ }
}
if (WebDevToolsAgentImpl* devTools = mainFrameDevToolsAgentImpl())

Powered by Google App Engine
This is Rietveld 408576698