Chromium Code Reviews| Index: Source/WebKit/chromium/src/WebViewImpl.cpp |
| diff --git a/Source/WebKit/chromium/src/WebViewImpl.cpp b/Source/WebKit/chromium/src/WebViewImpl.cpp |
| index 8792a6f93b56771340581b347dc000a3592e0af4..c06dc5eb065e23798ca1021a9eebd7365dffbb3d 100644 |
| --- a/Source/WebKit/chromium/src/WebViewImpl.cpp |
| +++ b/Source/WebKit/chromium/src/WebViewImpl.cpp |
| @@ -57,6 +57,7 @@ |
| #include "HTMLNames.h" |
| #include "LinkHighlight.h" |
| #include "PageWidgetDelegate.h" |
| +#include "PinchViewports.h" |
| #include "PopupContainer.h" |
| #include "PrerendererClientImpl.h" |
| #include "SpeechInputClientImpl.h" |
| @@ -1611,8 +1612,11 @@ void WebViewImpl::resize(const WebSize& newSize) |
| agentPrivate->webViewResized(newSize); |
| if (!agentPrivate || !agentPrivate->metricsOverridden()) { |
| WebFrameImpl* webFrame = mainFrameImpl(); |
| - if (webFrame->frameView()) |
| + if (webFrame->frameView()) { |
| webFrame->frameView()->resize(m_size); |
| + if (m_pinchViewports) |
| + m_pinchViewports->setViewportSize(FloatSize(m_size.width, m_size.height)); |
| + } |
| } |
| if (settings()->viewportEnabled()) { |
| @@ -3806,11 +3810,28 @@ void WebViewImpl::setRootGraphicsLayer(GraphicsLayer* layer) |
| { |
| suppressInvalidations(true); |
| - m_rootGraphicsLayer = layer; |
| - m_rootLayer = layer ? layer->platformLayer() : 0; |
| + if (page()->settings()->pinchVirtualViewportEnabled() && !m_pinchViewports) |
| + m_pinchViewports = PinchViewports::create(this); |
| + |
| + if (m_pinchViewports) { |
| + m_pinchViewports->setOverflowControlsHostLayer(layer); |
| + if (layer) { |
| + m_rootGraphicsLayer = m_pinchViewports->rootGraphicsLayer(); |
| + m_rootLayer = m_pinchViewports->rootGraphicsLayer()->platformLayer(); |
| + } else { |
| + m_rootGraphicsLayer = 0; |
| + m_rootLayer = 0; |
| + } |
| + } else { |
| + m_rootGraphicsLayer = layer; |
| + m_rootLayer = layer ? layer->platformLayer() : 0; |
| + } |
| + |
| setIsAcceleratedCompositingActive(layer); |
| + // FIXME: We also need to tell the layer tree about the pinchViewport layers |
| + // in a follow-on CL. |
| if (m_layerTreeView) { |
| if (m_rootLayer) |
| m_layerTreeView->setRootLayer(*m_rootLayer); |
| @@ -3845,6 +3866,13 @@ WebCore::GraphicsLayerFactory* WebViewImpl::graphicsLayerFactory() const |
| return m_graphicsLayerFactory.get(); |
| } |
| +WebCore::RenderLayerCompositor* WebViewImpl::compositor() const |
| +{ |
| + Document* document = page()->mainFrame()->document(); |
|
enne (OOO)
2013/06/13 22:45:07
Can any of these things be NULL?
wjmaclean
2013/06/14 15:54:16
Yes, we should put in checks. I'm not sure what th
|
| + RenderView* renderView = document->renderView(); |
| + return renderView->compositor(); |
| +} |
| + |
| void WebViewImpl::registerForAnimations(WebLayer* layer) |
| { |
| if (m_layerTreeView) |