Reviewed by Darin.
authorbdakin <bdakin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 6 Apr 2006 18:45:52 +0000 (18:45 +0000)
committerbdakin <bdakin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 6 Apr 2006 18:45:52 +0000 (18:45 +0000)
        Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=8203
        REGRESSION: "Invite a friend" text field in GMail page spills out
        of table

        RenderReplaced::calcMinMaxWidth() sets m_minWidth to 0 when the
        width is a percent, so this patch copies that behavior into
        RenderTextField::calcMinMaxWidth().

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

13 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/forms/input-appearance-minWidth-expected.checksum
LayoutTests/fast/forms/input-appearance-minWidth-expected.png
LayoutTests/fast/forms/input-appearance-minWidth-expected.txt
LayoutTests/fast/forms/minWidthPercent-expected.checksum [new file with mode: 0644]
LayoutTests/fast/forms/minWidthPercent-expected.png [new file with mode: 0644]
LayoutTests/fast/forms/minWidthPercent-expected.txt [new file with mode: 0644]
LayoutTests/fast/forms/minWidthPercent.html [new file with mode: 0644]
LayoutTests/fast/replaced/width100percent-expected.checksum
LayoutTests/fast/replaced/width100percent-expected.png
LayoutTests/fast/replaced/width100percent-expected.txt
WebCore/ChangeLog
WebCore/rendering/RenderTextField.cpp

index e8cbaff6a88be8d2a27d925a890eab76f96be6c1..93dd891b6b5044f0cb359707662023e35a9a0c6a 100644 (file)
@@ -1,3 +1,21 @@
+2006-04-06  Beth Dakin  <bdakin@apple.com>
+
+        Reviewed by Darin.
+
+        Layout test for http://bugzilla.opendarwin.org/show_bug.cgi?id=8203
+        This fix also changes the layout of two existing tests.
+
+        * fast/forms/input-appearance-minWidth-expected.checksum:
+        * fast/forms/input-appearance-minWidth-expected.png:
+        * fast/forms/input-appearance-minWidth-expected.txt:
+        * fast/forms/minWidthPercent-expected.checksum: Added.
+        * fast/forms/minWidthPercent-expected.png: Added.
+        * fast/forms/minWidthPercent-expected.txt: Added.
+        * fast/forms/minWidthPercent.html: Added.
+        * fast/replaced/width100percent-expected.checksum:
+        * fast/replaced/width100percent-expected.png:
+        * fast/replaced/width100percent-expected.txt:
+
 2006-04-05  Darin Adler  <darin@apple.com>
 
         - regenerated test results
index af881434a1680418d31ba045ba37eea5237967e8..0bcb32035f1892f6820d31b00f441f633d2d6f1b 100644 (file)
@@ -1 +1 @@
-8cbf024d1dc3adb471d615f86f6b3829
\ No newline at end of file
+77ec8abe25659c5925edf5434d64c079
\ No newline at end of file
index 608fc27dc06d6678ad1fa08d4ad4d444ef6a3bc5..b0f1b0fb30f6234c9c4bb94b01cc43046ec5d4d2 100644 (file)
Binary files a/LayoutTests/fast/forms/input-appearance-minWidth-expected.png and b/LayoutTests/fast/forms/input-appearance-minWidth-expected.png differ
index 770e5a2b8a536aa68d0d7bbc76933974e026fc53..909767d868c675d4178bef60afa22868c83486aa 100644 (file)
@@ -1,59 +1,59 @@
-layer at (0,0) size 1099x600
-  RenderCanvas at (0,0) size 785x585
-layer at (0,0) size 1099x600
-  RenderBlock {HTML} at (0,0) size 785x600
-    RenderBody {BODY} at (8,8) size 769x584
-      RenderBlock (anonymous) at (0,0) size 769x18
+layer at (0,0) size 800x600
+  RenderCanvas at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderBody {BODY} at (8,8) size 784x584
+      RenderBlock (anonymous) at (0,0) size 784x18
         RenderText {TEXT} at (0,0) size 326x18
           text run at (0,0) width 326: "This tests that text fields have the correct minWidth."
-      RenderTable {TABLE} at (0,18) size 769x27
+      RenderTable {TABLE} at (0,18) size 784x27
         RenderTableSection {TBODY} at (0,0) size 0x27
           RenderTableRow {TR} at (0,0) size 0x0
             RenderTableCell {TD} at (1,1) size 150x25 [r=0 c=0 rs=1 cs=1]
               RenderTextField {INPUT} at (1,3) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-            RenderTableCell {TD} at (152,1) size 150x25 [r=0 c=1 rs=1 cs=1]
-              RenderTextField {INPUT} at (1,3) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-            RenderTableCell {TD} at (303,1) size 150x25 [r=0 c=2 rs=1 cs=1]
-              RenderTextField {INPUT} at (1,3) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-            RenderTableCell {TD} at (454,3) size 314x20 [r=0 c=3 rs=1 cs=1]
+            RenderTableCell {TD} at (152,1) size 10x25 [r=0 c=1 rs=1 cs=1]
+              RenderTextField {INPUT} at (1,3) size 8x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+            RenderTableCell {TD} at (163,1) size 10x25 [r=0 c=2 rs=1 cs=1]
+              RenderTextField {INPUT} at (1,3) size 8x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+            RenderTableCell {TD} at (174,3) size 609x20 [r=0 c=3 rs=1 cs=1]
               RenderText {TEXT} at (1,1) size 4x18
                 text run at (1,1) width 4: " "
-      RenderTable {TABLE} at (0,45) size 1091x27
+      RenderTable {TABLE} at (0,45) size 784x27
         RenderTableSection {TBODY} at (0,0) size 0x27
           RenderTableRow {TR} at (0,0) size 0x0
             RenderTableCell {TD} at (1,1) size 360x25 [r=0 c=0 rs=1 cs=1]
               RenderTextField {INPUT} at (1,3) size 358x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-            RenderTableCell {TD} at (362,1) size 360x25 [r=0 c=1 rs=1 cs=1]
-              RenderTextField {INPUT} at (1,3) size 358x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-            RenderTableCell {TD} at (723,1) size 360x25 [r=0 c=2 rs=1 cs=1]
-              RenderTextField {INPUT} at (1,3) size 358x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-            RenderTableCell {TD} at (1084,3) size 6x20 [r=0 c=3 rs=1 cs=1]
+            RenderTableCell {TD} at (362,1) size 10x25 [r=0 c=1 rs=1 cs=1]
+              RenderTextField {INPUT} at (1,3) size 8x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+            RenderTableCell {TD} at (373,1) size 10x25 [r=0 c=2 rs=1 cs=1]
+              RenderTextField {INPUT} at (1,3) size 8x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+            RenderTableCell {TD} at (384,3) size 399x20 [r=0 c=3 rs=1 cs=1]
               RenderText {TEXT} at (1,1) size 4x18
                 text run at (1,1) width 4: " "
-      RenderBlock (anonymous) at (0,72) size 769x36
+      RenderBlock (anonymous) at (0,72) size 784x36
         RenderBR {BR} at (0,0) size 0x18
         RenderBR {BR} at (0,18) size 0x18
 layer at (13,33) size 142x13
   RenderBlock {DIV} at (3,3) size 142x13
     RenderText {TEXT} at (1,0) size 48x13
       text run at (1,0) width 48: "New Mail"
-layer at (164,33) size 142x13
-  RenderBlock {DIV} at (3,3) size 142x13
+layer at (164,33) size 2x13 scrollWidth 31
+  RenderBlock {DIV} at (3,3) size 2x13
     RenderText {TEXT} at (1,0) size 29x13
       text run at (1,0) width 29: "Reply"
-layer at (315,33) size 142x13
-  RenderBlock {DIV} at (3,3) size 142x13
+layer at (175,33) size 2x13 scrollWidth 48
+  RenderBlock {DIV} at (3,3) size 2x13
     RenderText {TEXT} at (1,0) size 46x13
       text run at (1,0) width 46: "Reply All"
 layer at (13,60) size 352x13
   RenderBlock {DIV} at (3,3) size 352x13
     RenderText {TEXT} at (1,0) size 48x13
       text run at (1,0) width 48: "New Mail"
-layer at (374,60) size 352x13
-  RenderBlock {DIV} at (3,3) size 352x13
+layer at (374,60) size 2x13 scrollWidth 31
+  RenderBlock {DIV} at (3,3) size 2x13
     RenderText {TEXT} at (1,0) size 29x13
       text run at (1,0) width 29: "Reply"
-layer at (735,60) size 352x13
-  RenderBlock {DIV} at (3,3) size 352x13
+layer at (385,60) size 2x13 scrollWidth 48
+  RenderBlock {DIV} at (3,3) size 2x13
     RenderText {TEXT} at (1,0) size 46x13
       text run at (1,0) width 46: "Reply All"
diff --git a/LayoutTests/fast/forms/minWidthPercent-expected.checksum b/LayoutTests/fast/forms/minWidthPercent-expected.checksum
new file mode 100644 (file)
index 0000000..a2664be
--- /dev/null
@@ -0,0 +1 @@
+16d8f09dffc4cdb97e77acdc044b10ab
\ No newline at end of file
diff --git a/LayoutTests/fast/forms/minWidthPercent-expected.png b/LayoutTests/fast/forms/minWidthPercent-expected.png
new file mode 100644 (file)
index 0000000..be6e910
Binary files /dev/null and b/LayoutTests/fast/forms/minWidthPercent-expected.png differ
diff --git a/LayoutTests/fast/forms/minWidthPercent-expected.txt b/LayoutTests/fast/forms/minWidthPercent-expected.txt
new file mode 100644 (file)
index 0000000..1b38ebd
--- /dev/null
@@ -0,0 +1,16 @@
+layer at (0,0) size 800x600
+  RenderCanvas at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderBody {BODY} at (8,8) size 784x584
+      RenderBlock {DIV} at (0,0) size 127x29 [bgcolor=#C3D9FF]
+        RenderTable {TABLE} at (0,0) size 127x29
+          RenderTableSection {TBODY} at (0,0) size 0x29
+            RenderTableRow {TR} at (0,0) size 0x0
+              RenderTableCell {TD} at (2,2) size 123x25 [r=0 c=0 rs=1 cs=1]
+                RenderTextField {INPUT} at (1,3) size 121x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+                RenderText {TEXT} at (0,0) size 0x0
+layer at (14,16) size 115x13 scrollWidth 119
+  RenderBlock {DIV} at (3,3) size 115x13
+    RenderText {TEXT} at (1,0) size 117x13
+      text run at (1,0) width 117: "Should fit in blue box"
diff --git a/LayoutTests/fast/forms/minWidthPercent.html b/LayoutTests/fast/forms/minWidthPercent.html
new file mode 100644 (file)
index 0000000..b3bc3c6
--- /dev/null
@@ -0,0 +1,5 @@
+<div style="width: 16.6ex; background: rgb(195, 217, 255)">
+    <table><tbody><tr><td>
+        <input style="width: 100%;" value="Should fit in blue box">
+    </td></tr></tbody></table>
+</div>
\ No newline at end of file
index 6ee3085d1d372347604c74daddee4a9d6cb45274..afb0943fe514a46bf4d89a26320df0e7369c0f8f 100644 (file)
@@ -1 +1 @@
-9e75c024c4783c2b12e94c38a89df1cc
\ No newline at end of file
+d28223a53b7975af96352517bfd91837
\ No newline at end of file
index 87b4766c4e6c7baec6d157ce22cdcec654917c5a..9a204ceea8db0c0d1c39fc55c9c0d6f83f495775 100644 (file)
Binary files a/LayoutTests/fast/replaced/width100percent-expected.png and b/LayoutTests/fast/replaced/width100percent-expected.png differ
index 20707be2c85b1de56e8b0c758525853903550ccd..2ab3dcaa81bfa540310249ad9f1603419ace79d3 100644 (file)
@@ -1,6 +1,6 @@
-layer at (0,0) size 2149x980
-  RenderCanvas at (0,0) size 785x585
-layer at (0,0) size 2149x980
+layer at (0,0) size 785x980
+  RenderCanvas at (0,0) size 785x600
+layer at (0,0) size 785x980
   RenderBlock {HTML} at (0,0) size 785x980
     RenderBody {BODY} at (8,8) size 769x964
       RenderBlock (anonymous) at (0,0) size 769x18
@@ -93,26 +93,26 @@ layer at (0,0) size 2149x980
           RenderTableRow {TR} at (0,0) size 0x0
             RenderTableCell {TD} at (1,1) size 150x25 [r=0 c=0 rs=1 cs=1]
               RenderTextField {INPUT} at (1,3) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-            RenderTableCell {TD} at (152,1) size 150x25 [r=0 c=1 rs=1 cs=1]
-              RenderTextField {INPUT} at (1,3) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-            RenderTableCell {TD} at (303,1) size 150x25 [r=0 c=2 rs=1 cs=1]
-              RenderTextField {INPUT} at (1,3) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-            RenderTableCell {TD} at (454,3) size 314x20 [r=0 c=3 rs=1 cs=1]
+            RenderTableCell {TD} at (152,1) size 10x25 [r=0 c=1 rs=1 cs=1]
+              RenderTextField {INPUT} at (1,3) size 8x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+            RenderTableCell {TD} at (163,1) size 10x25 [r=0 c=2 rs=1 cs=1]
+              RenderTextField {INPUT} at (1,3) size 8x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+            RenderTableCell {TD} at (174,3) size 594x20 [r=0 c=3 rs=1 cs=1]
               RenderText {TEXT} at (1,1) size 4x18
                 text run at (1,1) width 4: " "
       RenderBlock (anonymous) at (0,322) size 769x36
         RenderBR {BR} at (0,0) size 0x18
         RenderBR {BR} at (0,18) size 0x18
-      RenderTable {TABLE} at (0,358) size 2141x27
+      RenderTable {TABLE} at (0,358) size 769x27
         RenderTableSection {TBODY} at (0,0) size 0x27
           RenderTableRow {TR} at (0,0) size 0x0
             RenderTableCell {TD} at (1,1) size 710x25 [r=0 c=0 rs=1 cs=1]
               RenderTextField {INPUT} at (1,3) size 708x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-            RenderTableCell {TD} at (712,1) size 710x25 [r=0 c=1 rs=1 cs=1]
-              RenderTextField {INPUT} at (1,3) size 708x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-            RenderTableCell {TD} at (1423,1) size 710x25 [r=0 c=2 rs=1 cs=1]
-              RenderTextField {INPUT} at (1,3) size 708x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-            RenderTableCell {TD} at (2134,3) size 6x20 [r=0 c=3 rs=1 cs=1]
+            RenderTableCell {TD} at (712,1) size 10x25 [r=0 c=1 rs=1 cs=1]
+              RenderTextField {INPUT} at (1,3) size 8x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+            RenderTableCell {TD} at (723,1) size 10x25 [r=0 c=2 rs=1 cs=1]
+              RenderTextField {INPUT} at (1,3) size 8x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+            RenderTableCell {TD} at (734,3) size 34x20 [r=0 c=3 rs=1 cs=1]
               RenderText {TEXT} at (1,1) size 4x18
                 text run at (1,1) width 4: " "
       RenderBlock (anonymous) at (0,385) size 769x36
@@ -194,23 +194,23 @@ layer at (13,310) size 142x13
   RenderBlock {DIV} at (3,3) size 142x13
     RenderText {TEXT} at (1,0) size 48x13
       text run at (1,0) width 48: "New Mail"
-layer at (164,310) size 142x13
-  RenderBlock {DIV} at (3,3) size 142x13
+layer at (164,310) size 2x13 scrollWidth 31
+  RenderBlock {DIV} at (3,3) size 2x13
     RenderText {TEXT} at (1,0) size 29x13
       text run at (1,0) width 29: "Reply"
-layer at (315,310) size 142x13
-  RenderBlock {DIV} at (3,3) size 142x13
+layer at (175,310) size 2x13 scrollWidth 48
+  RenderBlock {DIV} at (3,3) size 2x13
     RenderText {TEXT} at (1,0) size 46x13
       text run at (1,0) width 46: "Reply All"
 layer at (13,373) size 702x13
   RenderBlock {DIV} at (3,3) size 702x13
     RenderText {TEXT} at (1,0) size 48x13
       text run at (1,0) width 48: "New Mail"
-layer at (724,373) size 702x13
-  RenderBlock {DIV} at (3,3) size 702x13
+layer at (724,373) size 2x13 scrollWidth 31
+  RenderBlock {DIV} at (3,3) size 2x13
     RenderText {TEXT} at (1,0) size 29x13
       text run at (1,0) width 29: "Reply"
-layer at (1435,373) size 702x13
-  RenderBlock {DIV} at (3,3) size 702x13
+layer at (735,373) size 2x13 scrollWidth 48
+  RenderBlock {DIV} at (3,3) size 2x13
     RenderText {TEXT} at (1,0) size 46x13
       text run at (1,0) width 46: "Reply All"
index 74e724cc6a47f7ead43ccbae20bd83a6674a2253..272f365800445cd5f0c7686b49d27d64187ddb42 100644 (file)
@@ -1,3 +1,18 @@
+2006-04-06  Beth Dakin  <bdakin@apple.com>
+
+        Reviewed by Darin.
+
+        Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=8203 
+        REGRESSION: "Invite a friend" text field in GMail page spills out 
+        of table
+
+        RenderReplaced::calcMinMaxWidth() sets m_minWidth to 0 when the 
+        width is a percent, so this patch copies that behavior into 
+        RenderTextField::calcMinMaxWidth().
+
+        * rendering/RenderTextField.cpp:
+        (WebCore::RenderTextField::calcMinMaxWidth):
+
 2006-04-06  Darin Adler  <darin@apple.com>
 
         - try to fix Windows build
index aee62ce85368839dfb0ef25ea434402ae2ca456d..409bf55a8ec64a6e8f0fabe2241f1bb79e406e37 100644 (file)
@@ -236,7 +236,9 @@ void RenderTextField::calcMinMaxWidth()
     if (style()->minWidth().isFixed() && style()->minWidth().value() > 0) {
         m_maxWidth = max(m_maxWidth, calcContentBoxWidth(style()->minWidth().value()));
         m_minWidth = max(m_minWidth, calcContentBoxWidth(style()->minWidth().value()));
-    } else
+    } else if (style()->width().isPercent() || (style()->width().isAuto() && style()->height().isPercent()))
+        m_minWidth = 0;
+    else
         m_minWidth = m_maxWidth;
     
     if (style()->maxWidth().isFixed() && style()->maxWidth().value() != undefinedLength) {