Index: Source/web/WebViewImpl.cpp |
diff --git a/Source/web/WebViewImpl.cpp b/Source/web/WebViewImpl.cpp |
index c4553267a604f402441d7979295d69c9399c70b8..9d314fb083d8c013b0979c995412fab2c297abae 100644 |
--- a/Source/web/WebViewImpl.cpp |
+++ b/Source/web/WebViewImpl.cpp |
@@ -1693,11 +1693,6 @@ |
if (pinchVirtualViewportEnabled()) |
page()->frameHost().pinchViewport().setSize(m_size); |
- if (mainFrameImpl()->frameView()) { |
- if (!mainFrameImpl()->frameView()->needsLayout()) |
- postLayoutResize(mainFrameImpl()); |
- } |
- |
// When device emulation is enabled, device size values may change - they are |
// usually set equal to the view size. These values are not considered viewport-dependent |
// (see MediaQueryExp::isViewportDependent), since they are only viewport-dependent in emulation mode, |
@@ -4018,9 +4013,33 @@ |
} |
} |
-void WebViewImpl::postLayoutResize(WebLocalFrameImpl* webframe) |
-{ |
+void WebViewImpl::layoutUpdated(WebLocalFrameImpl* webframe) |
+{ |
+ if (!m_client || !webframe->frame()->isLocalRoot()) |
+ return; |
+ |
+ // If we finished a layout while in deferred commit mode, |
+ // that means it's time to start producing frames again so un-defer. |
+ resumeTreeViewCommits(); |
+ |
+ if (m_shouldAutoResize && webframe->frame() && webframe->frame()->view()) { |
+ WebSize frameSize = webframe->frame()->view()->frameRect().size(); |
+ if (frameSize != m_size) { |
+ m_size = frameSize; |
+ |
+ page()->frameHost().pinchViewport().setSize(m_size); |
+ m_pageScaleConstraintsSet.didChangeViewSize(m_size); |
+ |
+ m_client->didAutoResize(m_size); |
+ sendResizeEventAndRepaint(); |
+ } |
+ } |
+ |
+ if (m_pageScaleConstraintsSet.constraintsDirty()) |
+ refreshPageScaleFactorAfterLayout(); |
+ |
FrameView* view = webframe->frame()->view(); |
+ |
if (pinchVirtualViewportEnabled()) { |
if (webframe == mainFrame()) { |
view->resize(mainFrameSize()); |
@@ -4028,36 +4047,6 @@ |
view->resize(webframe->frameView()->layoutSize()); |
} |
} |
-} |
- |
-void WebViewImpl::layoutUpdated(WebLocalFrameImpl* webframe) |
-{ |
- if (!m_client || !webframe->frame()->isLocalRoot()) |
- return; |
- |
- // If we finished a layout while in deferred commit mode, |
- // that means it's time to start producing frames again so un-defer. |
- resumeTreeViewCommits(); |
- |
- if (m_shouldAutoResize && webframe->frame() && webframe->frame()->view()) { |
- WebSize frameSize = webframe->frame()->view()->frameRect().size(); |
- if (frameSize != m_size) { |
- m_size = frameSize; |
- |
- page()->frameHost().pinchViewport().setSize(m_size); |
- m_pageScaleConstraintsSet.didChangeViewSize(m_size); |
- |
- m_client->didAutoResize(m_size); |
- sendResizeEventAndRepaint(); |
- } |
- } |
- |
- if (m_pageScaleConstraintsSet.constraintsDirty()) |
- refreshPageScaleFactorAfterLayout(); |
- |
- FrameView* view = webframe->frame()->view(); |
- |
- postLayoutResize(webframe); |
// Relayout immediately to avoid violating the rule that needsLayout() |
// isn't set at the end of a layout. |