| 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
|
| {
|
|
|