Index: Source/web/WebViewImpl.cpp |
diff --git a/Source/web/WebViewImpl.cpp b/Source/web/WebViewImpl.cpp |
index 46b04e047392f71c8e84ee1d9668fa0682a82903..f7041a87186bb522c316bf7d9ae04c7ce60f63ec 100644 |
--- a/Source/web/WebViewImpl.cpp |
+++ b/Source/web/WebViewImpl.cpp |
@@ -3210,6 +3210,24 @@ void WebViewImpl::setIgnoreViewportTagScaleLimits(bool ignore) |
setUserAgentPageScaleConstraints(constraints); |
} |
+IntSize WebViewImpl::mainFrameSize() |
+{ |
+ if (!pinchVirtualViewportEnabled() || !localFrameRootTemporary()) |
+ return m_size; |
+ |
+ FrameView* view = localFrameRootTemporary()->frameView(); |
+ |
+ if (!view) |
+ return m_size; |
+ |
+ int contentAndScrollbarWidth = contentsSize().width(); |
+ |
+ if (view && view->verticalScrollbar() && !view->verticalScrollbar()->isOverlayScrollbar()) |
+ contentAndScrollbarWidth += view->verticalScrollbar()->width(); |
+ |
+ return m_pageScaleConstraintsSet.mainFrameSize(contentAndScrollbarWidth); |
+} |
+ |
void WebViewImpl::refreshPageScaleFactorAfterLayout() |
{ |
if (!mainFrame() || !page() || !page()->mainFrame() || !page()->mainFrame()->isLocalFrame() || !page()->deprecatedLocalMainFrame()->view()) |
@@ -3226,13 +3244,8 @@ void WebViewImpl::refreshPageScaleFactorAfterLayout() |
m_pageScaleConstraintsSet.adjustFinalConstraintsToContentsSize(contentsSize(), verticalScrollbarWidth); |
} |
- if (pinchVirtualViewportEnabled()) { |
- int contentAndScrollbarWidth = contentsSize().width(); |
- if (view->verticalScrollbar() && !view->verticalScrollbar()->isOverlayScrollbar()) |
- contentAndScrollbarWidth += view->verticalScrollbar()->width(); |
- |
- view->resize(m_pageScaleConstraintsSet.mainFrameSize(contentAndScrollbarWidth)); |
- } |
+ if (pinchVirtualViewportEnabled()) |
+ view->resize(mainFrameSize()); |
float newPageScaleFactor = pageScaleFactor(); |
if (m_pageScaleConstraintsSet.needsReset() && m_pageScaleConstraintsSet.finalConstraints().initialScale != -1) { |