Chromium Code Reviews| Index: Source/web/WebViewImpl.cpp |
| diff --git a/Source/web/WebViewImpl.cpp b/Source/web/WebViewImpl.cpp |
| index 1cdb62d6aa28f411514f57116393205350dad0ec..cbea808bd24e97ab4d5f1595bb1f24ec004178e0 100644 |
| --- a/Source/web/WebViewImpl.cpp |
| +++ b/Source/web/WebViewImpl.cpp |
| @@ -31,6 +31,7 @@ |
| #include "config.h" |
| #include "WebViewImpl.h" |
| +#include "core/rendering/RenderLayerCompositor.h" |
|
jamesr
2013/09/12 20:35:03
could you put this with the rest of the core/... i
wjmaclean
2013/09/12 20:42:54
Done.
|
| #include "public/platform/Platform.h" |
| #include "public/platform/WebDragData.h" |
| #include "public/platform/WebFloatPoint.h" |
| @@ -3803,11 +3804,9 @@ void WebViewImpl::setRootGraphicsLayer(GraphicsLayer* layer) |
| if (layer) { |
| m_rootGraphicsLayer = m_pinchViewports->rootGraphicsLayer(); |
| m_rootLayer = m_pinchViewports->rootGraphicsLayer()->platformLayer(); |
| - m_pinchViewports->registerViewportLayersWithTreeView(m_layerTreeView); |
| } else { |
| m_rootGraphicsLayer = 0; |
| m_rootLayer = 0; |
| - m_pinchViewports->clearViewportLayersForTreeView(m_layerTreeView); |
| } |
| } else { |
| m_rootGraphicsLayer = layer; |
| @@ -3817,10 +3816,23 @@ void WebViewImpl::setRootGraphicsLayer(GraphicsLayer* layer) |
| setIsAcceleratedCompositingActive(layer); |
| if (m_layerTreeView) { |
| - if (m_rootLayer) |
| + if (m_rootLayer) { |
| m_layerTreeView->setRootLayer(*m_rootLayer); |
| - else |
| + // We register viewport layers here since there may not be a layer |
| + // tree view prior to this point. |
| + if (m_pinchViewports) { |
| + m_pinchViewports->registerViewportLayersWithTreeView(m_layerTreeView); |
| + } else { |
| + GraphicsLayer* rootScrollLayer = compositor()->scrollLayer(); |
| + m_layerTreeView->registerViewportLayers(m_rootLayer, rootScrollLayer->platformLayer(), 0); |
| + } |
| + } else { |
| m_layerTreeView->clearRootLayer(); |
| + if (m_pinchViewports) |
| + m_pinchViewports->clearViewportLayersForTreeView(m_layerTreeView); |
| + else |
| + m_layerTreeView->clearViewportLayers(); |
| + } |
| } |
| suppressInvalidations(false); |