Reverting changes from http://trac.webkit.org/changeset/49585 to fix:
authoradele@apple.com <adele@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 13 Dec 2009 23:00:09 +0000 (23:00 +0000)
committeradele@apple.com <adele@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 13 Dec 2009 23:00:09 +0000 (23:00 +0000)
<rdar://problem/7382815> REGRESSION (4.0.4-TOT): Home photo slider is too narrow at http://www.ziprealty.com/
https://bugs.webkit.org/show_bug.cgi?id=32078

Reviewed by Sam Weinig.

WebCore:

* css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::cssText):

LayoutTests:

* fast/css/large-number-round-trip-expected.txt:
* fast/css/large-number-round-trip.html: Updated to run in Firefox.
* fast/css/opacity-float-expected.txt:
* fast/css/opacity-float.html:
* transforms/2d/compound-2d-transforms-expected.txt:
* transforms/2d/compound-2d-transforms.html:

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

LayoutTests/ChangeLog
LayoutTests/fast/css/large-number-round-trip-expected.txt
LayoutTests/fast/css/large-number-round-trip.html
LayoutTests/fast/css/opacity-float-expected.txt
LayoutTests/fast/css/opacity-float.html
LayoutTests/transforms/2d/compound-2d-transforms-expected.txt
LayoutTests/transforms/2d/compound-2d-transforms.html
WebCore/ChangeLog
WebCore/css/CSSPrimitiveValue.cpp

index d65c0f223efe4184de6fcf1685f20c7f1800a082..b35175f3f21e9e55d2bd9541349a58c63b1c2075 100644 (file)
@@ -1,3 +1,18 @@
+2009-12-13  Adele Peterson  <adele@apple.com>
+
+        Reviewed by Sam Weinig.
+
+        Reverting changes from http://trac.webkit.org/changeset/49585 to fix:
+        <rdar://problem/7382815> REGRESSION (4.0.4-TOT): Home photo slider is too narrow at http://www.ziprealty.com/
+        https://bugs.webkit.org/show_bug.cgi?id=32078
+
+        * fast/css/large-number-round-trip-expected.txt:
+        * fast/css/large-number-round-trip.html: Updated to run in Firefox.
+        * fast/css/opacity-float-expected.txt:
+        * fast/css/opacity-float.html:
+        * transforms/2d/compound-2d-transforms-expected.txt:
+        * transforms/2d/compound-2d-transforms.html:
+
 2009-12-13  Eric Carlson  <eric.carlson@apple.com>
 
         No review, rolling out r52059 until I can generate new Tiger test
index 48795441651482b7185018f5175d64d26c8f7cd5..c9c6dc18719300b2967e1cd3f04b44651d35979b 100644 (file)
@@ -1 +1 @@
-PASS: read 90010000px back as 90010000px, read again as 90010000px
+FAIL: read 90010000px back as 9.001e+07px, read again as 0px
index f149f9c14776575f6272c1955fdd7d4654a5a13a..95dcd78e5f8a09c9d1c2349888568a9d181f7141 100644 (file)
   var testValue = "90010000px";
   box.style.left = testValue;
 
-  var leftValue = window.getComputedStyle(box).left;
+  var leftValue = window.getComputedStyle(box, null).left;
 
   box.style.left = "0px";
   box.style.left = leftValue;
-  var newLeftValue = window.getComputedStyle(box).left;
+  var newLeftValue = window.getComputedStyle(box, null).left;
 
   var results = document.getElementById('results');
   var result;
index 795a2c562b1c4db64018a8db79788e02f3995419..f65ad1fd802701c04adbbdf7162cb7f555ca1af4 100644 (file)
@@ -1,17 +1,3 @@
 This test verifies that reading a floating-point opacity from CSS attributes gets back a properly-formatted float. Improperly handling locales that cause decimals to be written as commas might break it.
 
 PASS
-PASS
-PASS
-PASS
-PASS
-PASS
-PASS
-PASS
-PASS
-PASS
-PASS
-PASS
-PASS
-PASS
-
index 8405aeb810de7d12098acf1371651d6a68c9daef..0ef0456ea9536722082de6e156784217788dc06b 100644 (file)
@@ -15,34 +15,9 @@ it.</p>
 <a id='test' style='opacity:.9'></a>
 
 <script>
-var test = document.getElementById('test');
-
-function doTest(expected, input) {
-    test.style.opacity = input;
-    var opacity = test.style.opacity.toString();
-    if (opacity == expected)
-        document.write('PASS');
-    else
-        document.write('FAIL: expected ' + expected + ', got ' + opacity);
-    document.write('<br>');
-}
-
-var tests = [['0.9', '0.9'],
-             ['98765432198', '98765432198'],
-             ['9870000', '9870000'],
-             ['0.000321', '0.000321'],
-             ['50.02', '50.02'],
-             // Check we clip precision to six decimals.
-             ['1234.567891', '1234.567891234']];
-for (var i = 0; i < tests.length; i++)
-    doTest(tests[i][0], tests[i][1]);
-
-// Test a too-small value.
-doTest('0', '0.0000001');
-// Test that a beyond-precision digit will be rounded in.
-doTest('0.000001', '0.0000009');
-
-// Run the test list again with negatives.
-for (var i = 0; i < tests.length; i++)
-    doTest('-' + tests[i][0], '-' + tests[i][1]);
+var opacity = document.getElementById('test').style.opacity.toString();
+if (opacity == '0.9')
+    document.write('PASS');
+else
+    document.write('FAIL: ' + opacity);
 </script>
index 0f52716c9a5257bb5e62079c79c140ac05dd6b13..5583bd0eca4b9ad2f13e072ed3c72886fdcf5b01 100644 (file)
@@ -6,12 +6,12 @@ transform "scale(1.7)" expected "matrix(1.7, 0, 0, 1.7, 0, 0)" : PASS
 transform "skew(12deg)" expected "matrix(1, 0, 0.212557, 1, 0, 0)" : PASS
 transform "matrix(0.978148, 0.207912, -0.207912, 0.978148, 50, 20)" expected "matrix(0.978148, 0.207912, -0.207912, 0.978148, 50, 20)" : PASS
 transform "translate(50px, 20px) rotate(12deg)" expected "matrix(0.978148, 0.207912, -0.207912, 0.978148, 50, 20)" : PASS
-transform "rotate(12deg) translate(50px, 20px)" expected "matrix(0.978148, 0.207912, -0.207912, 0.978148, 44.749146, 29.958537)" : PASS
-transform "rotate(12deg) translate(50px, 20px) scale(1.4)" expected "matrix(1.369407, 0.291076, -0.291076, 1.369407, 44.749146, 29.958537)" : PASS
-transform "scale(1.4) rotate(12deg) translate(50px, 20px) " expected "matrix(1.369407, 0.291076, -0.291076, 1.369407, 62.648805, 41.941951)" : PASS
-transform "scale(1.4) translate(50px, 20px) rotate(12deg)" expected "matrix(1.369407, 0.291076, -0.291076, 1.369407, 70, 28)" : PASS
-transform "translate(50px, 20px) rotate(12deg) translateY(50px) scale(1.4)" expected "matrix(1.369407, 0.291076, -0.291076, 1.369407, 39.604415, 68.90738)" : PASS
-transform "rotate(12deg) translate(50px, 20px) scale(1.4) translate(-80px, 40px) skew(34deg) translate(10px, 10px) scale(0.7) skewY(-25deg) rotate(21deg) translateX(50px) scale(1.4, 1.8)" expected "matrix(1.205166, 0.148207, 0.258987, 2.040044, -13.384723, 85.309967)" : PASS
+transform "rotate(12deg) translate(50px, 20px)" expected "matrix(0.978148, 0.207912, -0.207912, 0.978148, 44.7491, 29.9585)" : PASS
+transform "rotate(12deg) translate(50px, 20px) scale(1.4)" expected "matrix(1.36941, 0.291076, -0.291076, 1.36941, 44.7491, 29.9585)" : PASS
+transform "scale(1.4) rotate(12deg) translate(50px, 20px) " expected "matrix(1.36941, 0.291076, -0.291076, 1.36941, 62.6488, 41.942)" : PASS
+transform "scale(1.4) translate(50px, 20px) rotate(12deg)" expected "matrix(1.36941, 0.291076, -0.291076, 1.36941, 70, 28)" : PASS
+transform "translate(50px, 20px) rotate(12deg) translateY(50px) scale(1.4)" expected "matrix(1.36941, 0.291076, -0.291076, 1.36941, 39.6044, 68.9074)" : PASS
+transform "rotate(12deg) translate(50px, 20px) scale(1.4) translate(-80px, 40px) skew(34deg) translate(10px, 10px) scale(0.7) skewY(-25deg) rotate(21deg) translateX(50px) scale(1.4, 1.8)" expected "matrix(1.20517, 0.148207, 0.258987, 2.04004, -13.3847, 85.31)" : PASS
 transform ",rotate(12deg) translate(50px, 20px)" expected "none" : PASS
 transform "rotate(12deg), translate(50px, 20px)" expected "none" : PASS
 transform "rotate(12deg) + translate(50px, 20px)" expected "none" : PASS
index 7aa6691bf3cd077c162342f87fe2964fb86fa8da..16003c304812ffca0b7650005bd251b10961b4a0 100644 (file)
       
       // two functions
       { 'transform' : 'translate(50px, 20px) rotate(12deg)',          'result' : 'matrix(0.978148, 0.207912, -0.207912, 0.978148, 50, 20)' },
-      { 'transform' : 'rotate(12deg) translate(50px, 20px)',          'result' : 'matrix(0.978148, 0.207912, -0.207912, 0.978148, 44.749146, 29.958537)' },
+      { 'transform' : 'rotate(12deg) translate(50px, 20px)',          'result' : 'matrix(0.978148, 0.207912, -0.207912, 0.978148, 44.7491, 29.9585)' },
 
       // three functions
-      { 'transform' : 'rotate(12deg) translate(50px, 20px) scale(1.4)',   'result' : 'matrix(1.369407, 0.291076, -0.291076, 1.369407, 44.749146, 29.958537)' },
-      { 'transform' : 'scale(1.4) rotate(12deg) translate(50px, 20px) ',  'result' : 'matrix(1.369407, 0.291076, -0.291076, 1.369407, 62.648805, 41.941951)' },
-      { 'transform' : 'scale(1.4) translate(50px, 20px) rotate(12deg)',   'result' : 'matrix(1.369407, 0.291076, -0.291076, 1.369407, 70, 28)' },
-      { 'transform' : 'translate(50px, 20px) rotate(12deg) translateY(50px) scale(1.4)',   'result' : 'matrix(1.369407, 0.291076, -0.291076, 1.369407, 39.604415, 68.90738)' },
+      { 'transform' : 'rotate(12deg) translate(50px, 20px) scale(1.4)',   'result' : 'matrix(1.36941, 0.291076, -0.291076, 1.36941, 44.7491, 29.9585)' },
+      { 'transform' : 'scale(1.4) rotate(12deg) translate(50px, 20px) ',  'result' : 'matrix(1.36941, 0.291076, -0.291076, 1.36941, 62.6488, 41.942)' },
+      { 'transform' : 'scale(1.4) translate(50px, 20px) rotate(12deg)',   'result' : 'matrix(1.36941, 0.291076, -0.291076, 1.36941, 70, 28)' },
+      { 'transform' : 'translate(50px, 20px) rotate(12deg) translateY(50px) scale(1.4)',   'result' : 'matrix(1.36941, 0.291076, -0.291076, 1.36941, 39.6044, 68.9074)' },
 
       // lots of functions
       { 'transform' : 'rotate(12deg) translate(50px, 20px) scale(1.4) translate(-80px, 40px) skew(34deg) translate(10px, 10px) scale(0.7) skewY(-25deg) rotate(21deg) translateX(50px) scale(1.4, 1.8)', 
-        'result' : 'matrix(1.205166, 0.148207, 0.258987, 2.040044, -13.384723, 85.309967)' },
+        'result' : 'matrix(1.20517, 0.148207, 0.258987, 2.04004, -13.3847, 85.31)' },
         
       // invalid compound functions
       { 'transform' : ',rotate(12deg) translate(50px, 20px)', 'result' : 'none' }, // has comma
index 95a6d41f383c059c9571ae63b278f5cd8777d9dd..fd717fe01ce2e0c5e4e2028cbd3914967fc2837e 100644 (file)
@@ -1,3 +1,13 @@
+2009-12-13  Adele Peterson  <adele@apple.com>
+
+        Reviewed by Sam Weinig.
+
+        Reverting changes from http://trac.webkit.org/changeset/49585 to fix:
+        <rdar://problem/7382815> REGRESSION (4.0.4-TOT): Home photo slider is too narrow at http://www.ziprealty.com/
+        https://bugs.webkit.org/show_bug.cgi?id=32078
+
+        * css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::cssText):
+
 2009-12-08  Jeremy Moskovich  <jeremy@chromium.org>
 
         Reviewed by Eric Seidel.
index d2286bb4c7120667c01c17309a9d76174281a154..1f2c9ca28af041668b780621a0073101b517cb52 100644 (file)
@@ -34,8 +34,6 @@
 #include "Rect.h"
 #include "RenderStyle.h"
 #include <wtf/ASCIICType.h>
-#include <wtf/MathExtras.h>
-#include <wtf/StringExtras.h>
 #include <wtf/StdLibExtras.h>
 
 #if ENABLE(DASHBOARD_SUPPORT)
@@ -686,71 +684,6 @@ int CSSPrimitiveValue::getIdent()
     return m_value.ident;
 }
 
-static void appendCSSDouble(Vector<UChar>& vector, double value)
-{
-    // From the CSS specification section titled "Integers and real numbers",
-    // real numbers are only formatted as [sign] [digits] "." [digits].
-    // This differs from printf-style formatting in that exponents (e.g. 1.3e06)
-    // are not allowed.  Since NaN/inf are also not valid CSS values this
-    // function doesn't handle them.
-
-    // For compatibility with what was returned by older versions of
-    // WebKit, we target 6 digits of precision.
-    const int digitsAfterDecimalPoint = 6;
-    long long rounded = llround(fabs(value) * 1000000.0);
-    if (rounded == 0) {
-        vector.append('0');
-        return;
-    }
-
-    char buf[24];
-    int length = snprintf(buf, sizeof(buf), "%lld", rounded);
-    int decimalPoint = length - digitsAfterDecimalPoint;
-
-    // We are matching printf("%g")'s behavior and must trim trailing zeros,
-    // regardless of whether they're significant.
-    while (length > 0 && length > decimalPoint && buf[length - 1] == '0')
-        length--;
-
-    // Reserve an estimate of space for the number of digits we anticipate
-    // along with a minus sign/initial zero/decimal point.
-    vector.reserveCapacity(vector.size() + 3 + length);
-
-    if (value < 0)
-        vector.append('-');
-
-    if (decimalPoint <= 0) {
-        // Only digits after the decimal point.
-        vector.append('0');
-        vector.append('.');
-        for (int i = decimalPoint; i < 0; i++)
-            vector.append('0');
-        for (int i = 0; i < length; i++)
-            vector.append(buf[i]);
-    } else if (length <= decimalPoint) {
-        // Only digits before the decimal point.
-        for (int i = 0; i < length; i++)
-            vector.append(buf[i]);
-    } else {
-        // Digits before and after the decimal point.
-        for (int i = 0; i < decimalPoint; i++)
-            vector.append(buf[i]);
-        vector.append('.');
-        for (int i = decimalPoint; i < length; i++)
-            vector.append(buf[i]);
-    }
-}
-
-static String formatWithUnits(double value, const char* units)
-{
-    Vector<UChar> result;
-    appendCSSDouble(result, value);
-    result.reserveCapacity(result.size() + strlen(units));
-    for (int i = 0; units[i]; i++)
-        result.append(units[i]);
-    return String::adopt(result);
-}
-
 String CSSPrimitiveValue::cssText() const
 {
     // FIXME: return the original value instead of a generated one (e.g. color
@@ -762,61 +695,61 @@ String CSSPrimitiveValue::cssText() const
             break;
         case CSS_NUMBER:
         case CSS_PARSER_INTEGER:
-            text = formatWithUnits(m_value.num, "");
+            text = String::number(m_value.num);
             break;
         case CSS_PERCENTAGE:
-            text = formatWithUnits(m_value.num, "%");
+            text = String::format("%.6lg%%", m_value.num);
             break;
         case CSS_EMS:
-            text = formatWithUnits(m_value.num, "em");
+            text = String::format("%.6lgem", m_value.num);
             break;
         case CSS_EXS:
-            text = formatWithUnits(m_value.num, "ex");
+            text = String::format("%.6lgex", m_value.num);
             break;
         case CSS_REMS:
-            text = formatWithUnits(m_value.num, "rem");
+            text = String::format("%.6lgrem", m_value.num);
             break;
         case CSS_PX:
-            text = formatWithUnits(m_value.num, "px");
+            text = String::format("%.6lgpx", m_value.num);
             break;
         case CSS_CM:
-            text = formatWithUnits(m_value.num, "cm");
+            text = String::format("%.6lgcm", m_value.num);
             break;
         case CSS_MM:
-            text = formatWithUnits(m_value.num, "mm");
+            text = String::format("%.6lgmm", m_value.num);
             break;
         case CSS_IN:
-            text = formatWithUnits(m_value.num, "in");
+            text = String::format("%.6lgin", m_value.num);
             break;
         case CSS_PT:
-            text = formatWithUnits(m_value.num, "pt");
+            text = String::format("%.6lgpt", m_value.num);
             break;
         case CSS_PC:
-            text = formatWithUnits(m_value.num, "pc");
+            text = String::format("%.6lgpc", m_value.num);
             break;
         case CSS_DEG:
-            text = formatWithUnits(m_value.num, "deg");
+            text = String::format("%.6lgdeg", m_value.num);
             break;
         case CSS_RAD:
-            text = formatWithUnits(m_value.num, "rad");
+            text = String::format("%.6lgrad", m_value.num);
             break;
         case CSS_GRAD:
-            text = formatWithUnits(m_value.num, "grad");
+            text = String::format("%.6lggrad", m_value.num);
             break;
         case CSS_MS:
-            text = formatWithUnits(m_value.num, "ms");
+            text = String::format("%.6lgms", m_value.num);
             break;
         case CSS_S:
-            text = formatWithUnits(m_value.num, "s");
+            text = String::format("%.6lgs", m_value.num);
             break;
         case CSS_HZ:
-            text = formatWithUnits(m_value.num, "hz");
+            text = String::format("%.6lghz", m_value.num);
             break;
         case CSS_KHZ:
-            text = formatWithUnits(m_value.num, "khz");
+            text = String::format("%.6lgkhz", m_value.num);
             break;
         case CSS_TURN:
-            text = formatWithUnits(m_value.num, "turn");
+            text = String::format("%.6lgturn", m_value.num);
             break;
         case CSS_DIMENSION:
             // FIXME