LayoutTests:
authoradele <adele@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 17 Jun 2006 15:54:58 +0000 (15:54 +0000)
committeradele <adele@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 17 Jun 2006 15:54:58 +0000 (15:54 +0000)
        Reviewed by Hyatt.

        - test and updated results for http://bugzilla.opendarwin.org/show_bug.cgi?id=7395
          Table not properly re-flowed when floated div removed from layout

        * css2.1/t0905-c5525-fltmult-00-d-g-expected.checksum: Updated.
        * css2.1/t0905-c5525-fltmult-00-d-g-expected.png: Updated.
        * css2.1/t0905-c5525-fltmult-00-d-g-expected.txt: Updated.
        * fast/block/float/table-relayout-expected.checksum: Added.
        * fast/block/float/table-relayout-expected.png: Added.
        * fast/block/float/table-relayout-expected.txt: Added.
        * fast/block/float/table-relayout.html: Added.

WebCore:

        Reviewed by Hyatt.

        - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7395
          Table not properly re-flowed when floated div removed from layout

        Test: fast/block/float/table-relayout.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout): Added marking
        of children that use lineWidth.
        * rendering/RenderBlock.h: Added a FIXME.

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

LayoutTests/ChangeLog
LayoutTests/css2.1/t0905-c5525-fltmult-00-d-g-expected.checksum
LayoutTests/css2.1/t0905-c5525-fltmult-00-d-g-expected.png
LayoutTests/css2.1/t0905-c5525-fltmult-00-d-g-expected.txt
LayoutTests/fast/block/float/table-relayout-expected.checksum [new file with mode: 0644]
LayoutTests/fast/block/float/table-relayout-expected.png [new file with mode: 0644]
LayoutTests/fast/block/float/table-relayout-expected.txt [new file with mode: 0644]
LayoutTests/fast/block/float/table-relayout.html [new file with mode: 0644]
WebCore/ChangeLog
WebCore/rendering/RenderBlock.cpp
WebCore/rendering/RenderBlock.h

index 9d0359568c6048274f995036f75163f228adedbf..0d9889fde40da2e15690e4382c4e0cdb7bd783d0 100644 (file)
@@ -1,3 +1,18 @@
+2006-06-17  Mitz Pettel  <opendarwin.org@mitzpettel.com>
+
+        Reviewed by Hyatt.
+
+        - test and updated results for http://bugzilla.opendarwin.org/show_bug.cgi?id=7395
+          Table not properly re-flowed when floated div removed from layout
+
+        * css2.1/t0905-c5525-fltmult-00-d-g-expected.checksum: Updated.
+        * css2.1/t0905-c5525-fltmult-00-d-g-expected.png: Updated.
+        * css2.1/t0905-c5525-fltmult-00-d-g-expected.txt: Updated.
+        * fast/block/float/table-relayout-expected.checksum: Added.
+        * fast/block/float/table-relayout-expected.png: Added.
+        * fast/block/float/table-relayout-expected.txt: Added.
+        * fast/block/float/table-relayout.html: Added.
+
 2006-06-17  Rob Buis  <buis@kde.org>
 
         Reviewed by Darin.
index 6a0375c2b3404518e28fa8eb07c957341f7462b9..6b0f258bd6de7e012b1468e9f0197470cd981f42 100644 (file)
@@ -1 +1 @@
-10eae4eb6fef770ee9a65c6140bc9e6a
\ No newline at end of file
+49c6c3f79ecb028dd9a7852b78c6312c
\ No newline at end of file
index 560b03ec087272e2506e1ba353a7449f4f29abd3..771354226a795c723ec9cb066cf1852db003ea56 100644 (file)
Binary files a/LayoutTests/css2.1/t0905-c5525-fltmult-00-d-g-expected.png and b/LayoutTests/css2.1/t0905-c5525-fltmult-00-d-g-expected.png differ
index baf1fb75eccb129e664cd35b8426007835f9f3a3..f0e308fa864350e25f89db7cb98e9331b96244e5 100644 (file)
@@ -24,51 +24,51 @@ layer at (0,0) size 800x228
           RenderText {#text} at (10,0) size 39x18
             text run at (10,0) width 39: "Green"
       RenderBlock {DIV} at (0,184) size 784x18
-        RenderTable {TABLE} at (0,0) size 154x18
-          RenderTableSection {TBODY} at (0,0) size 154x18
-            RenderTableRow {TR} at (0,0) size 154x18
-              RenderTableCell {TD} at (0,0) size 6x18 [bgcolor=#000000] [r=0 c=0 rs=1 cs=1]
+        RenderTable {TABLE} at (0,0) size 620x18
+          RenderTableSection {TBODY} at (0,0) size 620x18
+            RenderTableRow {TR} at (0,0) size 620x18
+              RenderTableCell {TD} at (0,0) size 20x18 [bgcolor=#000000] [r=0 c=0 rs=1 cs=1]
                 RenderText {#text} at (0,0) size 4x18
                   text run at (0,0) width 4: " "
-              RenderTableCell {TD} at (6,0) size 18x18 [bgcolor=#FFFF00] [r=0 c=1 rs=1 cs=1]
+              RenderTableCell {TD} at (20,0) size 100x18 [bgcolor=#FFFF00] [r=0 c=1 rs=1 cs=1]
                 RenderText {#text} at (0,0) size 4x18
                   text run at (0,0) width 4: " "
-              RenderTableCell {TD} at (24,0) size 7x18 [bgcolor=#000000] [r=0 c=2 rs=1 cs=1]
+              RenderTableCell {TD} at (120,0) size 20x18 [bgcolor=#000000] [r=0 c=2 rs=1 cs=1]
                 RenderText {#text} at (0,0) size 4x18
                   text run at (0,0) width 4: " "
-              RenderTableCell {TD} at (31,0) size 7x18 [bgcolor=#FFFFFF] [r=0 c=3 rs=1 cs=1]
+              RenderTableCell {TD} at (140,0) size 20x18 [bgcolor=#FFFFFF] [r=0 c=3 rs=1 cs=1]
                 RenderText {#text} at (0,0) size 4x18
                   text run at (0,0) width 4: " "
-              RenderTableCell {TD} at (38,0) size 7x18 [bgcolor=#000000] [r=0 c=4 rs=1 cs=1]
+              RenderTableCell {TD} at (160,0) size 20x18 [bgcolor=#000000] [r=0 c=4 rs=1 cs=1]
                 RenderText {#text} at (0,0) size 4x18
                   text run at (0,0) width 4: " "
-              RenderTableCell {TD} at (45,0) size 19x18 [bgcolor=#0000FF] [r=0 c=5 rs=1 cs=1]
+              RenderTableCell {TD} at (180,0) size 100x18 [bgcolor=#0000FF] [r=0 c=5 rs=1 cs=1]
                 RenderText {#text} at (0,0) size 4x18
                   text run at (0,0) width 4: " "
-              RenderTableCell {TD} at (64,0) size 7x18 [bgcolor=#000000] [r=0 c=6 rs=1 cs=1]
+              RenderTableCell {TD} at (280,0) size 20x18 [bgcolor=#000000] [r=0 c=6 rs=1 cs=1]
                 RenderText {#text} at (0,0) size 4x18
                   text run at (0,0) width 4: " "
-              RenderTableCell {TD} at (71,0) size 7x18 [bgcolor=#FFFFFF] [r=0 c=7 rs=1 cs=1]
+              RenderTableCell {TD} at (300,0) size 20x18 [bgcolor=#FFFFFF] [r=0 c=7 rs=1 cs=1]
                 RenderText {#text} at (0,0) size 4x18
                   text run at (0,0) width 4: " "
-              RenderTableCell {TD} at (78,0) size 7x18 [bgcolor=#000000] [r=0 c=8 rs=1 cs=1]
+              RenderTableCell {TD} at (320,0) size 20x18 [bgcolor=#000000] [r=0 c=8 rs=1 cs=1]
                 RenderText {#text} at (0,0) size 4x18
                   text run at (0,0) width 4: " "
-              RenderTableCell {TD} at (85,0) size 20x18 [bgcolor=#FF0000] [r=0 c=9 rs=1 cs=1]
+              RenderTableCell {TD} at (340,0) size 100x18 [bgcolor=#FF0000] [r=0 c=9 rs=1 cs=1]
                 RenderText {#text} at (0,0) size 4x18
                   text run at (0,0) width 4: " "
-              RenderTableCell {TD} at (105,0) size 7x18 [bgcolor=#000000] [r=0 c=10 rs=1 cs=1]
+              RenderTableCell {TD} at (440,0) size 20x18 [bgcolor=#000000] [r=0 c=10 rs=1 cs=1]
                 RenderText {#text} at (0,0) size 4x18
                   text run at (0,0) width 4: " "
-              RenderTableCell {TD} at (112,0) size 7x18 [bgcolor=#FFFFFF] [r=0 c=11 rs=1 cs=1]
+              RenderTableCell {TD} at (460,0) size 20x18 [bgcolor=#FFFFFF] [r=0 c=11 rs=1 cs=1]
                 RenderText {#text} at (0,0) size 4x18
                   text run at (0,0) width 4: " "
-              RenderTableCell {TD} at (119,0) size 7x18 [bgcolor=#000000] [r=0 c=12 rs=1 cs=1]
+              RenderTableCell {TD} at (480,0) size 20x18 [bgcolor=#000000] [r=0 c=12 rs=1 cs=1]
                 RenderText {#text} at (0,0) size 4x18
                   text run at (0,0) width 4: " "
-              RenderTableCell {TD} at (126,0) size 21x18 [bgcolor=#008000] [r=0 c=13 rs=1 cs=1]
+              RenderTableCell {TD} at (500,0) size 100x18 [bgcolor=#008000] [r=0 c=13 rs=1 cs=1]
                 RenderText {#text} at (0,0) size 4x18
                   text run at (0,0) width 4: " "
-              RenderTableCell {TD} at (147,0) size 7x18 [bgcolor=#000000] [r=0 c=14 rs=1 cs=1]
+              RenderTableCell {TD} at (600,0) size 20x18 [bgcolor=#000000] [r=0 c=14 rs=1 cs=1]
                 RenderText {#text} at (0,0) size 4x18
                   text run at (0,0) width 4: " "
diff --git a/LayoutTests/fast/block/float/table-relayout-expected.checksum b/LayoutTests/fast/block/float/table-relayout-expected.checksum
new file mode 100644 (file)
index 0000000..f053e98
--- /dev/null
@@ -0,0 +1 @@
+0f89e1bdbe82505749e78b85fe3356ec
\ No newline at end of file
diff --git a/LayoutTests/fast/block/float/table-relayout-expected.png b/LayoutTests/fast/block/float/table-relayout-expected.png
new file mode 100644 (file)
index 0000000..8b1cd14
Binary files /dev/null and b/LayoutTests/fast/block/float/table-relayout-expected.png differ
diff --git a/LayoutTests/fast/block/float/table-relayout-expected.txt b/LayoutTests/fast/block/float/table-relayout-expected.txt
new file mode 100644 (file)
index 0000000..14be506
--- /dev/null
@@ -0,0 +1,42 @@
+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
+      RenderBlock {P} at (0,0) size 784x36
+        RenderText {#text} at (0,0) size 172x18
+          text run at (0,0) width 172: "This is a regression test for "
+        RenderInline {I} at (0,0) size 744x36
+          RenderInline {A} at (0,0) size 348x18 [color=#0000EE]
+            RenderText {#text} at (172,0) size 348x18
+              text run at (172,0) width 348: "http://bugzilla.opendarwin.org/show_bug.cgi?id=7395"
+          RenderText {#text} at (520,0) size 744x36
+            text run at (520,0) width 4: " "
+            text run at (524,0) width 220: "Table not properly re-flowed when"
+            text run at (0,18) width 202: "floated div removed from layout"
+        RenderText {#text} at (202,18) size 4x18
+          text run at (202,18) width 4: "."
+      RenderBlock {P} at (0,52) size 784x18
+        RenderText {#text} at (0,0) size 263x18
+          text run at (0,0) width 263: "The two boxes below should be identical."
+      RenderBlock {HR} at (0,86) size 784x2 [border: (1px inset #000000)]
+      RenderBlock {DIV} at (0,96) size 200x60 [bgcolor=#C0C0C0]
+        RenderTable {TABLE} at (0,0) size 200x60
+          RenderTableSection {TBODY} at (0,0) size 200x60
+            RenderTableRow {TR} at (0,2) size 200x56
+              RenderTableCell {TD} at (2,2) size 196x56 [r=0 c=0 rs=1 cs=1]
+                RenderText {#text} at (1,1) size 177x54
+                  text run at (1,1) width 177: "Lorem ipsum dolor sit amet,"
+                  text run at (1,19) width 173: "consectetuer adipiscing elit."
+                  text run at (1,37) width 81: "Nunc neque."
+      RenderBlock (anonymous) at (0,156) size 784x18
+        RenderBR {BR} at (0,0) size 0x18
+      RenderBlock {DIV} at (0,174) size 200x60 [bgcolor=#C0C0C0]
+        RenderTable {TABLE} at (0,0) size 200x60
+          RenderTableSection {TBODY} at (0,0) size 200x60
+            RenderTableRow {TR} at (0,2) size 200x56
+              RenderTableCell {TD} at (2,2) size 196x56 [r=0 c=0 rs=1 cs=1]
+                RenderText {#text} at (1,1) size 177x54
+                  text run at (1,1) width 177: "Lorem ipsum dolor sit amet,"
+                  text run at (1,19) width 173: "consectetuer adipiscing elit."
+                  text run at (1,37) width 81: "Nunc neque."
diff --git a/LayoutTests/fast/block/float/table-relayout.html b/LayoutTests/fast/block/float/table-relayout.html
new file mode 100644 (file)
index 0000000..91d3c10
--- /dev/null
@@ -0,0 +1,30 @@
+<html>
+<head>
+    <title></title>
+</head>
+<body>
+    <p>
+        This is a regression test for <i><a href="http://bugzilla.opendarwin.org/show_bug.cgi?id=7395">http://bugzilla.opendarwin.org/show_bug.cgi?id=7395</a>
+        Table not properly re-flowed when floated div removed from layout</i>.
+    </p>
+    <p>
+        The two boxes below should be identical.
+    </p>
+    <hr>
+    <div style="width: 200px; background: silver;">
+        <table><tr><td>
+            Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc neque.
+        </td></tr></table>
+    </div>
+    <br>
+    <div style="width: 200px; background: silver;">
+        <div id="float" style="width: 100px; float: right; height: 10px;"></div>
+        <table><tr><td>
+            Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc neque.
+        </td></tr></table>
+    </div>
+    <script type="text/javascript">
+        document.body.offsetTop;
+        document.getElementById('float').style.display = "none";
+    </script>
+</body>
index c7b5c9f1f6be8be74d8c5195a5345749d038dc2e..fd590c57a783eeb537f78cd1bfde5647e2d77b09 100644 (file)
@@ -1,3 +1,17 @@
+2006-06-17  Mitz Pettel  <opendarwin.org@mitzpettel.com>
+
+        Reviewed by Hyatt.
+
+        - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7395
+          Table not properly re-flowed when floated div removed from layout
+
+        Test: fast/block/float/table-relayout.html
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout): Added marking
+        of children that use lineWidth.
+        * rendering/RenderBlock.h: Added a FIXME.
+
 2006-06-17  Rob Buis  <buis@kde.org>
 
         Reviewed by Darin.
index 66e293e6ffd705f990c567567486b470b08a989e..44e8b4da34110098e55f504fd400c05026c2db7f 100644 (file)
@@ -2424,7 +2424,7 @@ void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderObject* floatToRem
     if (!childrenInline()) {
         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
-                (floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()))
+                ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->usesLineWidth()))
                 child->markAllDescendantsWithFloatsForLayout(floatToRemove);
         }
     }
index 1d19755a1692a856b73e043d4ae5a38fb4f05fa6..91053fe25f0affcf366670a84be65c65b6570cde 100644 (file)
@@ -167,6 +167,9 @@ public:
     virtual void markAllDescendantsWithFloatsForLayout(RenderObject* floatToRemove = 0);
     void markPositionedObjectsForLayout();
 
+    // FIXME: containsFloats() should not return true if the floating objects list
+    // is empty. However, layoutInlineChildren() relies on the current behavior.
+    // http://bugzilla.opendarwin.org/show_bug.cgi?id=7395#c3
     virtual bool containsFloats() { return m_floatingObjects!=0; }
     virtual bool containsFloat(RenderObject* o);