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

Unified Diff: Source/WebKit/chromium/src/WebViewImpl.cpp

Issue 16799005: Insert pinch zoom virtual viewport layers to graphics layer tree. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 6 months 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: 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)

Powered by Google App Engine
This is Rietveld 408576698