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

Unified Diff: Source/web/WebViewImpl.cpp

Issue 199253002: Made PinchViewport a ScrollableArea (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 9 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
« no previous file with comments | « Source/platform/scroll/ScrollableArea.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/web/WebViewImpl.cpp
diff --git a/Source/web/WebViewImpl.cpp b/Source/web/WebViewImpl.cpp
index 29bedfed385f4fade1598571b65a6635de499ce3..a225e26c4f245e09f76e7cf23632df888b514335 100644
--- a/Source/web/WebViewImpl.cpp
+++ b/Source/web/WebViewImpl.cpp
@@ -1561,7 +1561,7 @@ void WebViewImpl::resize(const WebSize& newSize)
if (webFrame->frameView()) {
webFrame->frameView()->resize(m_size);
if (page()->settings().pinchVirtualViewportEnabled())
- page()->frameHost().pinchViewport().setViewportSize(m_size);
+ page()->frameHost().pinchViewport().setSize(m_size);
}
if (settings()->viewportEnabled() && !m_fixedLayoutSizeLock) {
@@ -3636,7 +3636,7 @@ void WebViewImpl::setRootGraphicsLayer(GraphicsLayer* layer)
if (pinchVirtualViewportEnabled) {
PinchViewport& pinchViewport = page()->frameHost().pinchViewport();
pinchViewport.attachToLayerTree(layer, graphicsLayerFactory());
- pinchViewport.setViewportSize(mainFrameImpl()->frame()->view()->frameRect().size());
+ pinchViewport.setSize(mainFrameImpl()->frame()->view()->frameRect().size());
if (layer) {
m_rootGraphicsLayer = pinchViewport.rootGraphicsLayer();
m_rootLayer = pinchViewport.rootGraphicsLayer()->platformLayer();
@@ -3662,7 +3662,7 @@ void WebViewImpl::setRootGraphicsLayer(GraphicsLayer* layer)
// We register viewport layers here since there may not be a layer
// tree view prior to this point.
if (pinchVirtualViewportEnabled) {
- page()->frameHost().pinchViewport().registerViewportLayersWithTreeView(m_layerTreeView);
+ page()->frameHost().pinchViewport().registerLayersWithTreeView(m_layerTreeView);
} else {
GraphicsLayer* rootScrollLayer = compositor()->scrollLayer();
ASSERT(rootScrollLayer);
@@ -3672,7 +3672,7 @@ void WebViewImpl::setRootGraphicsLayer(GraphicsLayer* layer)
} else {
m_layerTreeView->clearRootLayer();
if (pinchVirtualViewportEnabled)
- page()->frameHost().pinchViewport().clearViewportLayersForTreeView(m_layerTreeView);
+ page()->frameHost().pinchViewport().clearLayersForTreeView(m_layerTreeView);
else
m_layerTreeView->clearViewportLayers();
}
@@ -3828,6 +3828,17 @@ void WebViewImpl::applyScrollAndScale(const WebSize& scrollDelta, float pageScal
if (!mainFrameImpl() || !mainFrameImpl()->frameView())
return;
+ // With virtual viewport we need only set the scale (see TODO below).
+ if (page()->settings().pinchVirtualViewportEnabled()) {
+ WebSize scrollOffset = mainFrame()->scrollOffset();
+ WebPoint scrollPoint(scrollOffset.width, scrollOffset.height);
+ setPageScaleFactor(pageScaleFactor() * pageScaleDelta, scrollPoint);
+ m_doubleTapZoomPending = false;
+ return;
+ }
+
+ // TODO(bokan): Old pinch path only - virtual viewport pinch scrolls are automatically updated via GraphicsLayer::DidScroll.
+ // this should be removed once old pinch is removed.
if (pageScaleDelta == 1) {
TRACE_EVENT_INSTANT2("webkit", "WebViewImpl::applyScrollAndScale::scrollBy", "x", scrollDelta.width, "y", scrollDelta.height);
WebSize webScrollOffset = mainFrame()->scrollOffset();
« no previous file with comments | « Source/platform/scroll/ScrollableArea.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698