WebCore:
authorbdakin <bdakin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 2 Feb 2007 00:52:29 +0000 (00:52 +0000)
committerbdakin <bdakin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 2 Feb 2007 00:52:29 +0000 (00:52 +0000)
        Reviewed by Hyatt.

        Fix for http://bugs.webkit.org/show_bug.cgi?id=10517 REGRESSION
        (r12065-r12082): Navigation graphic wraps to the next line on
        duart.com and <rdar://problem/4960505> REGRESSION: The Awesome
        Windows Vista page has a layout error in the header table (10517)

        The problem is that we never supported a quirk that other browsers
        support where, under very specific circumstances, a table cell will
        grow to fit an image inside of it. This is only a regression
        because a bug was fixed were we were 1 pixel off in the calculation
        of overflow in some cases.

        * rendering/RenderBlock.cpp:
        (WebCore::shouldGrowTableCellForImage):
        (WebCore::RenderBlock::calcInlineMinMaxWidth):

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

30 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/table/growCellForImageQuirk-expected.checksum [new file with mode: 0644]
LayoutTests/fast/table/growCellForImageQuirk-expected.png [new file with mode: 0644]
LayoutTests/fast/table/growCellForImageQuirk-expected.txt [new file with mode: 0644]
LayoutTests/fast/table/growCellForImageQuirk.html [new file with mode: 0644]
LayoutTests/tables/mozilla/bugs/bug101674-expected.checksum [new file with mode: 0644]
LayoutTests/tables/mozilla/bugs/bug101674-expected.png [new file with mode: 0644]
LayoutTests/tables/mozilla/bugs/bug101674-expected.txt [new file with mode: 0644]
LayoutTests/tables/mozilla/bugs/bug101674.html [moved from LayoutTests/tables/mozilla_expected_failures/bugs/bug101674.html with 98% similarity]
LayoutTests/tables/mozilla/bugs/bug14323-expected.checksum [new file with mode: 0644]
LayoutTests/tables/mozilla/bugs/bug14323-expected.png [new file with mode: 0644]
LayoutTests/tables/mozilla/bugs/bug14323-expected.txt [moved from LayoutTests/tables/mozilla_expected_failures/bugs/bug14323-expected.txt with 51% similarity]
LayoutTests/tables/mozilla/bugs/bug14323.html [moved from LayoutTests/tables/mozilla_expected_failures/bugs/bug14323.html with 100% similarity]
LayoutTests/tables/mozilla/bugs/bug26553-expected.checksum
LayoutTests/tables/mozilla/bugs/bug26553-expected.png
LayoutTests/tables/mozilla/bugs/bug26553-expected.txt
LayoutTests/tables/mozilla/bugs/bug2973-expected.checksum [moved from LayoutTests/tables/mozilla_expected_failures/bugs/bug2973-expected.checksum with 100% similarity]
LayoutTests/tables/mozilla/bugs/bug2973-expected.png [moved from LayoutTests/tables/mozilla_expected_failures/bugs/bug2973-expected.png with 100% similarity]
LayoutTests/tables/mozilla/bugs/bug2973-expected.txt [moved from LayoutTests/tables/mozilla_expected_failures/bugs/bug2973-expected.txt with 100% similarity]
LayoutTests/tables/mozilla/bugs/bug2973.html [moved from LayoutTests/tables/mozilla_expected_failures/bugs/bug2973.html with 100% similarity]
LayoutTests/tables/mozilla/bugs/bug4427-expected.checksum
LayoutTests/tables/mozilla/bugs/bug4427-expected.png
LayoutTests/tables/mozilla/bugs/bug4427-expected.txt
LayoutTests/tables/mozilla_expected_failures/bugs/bug101674-expected.checksum [deleted file]
LayoutTests/tables/mozilla_expected_failures/bugs/bug101674-expected.png [deleted file]
LayoutTests/tables/mozilla_expected_failures/bugs/bug101674-expected.txt [deleted file]
LayoutTests/tables/mozilla_expected_failures/bugs/bug14323-expected.checksum [deleted file]
LayoutTests/tables/mozilla_expected_failures/bugs/bug14323-expected.png [deleted file]
WebCore/ChangeLog
WebCore/rendering/RenderBlock.cpp

index ea50a7b..09b06a8 100644 (file)
@@ -1,3 +1,54 @@
+2007-02-01  Beth Dakin  <bdakin@apple.com>
+
+        Reviewed by Hyatt.
+
+        Tests for http://bugs.webkit.org/show_bug.cgi?id=10517 REGRESSION 
+        (r12065-r12082): Navigation graphic wraps to the next line on 
+        duart.com and <rdar://problem/4960505> REGRESSION: The Awesome 
+        Windows Vista page has a layout error in the header table (10517)
+
+        New Test:
+        * fast/table/growCellForImageQuirk-expected.checksum: Added.
+        * fast/table/growCellForImageQuirk-expected.png: Added.
+        * fast/table/growCellForImageQuirk-expected.txt: Added.
+        * fast/table/growCellForImageQuirk.html: Added.
+
+        These are new results for tests that used to be expected failures:
+        * tables/mozilla/bugs/bug101674-expected.checksum: Added.
+        * tables/mozilla/bugs/bug101674-expected.png: Added.
+        * tables/mozilla/bugs/bug101674-expected.txt: Added.
+        * tables/mozilla/bugs/bug14323-expected.checksum: Added.
+        * tables/mozilla/bugs/bug14323-expected.png: Added.
+        * tables/mozilla/bugs/bug14323-expected.txt: Added.
+        
+        New results that match WinIE:
+        * tables/mozilla/bugs/bug26553-expected.checksum:
+        * tables/mozilla/bugs/bug26553-expected.png:
+        * tables/mozilla/bugs/bug26553-expected.txt:
+
+        New results that appeared correct before, but now are actually 
+        correct:
+        * tables/mozilla/bugs/bug2973-expected.checksum: Added.
+        * tables/mozilla/bugs/bug2973-expected.png: Added.
+        * tables/mozilla/bugs/bug2973-expected.txt: Added.
+        * tables/mozilla/bugs/bug4427-expected.checksum:
+        * tables/mozilla/bugs/bug4427-expected.png:
+        * tables/mozilla/bugs/bug4427-expected.txt:
+
+        The failures that have been moved to successes:
+        * tables/mozilla_expected_failures/bugs/bug101674-expected.checksum: Removed.
+        * tables/mozilla_expected_failures/bugs/bug101674-expected.png: Removed.
+        * tables/mozilla_expected_failures/bugs/bug101674-expected.txt: Removed.
+        * tables/mozilla_expected_failures/bugs/bug101674.html: Removed.
+        * tables/mozilla_expected_failures/bugs/bug14323-expected.checksum: Removed.
+        * tables/mozilla_expected_failures/bugs/bug14323-expected.png: Removed.
+        * tables/mozilla_expected_failures/bugs/bug14323-expected.txt: Removed.
+        * tables/mozilla_expected_failures/bugs/bug14323.html: Removed.
+        * tables/mozilla_expected_failures/bugs/bug2973-expected.checksum: Removed.
+        * tables/mozilla_expected_failures/bugs/bug2973-expected.png: Removed.
+        * tables/mozilla_expected_failures/bugs/bug2973-expected.txt: Removed.
+        * tables/mozilla_expected_failures/bugs/bug2973.html: Removed.
+
 2007-02-01  Darin Adler  <darin@apple.com>
 
         * fast/encoding/pseudo-tags-in-attributes-expected.txt: Change test result to reflect failure
diff --git a/LayoutTests/fast/table/growCellForImageQuirk-expected.checksum b/LayoutTests/fast/table/growCellForImageQuirk-expected.checksum
new file mode 100644 (file)
index 0000000..280633c
--- /dev/null
@@ -0,0 +1 @@
+5a3e704de17f2d971d3278cecd2c3a14
\ No newline at end of file
diff --git a/LayoutTests/fast/table/growCellForImageQuirk-expected.png b/LayoutTests/fast/table/growCellForImageQuirk-expected.png
new file mode 100644 (file)
index 0000000..71426ff
Binary files /dev/null and b/LayoutTests/fast/table/growCellForImageQuirk-expected.png differ
diff --git a/LayoutTests/fast/table/growCellForImageQuirk-expected.txt b/LayoutTests/fast/table/growCellForImageQuirk-expected.txt
new file mode 100644 (file)
index 0000000..d8466d0
--- /dev/null
@@ -0,0 +1,12 @@
+layer at (0,0) size 800x600
+  RenderView 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
+      RenderTable {TABLE} at (0,0) size 156x56 [bgcolor=#C0C0C0]
+        RenderTableSection {TBODY} at (0,0) size 156x56
+          RenderTableRow {TR} at (0,2) size 156x52
+            RenderTableCell {TD} at (2,2) size 152x52 [r=0 c=0 rs=1 cs=1]
+              RenderImage {IMG} at (1,1) size 75x50 [bgcolor=#ADD8E6]
+              RenderImage {IMG} at (76,1) size 75x50 [bgcolor=#ADD8E6]
+              RenderText {#text} at (0,0) size 0x0
diff --git a/LayoutTests/fast/table/growCellForImageQuirk.html b/LayoutTests/fast/table/growCellForImageQuirk.html
new file mode 100644 (file)
index 0000000..31f4bc2
--- /dev/null
@@ -0,0 +1,10 @@
+<style>
+    img { background-color: lightblue; width: 75px; height: 50px; }
+</style>
+<TABLE style="width: 155px; background: silver;">
+    <TR> 
+        <TD>
+            <IMG><IMG>
+        </TD>
+    </TR>
+</TABLE>
diff --git a/LayoutTests/tables/mozilla/bugs/bug101674-expected.checksum b/LayoutTests/tables/mozilla/bugs/bug101674-expected.checksum
new file mode 100644 (file)
index 0000000..7bc3e30
--- /dev/null
@@ -0,0 +1 @@
+98da78b99827bd2832276dbc3747b204
\ No newline at end of file
diff --git a/LayoutTests/tables/mozilla/bugs/bug101674-expected.png b/LayoutTests/tables/mozilla/bugs/bug101674-expected.png
new file mode 100644 (file)
index 0000000..fe5bfcb
Binary files /dev/null and b/LayoutTests/tables/mozilla/bugs/bug101674-expected.png differ
diff --git a/LayoutTests/tables/mozilla/bugs/bug101674-expected.txt b/LayoutTests/tables/mozilla/bugs/bug101674-expected.txt
new file mode 100644 (file)
index 0000000..038450b
--- /dev/null
@@ -0,0 +1,115 @@
+layer at (0,0) size 785x2010
+  RenderView at (0,0) size 785x600
+layer at (0,0) size 785x2010
+  RenderBlock {HTML} at (0,0) size 785x2010
+    RenderBody {BODY} at (8,8) size 769x1994
+      RenderTable {TABLE} at (0,0) size 769x74 [border: (1px solid #000000)]
+        RenderTableSection {TBODY} at (1,1) size 767x72
+          RenderTableRow {TR} at (0,2) size 767x68
+            RenderTableCell {TD} at (2,2) size 444x68 [border: (1px solid #000000)] [r=0 c=0 rs=1 cs=1]
+              RenderImage {IMG} at (2,2) size 88x64
+              RenderImage {IMG} at (90,2) size 88x64
+              RenderImage {IMG} at (178,2) size 88x64
+              RenderImage {IMG} at (266,2) size 88x64
+              RenderImage {IMG} at (354,2) size 88x64
+            RenderTableCell {TD} at (448,25) size 317x22 [border: (1px solid #000000)] [r=0 c=1 rs=1 cs=1]
+              RenderText {#text} at (2,2) size 157x18
+                text run at (2,2) width 157: "Nothing between images"
+      RenderTable {TABLE} at (0,74) size 769x330 [border: (1px solid #000000)]
+        RenderTableSection {TBODY} at (1,1) size 767x328
+          RenderTableRow {TR} at (0,2) size 767x324
+            RenderTableCell {TD} at (2,2) size 92x324 [border: (1px solid #000000)] [r=0 c=0 rs=1 cs=1]
+              RenderImage {IMG} at (2,2) size 88x64
+              RenderText {#text} at (0,0) size 0x0
+              RenderImage {IMG} at (2,66) size 88x64
+              RenderText {#text} at (0,0) size 0x0
+              RenderImage {IMG} at (2,130) size 88x64
+              RenderText {#text} at (0,0) size 0x0
+              RenderImage {IMG} at (2,194) size 88x64
+              RenderText {#text} at (0,0) size 0x0
+              RenderImage {IMG} at (2,258) size 88x64
+            RenderTableCell {TD} at (96,153) size 669x22 [border: (1px solid #000000)] [r=0 c=1 rs=1 cs=1]
+              RenderText {#text} at (2,2) size 149x18
+                text run at (2,2) width 149: "Spaces between images"
+      RenderTable {TABLE} at (0,404) size 769x330 [border: (1px solid #000000)]
+        RenderTableSection {TBODY} at (1,1) size 767x328
+          RenderTableRow {TR} at (0,2) size 767x324
+            RenderTableCell {TD} at (2,2) size 92x324 [border: (1px solid #000000)] [r=0 c=0 rs=1 cs=1]
+              RenderImage {IMG} at (2,2) size 88x64
+              RenderText {#text} at (0,0) size 0x0
+              RenderImage {IMG} at (2,66) size 88x64
+              RenderText {#text} at (0,0) size 0x0
+              RenderImage {IMG} at (2,130) size 88x64
+              RenderText {#text} at (0,0) size 0x0
+              RenderImage {IMG} at (2,194) size 88x64
+              RenderText {#text} at (0,0) size 0x0
+              RenderImage {IMG} at (2,258) size 88x64
+            RenderTableCell {TD} at (96,153) size 669x22 [border: (1px solid #000000)] [r=0 c=1 rs=1 cs=1]
+              RenderText {#text} at (2,2) size 165x18
+                text run at (2,2) width 165: "Newlines between images"
+      RenderTable {TABLE} at (0,734) size 769x420 [border: (1px solid #000000)]
+        RenderTableSection {TBODY} at (1,1) size 767x418
+          RenderTableRow {TR} at (0,2) size 767x414
+            RenderTableCell {TD} at (2,2) size 92x414 [border: (1px solid #000000)] [r=0 c=0 rs=1 cs=1]
+              RenderText {#text} at (2,2) size 27x18
+                text run at (2,2) width 27: "One"
+              RenderImage {IMG} at (2,20) size 88x64
+              RenderText {#text} at (2,84) size 30x18
+                text run at (2,84) width 30: "Two"
+              RenderImage {IMG} at (2,102) size 88x64
+              RenderText {#text} at (2,166) size 37x18
+                text run at (2,166) width 37: "Three"
+              RenderImage {IMG} at (2,184) size 88x64
+              RenderText {#text} at (2,248) size 30x18
+                text run at (2,248) width 30: "Four"
+              RenderImage {IMG} at (2,266) size 88x64
+              RenderText {#text} at (2,330) size 28x18
+                text run at (2,330) width 28: "Five"
+              RenderImage {IMG} at (2,348) size 88x64
+            RenderTableCell {TD} at (96,198) size 669x22 [border: (1px solid #000000)] [r=0 c=1 rs=1 cs=1]
+              RenderText {#text} at (2,2) size 134x18
+                text run at (2,2) width 134: "Text between images"
+      RenderTable {TABLE} at (0,1154) size 769x420 [border: (1px solid #000000)]
+        RenderTableSection {TBODY} at (1,1) size 767x418
+          RenderTableRow {TR} at (0,2) size 767x414
+            RenderTableCell {TD} at (2,2) size 92x414 [border: (1px solid #000000)] [r=0 c=0 rs=1 cs=1]
+              RenderText {#text} at (2,2) size 31x18
+                text run at (2,2) width 31: "One "
+              RenderImage {IMG} at (2,20) size 88x64
+              RenderText {#text} at (2,84) size 34x18
+                text run at (2,84) width 34: "Two "
+              RenderImage {IMG} at (2,102) size 88x64
+              RenderText {#text} at (2,166) size 41x18
+                text run at (2,166) width 41: "Three "
+              RenderImage {IMG} at (2,184) size 88x64
+              RenderText {#text} at (2,248) size 34x18
+                text run at (2,248) width 34: "Four "
+              RenderImage {IMG} at (2,266) size 88x64
+              RenderText {#text} at (2,330) size 32x18
+                text run at (2,330) width 32: "Five "
+              RenderImage {IMG} at (2,348) size 88x64
+            RenderTableCell {TD} at (96,198) size 669x22 [border: (1px solid #000000)] [r=0 c=1 rs=1 cs=1]
+              RenderText {#text} at (2,2) size 211x18
+                text run at (2,2) width 211: "Text with spaces between images"
+      RenderTable {TABLE} at (0,1574) size 769x420 [border: (1px solid #000000)]
+        RenderTableSection {TBODY} at (1,1) size 767x418
+          RenderTableRow {TR} at (0,2) size 767x414
+            RenderTableCell {TD} at (2,2) size 92x414 [border: (1px solid #000000)] [r=0 c=0 rs=1 cs=1]
+              RenderText {#text} at (2,2) size 43x18
+                text run at (2,2) width 43: "One A"
+              RenderImage {IMG} at (2,20) size 88x64
+              RenderText {#text} at (2,84) size 42x18
+                text run at (2,84) width 42: "Two b"
+              RenderImage {IMG} at (2,102) size 88x64
+              RenderText {#text} at (2,166) size 48x18
+                text run at (2,166) width 48: "Three c"
+              RenderImage {IMG} at (2,184) size 88x64
+              RenderText {#text} at (2,248) size 42x18
+                text run at (2,248) width 42: "Four d"
+              RenderImage {IMG} at (2,266) size 88x64
+              RenderText {#text} at (2,330) size 39x18
+                text run at (2,330) width 39: "Five e"
+              RenderImage {IMG} at (2,348) size 88x64
+            RenderTableCell {TD} at (96,198) size 669x22 [border: (1px solid #000000)] [r=0 c=1 rs=1 cs=1]
+              RenderText {#text} at (2,2) size 301x18
+                text run at (2,2) width 301: "Text with spaces and more text between images"
@@ -3,7 +3,7 @@
 <html>
 <head>
        <title>Untitled</title>
-       <style>table,td { border: 1px solid black;</style>
+       <style>table,td { border: 1px solid black; }</style>
 </head>
 
 <body>
diff --git a/LayoutTests/tables/mozilla/bugs/bug14323-expected.checksum b/LayoutTests/tables/mozilla/bugs/bug14323-expected.checksum
new file mode 100644 (file)
index 0000000..1c5cc7a
--- /dev/null
@@ -0,0 +1 @@
+d3ac3d5ef40748d662ab66a3c69982d5
\ No newline at end of file
diff --git a/LayoutTests/tables/mozilla/bugs/bug14323-expected.png b/LayoutTests/tables/mozilla/bugs/bug14323-expected.png
new file mode 100644 (file)
index 0000000..ef5a5f1
Binary files /dev/null and b/LayoutTests/tables/mozilla/bugs/bug14323-expected.png differ
@@ -4,40 +4,40 @@ layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x584 [bgcolor=#FFFFFF]
       RenderBlock {HR} at (0,0) size 152x2 [border: (1px inset #000000)]
-      RenderTable {TABLE} at (0,10) size 163x94 [bgcolor=#F7D68C] [border: (1px outset #808080)]
-        RenderTableSection {TBODY} at (1,1) size 161x92
-          RenderTableRow {TR} at (0,0) size 161x92
-            RenderTableCell {TD} at (0,27) size 138x38 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
+      RenderTable {TABLE} at (0,10) size 184x49 [bgcolor=#F7D68C] [border: (1px outset #808080)]
+        RenderTableSection {TBODY} at (1,1) size 182x47
+          RenderTableRow {TR} at (0,0) size 182x47
+            RenderTableCell {TD} at (0,4) size 138x38 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
               RenderText {#text} at (1,1) size 136x36
                 text run at (1,1) width 136: "xxxxxxxxxxxxxxxxx"
                 text run at (1,19) width 100: "xxxxxx xxxxxx"
-            RenderTableCell {TD} at (138,0) size 23x92 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
+            RenderTableCell {TD} at (138,0) size 44x47 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
               RenderImage {IMG} at (1,1) size 21x45
-              RenderImage {IMG} at (1,46) size 21x45
-      RenderBlock (anonymous) at (0,104) size 784x18
+              RenderImage {IMG} at (22,1) size 21x45
+      RenderBlock (anonymous) at (0,59) size 784x18
         RenderBR {BR} at (0,0) size 0x18
-      RenderTable {TABLE} at (0,122) size 468x90 [bgcolor=#F7D68C]
-        RenderTableSection {TBODY} at (0,0) size 468x90
+      RenderTable {TABLE} at (0,77) size 468x74 [bgcolor=#F7D68C]
+        RenderTableSection {TBODY} at (0,0) size 468x74
           RenderTableRow {TR} at (0,0) size 468x44
             RenderTableCell {TD} at (0,0) size 326x22 [r=0 c=0 rs=1 cs=1]
               RenderInline {FONT} at (0,0) size 264x22
                 RenderInline {B} at (0,0) size 264x22
                   RenderText {#text} at (0,0) size 264x22
                     text run at (0,0) width 264: " 25 offres d'emploi des entreprises"
-            RenderTableCell {TD} at (326,0) size 101x44 [bgcolor=#EE9E02] [r=0 c=1 rs=1 cs=1]
-              RenderImage {IMG} at (19,16) size 20x1
-              RenderText {#text} at (39,3) size 34x18
-                text run at (39,3) width 34: "page "
+            RenderTableCell {TD} at (326,0) size 100x44 [bgcolor=#EE9E02] [r=0 c=1 rs=1 cs=1]
+              RenderImage {IMG} at (18,16) size 20x1
+              RenderText {#text} at (38,3) size 34x18
+                text run at (38,3) width 34: "page "
               RenderInline {FONT} at (0,0) size 28x44
                 RenderInline {B} at (0,0) size 28x44
-                  RenderText {#text} at (73,0) size 28x44
-                    text run at (73,0) width 28: "12 /"
-                    text run at (83,22) width 18: "13"
-            RenderTableCell {TD} at (427,0) size 41x90 [r=0 c=2 rs=2 cs=1]
+                  RenderText {#text} at (72,0) size 28x44
+                    text run at (72,0) width 28: "12 /"
+                    text run at (82,22) width 18: "13"
+            RenderTableCell {TD} at (426,0) size 42x45 [r=0 c=2 rs=2 cs=1]
               RenderImage {IMG} at (0,0) size 21x45
-              RenderImage {IMG} at (0,45) size 21x45
-          RenderTableRow {TR} at (0,44) size 468x46
-            RenderTableCell {TD} at (0,52) size 326x30 [r=1 c=0 rs=1 cs=1]
+              RenderImage {IMG} at (21,0) size 21x45
+          RenderTableRow {TR} at (0,44) size 468x30
+            RenderTableCell {TD} at (0,44) size 326x30 [r=1 c=0 rs=1 cs=1]
               RenderImage {IMG} at (0,0) size 326x30
-            RenderTableCell {TD} at (326,52) size 101x30 [r=1 c=1 rs=1 cs=1]
+            RenderTableCell {TD} at (326,44) size 100x30 [r=1 c=1 rs=1 cs=1]
               RenderImage {IMG} at (0,0) size 100x30
index a71bea5..07284d9 100644 (file)
@@ -1 +1 @@
-540b37fefa328d2f58b2f494c5f953ba
\ No newline at end of file
+22eb077ae6dd02de04d0a5ddfbc3fc23
\ No newline at end of file
index bd8d27b..9e0e067 100644 (file)
Binary files a/LayoutTests/tables/mozilla/bugs/bug26553-expected.png and b/LayoutTests/tables/mozilla/bugs/bug26553-expected.png differ
index ccb432e..90c5d0b 100644 (file)
@@ -3,15 +3,15 @@ layer 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
-      RenderTable {TABLE} at (0,0) size 784x132 [border: (1px outset #808080)]
-        RenderTableSection {TBODY} at (1,1) size 782x130
-          RenderTableRow {TR} at (0,2) size 782x126
-            RenderTableCell {TD} at (2,2) size 183x126 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
+      RenderTable {TABLE} at (0,0) size 784x70 [border: (1px outset #808080)]
+        RenderTableSection {TBODY} at (1,1) size 782x68
+          RenderTableRow {TR} at (0,2) size 782x64
+            RenderTableCell {TD} at (2,2) size 247x64 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
               RenderInline {A} at (0,0) size 181x14 [color=#0000EE]
                 RenderImage {IMG} at (1,1) size 61x62
-                RenderImage {IMG} at (1,63) size 181x62
-            RenderTableCell {TD} at (187,33) size 453x64 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
-              RenderImage {IMG} at (133,1) size 186x62
-            RenderTableCell {TD} at (642,33) size 138x64 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
+                RenderImage {IMG} at (65,1) size 181x62
+            RenderTableCell {TD} at (251,2) size 389x64 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
+              RenderImage {IMG} at (101,1) size 186x62
+            RenderTableCell {TD} at (642,2) size 138x64 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
               RenderInline {A} at (0,0) size 0x0 [color=#0000EE]
                 RenderImage {IMG} at (4,1) size 133x62
index 173a272..844e5f5 100644 (file)
@@ -1 +1 @@
-dbd27a46d0766275c4ad03049f984e4e
\ No newline at end of file
+af550c93abe7346e061938684857fa93
\ No newline at end of file
index d0c80af..7e5126c 100644 (file)
Binary files a/LayoutTests/tables/mozilla/bugs/bug4427-expected.png and b/LayoutTests/tables/mozilla/bugs/bug4427-expected.png differ
index 62221fc..26a3ec3 100644 (file)
@@ -7,19 +7,19 @@ layer at (0,0) size 800x600
         RenderText {#text} at (0,0) size 765x36
           text run at (0,0) width 765: "the following is not the bug but is related. Nav put's the images in the 2nd cell on the same line. Border widths of cells are"
           text run at (0,18) width 81: "suspect here."
-      RenderTable {TABLE} at (0,36) size 26x8 [border: (1px outset #808080)]
-        RenderTableSection {TBODY} at (1,1) size 24x6
-          RenderTableRow {TR} at (0,0) size 24x6
-            RenderTableCell {TD} at (0,1) size 4x4 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
+      RenderTable {TABLE} at (0,36) size 28x6 [border: (1px outset #808080)]
+        RenderTableSection {TBODY} at (1,1) size 26x4
+          RenderTableRow {TR} at (0,0) size 26x4
+            RenderTableCell {TD} at (0,0) size 4x4 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
               RenderImage {IMG} at (1,1) size 2x2
-            RenderTableCell {TD} at (4,0) size 20x6 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
+            RenderTableCell {TD} at (4,0) size 22x4 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
               RenderImage {IMG} at (1,1) size 10x2
-              RenderImage {IMG} at (1,3) size 10x2
-      RenderBlock (anonymous) at (0,44) size 784x36
+              RenderImage {IMG} at (11,1) size 10x2
+      RenderBlock (anonymous) at (0,42) size 784x36
         RenderBR {BR} at (0,0) size 0x18
         RenderText {#text} at (0,18) size 649x18
           text run at (0,18) width 649: "the following is related to the bug. Nav put's the images in the last cell of the last table on the same line."
-      RenderTable {TABLE} at (0,80) size 700x32
+      RenderTable {TABLE} at (0,78) size 700x32
         RenderTableSection {TBODY} at (0,0) size 700x32
           RenderTableRow {TR} at (0,0) size 700x32
             RenderTableCell {TD} at (0,0) size 175x32 [r=0 c=0 rs=1 cs=1]
@@ -72,9 +72,9 @@ layer at (0,0) size 800x600
                       RenderImage {IMG} at (0,18) size 525x1
                       RenderBR {BR} at (525,19) size 0x0
                       RenderImage {IMG} at (0,19) size 525x2
-      RenderBlock (anonymous) at (0,112) size 784x18
+      RenderBlock (anonymous) at (0,110) size 784x18
         RenderBR {BR} at (0,0) size 0x18
-      RenderTable {TABLE} at (0,130) size 427x199 [bgcolor=#CCCCCC] [border: (1px outset #808080)]
+      RenderTable {TABLE} at (0,128) size 427x199 [bgcolor=#CCCCCC] [border: (1px outset #808080)]
         RenderTableSection {TBODY} at (1,1) size 425x197
           RenderTableRow {TR} at (0,1) size 425x76
             RenderTableCell {TD} at (1,1) size 20x22 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
diff --git a/LayoutTests/tables/mozilla_expected_failures/bugs/bug101674-expected.checksum b/LayoutTests/tables/mozilla_expected_failures/bugs/bug101674-expected.checksum
deleted file mode 100644 (file)
index 06bb45d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-80bc8cecdaf88afccefcfb7a10bddcde
\ No newline at end of file
diff --git a/LayoutTests/tables/mozilla_expected_failures/bugs/bug101674-expected.png b/LayoutTests/tables/mozilla_expected_failures/bugs/bug101674-expected.png
deleted file mode 100644 (file)
index 02e7b71..0000000
Binary files a/LayoutTests/tables/mozilla_expected_failures/bugs/bug101674-expected.png and /dev/null differ
diff --git a/LayoutTests/tables/mozilla_expected_failures/bugs/bug101674-expected.txt b/LayoutTests/tables/mozilla_expected_failures/bugs/bug101674-expected.txt
deleted file mode 100644 (file)
index 2f9bd7f..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-layer at (0,0) size 785x2242
-  RenderView at (0,0) size 785x600
-layer at (0,0) size 785x2242
-  RenderBlock {HTML} at (0,0) size 785x2242
-    RenderBody {BODY} at (8,8) size 769x2226
-      RenderTable {TABLE} at (0,0) size 769x326
-        RenderTableSection {TBODY} at (0,0) size 769x326
-          RenderTableRow {TR} at (0,2) size 769x322
-            RenderTableCell {TD} at (2,2) size 90x322 [r=0 c=0 rs=1 cs=1]
-              RenderImage {IMG} at (1,1) size 88x64
-              RenderImage {IMG} at (1,65) size 88x64
-              RenderImage {IMG} at (1,129) size 88x64
-              RenderImage {IMG} at (1,193) size 88x64
-              RenderImage {IMG} at (1,257) size 88x64
-            RenderTableCell {TD} at (94,153) size 673x20 [r=0 c=1 rs=1 cs=1]
-              RenderText {#text} at (1,1) size 157x18
-                text run at (1,1) width 157: "Nothing between images"
-      RenderTable {TABLE} at (0,326) size 769x326
-        RenderTableSection {TBODY} at (0,0) size 769x326
-          RenderTableRow {TR} at (0,2) size 769x322
-            RenderTableCell {TD} at (2,2) size 90x322 [r=0 c=0 rs=1 cs=1]
-              RenderImage {IMG} at (1,1) size 88x64
-              RenderText {#text} at (0,0) size 0x0
-              RenderImage {IMG} at (1,65) size 88x64
-              RenderText {#text} at (0,0) size 0x0
-              RenderImage {IMG} at (1,129) size 88x64
-              RenderText {#text} at (0,0) size 0x0
-              RenderImage {IMG} at (1,193) size 88x64
-              RenderText {#text} at (0,0) size 0x0
-              RenderImage {IMG} at (1,257) size 88x64
-            RenderTableCell {TD} at (94,153) size 673x20 [r=0 c=1 rs=1 cs=1]
-              RenderText {#text} at (1,1) size 149x18
-                text run at (1,1) width 149: "Spaces between images"
-      RenderTable {TABLE} at (0,652) size 769x326
-        RenderTableSection {TBODY} at (0,0) size 769x326
-          RenderTableRow {TR} at (0,2) size 769x322
-            RenderTableCell {TD} at (2,2) size 90x322 [r=0 c=0 rs=1 cs=1]
-              RenderImage {IMG} at (1,1) size 88x64
-              RenderText {#text} at (0,0) size 0x0
-              RenderImage {IMG} at (1,65) size 88x64
-              RenderText {#text} at (0,0) size 0x0
-              RenderImage {IMG} at (1,129) size 88x64
-              RenderText {#text} at (0,0) size 0x0
-              RenderImage {IMG} at (1,193) size 88x64
-              RenderText {#text} at (0,0) size 0x0
-              RenderImage {IMG} at (1,257) size 88x64
-            RenderTableCell {TD} at (94,153) size 673x20 [r=0 c=1 rs=1 cs=1]
-              RenderText {#text} at (1,1) size 165x18
-                text run at (1,1) width 165: "Newlines between images"
-      RenderTable {TABLE} at (0,978) size 769x416
-        RenderTableSection {TBODY} at (0,0) size 769x416
-          RenderTableRow {TR} at (0,2) size 769x412
-            RenderTableCell {TD} at (2,2) size 90x412 [r=0 c=0 rs=1 cs=1]
-              RenderText {#text} at (1,1) size 27x18
-                text run at (1,1) width 27: "One"
-              RenderImage {IMG} at (1,19) size 88x64
-              RenderText {#text} at (1,83) size 30x18
-                text run at (1,83) width 30: "Two"
-              RenderImage {IMG} at (1,101) size 88x64
-              RenderText {#text} at (1,165) size 37x18
-                text run at (1,165) width 37: "Three"
-              RenderImage {IMG} at (1,183) size 88x64
-              RenderText {#text} at (1,247) size 30x18
-                text run at (1,247) width 30: "Four"
-              RenderImage {IMG} at (1,265) size 88x64
-              RenderText {#text} at (1,329) size 28x18
-                text run at (1,329) width 28: "Five"
-              RenderImage {IMG} at (1,347) size 88x64
-            RenderTableCell {TD} at (94,198) size 673x20 [r=0 c=1 rs=1 cs=1]
-              RenderText {#text} at (1,1) size 134x18
-                text run at (1,1) width 134: "Text between images"
-      RenderTable {TABLE} at (0,1394) size 769x416
-        RenderTableSection {TBODY} at (0,0) size 769x416
-          RenderTableRow {TR} at (0,2) size 769x412
-            RenderTableCell {TD} at (2,2) size 90x412 [r=0 c=0 rs=1 cs=1]
-              RenderText {#text} at (1,1) size 31x18
-                text run at (1,1) width 31: "One "
-              RenderImage {IMG} at (1,19) size 88x64
-              RenderText {#text} at (1,83) size 34x18
-                text run at (1,83) width 34: "Two "
-              RenderImage {IMG} at (1,101) size 88x64
-              RenderText {#text} at (1,165) size 41x18
-                text run at (1,165) width 41: "Three "
-              RenderImage {IMG} at (1,183) size 88x64
-              RenderText {#text} at (1,247) size 34x18
-                text run at (1,247) width 34: "Four "
-              RenderImage {IMG} at (1,265) size 88x64
-              RenderText {#text} at (1,329) size 32x18
-                text run at (1,329) width 32: "Five "
-              RenderImage {IMG} at (1,347) size 88x64
-            RenderTableCell {TD} at (94,198) size 673x20 [r=0 c=1 rs=1 cs=1]
-              RenderText {#text} at (1,1) size 211x18
-                text run at (1,1) width 211: "Text with spaces between images"
-      RenderTable {TABLE} at (0,1810) size 769x416
-        RenderTableSection {TBODY} at (0,0) size 769x416
-          RenderTableRow {TR} at (0,2) size 769x412
-            RenderTableCell {TD} at (2,2) size 90x412 [r=0 c=0 rs=1 cs=1]
-              RenderText {#text} at (1,1) size 43x18
-                text run at (1,1) width 43: "One A"
-              RenderImage {IMG} at (1,19) size 88x64
-              RenderText {#text} at (1,83) size 42x18
-                text run at (1,83) width 42: "Two b"
-              RenderImage {IMG} at (1,101) size 88x64
-              RenderText {#text} at (1,165) size 48x18
-                text run at (1,165) width 48: "Three c"
-              RenderImage {IMG} at (1,183) size 88x64
-              RenderText {#text} at (1,247) size 42x18
-                text run at (1,247) width 42: "Four d"
-              RenderImage {IMG} at (1,265) size 88x64
-              RenderText {#text} at (1,329) size 39x18
-                text run at (1,329) width 39: "Five e"
-              RenderImage {IMG} at (1,347) size 88x64
-            RenderTableCell {TD} at (94,198) size 673x20 [r=0 c=1 rs=1 cs=1]
-              RenderText {#text} at (1,1) size 301x18
-                text run at (1,1) width 301: "Text with spaces and more text between images"
diff --git a/LayoutTests/tables/mozilla_expected_failures/bugs/bug14323-expected.checksum b/LayoutTests/tables/mozilla_expected_failures/bugs/bug14323-expected.checksum
deleted file mode 100644 (file)
index 340b53f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-e6ae828b0ee14bed54032f7787528ad8
\ No newline at end of file
diff --git a/LayoutTests/tables/mozilla_expected_failures/bugs/bug14323-expected.png b/LayoutTests/tables/mozilla_expected_failures/bugs/bug14323-expected.png
deleted file mode 100644 (file)
index 0f37699..0000000
Binary files a/LayoutTests/tables/mozilla_expected_failures/bugs/bug14323-expected.png and /dev/null differ
index 2809078..186212e 100644 (file)
@@ -1,3 +1,22 @@
+2007-02-01  Beth Dakin  <bdakin@apple.com>
+
+        Reviewed by Hyatt.
+
+        Fix for http://bugs.webkit.org/show_bug.cgi?id=10517 REGRESSION 
+        (r12065-r12082): Navigation graphic wraps to the next line on 
+        duart.com and <rdar://problem/4960505> REGRESSION: The Awesome 
+        Windows Vista page has a layout error in the header table (10517)
+
+        The problem is that we never supported a quirk that other browsers 
+        support where, under very specific circumstances, a table cell will 
+        grow to fit an image inside of it. This is only a regression 
+        because a bug was fixed were we were 1 pixel off in the calculation 
+        of overflow in some cases.
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::shouldGrowTableCellForImage):
+        (WebCore::RenderBlock::calcInlineMinMaxWidth):
+
 2007-02-01  Zack Rusin  <zrusin@trolltech.com>
 
         Reviewed by Lars
index 3709d8e..e739950 100644 (file)
@@ -32,6 +32,7 @@
 #include "HTMLNames.h"
 #include "HitTestResult.h"
 #include "InlineTextBox.h"
+#include "RenderImage.h"
 #include "RenderTableCell.h"
 #include "RenderTextFragment.h"
 #include "RenderTheme.h"
@@ -3359,6 +3360,30 @@ static inline void stripTrailingSpace(int& inlineMax, int& inlineMin,
     }
 }
 
+// This function is to match a crazy quirk that other browsers have. Firefox
+// and Opera will allow a table cell to grow to fit an image inside it under
+// very specific cirucumstances. Not supporting the quirk has caused us to
+// mis-render some real sites. (See Bugzilla 10517.) 
+static bool shouldGrowTableCellForImage(RenderBlock* containingBlock, RenderObject* image, RenderObject* adjacentLeaf)
+{
+    if (!containingBlock->style()->htmlHacks())
+        return false;
+
+    if (!containingBlock->isTableCell())
+        return false;
+
+    if (!image->isImage())
+        return false;
+
+    if (adjacentLeaf && !adjacentLeaf->isImage())
+        return false;
+
+    if (!containingBlock->style()->width().isAuto())
+        return false;
+
+    return true;
+}
+
 void RenderBlock::calcInlineMinMaxWidth()
 {
     int inlineMax=0;
@@ -3377,9 +3402,16 @@ void RenderBlock::calcInlineMinMaxWidth()
     InlineMinMaxIterator childIterator(this, this);
     bool addedTextIndent = false; // Only gets added in once.
     RenderObject* prevFloat = 0;
+    RenderObject* previousLeaf = 0;
     while (RenderObject* child = childIterator.next())
     {
-        autoWrap = child->style()->autoWrap();
+        InlineMinMaxIterator leafIterator = childIterator;
+        RenderObject* nextLeaf = leafIterator.next();
+        while (nextLeaf && nextLeaf->isInlineFlow())
+            nextLeaf = leafIterator.next();
+
+        autoWrap = child->isReplaced() ? child->parent()->style()->autoWrap() : 
+            child->style()->autoWrap();
 
         if (!child->isBR()) {
             // Step One: determine whether or not we need to go ahead and
@@ -3461,10 +3493,10 @@ void RenderBlock::calcInlineMinMaxWidth()
                 childMin += child->minWidth();
                 childMax += child->maxWidth();
 
-                // FIXME: This isn't right.  WinIE, Opera, Mozilla all do this differently and
-                // treat replaced elements like characters in a word.
-                if (autoWrap || oldAutoWrap) {
-                    if(m_minWidth < inlineMin) m_minWidth = inlineMin;
+                bool growForPrevious = shouldGrowTableCellForImage(this, child, previousLeaf);
+                if (!growForPrevious && (autoWrap || oldAutoWrap)) {
+                    if (m_minWidth < inlineMin)
+                        m_minWidth = inlineMin;
                     inlineMin = 0;
                 }
 
@@ -3492,12 +3524,15 @@ void RenderBlock::calcInlineMinMaxWidth()
                 // Add our width to the max.
                 inlineMax += childMax;
 
-                if (!autoWrap)
+                if (!autoWrap || growForPrevious)
                     inlineMin += childMin;
-                else {
-                    // Now check our line.
+                else
                     inlineMin = childMin;
-                    if(m_minWidth < inlineMin) m_minWidth = inlineMin;
+
+                if (autoWrap && !shouldGrowTableCellForImage(this, child, nextLeaf)) {
+                    // Now check our line.
+                    if (m_minWidth < inlineMin)
+                        m_minWidth = inlineMin;
 
                     // Now start a new line.
                     inlineMin = 0;
@@ -3599,6 +3634,8 @@ void RenderBlock::calcInlineMinMaxWidth()
         }
 
         oldAutoWrap = autoWrap;
+        if (!child->isInlineFlow())
+            previousLeaf = child;
     }
 
     if (style()->collapseWhiteSpace())