| 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 3e92e32a2f867341300bb60c550f5729a13a1c55..7f3a4031a82f7aebd0e1dc708f2b441de2b26aa3 100644
|
| --- a/third_party/WebKit/Source/web/WebViewImpl.cpp
|
| +++ b/third_party/WebKit/Source/web/WebViewImpl.cpp
|
| @@ -4182,6 +4182,36 @@ bool WebViewImpl::tabsToLinks() const
|
| return m_tabsToLinks;
|
| }
|
|
|
| +void WebViewImpl::registerViewportLayersWithCompositor()
|
| +{
|
| + DCHECK(m_layerTreeView);
|
| + DCHECK(!page()->deprecatedLocalMainFrame()->contentLayoutItem().isNull());
|
| +
|
| + PaintLayerCompositor* compositor =
|
| + page()->deprecatedLocalMainFrame()->contentLayoutItem().compositor();
|
| +
|
| + DCHECK(compositor);
|
| +
|
| + // Get the outer viewport scroll layer.
|
| + WebLayer* scrollLayer =
|
| + compositor->scrollLayer()
|
| + ? compositor->scrollLayer()->platformLayer()
|
| + : nullptr;
|
| +
|
| + VisualViewport& visualViewport = page()->frameHost().visualViewport();
|
| +
|
| + // TODO(bokan): This was moved here from when registerViewportLayers was a
|
| + // part of VisualViewport and maybe doesn't belong here. See comment inside
|
| + // the mehtod.
|
| + visualViewport.setScrollLayerOnScrollbars(scrollLayer);
|
| +
|
| + m_layerTreeView->registerViewportLayers(
|
| + visualViewport.overscrollElasticityLayer()->platformLayer(),
|
| + visualViewport.pageScaleLayer()->platformLayer(),
|
| + visualViewport.scrollLayer()->platformLayer(),
|
| + scrollLayer);
|
| +}
|
| +
|
| void WebViewImpl::setRootGraphicsLayer(GraphicsLayer* layer)
|
| {
|
| if (!m_layerTreeView)
|
| @@ -4201,7 +4231,7 @@ void WebViewImpl::setRootGraphicsLayer(GraphicsLayer* layer)
|
| m_layerTreeView->setRootLayer(*m_rootLayer);
|
| // We register viewport layers here since there may not be a layer
|
| // tree view prior to this point.
|
| - visualViewport.registerLayersWithTreeView(m_layerTreeView);
|
| + registerViewportLayersWithCompositor();
|
| updatePageOverlays();
|
| // TODO(enne): Work around page visibility changes not being
|
| // propagated to the WebView in some circumstances. This needs to
|
| @@ -4217,7 +4247,7 @@ void WebViewImpl::setRootGraphicsLayer(GraphicsLayer* layer)
|
| // attempt to paint too early in the next page load.
|
| m_layerTreeView->setDeferCommits(true);
|
| m_layerTreeView->clearRootLayer();
|
| - visualViewport.clearLayersForTreeView(m_layerTreeView);
|
| + m_layerTreeView->clearViewportLayers();
|
| }
|
| }
|
|
|
|
|