Tables without any descendant and auto logical width should have a 0px logical width
authorjchaffraix@webkit.org <jchaffraix@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 18 Sep 2012 17:51:22 +0000 (17:51 +0000)
committerjchaffraix@webkit.org <jchaffraix@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 18 Sep 2012 17:51:22 +0000 (17:51 +0000)
https://bugs.webkit.org/show_bug.cgi?id=95521

Reviewed by Abhishek Arya.

Source/WebCore:

The code would wrongly add the border-spacing in the row direction to the table's logical
width even if we didn't have a column. The new behavior matches FireFox and Opera. IE
matches our old behavior for inline tables but our new behavior for normal tables which
is a bug on their side.

Tests: fast/table/empty-table-should-take-no-space.html
       fast/table/fixed-table-layout/empty-table-should-take-no-space-fixed-layout.html

* rendering/RenderTable.h:
(WebCore::RenderTable::borderSpacingInRowDirection):
Added this new helper function to return the right border-spacing. Added a FIXME as the code always
return the horizontal dimension which is wrong in vertical-writing mode.

(WebCore::RenderTable::bordersPaddingAndSpacingInRowDirection):
Changed to call borderSpacingInRowDirection. Added a comment as to why we don't add border-spacing on
border-collapse: separate tables.

LayoutTests:

* fast/table/empty-table-should-take-no-space-expected.html: Added.
* fast/table/empty-table-should-take-no-space.html: Added.
* fast/table/fixed-table-layout/empty-table-should-take-no-space-fixed-layout-expected.html: Added.
* fast/table/fixed-table-layout/empty-table-should-take-no-space-fixed-layout.html: Added.
2 new tests to check that empty tables have 0px logical width.

* platform/chromium-linux/tables/mozilla/bugs/bug56563-expected.png:
* platform/chromium-win/tables/mozilla/bugs/bug56563-expected.txt:
* platform/mac/tables/mozilla/bugs/bug56563-expected.txt:
* platform/qt/tables/mozilla/bugs/bug56563-expected.txt:
* tables/mozilla/bugs/bug56563-expected.txt:
Progression. The table now is 2px wide as it has a 1px right & left border.

* platform/chromium-linux/fast/invalid/residual-style-expected.txt:
Progression. The changes are due to the tables shrinking which is expected.

* platform/chromium-linux/fast/forms/file/file-input-disabled-expected.txt:
* platform/chromium-mac/fast/forms/file/file-input-disabled-expected.txt:
* platform/chromium-mac/tables/mozilla/bugs/bug113235-2-expected.txt:
* platform/chromium-win-xp/fast/forms/file-input-disabled-expected.txt:
* platform/chromium-win/fast/forms/file/file-input-disabled-expected.txt:
* platform/chromium-win/fast/invalid/017-expected.txt:
* platform/chromium-win/fast/invalid/018-expected.txt:
* platform/chromium-win/fast/invalid/020-expected.txt:
* platform/chromium-win/fast/invalid/table-inside-stray-table-content-expected.txt:
* platform/chromium-win/tables/mozilla/bugs/bug113235-2-expected.txt:
* platform/chromium-win/tables/mozilla/bugs/bug23994-expected.txt:
* platform/chromium-win/tables/mozilla/bugs/bug56405-expected.txt:
* platform/efl/fast/forms/file/file-input-disabled-expected.txt:
* platform/efl/fast/invalid/017-expected.txt:
* platform/efl/fast/invalid/018-expected.txt:
* platform/efl/fast/invalid/020-expected.txt:
* platform/efl/fast/invalid/table-inside-stray-table-content-expected.txt:
* platform/efl/fast/invalid/table-residual-style-crash-expected.txt:
* platform/efl/tables/mozilla/bugs/bug23994-expected.txt:
* platform/efl/tables/mozilla/bugs/bug56405-expected.txt:
* platform/gtk/fast/forms/file/file-input-disabled-expected.txt:
* platform/gtk/fast/invalid/017-expected.txt:
* platform/gtk/fast/invalid/018-expected.txt:
* platform/gtk/fast/invalid/020-expected.txt:
* platform/gtk/fast/invalid/table-inside-stray-table-content-expected.txt:
* platform/gtk/fast/invalid/table-residual-style-crash-expected.txt:
* platform/gtk/tables/mozilla/bugs/bug23994-expected.txt:
* platform/gtk/tables/mozilla/bugs/bug56405-expected.txt:
* platform/mac/fast/forms/file/file-input-disabled-expected.txt:
* platform/mac/fast/invalid/017-expected.txt:
* platform/mac/fast/invalid/018-expected.txt:
* platform/mac/fast/invalid/020-expected.txt:
* platform/mac/fast/invalid/table-inside-stray-table-content-expected.txt:
* platform/mac/fast/invalid/table-residual-style-crash-expected.txt:
* platform/mac/tables/mozilla/bugs/bug113235-2-expected.txt:
* platform/mac/tables/mozilla/bugs/bug23994-expected.txt:
* platform/mac/tables/mozilla/bugs/bug56405-expected.txt:
* platform/qt/fast/forms/file/file-input-disabled-expected.txt:
* platform/qt/fast/invalid/017-expected.txt:
* platform/qt/fast/invalid/018-expected.txt:
* platform/qt/fast/invalid/020-expected.txt:
* platform/qt/fast/invalid/table-inside-stray-table-content-expected.txt:
* platform/qt/fast/invalid/table-residual-style-crash-expected.txt:
* platform/qt/tables/mozilla/bugs/bug113235-2-expected.txt:
* platform/qt/tables/mozilla/bugs/bug23994-expected.txt:
* platform/qt/tables/mozilla/bugs/bug56405-expected.txt:
* platform/win/fast/forms/file-input-disabled-expected.txt:
* platform/win/fast/forms/file/file-input-disabled-expected.txt:
* tables/mozilla/bugs/bug113235-2-expected.txt:
Progression. The tables now have a 0px logical width. In some cases, we add the border-spacing in the
block-flow direction if we have a row. This is not consistently handled by browsers and not very well
defined in CSS.

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

62 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/table/empty-table-should-take-no-space-expected.html [new file with mode: 0755]
LayoutTests/fast/table/empty-table-should-take-no-space.html [new file with mode: 0755]
LayoutTests/fast/table/fixed-table-layout/empty-table-should-take-no-space-fixed-layout-expected.html [new file with mode: 0755]
LayoutTests/fast/table/fixed-table-layout/empty-table-should-take-no-space-fixed-layout.html [new file with mode: 0755]
LayoutTests/platform/chromium-linux/fast/forms/file/file-input-disabled-expected.txt
LayoutTests/platform/chromium-linux/fast/invalid/residual-style-expected.txt
LayoutTests/platform/chromium-linux/tables/mozilla/bugs/bug56563-expected.png
LayoutTests/platform/chromium-mac/fast/forms/file/file-input-disabled-expected.txt
LayoutTests/platform/chromium-mac/tables/mozilla/bugs/bug113235-2-expected.txt
LayoutTests/platform/chromium-win-xp/fast/forms/file-input-disabled-expected.txt
LayoutTests/platform/chromium-win/fast/forms/file/file-input-disabled-expected.txt
LayoutTests/platform/chromium-win/fast/invalid/017-expected.txt
LayoutTests/platform/chromium-win/fast/invalid/018-expected.txt
LayoutTests/platform/chromium-win/fast/invalid/020-expected.txt
LayoutTests/platform/chromium-win/fast/invalid/table-inside-stray-table-content-expected.txt
LayoutTests/platform/chromium-win/tables/mozilla/bugs/bug113235-2-expected.txt
LayoutTests/platform/chromium-win/tables/mozilla/bugs/bug23994-expected.txt
LayoutTests/platform/chromium-win/tables/mozilla/bugs/bug56405-expected.txt
LayoutTests/platform/chromium-win/tables/mozilla/bugs/bug56563-expected.txt
LayoutTests/platform/efl/fast/forms/file/file-input-disabled-expected.txt
LayoutTests/platform/efl/fast/invalid/017-expected.txt
LayoutTests/platform/efl/fast/invalid/018-expected.txt
LayoutTests/platform/efl/fast/invalid/020-expected.txt
LayoutTests/platform/efl/fast/invalid/table-inside-stray-table-content-expected.txt
LayoutTests/platform/efl/fast/invalid/table-residual-style-crash-expected.txt
LayoutTests/platform/efl/tables/mozilla/bugs/bug23994-expected.txt
LayoutTests/platform/efl/tables/mozilla/bugs/bug56405-expected.txt
LayoutTests/platform/gtk/fast/forms/file/file-input-disabled-expected.txt
LayoutTests/platform/gtk/fast/invalid/017-expected.txt
LayoutTests/platform/gtk/fast/invalid/018-expected.txt
LayoutTests/platform/gtk/fast/invalid/020-expected.txt
LayoutTests/platform/gtk/fast/invalid/table-inside-stray-table-content-expected.txt
LayoutTests/platform/gtk/fast/invalid/table-residual-style-crash-expected.txt
LayoutTests/platform/gtk/tables/mozilla/bugs/bug23994-expected.txt
LayoutTests/platform/gtk/tables/mozilla/bugs/bug56405-expected.txt
LayoutTests/platform/mac/fast/forms/file/file-input-disabled-expected.txt
LayoutTests/platform/mac/fast/invalid/017-expected.txt
LayoutTests/platform/mac/fast/invalid/018-expected.txt
LayoutTests/platform/mac/fast/invalid/020-expected.txt
LayoutTests/platform/mac/fast/invalid/table-inside-stray-table-content-expected.txt
LayoutTests/platform/mac/fast/invalid/table-residual-style-crash-expected.txt
LayoutTests/platform/mac/tables/mozilla/bugs/bug113235-2-expected.txt
LayoutTests/platform/mac/tables/mozilla/bugs/bug23994-expected.txt
LayoutTests/platform/mac/tables/mozilla/bugs/bug56405-expected.txt
LayoutTests/platform/mac/tables/mozilla/bugs/bug56563-expected.txt
LayoutTests/platform/qt/fast/forms/file/file-input-disabled-expected.txt
LayoutTests/platform/qt/fast/invalid/017-expected.txt
LayoutTests/platform/qt/fast/invalid/018-expected.txt
LayoutTests/platform/qt/fast/invalid/020-expected.txt
LayoutTests/platform/qt/fast/invalid/table-inside-stray-table-content-expected.txt
LayoutTests/platform/qt/fast/invalid/table-residual-style-crash-expected.txt
LayoutTests/platform/qt/tables/mozilla/bugs/bug113235-2-expected.txt
LayoutTests/platform/qt/tables/mozilla/bugs/bug23994-expected.txt
LayoutTests/platform/qt/tables/mozilla/bugs/bug56405-expected.txt
LayoutTests/platform/qt/tables/mozilla/bugs/bug56563-expected.txt
LayoutTests/platform/win/fast/forms/file-input-disabled-expected.txt
LayoutTests/platform/win/fast/forms/file/file-input-disabled-expected.txt
LayoutTests/tables/mozilla/bugs/bug113235-2-expected.txt
LayoutTests/tables/mozilla/bugs/bug56563-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderTable.h

index 0dd40fd..cd5fb30 100644 (file)
@@ -1,3 +1,79 @@
+2012-09-18  Julien Chaffraix  <jchaffraix@webkit.org>
+
+        Tables without any descendant and auto logical width should have a 0px logical width
+        https://bugs.webkit.org/show_bug.cgi?id=95521
+
+        Reviewed by Abhishek Arya.
+
+        * fast/table/empty-table-should-take-no-space-expected.html: Added.
+        * fast/table/empty-table-should-take-no-space.html: Added.
+        * fast/table/fixed-table-layout/empty-table-should-take-no-space-fixed-layout-expected.html: Added.
+        * fast/table/fixed-table-layout/empty-table-should-take-no-space-fixed-layout.html: Added.
+        2 new tests to check that empty tables have 0px logical width.
+
+        * platform/chromium-linux/tables/mozilla/bugs/bug56563-expected.png:
+        * platform/chromium-win/tables/mozilla/bugs/bug56563-expected.txt:
+        * platform/mac/tables/mozilla/bugs/bug56563-expected.txt:
+        * platform/qt/tables/mozilla/bugs/bug56563-expected.txt:
+        * tables/mozilla/bugs/bug56563-expected.txt:
+        Progression. The table now is 2px wide as it has a 1px right & left border.
+
+        * platform/chromium-linux/fast/invalid/residual-style-expected.txt:
+        Progression. The changes are due to the tables shrinking which is expected.
+
+        * platform/chromium-linux/fast/forms/file/file-input-disabled-expected.txt:
+        * platform/chromium-mac/fast/forms/file/file-input-disabled-expected.txt:
+        * platform/chromium-mac/tables/mozilla/bugs/bug113235-2-expected.txt:
+        * platform/chromium-win-xp/fast/forms/file-input-disabled-expected.txt:
+        * platform/chromium-win/fast/forms/file/file-input-disabled-expected.txt:
+        * platform/chromium-win/fast/invalid/017-expected.txt:
+        * platform/chromium-win/fast/invalid/018-expected.txt:
+        * platform/chromium-win/fast/invalid/020-expected.txt:
+        * platform/chromium-win/fast/invalid/table-inside-stray-table-content-expected.txt:
+        * platform/chromium-win/tables/mozilla/bugs/bug113235-2-expected.txt:
+        * platform/chromium-win/tables/mozilla/bugs/bug23994-expected.txt:
+        * platform/chromium-win/tables/mozilla/bugs/bug56405-expected.txt:
+        * platform/efl/fast/forms/file/file-input-disabled-expected.txt:
+        * platform/efl/fast/invalid/017-expected.txt:
+        * platform/efl/fast/invalid/018-expected.txt:
+        * platform/efl/fast/invalid/020-expected.txt:
+        * platform/efl/fast/invalid/table-inside-stray-table-content-expected.txt:
+        * platform/efl/fast/invalid/table-residual-style-crash-expected.txt:
+        * platform/efl/tables/mozilla/bugs/bug23994-expected.txt:
+        * platform/efl/tables/mozilla/bugs/bug56405-expected.txt:
+        * platform/gtk/fast/forms/file/file-input-disabled-expected.txt:
+        * platform/gtk/fast/invalid/017-expected.txt:
+        * platform/gtk/fast/invalid/018-expected.txt:
+        * platform/gtk/fast/invalid/020-expected.txt:
+        * platform/gtk/fast/invalid/table-inside-stray-table-content-expected.txt:
+        * platform/gtk/fast/invalid/table-residual-style-crash-expected.txt:
+        * platform/gtk/tables/mozilla/bugs/bug23994-expected.txt:
+        * platform/gtk/tables/mozilla/bugs/bug56405-expected.txt:
+        * platform/mac/fast/forms/file/file-input-disabled-expected.txt:
+        * platform/mac/fast/invalid/017-expected.txt:
+        * platform/mac/fast/invalid/018-expected.txt:
+        * platform/mac/fast/invalid/020-expected.txt:
+        * platform/mac/fast/invalid/table-inside-stray-table-content-expected.txt:
+        * platform/mac/fast/invalid/table-residual-style-crash-expected.txt:
+        * platform/mac/tables/mozilla/bugs/bug113235-2-expected.txt:
+        * platform/mac/tables/mozilla/bugs/bug23994-expected.txt:
+        * platform/mac/tables/mozilla/bugs/bug56405-expected.txt:
+        * platform/qt/fast/forms/file/file-input-disabled-expected.txt:
+        * platform/qt/fast/invalid/017-expected.txt:
+        * platform/qt/fast/invalid/018-expected.txt:
+        * platform/qt/fast/invalid/020-expected.txt:
+        * platform/qt/fast/invalid/table-inside-stray-table-content-expected.txt:
+        * platform/qt/fast/invalid/table-residual-style-crash-expected.txt:
+        * platform/qt/tables/mozilla/bugs/bug113235-2-expected.txt:
+        * platform/qt/tables/mozilla/bugs/bug23994-expected.txt:
+        * platform/qt/tables/mozilla/bugs/bug56405-expected.txt:
+        * platform/win/fast/forms/file-input-disabled-expected.txt:
+        * platform/win/fast/forms/file/file-input-disabled-expected.txt:
+        * tables/mozilla/bugs/bug113235-2-expected.txt:
+        Progression. The tables now have a 0px logical width. In some cases, we add the border-spacing in the
+        block-flow direction if we have a row. This is not consistently handled by browsers and not very well
+        defined in CSS.
+
 2012-09-18  Zan Dobersek  <zandobersek@gmail.com>
 
         Unreviewed GTK gardening.
diff --git a/LayoutTests/fast/table/empty-table-should-take-no-space-expected.html b/LayoutTests/fast/table/empty-table-should-take-no-space-expected.html
new file mode 100755 (executable)
index 0000000..11642a3
--- /dev/null
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+<body>
+<style>
+span {
+    background-color: green;
+    color: green;
+}
+
+.vertical-rectangle {
+    background-color: green;
+    color: green;
+    height: 20px;
+    width: 40px;
+}
+</style>
+<div>Bug <a href="https://webkit.org/b/95521">95521</a>: Tables without any descendant and auto logical width should have a 0px logical width</div>
+<div>Description: This test checks that an auto table without any cells doesn't take any space.</div>
+<div>There should be 2 green horizontal rectangles with no empty or red space below.</div>
+<div>
+    <span>xxxxxxxxxx</span>
+</div>
+<br>
+<div class="vertical-rectangle"><div>
+</body>
+</html>
diff --git a/LayoutTests/fast/table/empty-table-should-take-no-space.html b/LayoutTests/fast/table/empty-table-should-take-no-space.html
new file mode 100755 (executable)
index 0000000..5bb8490
--- /dev/null
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html>
+<body>
+<style>
+span {
+    background-color: green;
+    color: green;
+}
+
+.sandwich {
+    background-color: green;
+    color: green;
+    height: 20px;
+    width: 20px;
+}
+
+.inline-table {
+    display: inline-table;
+    border-spacing: 20px;
+    background-color: red;
+}
+
+table {
+    background-color: red;
+}
+</style>
+<div>Bug <a href="https://webkit.org/b/95521">95521</a>: Tables without any descendant and auto logical width should have a 0px logical width</div>
+<div>Description: This test checks that an auto table without any cells doesn't take any space.</div>
+<div>There should be 2 green horizontal rectangles with no empty or red space below.</div>
+<div>
+    <span>xxxxx</span><div class="inline-table"></div><span>xxxxx</span>
+</div>
+<br>
+<div style="-webkit-writing-mode: vertical-lr">
+    <div class="sandwich"></div>
+    <table cellspacing="20px"></table>
+    <div class="sandwich"></div>
+<div>
+</body>
+</html>
diff --git a/LayoutTests/fast/table/fixed-table-layout/empty-table-should-take-no-space-fixed-layout-expected.html b/LayoutTests/fast/table/fixed-table-layout/empty-table-should-take-no-space-fixed-layout-expected.html
new file mode 100755 (executable)
index 0000000..11642a3
--- /dev/null
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+<body>
+<style>
+span {
+    background-color: green;
+    color: green;
+}
+
+.vertical-rectangle {
+    background-color: green;
+    color: green;
+    height: 20px;
+    width: 40px;
+}
+</style>
+<div>Bug <a href="https://webkit.org/b/95521">95521</a>: Tables without any descendant and auto logical width should have a 0px logical width</div>
+<div>Description: This test checks that an auto table without any cells doesn't take any space.</div>
+<div>There should be 2 green horizontal rectangles with no empty or red space below.</div>
+<div>
+    <span>xxxxxxxxxx</span>
+</div>
+<br>
+<div class="vertical-rectangle"><div>
+</body>
+</html>
diff --git a/LayoutTests/fast/table/fixed-table-layout/empty-table-should-take-no-space-fixed-layout.html b/LayoutTests/fast/table/fixed-table-layout/empty-table-should-take-no-space-fixed-layout.html
new file mode 100755 (executable)
index 0000000..c0b544f
--- /dev/null
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html>
+<body>
+<style>
+span {
+    background-color: green;
+    color: green;
+}
+
+.sandwich {
+    background-color: green;
+    color: green;
+    height: 20px;
+    width: 20px;
+}
+
+.inline-table {
+    display: inline-table;
+    table-layout: fixed;
+    border-spacing: 20px;
+    background-color: red;
+}
+
+table {
+    background-color: red;
+}
+</style>
+<div>Bug <a href="https://webkit.org/b/95521">95521</a>: Tables without any descendant and auto logical width should have a 0px logical width</div>
+<div>Description: This test checks that an auto table without any cells doesn't take any space.</div>
+<div>There should be 2 green horizontal rectangles with no empty or red space below.</div>
+<div>
+    <span>xxxxx</span><div class="inline-table"></div><span>xxxxx</span>
+</div>
+<br>
+<div style="-webkit-writing-mode: vertical-lr">
+    <div class="sandwich"></div>
+    <table cellspacing="20px" style="table-layout: fixed"></table>
+    <div class="sandwich"></div>
+<div>
+</body>
+</html>
index 6ac27dc..52127b3 100644 (file)
@@ -19,4 +19,4 @@ layer at (0,0) size 800x600
                 RenderText at (0,0) size 69x16
                   text run at (0,0) width 69: "Choose File"
           RenderBR {BR} at (324,59) size 0x0
-        RenderTable {TABLE} at (0,67) size 2x0
+        RenderTable {TABLE} at (0,67) size 0x0
index f522332..69993b4 100644 (file)
@@ -141,12 +141,12 @@ layer at (0,0) size 785x3623
       RenderBlock (anonymous) at (0,613) size 769x21
         RenderText {#text} at (0,0) size 76x19
           text run at (0,0) width 76: "CAPTION: "
-        RenderInline {FONT} at (0,0) size 162x19 [color=#008000]
-          RenderTable {TABLE} at (76,15) size 2x0
-            RenderBlock {CAPTION} at (0,0) size 2x0
+        RenderInline {FONT} at (0,0) size 160x19 [color=#008000]
+          RenderTable {TABLE} at (76,15) size 0x0
+            RenderBlock {CAPTION} at (0,0) size 0x0
               RenderInline {FONT} at (0,0) size 0x0 [color=#FF0000]
-          RenderText {#text} at (78,0) size 160x19
-            text run at (78,0) width 160: "All of this should be green."
+          RenderText {#text} at (76,0) size 160x19
+            text run at (76,0) width 160: "All of this should be green."
         RenderText {#text} at (0,0) size 0x0
       RenderBlock {HR} at (0,641) size 769x3 [border: (1px inset #000000)]
       RenderBlock (anonymous) at (0,651) size 769x21
@@ -182,26 +182,26 @@ layer at (0,0) size 785x3623
       RenderBlock (anonymous) at (0,765) size 769x21
         RenderText {#text} at (0,0) size 39x19
           text run at (0,0) width 39: "COL: "
-        RenderInline {FONT} at (0,0) size 162x19 [color=#008000]
+        RenderInline {FONT} at (0,0) size 160x19 [color=#008000]
           RenderInline {FONT} at (0,0) size 0x19 [color=#FF0000]
-          RenderTable {TABLE} at (39,15) size 2x0
+          RenderTable {TABLE} at (39,15) size 0x0
             RenderTableCol {COLGROUP} at (0,0) size 0x0
               RenderTableCol {COL} at (0,0) size 0x0
           RenderInline {FONT} at (0,0) size 160x19 [color=#FF0000]
-            RenderText {#text} at (41,0) size 160x19
-              text run at (41,0) width 160: "All of this should be green."
+            RenderText {#text} at (39,0) size 160x19
+              text run at (39,0) width 160: "All of this should be green."
         RenderText {#text} at (0,0) size 0x0
       RenderBlock {HR} at (0,793) size 769x3 [border: (1px inset #000000)]
       RenderBlock (anonymous) at (0,803) size 769x21
         RenderText {#text} at (0,0) size 92x19
           text run at (0,0) width 92: "COLGROUP: "
-        RenderInline {FONT} at (0,0) size 162x19 [color=#008000]
+        RenderInline {FONT} at (0,0) size 160x19 [color=#008000]
           RenderInline {FONT} at (0,0) size 0x19 [color=#FF0000]
-          RenderTable {TABLE} at (92,15) size 2x0
+          RenderTable {TABLE} at (92,15) size 0x0
             RenderTableCol {COLGROUP} at (0,0) size 0x0
           RenderInline {FONT} at (0,0) size 160x19 [color=#FF0000]
-            RenderText {#text} at (94,0) size 160x19
-              text run at (94,0) width 160: "All of this should be green."
+            RenderText {#text} at (92,0) size 160x19
+              text run at (92,0) width 160: "All of this should be green."
         RenderText {#text} at (0,0) size 0x0
       RenderBlock {HR} at (0,831) size 769x3 [border: (1px inset #000000)]
       RenderBlock (anonymous) at (0,841) size 769x21
@@ -719,26 +719,26 @@ layer at (0,0) size 785x3623
       RenderBlock (anonymous) at (0,3195) size 769x21
         RenderText {#text} at (0,0) size 55x19
           text run at (0,0) width 55: "TABLE: "
-        RenderInline {FONT} at (0,0) size 162x19 [color=#008000]
+        RenderInline {FONT} at (0,0) size 160x19 [color=#008000]
           RenderInline {FONT} at (0,0) size 0x19 [color=#FF0000]
-          RenderTable {TABLE} at (55,15) size 2x0
+          RenderTable {TABLE} at (55,15) size 0x0
           RenderInline {FONT} at (0,0) size 160x19 [color=#FF0000]
-            RenderText {#text} at (57,0) size 160x19
-              text run at (57,0) width 160: "All of this should be green."
+            RenderText {#text} at (55,0) size 160x19
+              text run at (55,0) width 160: "All of this should be green."
           RenderText {#text} at (0,0) size 0x0
       RenderBlock (anonymous) at (0,3223) size 769x3 [color=#008000]
         RenderBlock {HR} at (0,0) size 769x2 [border: (1px inset #008000)]
       RenderBlock (anonymous) at (0,3233) size 769x21
-        RenderInline {FONT} at (0,0) size 222x19 [color=#008000]
+        RenderInline {FONT} at (0,0) size 220x19 [color=#008000]
           RenderText {#text} at (0,0) size 60x19
             text run at (0,0) width 60: "TBODY: "
-          RenderInline {FONT} at (0,0) size 162x19
+          RenderInline {FONT} at (0,0) size 160x19
             RenderInline {FONT} at (0,0) size 0x19
-            RenderTable {TABLE} at (60,13) size 2x2
-              RenderTableSection {TBODY} at (0,0) size 2x2
+            RenderTable {TABLE} at (60,13) size 0x2
+              RenderTableSection {TBODY} at (0,0) size 0x2
             RenderInline {FONT} at (0,0) size 160x19
-              RenderText {#text} at (62,0) size 160x19
-                text run at (62,0) width 160: "All of this should be green."
+              RenderText {#text} at (60,0) size 160x19
+                text run at (60,0) width 160: "All of this should be green."
             RenderText {#text} at (0,0) size 0x0
       RenderBlock (anonymous) at (0,3261) size 769x3 [color=#008000]
         RenderBlock {HR} at (0,0) size 769x2 [border: (1px inset #008000)]
@@ -759,51 +759,51 @@ layer at (0,0) size 785x3623
       RenderBlock (anonymous) at (0,3299) size 769x3 [color=#008000]
         RenderBlock {HR} at (0,0) size 769x2 [border: (1px inset #008000)]
       RenderBlock (anonymous) at (0,3309) size 769x21
-        RenderInline {FONT} at (0,0) size 220x19 [color=#008000]
-          RenderInline {FONT} at (0,0) size 220x19
+        RenderInline {FONT} at (0,0) size 218x19 [color=#008000]
+          RenderInline {FONT} at (0,0) size 218x19
             RenderText {#text} at (0,0) size 58x19
               text run at (0,0) width 58: "TFOOT: "
-            RenderInline {FONT} at (0,0) size 162x19
+            RenderInline {FONT} at (0,0) size 160x19
               RenderInline {FONT} at (0,0) size 0x19
-              RenderTable {TABLE} at (58,13) size 2x2
-                RenderTableSection {TFOOT} at (0,0) size 2x2
+              RenderTable {TABLE} at (58,13) size 0x2
+                RenderTableSection {TFOOT} at (0,0) size 0x2
               RenderInline {FONT} at (0,0) size 160x19
-                RenderText {#text} at (60,0) size 160x19
-                  text run at (60,0) width 160: "All of this should be green."
+                RenderText {#text} at (58,0) size 160x19
+                  text run at (58,0) width 160: "All of this should be green."
               RenderText {#text} at (0,0) size 0x0
       RenderBlock (anonymous) at (0,3337) size 769x3 [color=#008000]
         RenderBlock {HR} at (0,0) size 769x2 [border: (1px inset #008000)]
       RenderBlock (anonymous) at (0,3347) size 769x21
-        RenderInline {FONT} at (0,0) size 220x19 [color=#008000]
-          RenderInline {FONT} at (0,0) size 220x19
-            RenderInline {FONT} at (0,0) size 220x19
+        RenderInline {FONT} at (0,0) size 218x19 [color=#008000]
+          RenderInline {FONT} at (0,0) size 218x19
+            RenderInline {FONT} at (0,0) size 218x19
               RenderText {#text} at (0,0) size 58x19
                 text run at (0,0) width 58: "THEAD: "
-              RenderInline {FONT} at (0,0) size 162x19
+              RenderInline {FONT} at (0,0) size 160x19
                 RenderInline {FONT} at (0,0) size 0x19
-                RenderTable {TABLE} at (58,13) size 2x2
-                  RenderTableSection {THEAD} at (0,0) size 2x2
+                RenderTable {TABLE} at (58,13) size 0x2
+                  RenderTableSection {THEAD} at (0,0) size 0x2
                 RenderInline {FONT} at (0,0) size 160x19
-                  RenderText {#text} at (60,0) size 160x19
-                    text run at (60,0) width 160: "All of this should be green."
+                  RenderText {#text} at (58,0) size 160x19
+                    text run at (58,0) width 160: "All of this should be green."
                 RenderText {#text} at (0,0) size 0x0
       RenderBlock (anonymous) at (0,3375) size 769x3 [color=#008000]
         RenderBlock {HR} at (0,0) size 769x2 [border: (1px inset #008000)]
       RenderBlock (anonymous) at (0,3385) size 769x21
-        RenderInline {FONT} at (0,0) size 188x19 [color=#008000]
-          RenderInline {FONT} at (0,0) size 188x19
-            RenderInline {FONT} at (0,0) size 188x19
-              RenderInline {FONT} at (0,0) size 188x19
+        RenderInline {FONT} at (0,0) size 186x19 [color=#008000]
+          RenderInline {FONT} at (0,0) size 186x19
+            RenderInline {FONT} at (0,0) size 186x19
+              RenderInline {FONT} at (0,0) size 186x19
                 RenderText {#text} at (0,0) size 26x19
                   text run at (0,0) width 26: "TR: "
-                RenderInline {FONT} at (0,0) size 162x19
+                RenderInline {FONT} at (0,0) size 160x19
                   RenderInline {FONT} at (0,0) size 0x19
-                  RenderTable {TABLE} at (26,11) size 2x4
-                    RenderTableSection {TBODY} at (0,0) size 2x4
-                      RenderTableRow {TR} at (0,2) size 2x0
+                  RenderTable {TABLE} at (26,11) size 0x4
+                    RenderTableSection {TBODY} at (0,0) size 0x4
+                      RenderTableRow {TR} at (0,2) size 0x0
                   RenderInline {FONT} at (0,0) size 160x19
-                    RenderText {#text} at (28,0) size 160x19
-                      text run at (28,0) width 160: "All of this should be green."
+                    RenderText {#text} at (26,0) size 160x19
+                      text run at (26,0) width 160: "All of this should be green."
                   RenderText {#text} at (0,0) size 0x0
       RenderBlock (anonymous) at (0,3413) size 769x3 [color=#008000]
         RenderBlock {HR} at (0,0) size 769x2 [border: (1px inset #008000)]
index f317d69..dd51929 100644 (file)
Binary files a/LayoutTests/platform/chromium-linux/tables/mozilla/bugs/bug56563-expected.png and b/LayoutTests/platform/chromium-linux/tables/mozilla/bugs/bug56563-expected.png differ
index 9ee3cb0..dd1f6df 100644 (file)
@@ -19,4 +19,4 @@ layer at (0,0) size 800x600
                 RenderText at (0,0) size 62x13
                   text run at (0,0) width 62: "Choose File"
           RenderBR {BR} at (327,52) size 0x0
-        RenderTable {TABLE} at (0,59) size 2x0
+        RenderTable {TABLE} at (0,59) size 0x0
index 096d2ca..54fcb0a 100644 (file)
@@ -15,8 +15,8 @@ layer at (0,0) size 800x600
           RenderInline {A} at (0,0) size 169x22
             RenderText {#text} at (0,0) size 169x22
               text run at (0,0) width 169: "Table of Contents"
-        RenderTable {TABLE} at (0,39) size 2x5
-          RenderTableSection {TBODY} at (0,0) size 2x4
-            RenderTableRow {TR} at (0,2) size 2x0
+        RenderTable {TABLE} at (0,39) size 0x5
+          RenderTableSection {TBODY} at (0,0) size 0x4
+            RenderTableRow {TR} at (0,2) size 0x0
       RenderBlock (anonymous) at (0,74) size 784x1
         RenderInline {FONT} at (0,0) size 0x0
index 571acdc..72770b4 100644 (file)
@@ -19,4 +19,4 @@ layer at (0,0) size 800x600
                 RenderText at (0,0) size 69x16
                   text run at (0,0) width 69: "Choose File"
           RenderBR {BR} at (324,59) size 0x0
-        RenderTable {TABLE} at (0,67) size 2x0
+        RenderTable {TABLE} at (0,67) size 0x0
index 8ef1793..24ade87 100644 (file)
@@ -19,4 +19,4 @@ layer at (0,0) size 800x600
                 RenderText at (0,0) size 69x16
                   text run at (0,0) width 69: "Choose File"
           RenderBR {BR} at (324,59) size 0x0
-        RenderTable {TABLE} at (0,67) size 2x0
+        RenderTable {TABLE} at (0,67) size 0x0
index 1842b99..a1df2c7 100644 (file)
@@ -9,6 +9,6 @@ layer at (0,0) size 800x600
         RenderInline {A} at (0,0) size 147x19
           RenderText {#text} at (0,0) size 147x19
             text run at (0,0) width 147: "You should see this text."
-      RenderTable {TABLE} at (0,36) size 2x4
-        RenderTableSection {TBODY} at (0,0) size 2x4
-          RenderTableRow {TR} at (0,2) size 2x0
+      RenderTable {TABLE} at (0,36) size 0x4
+        RenderTableSection {TBODY} at (0,0) size 0x4
+          RenderTableRow {TR} at (0,2) size 0x0
index 77c74c2..aff891b 100644 (file)
@@ -13,9 +13,9 @@ layer at (0,0) size 800x600
           RenderTableRow {TR} at (0,2) size 6x2
             RenderTableCell {TD} at (2,2) size 2x2 [r=0 c=0 rs=1 cs=1]
           RenderTableRow {TR} at (0,6) size 6x0
-      RenderTable {TABLE} at (0,8) size 2x4
-        RenderTableSection {TBODY} at (0,0) size 2x4
-          RenderTableRow {TR} at (0,2) size 2x0
+      RenderTable {TABLE} at (0,8) size 0x4
+        RenderTableSection {TBODY} at (0,0) size 0x4
+          RenderTableRow {TR} at (0,2) size 0x0
       RenderBlock (anonymous) at (0,12) size 784x0
         RenderInline {FONT} at (0,0) size 0x0
           RenderText {#text} at (0,0) size 0x0
index ea16224..a5d7646 100644 (file)
@@ -6,6 +6,6 @@ layer at (0,0) size 800x36
       RenderBlock (anonymous) at (0,0) size 784x20
         RenderText {#text} at (0,0) size 27x19
           text run at (0,0) width 27: "Text"
-      RenderTable {table} at (0,20) size 2x0
+      RenderTable {table} at (0,20) size 0x0
       RenderTable at (0,20) size 0x0
         RenderTableCol {colgroup} at (0,0) size 0x0
index 96e29d5..289eea3 100644 (file)
@@ -9,7 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {DIV} at (0,36) size 784x86 [border: (2px solid #FF0000)]
         RenderBlock {DIV} at (2,2) size 780x50 [border: (10px solid #008000)]
           RenderBlock {DIV} at (10,10) size 760x14 [border: (2px solid #0000FF)]
-        RenderTable {TABLE} at (2,52) size 2x0
+        RenderTable {TABLE} at (2,52) size 0x0
         RenderTable {TABLE} at (2,52) size 46x32 [border: (2px outset #808080)]
           RenderTableSection {TBODY} at (2,2) size 42x28
             RenderTableRow {TR} at (0,2) size 42x24
index 8c420bc..cd378fc 100644 (file)
@@ -15,8 +15,8 @@ layer at (0,0) size 800x600
           RenderInline {A} at (0,0) size 169x24
             RenderText {#text} at (0,0) size 169x24
               text run at (0,0) width 169: "Table of Contents"
-        RenderTable {TABLE} at (0,41) size 2x5
-          RenderTableSection {TBODY} at (0,0) size 2x4
-            RenderTableRow {TR} at (0,2) size 2x0
+        RenderTable {TABLE} at (0,41) size 0x5
+          RenderTableSection {TBODY} at (0,0) size 0x4
+            RenderTableRow {TR} at (0,2) size 0x0
       RenderBlock (anonymous) at (0,77) size 784x1
         RenderInline {FONT} at (0,0) size 0x0
index bac8444..4028a45 100644 (file)
@@ -6,5 +6,5 @@ layer at (0,0) size 800x600
       RenderBlock (anonymous) at (0,0) size 784x20
         RenderText {#text} at (0,0) size 9x19
           text run at (0,0) width 9: ">"
-      RenderTable {TABLE} at (0,20) size 2x0
-        RenderBlock {CAPTION} at (0,0) size 2x0
+      RenderTable {TABLE} at (0,20) size 0x0
+        RenderBlock {CAPTION} at (0,0) size 0x0
index 25b4e4a..bb7d3d9 100644 (file)
@@ -3,7 +3,7 @@ layer at (0,0) size 785x1140
 layer at (0,0) size 785x1140
   RenderBlock {HTML} at (0,0) size 785x1140
     RenderBody {BODY} at (8,8) size 769x1124
-      RenderTable {TABLE} at (0,0) size 2x1078
+      RenderTable {TABLE} at (0,0) size 0x1078
       RenderTable {TABLE} at (0,1078) size 98x26
         RenderTableSection {TBODY} at (0,0) size 98x26
           RenderTableRow {TR} at (0,2) size 98x22
index a912b21..b1890cb 100644 (file)
@@ -13,4 +13,4 @@ layer at (0,0) size 800x600
       RenderBlock {P} at (0,36) size 784x40
         RenderImage {IMG} at (0,0) size 126x40
         RenderText {#text} at (0,0) size 0x0
-      RenderTable {TABLE} at (0,92) size 4x2 [border: (1px outset #808080)]
+      RenderTable {TABLE} at (0,92) size 2x2 [border: (1px outset #808080)]
index 384052e..1f52097 100644 (file)
@@ -19,4 +19,4 @@ layer at (0,0) size 800x600
                 RenderText at (0,0) size 87x19
                   text run at (0,0) width 87: "Choose File"
           RenderBR {BR} at (396,66) size 0x0
-        RenderTable {TABLE} at (0,83) size 2x0
+        RenderTable {TABLE} at (0,83) size 0x0
index f69cf7e..38472d4 100644 (file)
@@ -9,6 +9,6 @@ layer at (0,0) size 800x600
         RenderInline {A} at (0,0) size 155x19
           RenderText {#text} at (0,0) size 155x19
             text run at (0,0) width 155: "You should see this text."
-      RenderTable {TABLE} at (0,34) size 2x4
-        RenderTableSection {TBODY} at (0,0) size 2x4
-          RenderTableRow {TR} at (0,2) size 2x0
+      RenderTable {TABLE} at (0,34) size 0x4
+        RenderTableSection {TBODY} at (0,0) size 0x4
+          RenderTableRow {TR} at (0,2) size 0x0
index 67101c9..cdedf8a 100644 (file)
@@ -13,9 +13,9 @@ layer at (0,0) size 800x600
           RenderTableRow {TR} at (0,2) size 6x2
             RenderTableCell {TD} at (2,2) size 2x2 [r=0 c=0 rs=1 cs=1]
           RenderTableRow {TR} at (0,6) size 6x0
-      RenderTable {TABLE} at (0,8) size 2x4
-        RenderTableSection {TBODY} at (0,0) size 2x4
-          RenderTableRow {TR} at (0,2) size 2x0
+      RenderTable {TABLE} at (0,8) size 0x4
+        RenderTableSection {TBODY} at (0,0) size 0x4
+          RenderTableRow {TR} at (0,2) size 0x0
       RenderBlock (anonymous) at (0,12) size 784x0
         RenderInline {FONT} at (0,0) size 0x0
           RenderText {#text} at (0,0) size 0x0
index ec9f63f..fef929a 100644 (file)
@@ -6,6 +6,6 @@ layer at (0,0) size 800x34
       RenderBlock (anonymous) at (0,0) size 784x18
         RenderText {#text} at (0,0) size 29x19
           text run at (0,0) width 29: "Text"
-      RenderTable {table} at (0,18) size 2x0
+      RenderTable {table} at (0,18) size 0x0
       RenderTable at (0,18) size 0x0
         RenderTableCol {colgroup} at (0,0) size 0x0
index 99f74fc..f29b232 100644 (file)
@@ -9,7 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {DIV} at (0,34) size 784x84 [border: (2px solid #FF0000)]
         RenderBlock {DIV} at (2,2) size 780x50 [border: (10px solid #008000)]
           RenderBlock {DIV} at (10,10) size 760x14 [border: (2px solid #0000FF)]
-        RenderTable {TABLE} at (2,52) size 2x0
+        RenderTable {TABLE} at (2,52) size 0x0
         RenderTable {TABLE} at (2,52) size 48x30 [border: (2px outset #808080)]
           RenderTableSection {TBODY} at (2,2) size 44x26
             RenderTableRow {TR} at (0,2) size 44x22
index ec35d1d..7120756 100644 (file)
@@ -10,4 +10,4 @@ layer at (0,0) size 800x600
         RenderBlock {FORM} at (0,0) size 784x0
       RenderBlock (anonymous) at (0,0) size 784x0
         RenderInline {FONT} at (0,0) size 0x0
-      RenderTable {TABLE} at (0,0) size 2x0
+      RenderTable {TABLE} at (0,0) size 0x0
index e9119d4..9e09358 100644 (file)
@@ -6,5 +6,5 @@ layer at (0,0) size 800x600
       RenderBlock (anonymous) at (0,0) size 784x18
         RenderText {#text} at (0,0) size 9x19
           text run at (0,0) width 9: ">"
-      RenderTable {TABLE} at (0,18) size 2x0
-        RenderBlock {CAPTION} at (0,0) size 2x0
+      RenderTable {TABLE} at (0,18) size 0x0
+        RenderBlock {CAPTION} at (0,0) size 0x0
index f03ca68..bc9c0ce 100644 (file)
@@ -3,7 +3,7 @@ layer at (0,0) size 785x1136
 layer at (0,0) size 785x1136
   RenderBlock {HTML} at (0,0) size 785x1136
     RenderBody {BODY} at (8,8) size 769x1120
-      RenderTable {TABLE} at (0,0) size 2x1078
+      RenderTable {TABLE} at (0,0) size 0x1078
       RenderTable {TABLE} at (0,1078) size 102x24
         RenderTableSection {TBODY} at (0,0) size 102x24
           RenderTableRow {TR} at (0,2) size 102x20
index 1d98a3a..7330c05 100644 (file)
@@ -19,4 +19,4 @@ layer at (0,0) size 800x600
                 RenderText at (0,0) size 87x19
                   text run at (0,0) width 87: "Choose File"
           RenderBR {BR} at (396,61) size 0x0
-        RenderTable {TABLE} at (0,71) size 2x0
+        RenderTable {TABLE} at (0,71) size 0x0
index f69cf7e..38472d4 100644 (file)
@@ -9,6 +9,6 @@ layer at (0,0) size 800x600
         RenderInline {A} at (0,0) size 155x19
           RenderText {#text} at (0,0) size 155x19
             text run at (0,0) width 155: "You should see this text."
-      RenderTable {TABLE} at (0,34) size 2x4
-        RenderTableSection {TBODY} at (0,0) size 2x4
-          RenderTableRow {TR} at (0,2) size 2x0
+      RenderTable {TABLE} at (0,34) size 0x4
+        RenderTableSection {TBODY} at (0,0) size 0x4
+          RenderTableRow {TR} at (0,2) size 0x0
index 67101c9..cdedf8a 100644 (file)
@@ -13,9 +13,9 @@ layer at (0,0) size 800x600
           RenderTableRow {TR} at (0,2) size 6x2
             RenderTableCell {TD} at (2,2) size 2x2 [r=0 c=0 rs=1 cs=1]
           RenderTableRow {TR} at (0,6) size 6x0
-      RenderTable {TABLE} at (0,8) size 2x4
-        RenderTableSection {TBODY} at (0,0) size 2x4
-          RenderTableRow {TR} at (0,2) size 2x0
+      RenderTable {TABLE} at (0,8) size 0x4
+        RenderTableSection {TBODY} at (0,0) size 0x4
+          RenderTableRow {TR} at (0,2) size 0x0
       RenderBlock (anonymous) at (0,12) size 784x0
         RenderInline {FONT} at (0,0) size 0x0
           RenderText {#text} at (0,0) size 0x0
index ec9f63f..fef929a 100644 (file)
@@ -6,6 +6,6 @@ layer at (0,0) size 800x34
       RenderBlock (anonymous) at (0,0) size 784x18
         RenderText {#text} at (0,0) size 29x19
           text run at (0,0) width 29: "Text"
-      RenderTable {table} at (0,18) size 2x0
+      RenderTable {table} at (0,18) size 0x0
       RenderTable at (0,18) size 0x0
         RenderTableCol {colgroup} at (0,0) size 0x0
index 99f74fc..f29b232 100644 (file)
@@ -9,7 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {DIV} at (0,34) size 784x84 [border: (2px solid #FF0000)]
         RenderBlock {DIV} at (2,2) size 780x50 [border: (10px solid #008000)]
           RenderBlock {DIV} at (10,10) size 760x14 [border: (2px solid #0000FF)]
-        RenderTable {TABLE} at (2,52) size 2x0
+        RenderTable {TABLE} at (2,52) size 0x0
         RenderTable {TABLE} at (2,52) size 48x30 [border: (2px outset #808080)]
           RenderTableSection {TBODY} at (2,2) size 44x26
             RenderTableRow {TR} at (0,2) size 44x22
index ec35d1d..7120756 100644 (file)
@@ -10,4 +10,4 @@ layer at (0,0) size 800x600
         RenderBlock {FORM} at (0,0) size 784x0
       RenderBlock (anonymous) at (0,0) size 784x0
         RenderInline {FONT} at (0,0) size 0x0
-      RenderTable {TABLE} at (0,0) size 2x0
+      RenderTable {TABLE} at (0,0) size 0x0
index e9119d4..9e09358 100644 (file)
@@ -6,5 +6,5 @@ layer at (0,0) size 800x600
       RenderBlock (anonymous) at (0,0) size 784x18
         RenderText {#text} at (0,0) size 9x19
           text run at (0,0) width 9: ">"
-      RenderTable {TABLE} at (0,18) size 2x0
-        RenderBlock {CAPTION} at (0,0) size 2x0
+      RenderTable {TABLE} at (0,18) size 0x0
+        RenderBlock {CAPTION} at (0,0) size 0x0
index f03ca68..bc9c0ce 100644 (file)
@@ -3,7 +3,7 @@ layer at (0,0) size 785x1136
 layer at (0,0) size 785x1136
   RenderBlock {HTML} at (0,0) size 785x1136
     RenderBody {BODY} at (8,8) size 769x1120
-      RenderTable {TABLE} at (0,0) size 2x1078
+      RenderTable {TABLE} at (0,0) size 0x1078
       RenderTable {TABLE} at (0,1078) size 102x24
         RenderTableSection {TBODY} at (0,0) size 102x24
           RenderTableRow {TR} at (0,2) size 102x20
index c4e2a9e..38da97d 100644 (file)
@@ -19,4 +19,4 @@ layer at (0,0) size 800x600
                 RenderText at (0,0) size 62x13
                   text run at (0,0) width 62: "Choose File"
           RenderBR {BR} at (327,52) size 0x0
-        RenderTable {TABLE} at (0,59) size 2x0
+        RenderTable {TABLE} at (0,59) size 0x0
index 5dcf71b..4f1a89b 100644 (file)
@@ -9,6 +9,6 @@ layer at (0,0) size 800x600
         RenderInline {A} at (0,0) size 155x18
           RenderText {#text} at (0,0) size 155x18
             text run at (0,0) width 155: "You should see this text."
-      RenderTable {TABLE} at (0,34) size 2x4
-        RenderTableSection {TBODY} at (0,0) size 2x4
-          RenderTableRow {TR} at (0,2) size 2x0
+      RenderTable {TABLE} at (0,34) size 0x4
+        RenderTableSection {TBODY} at (0,0) size 0x4
+          RenderTableRow {TR} at (0,2) size 0x0
index 5e2801d..57bb607 100644 (file)
@@ -13,9 +13,9 @@ layer at (0,0) size 800x600
           RenderTableRow {TR} at (0,2) size 6x2
             RenderTableCell {TD} at (2,2) size 2x2 [r=0 c=0 rs=1 cs=1]
           RenderTableRow {TR} at (0,6) size 6x0
-      RenderTable {TABLE} at (0,8) size 2x4
-        RenderTableSection {TBODY} at (0,0) size 2x4
-          RenderTableRow {TR} at (0,2) size 2x0
+      RenderTable {TABLE} at (0,8) size 0x4
+        RenderTableSection {TBODY} at (0,0) size 0x4
+          RenderTableRow {TR} at (0,2) size 0x0
       RenderBlock (anonymous) at (0,12) size 784x0
         RenderInline {FONT} at (0,0) size 0x0
           RenderText {#text} at (0,0) size 0x0
index c63586c..afdc3b5 100644 (file)
@@ -6,6 +6,6 @@ layer at (0,0) size 800x34
       RenderBlock (anonymous) at (0,0) size 784x18
         RenderText {#text} at (0,0) size 29x18
           text run at (0,0) width 29: "Text"
-      RenderTable {table} at (0,18) size 2x0
+      RenderTable {table} at (0,18) size 0x0
       RenderTable at (0,18) size 0x0
         RenderTableCol {colgroup} at (0,0) size 0x0
index 9aabf5c..5a49260 100644 (file)
@@ -9,7 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {DIV} at (0,34) size 784x84 [border: (2px solid #FF0000)]
         RenderBlock {DIV} at (2,2) size 780x50 [border: (10px solid #008000)]
           RenderBlock {DIV} at (10,10) size 760x14 [border: (2px solid #0000FF)]
-        RenderTable {TABLE} at (2,52) size 2x0
+        RenderTable {TABLE} at (2,52) size 0x0
         RenderTable {TABLE} at (2,52) size 48x30 [border: (2px outset #808080)]
           RenderTableSection {TBODY} at (2,2) size 44x26
             RenderTableRow {TR} at (0,2) size 44x22
index ec35d1d..7120756 100644 (file)
@@ -10,4 +10,4 @@ layer at (0,0) size 800x600
         RenderBlock {FORM} at (0,0) size 784x0
       RenderBlock (anonymous) at (0,0) size 784x0
         RenderInline {FONT} at (0,0) size 0x0
-      RenderTable {TABLE} at (0,0) size 2x0
+      RenderTable {TABLE} at (0,0) size 0x0
index 46d1523..4abfc61 100644 (file)
@@ -15,8 +15,8 @@ layer at (0,0) size 800x600
           RenderInline {A} at (0,0) size 169x22
             RenderText {#text} at (0,0) size 169x22
               text run at (0,0) width 169: "Table of Contents"
-        RenderTable {TABLE} at (0,39) size 2x4
-          RenderTableSection {TBODY} at (0,0) size 2x4
-            RenderTableRow {TR} at (0,2) size 2x0
+        RenderTable {TABLE} at (0,39) size 0x4
+          RenderTableSection {TBODY} at (0,0) size 0x4
+            RenderTableRow {TR} at (0,2) size 0x0
       RenderBlock (anonymous) at (0,74) size 784x0
         RenderInline {FONT} at (0,0) size 0x0
index 1492932..cecf23a 100644 (file)
@@ -6,5 +6,5 @@ layer at (0,0) size 800x600
       RenderBlock (anonymous) at (0,0) size 784x18
         RenderText {#text} at (0,0) size 9x18
           text run at (0,0) width 9: ">"
-      RenderTable {TABLE} at (0,18) size 2x0
-        RenderBlock {CAPTION} at (0,0) size 2x0
+      RenderTable {TABLE} at (0,18) size 0x0
+        RenderBlock {CAPTION} at (0,0) size 0x0
index aa6ea70..fcdb0e8 100644 (file)
@@ -3,7 +3,7 @@ layer at (0,0) size 785x1136
 layer at (0,0) size 785x1136
   RenderBlock {HTML} at (0,0) size 785x1136
     RenderBody {BODY} at (8,8) size 769x1120
-      RenderTable {TABLE} at (0,0) size 2x1078
+      RenderTable {TABLE} at (0,0) size 0x1078
       RenderTable {TABLE} at (0,1078) size 102x24
         RenderTableSection {TBODY} at (0,0) size 102x24
           RenderTableRow {TR} at (0,2) size 102x20
index b68eb82..92ad11c 100644 (file)
@@ -13,4 +13,4 @@ layer at (0,0) size 800x600
       RenderBlock {P} at (0,34) size 784x40
         RenderImage {IMG} at (0,0) size 126x40
         RenderText {#text} at (0,0) size 0x0
-      RenderTable {TABLE} at (0,90) size 4x2 [border: (1px outset #808080)]
+      RenderTable {TABLE} at (0,90) size 2x2 [border: (1px outset #808080)]
index 26729a7..7d9887b 100644 (file)
@@ -19,4 +19,4 @@ layer at (0,0) size 800x600
                 RenderText at (0,0) size 73x19
                   text run at (0,0) width 73: "Choose File"
           RenderBR {BR} at (358,62) size 0x0
-        RenderTable {TABLE} at (0,74) size 2x0
+        RenderTable {TABLE} at (0,74) size 0x0
index 8ed82a9..2d409eb 100644 (file)
@@ -9,6 +9,6 @@ layer at (0,0) size 800x600
         RenderInline {A} at (0,0) size 147x19
           RenderText {#text} at (0,0) size 147x19
             text run at (0,0) width 147: "You should see this text."
-      RenderTable {TABLE} at (0,35) size 2x4
-        RenderTableSection {TBODY} at (0,0) size 2x4
-          RenderTableRow {TR} at (0,2) size 2x0
+      RenderTable {TABLE} at (0,35) size 0x4
+        RenderTableSection {TBODY} at (0,0) size 0x4
+          RenderTableRow {TR} at (0,2) size 0x0
index 2b641dd..699d838 100644 (file)
@@ -13,9 +13,9 @@ layer at (0,0) size 800x600
           RenderTableRow {TR} at (0,2) size 6x2
             RenderTableCell {TD} at (2,2) size 2x2 [r=0 c=0 rs=1 cs=1]
           RenderTableRow {TR} at (0,6) size 6x0
-      RenderTable {TABLE} at (0,8) size 2x4
-        RenderTableSection {TBODY} at (0,0) size 2x4
-          RenderTableRow {TR} at (0,2) size 2x0
+      RenderTable {TABLE} at (0,8) size 0x4
+        RenderTableSection {TBODY} at (0,0) size 0x4
+          RenderTableRow {TR} at (0,2) size 0x0
       RenderBlock (anonymous) at (0,12) size 784x0
         RenderInline {FONT} at (0,0) size 0x0
           RenderText {#text} at (0,0) size 0x0
index a682bac..c56cc48 100644 (file)
@@ -6,6 +6,6 @@ layer at (0,0) size 800x35
       RenderBlock (anonymous) at (0,0) size 784x19
         RenderText {#text} at (0,0) size 27x19
           text run at (0,0) width 27: "Text"
-      RenderTable {table} at (0,19) size 2x0
+      RenderTable {table} at (0,19) size 0x0
       RenderTable at (0,19) size 0x0
         RenderTableCol {colgroup} at (0,0) size 0x0
index baa65c6..eac0ec1 100644 (file)
@@ -9,7 +9,7 @@ layer at (0,0) size 800x600
       RenderBlock {DIV} at (0,35) size 784x85 [border: (2px solid #FF0000)]
         RenderBlock {DIV} at (2,2) size 780x50 [border: (10px solid #008000)]
           RenderBlock {DIV} at (10,10) size 760x14 [border: (2px solid #0000FF)]
-        RenderTable {TABLE} at (2,52) size 2x0
+        RenderTable {TABLE} at (2,52) size 0x0
         RenderTable {TABLE} at (2,52) size 46x31 [border: (2px outset #808080)]
           RenderTableSection {TBODY} at (2,2) size 42x27
             RenderTableRow {TR} at (0,2) size 42x23
index ec35d1d..7120756 100644 (file)
@@ -10,4 +10,4 @@ layer at (0,0) size 800x600
         RenderBlock {FORM} at (0,0) size 784x0
       RenderBlock (anonymous) at (0,0) size 784x0
         RenderInline {FONT} at (0,0) size 0x0
-      RenderTable {TABLE} at (0,0) size 2x0
+      RenderTable {TABLE} at (0,0) size 0x0
index ef81074..5b4437e 100644 (file)
@@ -15,8 +15,8 @@ layer at (0,0) size 800x600
           RenderInline {A} at (0,0) size 169x24
             RenderText {#text} at (0,0) size 169x24
               text run at (0,0) width 169: "Table of Contents"
-        RenderTable {TABLE} at (0,40) size 2x4
-          RenderTableSection {TBODY} at (0,0) size 2x4
-            RenderTableRow {TR} at (0,2) size 2x0
+        RenderTable {TABLE} at (0,40) size 0x4
+          RenderTableSection {TBODY} at (0,0) size 0x4
+            RenderTableRow {TR} at (0,2) size 0x0
       RenderBlock (anonymous) at (0,75) size 784x0
         RenderInline {FONT} at (0,0) size 0x0
index 120a3c4..bc43814 100644 (file)
@@ -6,5 +6,5 @@ layer at (0,0) size 800x600
       RenderBlock (anonymous) at (0,0) size 784x19
         RenderText {#text} at (0,0) size 9x19
           text run at (0,0) width 9: ">"
-      RenderTable {TABLE} at (0,19) size 2x0
-        RenderBlock {CAPTION} at (0,0) size 2x0
+      RenderTable {TABLE} at (0,19) size 0x0
+        RenderBlock {CAPTION} at (0,0) size 0x0
index 265c24e..5e17edb 100644 (file)
@@ -3,7 +3,7 @@ layer at (0,0) size 784x1138
 layer at (0,0) size 784x1138
   RenderBlock {HTML} at (0,0) size 784x1138
     RenderBody {BODY} at (8,8) size 768x1122
-      RenderTable {TABLE} at (0,0) size 2x1078
+      RenderTable {TABLE} at (0,0) size 0x1078
       RenderTable {TABLE} at (0,1078) size 98x25
         RenderTableSection {TBODY} at (0,0) size 98x25
           RenderTableRow {TR} at (0,2) size 98x21
index d9de8d8..94e4f00 100644 (file)
@@ -13,4 +13,4 @@ layer at (0,0) size 800x600
       RenderBlock {P} at (0,35) size 784x40
         RenderImage {IMG} at (0,0) size 126x40
         RenderText {#text} at (0,0) size 0x0
-      RenderTable {TABLE} at (0,91) size 4x2 [border: (1px outset #808080)]
+      RenderTable {TABLE} at (0,91) size 2x2 [border: (1px outset #808080)]
index 3f4b449..5933886 100644 (file)
@@ -19,4 +19,4 @@ layer at (0,0) size 800x600
                 RenderText at (0,0) size 62x13
                   text run at (0,0) width 62: "Choose File"
           RenderBR {BR} at (327,52) size 0x0
-        RenderTable {TABLE} at (0,59) size 4x0
+        RenderTable {TABLE} at (0,59) size 0x0
index 1f13924..5933886 100644 (file)
@@ -19,4 +19,4 @@ layer at (0,0) size 800x600
                 RenderText at (0,0) size 62x13
                   text run at (0,0) width 62: "Choose File"
           RenderBR {BR} at (327,52) size 0x0
-        RenderTable {TABLE} at (0,59) size 2x0
+        RenderTable {TABLE} at (0,59) size 0x0
index 70ccf2c..0349621 100644 (file)
@@ -15,8 +15,8 @@ layer at (0,0) size 800x600
           RenderInline {A} at (0,0) size 169x24
             RenderText {#text} at (0,0) size 169x24
               text run at (0,0) width 169: "Table of Contents"
-        RenderTable {TABLE} at (0,39) size 2x4
-          RenderTableSection {TBODY} at (0,0) size 2x4
-            RenderTableRow {TR} at (0,2) size 2x0
+        RenderTable {TABLE} at (0,39) size 0x4
+          RenderTableSection {TBODY} at (0,0) size 0x4
+            RenderTableRow {TR} at (0,2) size 0x0
       RenderBlock (anonymous) at (0,74) size 784x0
         RenderInline {FONT} at (0,0) size 0x0
index a68a142..13c69ee 100644 (file)
@@ -13,4 +13,4 @@ layer at (0,0) size 800x600
       RenderBlock {P} at (0,34) size 784x40
         RenderImage {IMG} at (0,0) size 126x40
         RenderText {#text} at (0,0) size 0x0
-      RenderTable {TABLE} at (0,90) size 4x2 [border: (1px outset #808080)]
+      RenderTable {TABLE} at (0,90) size 2x2 [border: (1px outset #808080)]
index 8b4202a..e854b22 100644 (file)
@@ -1,3 +1,27 @@
+2012-09-18  Julien Chaffraix  <jchaffraix@webkit.org>
+
+        Tables without any descendant and auto logical width should have a 0px logical width
+        https://bugs.webkit.org/show_bug.cgi?id=95521
+
+        Reviewed by Abhishek Arya.
+
+        The code would wrongly add the border-spacing in the row direction to the table's logical
+        width even if we didn't have a column. The new behavior matches FireFox and Opera. IE
+        matches our old behavior for inline tables but our new behavior for normal tables which
+        is a bug on their side.
+
+        Tests: fast/table/empty-table-should-take-no-space.html
+               fast/table/fixed-table-layout/empty-table-should-take-no-space-fixed-layout.html
+
+        * rendering/RenderTable.h:
+        (WebCore::RenderTable::borderSpacingInRowDirection):
+        Added this new helper function to return the right border-spacing. Added a FIXME as the code always
+        return the horizontal dimension which is wrong in vertical-writing mode.
+
+        (WebCore::RenderTable::bordersPaddingAndSpacingInRowDirection):
+        Changed to call borderSpacingInRowDirection. Added a comment as to why we don't add border-spacing on
+        border-collapse: separate tables.
+
 2012-09-18  Zan Dobersek  <zandobersek@gmail.com>
 
         [GTK] Build is broken without option --enable-unstable-features
index 2e9ce21..5878017 100644 (file)
@@ -47,6 +47,8 @@ public:
 
     int getColumnPos(unsigned col) const { return m_columnPos[col]; }
 
+    // Per CSS 3 writing-mode: "The first and second values of the 'border-spacing' property represent spacing between columns
+    // and rows respectively, not necessarily the horizontal and vertical spacing respectively".
     int hBorderSpacing() const { return m_hSpacing; }
     int vBorderSpacing() const { return m_vSpacing; }
     
@@ -178,10 +180,19 @@ public:
         return c;
     }
 
+    LayoutUnit borderSpacingInRowDirection() const
+    {
+        if (unsigned effectiveColumnCount = numEffCols())
+            return static_cast<LayoutUnit>(effectiveColumnCount + 1) * hBorderSpacing();
+
+        return ZERO_LAYOUT_UNIT;
+    }
+
     LayoutUnit bordersPaddingAndSpacingInRowDirection() const
     {
+        // 'border-spacing' only applies to separate borders (see 17.6.1 The separated borders model).
         return borderStart() + borderEnd() +
-               (collapseBorders() ? ZERO_LAYOUT_UNIT : (paddingStart() + paddingEnd() + static_cast<LayoutUnit>(numEffCols() + 1) * hBorderSpacing()));
+               (collapseBorders() ? ZERO_LAYOUT_UNIT : (paddingStart() + paddingEnd() + borderSpacingInRowDirection()));
     }
 
     // Return the first column or column-group.