Index: Source/web/WebViewImpl.cpp |
diff --git a/Source/web/WebViewImpl.cpp b/Source/web/WebViewImpl.cpp |
index 2c51ffb9caffe9832ac8562da29808753c45e904..a6c28a74e72c4c6e712e2d07c185f1504890f323 100644 |
--- a/Source/web/WebViewImpl.cpp |
+++ b/Source/web/WebViewImpl.cpp |
@@ -1689,10 +1689,8 @@ |
ViewportAnchor viewportAnchor(&localFrameRootTemporary()->frame()->eventHandler()); |
if (shouldAnchorAndRescaleViewport) { |
- viewportAnchor.setAnchor( |
- view->visibleContentRect(), |
- visibleRectInDocument(), |
- FloatSize(viewportAnchorXCoord, viewportAnchorYCoord)); |
+ viewportAnchor.setAnchor(view->visibleContentRect(), |
+ FloatSize(viewportAnchorXCoord, viewportAnchorYCoord)); |
} |
// FIXME: TextAutosizer does not yet support out-of-process frames. |
@@ -1712,31 +1710,13 @@ |
if (shouldAnchorAndRescaleViewport) { |
float newPageScaleFactor = oldPageScaleFactor / oldMinimumPageScaleFactor * minimumPageScaleFactor(); |
- newPageScaleFactor = clampPageScaleFactorToLimits(newPageScaleFactor); |
- |
- FloatSize pinchViewportSize = FloatSize(newSize); |
- pinchViewportSize.scale(1 / newPageScaleFactor); |
- |
- IntPoint mainFrameOrigin; |
- FloatPoint pinchViewportOrigin; |
- viewportAnchor.computeOrigins(*view, pinchViewportSize, |
- mainFrameOrigin, pinchViewportOrigin); |
- scrollAndRescaleViewports(newPageScaleFactor, mainFrameOrigin, pinchViewportOrigin); |
+ IntSize scaledViewportSize = newSize; |
+ scaledViewportSize.scale(1 / newPageScaleFactor); |
+ setPageScaleFactor(newPageScaleFactor, viewportAnchor.computeOrigin(scaledViewportSize)); |
} |
} |
sendResizeEventAndRepaint(); |
-} |
- |
-IntRect WebViewImpl::visibleRectInDocument() const |
-{ |
- if (pinchVirtualViewportEnabled()) { |
- // Inner viewport in the document coordinates |
- return enclosedIntRect(page()->frameHost().pinchViewport().visibleRectInDocument()); |
- } |
- |
- // Outer viewport in the document coordinates |
- return localFrameRootTemporary()->frameView()->visibleContentRect(); |
} |
void WebViewImpl::willEndLiveResize() |
@@ -2938,36 +2918,6 @@ |
return page()->frameHost().pinchViewport().visibleRect().location(); |
} |
-void WebViewImpl::scrollAndRescaleViewports(float scaleFactor, |
- const IntPoint& mainFrameOrigin, |
- const FloatPoint& pinchViewportOrigin) |
-{ |
- // Old way |
- if (!pinchVirtualViewportEnabled()) { |
- setPageScaleFactor(scaleFactor, mainFrameOrigin); |
- return; |
- } |
- |
- if (!page()) |
- return; |
- |
- if (!mainFrameImpl()) |
- return; |
- |
- FrameView * view = mainFrameImpl()->frameView(); |
- if (!view) |
- return; |
- |
- // Order is important: pinch viewport location is clamped based on |
- // main frame scroll position and pinch viewport scale. |
- |
- view->setScrollOffset(mainFrameOrigin); |
- |
- setPageScaleFactor(scaleFactor); |
- |
- page()->frameHost().pinchViewport().setLocation(pinchViewportOrigin); |
-} |
- |
void WebViewImpl::setPageScaleFactor(float scaleFactor) |
{ |
ASSERT(page()); |
@@ -3009,6 +2959,7 @@ |
else |
page()->setPageScaleFactor(scaleFactor, newScrollOffset); |
} |
+ |
float WebViewImpl::deviceScaleFactor() const |
{ |