| 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..e6ba4ce8035efb11a0d69610ab5b4489325430f1 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->setViewportSizes();
|
| + }
|
| }
|
|
|
| if (settings()->viewportEnabled()) {
|
| @@ -2981,6 +2985,9 @@ void WebViewImpl::refreshPageScaleFactorAfterLayout()
|
| }
|
| setPageScaleFactorPreservingScrollOffset(newPageScaleFactor);
|
|
|
| + if (m_pinchViewports)
|
| + m_pinchViewports->setViewportSizes();
|
| +
|
| updateLayerTreeViewport();
|
|
|
| // Relayout immediately to avoid violating the rule that needsLayout()
|
| @@ -3811,6 +3818,16 @@ void WebViewImpl::setRootGraphicsLayer(GraphicsLayer* layer)
|
|
|
| setIsAcceleratedCompositingActive(layer);
|
|
|
| + if (page()->settings()->pinchVirtualViewportEnabled() && !m_pinchViewports)
|
| + m_pinchViewports = PinchViewports::create(this);
|
| +
|
| + if (m_pinchViewports) {
|
| + if (m_rootLayer)
|
| + m_pinchViewports->insertViewportLayers();
|
| + else
|
| + m_pinchViewports->detachViewportLayers();
|
| + }
|
| +
|
| if (m_layerTreeView) {
|
| if (m_rootLayer)
|
| m_layerTreeView->setRootLayer(*m_rootLayer);
|
| @@ -3845,6 +3862,13 @@ WebCore::GraphicsLayerFactory* WebViewImpl::graphicsLayerFactory() const
|
| return m_graphicsLayerFactory.get();
|
| }
|
|
|
| +WebCore::RenderLayerCompositor* WebViewImpl::compositor() const
|
| +{
|
| + Document* document = page()->mainFrame()->document();
|
| + RenderView* renderView = document->renderView();
|
| + return renderView->compositor();
|
| +}
|
| +
|
| void WebViewImpl::registerForAnimations(WebLayer* layer)
|
| {
|
| if (m_layerTreeView)
|
|
|