[chromium] Don't clamp minimumPageScaleFactor when doc width is zero
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 18 Nov 2011 04:23:10 +0000 (04:23 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 18 Nov 2011 04:23:10 +0000 (04:23 +0000)
https://bugs.webkit.org/show_bug.cgi?id=72679

Patch by Alexandre Elias <aelias@google.com> on 2011-11-17
Reviewed by James Robinson.

For a brief period during initialization, the document width can be
zero.  In that situation, don't try to limit minimumPageScaleFactor
to the document size.

* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::setPageScaleFactorLimits):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@100713 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/src/WebViewImpl.cpp

index 93419e32a53f07e9f574015c4319cb5290c7f701..47a5177853db9b1f9f5d7b25304b02da2e937bef 100644 (file)
@@ -1,3 +1,17 @@
+2011-11-17  Alexandre Elias  <aelias@google.com>
+
+        [chromium] Don't clamp minimumPageScaleFactor when doc width is zero
+        https://bugs.webkit.org/show_bug.cgi?id=72679
+
+        Reviewed by James Robinson.
+
+        For a brief period during initialization, the document width can be
+        zero.  In that situation, don't try to limit minimumPageScaleFactor
+        to the document size.
+
+        * src/WebViewImpl.cpp:
+        (WebKit::WebViewImpl::setPageScaleFactorLimits):
+
 2011-11-06  Nat Duca  <nduca@chromium.org>
 
         [chromium] Fix handling of setNeedsCommit and setNeedsAnimate in threaded mode
index b87995df050ebf40f32cde6fffa8bcbf05ad6981..68b831dd6e9f1d4948b8a26361aa157941782d60 100644 (file)
@@ -1959,10 +1959,12 @@ void WebViewImpl::setPageScaleFactorLimits(float minPageScale, float maxPageScal
     m_minimumPageScaleFactor = min(max(minPageScale, minPageScaleFactor), maxPageScaleFactor) * deviceScaleFactor();
     m_maximumPageScaleFactor = max(min(maxPageScale, maxPageScaleFactor), minPageScaleFactor) * deviceScaleFactor();
 
-    // Limit page scaling down to the document width.
-    int viewWidth = m_size.width;
-    int unscaledContentWidth = mainFrame()->contentsSize().width / pageScaleFactor();
-    m_minimumPageScaleFactor = max(m_minimumPageScaleFactor,  static_cast<float>(viewWidth) / unscaledContentWidth);
+    if (m_size.width && mainFrame() && mainFrame()->contentsSize().width) {
+        // Limit page scaling down to the document width.
+        int viewWidth = m_size.width;
+        int unscaledContentWidth = mainFrame()->contentsSize().width / pageScaleFactor();
+        m_minimumPageScaleFactor = max(m_minimumPageScaleFactor, static_cast<float>(viewWidth) / unscaledContentWidth);
+    }
     ASSERT(minPageScale <= maxPageScale);
 #if USE(ACCELERATED_COMPOSITING)
     if (m_layerTreeHost)