Chromium's WebKit API should use floats instead of doubles for zoom to match WebCore
authorfsamuel@chromium.org <fsamuel@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 12 Aug 2011 18:43:36 +0000 (18:43 +0000)
committerfsamuel@chromium.org <fsamuel@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 12 Aug 2011 18:43:36 +0000 (18:43 +0000)
https://bugs.webkit.org/show_bug.cgi?id=66089

Reviewed by Darin Fisher.

* public/WebView.h:
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::zoomLevel):
(WebKit::WebViewImpl::setZoomLevel):
(WebKit::WebViewImpl::zoomLimitsChanged):
(WebKit::WebViewImpl::fullFramePluginZoomLevelChanged):
(WebKit::WebView::zoomLevelToZoomFactor):
(WebKit::WebView::zoomFactorToZoomLevel):
* src/WebViewImpl.h:

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

Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/public/WebView.h
Source/WebKit/chromium/src/WebViewImpl.cpp
Source/WebKit/chromium/src/WebViewImpl.h

index af1e3bcae8ec7b2c2358b863240159d2b11a0c41..e910c6ec8d5f0fe62ec07925d016c2e1d6cca938 100644 (file)
@@ -1,3 +1,20 @@
+2011-08-12  Fady Samuel  <fsamuel@chromium.org>
+
+        Chromium's WebKit API should use floats instead of doubles for zoom to match WebCore
+        https://bugs.webkit.org/show_bug.cgi?id=66089
+
+        Reviewed by Darin Fisher.
+
+        * public/WebView.h:
+        * src/WebViewImpl.cpp:
+        (WebKit::WebViewImpl::zoomLevel):
+        (WebKit::WebViewImpl::setZoomLevel):
+        (WebKit::WebViewImpl::zoomLimitsChanged):
+        (WebKit::WebViewImpl::fullFramePluginZoomLevelChanged):
+        (WebKit::WebView::zoomLevelToZoomFactor):
+        (WebKit::WebView::zoomFactorToZoomLevel):
+        * src/WebViewImpl.h:
+
 2011-08-12  Fady Samuel  <fsamuel@chromium.org>
 
         Refactoring of PopupMenuChromium
index 26599ac30199f8e45eaf6b4b3ca5e97cd6c070b8..47fb8c9811d514e292af11ce7c371fd7ed5a190c 100644 (file)
@@ -182,7 +182,7 @@ public:
     // of 300% and 50% of original size, respectively.  Only plugins use
     // non whole-numbers, since they might choose to have specific zoom level so
     // that fixed-width content is fit-to-page-width, for example.
-    virtual double zoomLevel() = 0;
+    virtual float zoomLevel() const = 0;
 
     // Changes the zoom level to the specified level, clamping at the limits
     // noted above, and returns the current zoom level after applying the
@@ -192,16 +192,16 @@ public:
     // page will be zoomed. You can only have either text zoom or full page zoom
     // at one time.  Changing the mode while the page is zoomed will have odd
     // effects.
-    virtual double setZoomLevel(bool textOnly, double zoomLevel) = 0;
+    virtual float setZoomLevel(bool textOnly, float zoomLevel) = 0;
 
     // Updates the zoom limits for this view.
-    virtual void zoomLimitsChanged(double minimumZoomLevel,
-                                   double maximumZoomLevel) = 0;
+    virtual void zoomLimitsChanged(float minimumZoomLevel,
+                                   float maximumZoomLevel) = 0;
 
     // Helper functions to convert between zoom level and zoom factor.  zoom
     // factor is zoom percent / 100, so 300% = 3.0.
-    WEBKIT_EXPORT static double zoomLevelToZoomFactor(double zoomLevel);
-    WEBKIT_EXPORT static double zoomFactorToZoomLevel(double factor);
+    WEBKIT_EXPORT static float zoomLevelToZoomFactor(float zoomLevel);
+    WEBKIT_EXPORT static float zoomFactorToZoomLevel(float factor);
 
     // Scales a page by a factor of scaleFactor and then sets a scroll position to (x, y).
     // scalePage() magnifies and shrinks a page without affecting layout.
index a21f34d3ce66fadd278d2fa05ce800417728c911..43db33168dd80626ad05d7601cd69083f1f70f04 100644 (file)
@@ -1781,12 +1781,12 @@ void WebViewImpl::scrollFocusedNodeIntoView()
     }
 }
 
-double WebViewImpl::zoomLevel()
+float WebViewImpl::zoomLevel() const
 {
     return m_zoomLevel;
 }
 
-double WebViewImpl::setZoomLevel(bool textOnly, double zoomLevel)
+float WebViewImpl::setZoomLevel(bool textOnly, float zoomLevel)
 {
     if (zoomLevel < m_minimumZoomLevel)
         m_zoomLevel = m_minimumZoomLevel;
@@ -1800,7 +1800,7 @@ double WebViewImpl::setZoomLevel(bool textOnly, double zoomLevel)
     if (pluginContainer)
         pluginContainer->plugin()->setZoomLevel(m_zoomLevel, textOnly);
     else {
-        float zoomFactor = static_cast<float>(zoomLevelToZoomFactor(m_zoomLevel));
+        float zoomFactor = zoomLevelToZoomFactor(m_zoomLevel);
         if (textOnly)
             frame->setPageAndTextZoomFactors(1, zoomFactor);
         else
@@ -1809,15 +1809,15 @@ double WebViewImpl::setZoomLevel(bool textOnly, double zoomLevel)
     return m_zoomLevel;
 }
 
-void WebViewImpl::zoomLimitsChanged(double minimumZoomLevel,
-                                    double maximumZoomLevel)
+void WebViewImpl::zoomLimitsChanged(float minimumZoomLevel,
+                                    float maximumZoomLevel)
 {
     m_minimumZoomLevel = minimumZoomLevel;
     m_maximumZoomLevel = maximumZoomLevel;
     m_client->zoomLimitsChanged(m_minimumZoomLevel, m_maximumZoomLevel);
 }
 
-void WebViewImpl::fullFramePluginZoomLevelChanged(double zoomLevel)
+void WebViewImpl::fullFramePluginZoomLevelChanged(float zoomLevel)
 {
     if (zoomLevel == m_zoomLevel)
         return;
@@ -1826,12 +1826,12 @@ void WebViewImpl::fullFramePluginZoomLevelChanged(double zoomLevel)
     m_client->zoomLevelChanged();
 }
 
-double WebView::zoomLevelToZoomFactor(double zoomLevel)
+float WebView::zoomLevelToZoomFactor(float zoomLevel)
 {
     return pow(textSizeMultiplierRatio, zoomLevel);
 }
 
-double WebView::zoomFactorToZoomLevel(double factor)
+float WebView::zoomFactorToZoomLevel(float factor)
 {
     // Since factor = 1.2^level, level = log(factor) / log(1.2)
     return log(factor) / log(textSizeMultiplierRatio);
index 4a2a29ecb982f7b6617d64594ec85725c3b502bc..8f9d53ba08ab0c05e459f97f5255592b3197c21c 100644 (file)
@@ -151,10 +151,10 @@ public:
     virtual void setInitialFocus(bool reverse);
     virtual void clearFocusedNode();
     virtual void scrollFocusedNodeIntoView();
-    virtual double zoomLevel();
-    virtual double setZoomLevel(bool textOnly, double zoomLevel);
-    virtual void zoomLimitsChanged(double minimumZoomLevel,
-                                   double maximumZoomLevel);
+    virtual float zoomLevel() const;
+    virtual float setZoomLevel(bool textOnly, float zoomLevel);
+    virtual void zoomLimitsChanged(float minimumZoomLevel,
+                                   float maximumZoomLevel);
     virtual void scalePage(float scaleFactor, WebPoint origin);
     virtual void performMediaPlayerAction(
         const WebMediaPlayerAction& action,
@@ -394,7 +394,7 @@ public:
     // zoom level has been updated.  The plugin should only call this function
     // if the zoom change was triggered by the browser, it's only needed in case
     // a plugin can update its own zoom, say because of its own UI.
-    void fullFramePluginZoomLevelChanged(double zoomLevel);
+    void fullFramePluginZoomLevelChanged(float zoomLevel);
 
 #if ENABLE(GESTURE_RECOGNIZER)
     void resetGestureRecognizer();
@@ -493,11 +493,11 @@ private:
 
     // Keeps track of the current zoom level. 0 means no zoom, positive numbers
     // mean zoom in, negative numbers mean zoom out.
-    double m_zoomLevel;
+    float m_zoomLevel;
 
-    double m_minimumZoomLevel;
+    float m_minimumZoomLevel;
 
-    double m_maximumZoomLevel;
+    float m_maximumZoomLevel;
 
     bool m_contextMenuAllowed;