Index: Source/web/WebViewImpl.cpp |
diff --git a/Source/web/WebViewImpl.cpp b/Source/web/WebViewImpl.cpp |
index d8dba48c527ac8ec15612711b359f1ccbd023485..17ebdc7d5be09ba98a9b8e17012bf5c7e91c1a25 100644 |
--- a/Source/web/WebViewImpl.cpp |
+++ b/Source/web/WebViewImpl.cpp |
@@ -1566,17 +1566,22 @@ void WebViewImpl::resize(const WebSize& newSize) |
FloatSize(viewportAnchorXCoord, viewportAnchorYCoord)); |
} |
- updatePageDefinedViewportConstraints(mainFrameImpl()->frame()->document()->viewportDescription()); |
- updateMainFrameLayoutSize(); |
+ { |
+ // Avoids unnecessary invalidations while various bits of state in FastTextAutosizer are updated. |
+ FastTextAutosizer::DeferUpdatePageInfo deferUpdatePageInfo(page()); |
- WebDevToolsAgentPrivate* agentPrivate = devToolsAgentPrivate(); |
- if (agentPrivate) |
- agentPrivate->webViewResized(newSize); |
- WebFrameImpl* webFrame = mainFrameImpl(); |
- if (webFrame->frameView()) { |
- webFrame->frameView()->resize(m_size); |
- if (page()->settings().pinchVirtualViewportEnabled()) |
- page()->frameHost().pinchViewport().setSize(m_size); |
+ updatePageDefinedViewportConstraints(mainFrameImpl()->frame()->document()->viewportDescription()); |
+ updateMainFrameLayoutSize(); |
+ |
+ WebDevToolsAgentPrivate* agentPrivate = devToolsAgentPrivate(); |
+ if (agentPrivate) |
+ agentPrivate->webViewResized(newSize); |
+ WebFrameImpl* webFrame = mainFrameImpl(); |
+ if (webFrame->frameView()) { |
+ webFrame->frameView()->resize(m_size); |
+ if (page()->settings().pinchVirtualViewportEnabled()) |
+ page()->frameHost().pinchViewport().setSize(m_size); |
+ } |
} |
if (settings()->viewportEnabled() && !m_fixedLayoutSizeLock) { |