Right border missing from table with colspan and collapsing border
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 3 Oct 2011 16:19:06 +0000 (16:19 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 3 Oct 2011 16:19:06 +0000 (16:19 +0000)
https://bugs.webkit.org/show_bug.cgi?id=14274

Patch by Konstantin Scheglov <scheglov@google.com> on 2011-10-03
Reviewed by David Hyatt.

Source/WebCore:

Test: fast/table/border-collapsing/bug14274.html

* rendering/RenderTable.cpp:
(WebCore::RenderTable::RenderTable):
* rendering/RenderTable.h:
(WebCore::RenderTable::colToEffCol):

LayoutTests:

* fast/table/border-collapsing/bug14274-expected.png: Copied from LayoutTests/platform/chromium-win/fast/invalid/020-expected.png.
* fast/table/border-collapsing/bug14274-expected.txt: Added.
* fast/table/border-collapsing/bug14274.html: Added.
* platform/chromium-linux/fast/forms/file-input-disabled-expected.txt:
* platform/chromium-linux/fast/invalid/residual-style-expected.txt:
* platform/chromium-linux/tables/mozilla/bugs/bug56563-expected.png:
* platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug220653-expected.png:
* platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug7121-2-expected.png:
* platform/chromium-win/fast/invalid/017-expected.png:
* platform/chromium-win/fast/invalid/017-expected.txt:
* platform/chromium-win/fast/invalid/018-expected.png:
* platform/chromium-win/fast/invalid/018-expected.txt:
* platform/chromium-win/fast/invalid/020-expected.png:
* platform/chromium-win/fast/invalid/020-expected.txt:
* platform/chromium-win/fast/invalid/table-inside-stray-table-content-expected.txt:
* platform/chromium-win/fast/table/inline-form-assert-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/chromium-win/tables/mozilla/bugs/bug56563-expected.txt:
* platform/chromium-win/tables/mozilla/bugs/bug9024-expected.txt:
* platform/chromium-win/tables/mozilla_expected_failures/bugs/bug220653-expected.txt:
* platform/chromium-win/tables/mozilla_expected_failures/bugs/bug3517-expected.txt:
* platform/chromium-win/tables/mozilla_expected_failures/bugs/bug7121-2-expected.txt:
* platform/chromium-win/tables/mozilla_expected_failures/core/conflicts-expected.txt:
* platform/chromium-win/tables/mozilla_expected_failures/other/empty_cells-expected.txt:
* platform/gtk/fast/invalid/table-residual-style-crash-expected.txt:
* platform/mac/fast/invalid/table-residual-style-crash-expected.txt:
* platform/qt/fast/invalid/table-residual-style-crash-expected.txt:

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

33 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/table/border-collapsing/bug14274-expected.png [new file with mode: 0644]
LayoutTests/fast/table/border-collapsing/bug14274-expected.txt [new file with mode: 0644]
LayoutTests/fast/table/border-collapsing/bug14274.html [new file with mode: 0644]
LayoutTests/platform/chromium-linux/fast/forms/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-linux/tables/mozilla_expected_failures/bugs/bug220653-expected.png
LayoutTests/platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug7121-2-expected.png
LayoutTests/platform/chromium-win/fast/invalid/017-expected.png
LayoutTests/platform/chromium-win/fast/invalid/017-expected.txt
LayoutTests/platform/chromium-win/fast/invalid/018-expected.png
LayoutTests/platform/chromium-win/fast/invalid/018-expected.txt
LayoutTests/platform/chromium-win/fast/invalid/020-expected.png
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/fast/table/inline-form-assert-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/chromium-win/tables/mozilla/bugs/bug9024-expected.txt
LayoutTests/platform/chromium-win/tables/mozilla_expected_failures/bugs/bug220653-expected.txt
LayoutTests/platform/chromium-win/tables/mozilla_expected_failures/bugs/bug3517-expected.txt
LayoutTests/platform/chromium-win/tables/mozilla_expected_failures/bugs/bug7121-2-expected.txt
LayoutTests/platform/chromium-win/tables/mozilla_expected_failures/core/conflicts-expected.txt
LayoutTests/platform/chromium-win/tables/mozilla_expected_failures/other/empty_cells-expected.txt
LayoutTests/platform/gtk/fast/invalid/table-residual-style-crash-expected.txt
LayoutTests/platform/mac/fast/invalid/table-residual-style-crash-expected.txt
LayoutTests/platform/qt/fast/invalid/table-residual-style-crash-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderTable.cpp
Source/WebCore/rendering/RenderTable.h

index c86ddf35a548ba3cf2dc13a2023e5176694f490e..437085c570ddd70873a15ff95ba531f51e2a763c 100644 (file)
@@ -1,3 +1,40 @@
+2011-10-03  Konstantin Scheglov  <scheglov@google.com>
+
+        Right border missing from table with colspan and collapsing border
+        https://bugs.webkit.org/show_bug.cgi?id=14274
+
+        Reviewed by David Hyatt.
+
+        * fast/table/border-collapsing/bug14274-expected.png: Copied from LayoutTests/platform/chromium-win/fast/invalid/020-expected.png.
+        * fast/table/border-collapsing/bug14274-expected.txt: Added.
+        * fast/table/border-collapsing/bug14274.html: Added.
+        * platform/chromium-linux/fast/forms/file-input-disabled-expected.txt:
+        * platform/chromium-linux/fast/invalid/residual-style-expected.txt:
+        * platform/chromium-linux/tables/mozilla/bugs/bug56563-expected.png:
+        * platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug220653-expected.png:
+        * platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug7121-2-expected.png:
+        * platform/chromium-win/fast/invalid/017-expected.png:
+        * platform/chromium-win/fast/invalid/017-expected.txt:
+        * platform/chromium-win/fast/invalid/018-expected.png:
+        * platform/chromium-win/fast/invalid/018-expected.txt:
+        * platform/chromium-win/fast/invalid/020-expected.png:
+        * platform/chromium-win/fast/invalid/020-expected.txt:
+        * platform/chromium-win/fast/invalid/table-inside-stray-table-content-expected.txt:
+        * platform/chromium-win/fast/table/inline-form-assert-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/chromium-win/tables/mozilla/bugs/bug56563-expected.txt:
+        * platform/chromium-win/tables/mozilla/bugs/bug9024-expected.txt:
+        * platform/chromium-win/tables/mozilla_expected_failures/bugs/bug220653-expected.txt:
+        * platform/chromium-win/tables/mozilla_expected_failures/bugs/bug3517-expected.txt:
+        * platform/chromium-win/tables/mozilla_expected_failures/bugs/bug7121-2-expected.txt:
+        * platform/chromium-win/tables/mozilla_expected_failures/core/conflicts-expected.txt:
+        * platform/chromium-win/tables/mozilla_expected_failures/other/empty_cells-expected.txt:
+        * platform/gtk/fast/invalid/table-residual-style-crash-expected.txt:
+        * platform/mac/fast/invalid/table-residual-style-crash-expected.txt:
+        * platform/qt/fast/invalid/table-residual-style-crash-expected.txt:
+
 2011-10-03  Adam Barth  <abarth@webkit.org>
 
         Update baselines after http://trac.webkit.org/changeset/96498.
diff --git a/LayoutTests/fast/table/border-collapsing/bug14274-expected.png b/LayoutTests/fast/table/border-collapsing/bug14274-expected.png
new file mode 100644 (file)
index 0000000..b617e6a
Binary files /dev/null and b/LayoutTests/fast/table/border-collapsing/bug14274-expected.png differ
diff --git a/LayoutTests/fast/table/border-collapsing/bug14274-expected.txt b/LayoutTests/fast/table/border-collapsing/bug14274-expected.txt
new file mode 100644 (file)
index 0000000..eb7a0f4
--- /dev/null
@@ -0,0 +1,9 @@
+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 54x50 [border: none]
+        RenderTableSection {TBODY} at (0,0) size 53x50
+          RenderTableRow {TR} at (0,0) size 53x50 [border: none (2px solid #00FF00) none]
+            RenderTableCell {TD} at (0,24) size 53x2 [border: none (1px solid #0000FF) none] [r=0 c=0 rs=1 cs=3]
diff --git a/LayoutTests/fast/table/border-collapsing/bug14274.html b/LayoutTests/fast/table/border-collapsing/bug14274.html
new file mode 100644 (file)
index 0000000..3e3ecff
--- /dev/null
@@ -0,0 +1,26 @@
+<!--
+Spanned TD is last on its TR, and TR border is wider, so TR border should be used.
+-->
+<html>
+    <head>
+        <title></title>
+        <style type="text/css">
+            TABLE {
+                border-collapse: collapse;
+            }
+            TD {
+                width: 50px;
+                height: 50px;
+            }
+        </style>
+    </head>
+    <body>
+        <table>
+            <tbody>
+                <tr style="border-right:2px solid lime">
+                    <td style="border-right:1px solid blue" colSpan="3"/>
+                </tr>
+            </tbody>
+        </table>
+    </body>
+</html>
index 797c1e2719ff00788935e888d2128f4ec968c997..e2aa7402bbd8d0ab382affb44a1d6c7597b6137c 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 4x0
+        RenderTable {TABLE} at (0,67) size 2x0
index 7c4c29abaa8028ef47afa7f7381bdeb8309f5c03..9e6082acd87f848ceb90b23296f7ced88cb7f531 100644 (file)
@@ -141,12 +141,12 @@ layer at (0,0) size 785x3617
       RenderBlock (anonymous) at (0,611) size 769x20
         RenderText {#text} at (0,0) size 76x19
           text run at (0,0) width 76: "CAPTION: "
-        RenderInline {FONT} at (0,0) size 164x19 [color=#008000]
-          RenderTable {TABLE} at (76,15) size 4x0
-            RenderBlock {CAPTION} at (0,0) size 4x0
+        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 0x0 [color=#FF0000]
-          RenderText {#text} at (80,0) size 160x19
-            text run at (80,0) width 160: "All of this should be green."
+          RenderText {#text} at (78,0) size 160x19
+            text run at (78,0) width 160: "All of this should be green."
         RenderText {#text} at (0,0) size 0x0
       RenderBlock {HR} at (0,639) size 769x2 [border: (1px inset #000000)]
       RenderBlock (anonymous) at (0,649) size 769x20
@@ -182,26 +182,26 @@ layer at (0,0) size 785x3617
       RenderBlock (anonymous) at (0,763) size 769x20
         RenderText {#text} at (0,0) size 39x19
           text run at (0,0) width 39: "COL: "
-        RenderInline {FONT} at (0,0) size 164x19 [color=#008000]
+        RenderInline {FONT} at (0,0) size 162x19 [color=#008000]
           RenderInline {FONT} at (0,0) size 0x19 [color=#FF0000]
-          RenderTable {TABLE} at (39,15) size 4x0
+          RenderTable {TABLE} at (39,15) size 2x0
             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 (43,0) size 160x19
-              text run at (43,0) width 160: "All of this should be green."
+            RenderText {#text} at (41,0) size 160x19
+              text run at (41,0) width 160: "All of this should be green."
         RenderText {#text} at (0,0) size 0x0
       RenderBlock {HR} at (0,791) size 769x2 [border: (1px inset #000000)]
       RenderBlock (anonymous) at (0,801) size 769x20
         RenderText {#text} at (0,0) size 92x19
           text run at (0,0) width 92: "COLGROUP: "
-        RenderInline {FONT} at (0,0) size 164x19 [color=#008000]
+        RenderInline {FONT} at (0,0) size 162x19 [color=#008000]
           RenderInline {FONT} at (0,0) size 0x19 [color=#FF0000]
-          RenderTable {TABLE} at (92,15) size 4x0
+          RenderTable {TABLE} at (92,15) size 2x0
             RenderTableCol {COLGROUP} at (0,0) size 0x0
           RenderInline {FONT} at (0,0) size 160x19 [color=#FF0000]
-            RenderText {#text} at (96,0) size 160x19
-              text run at (96,0) width 160: "All of this should be green."
+            RenderText {#text} at (94,0) size 160x19
+              text run at (94,0) width 160: "All of this should be green."
         RenderText {#text} at (0,0) size 0x0
       RenderBlock {HR} at (0,829) size 769x2 [border: (1px inset #000000)]
       RenderBlock (anonymous) at (0,839) size 769x20
@@ -719,26 +719,26 @@ layer at (0,0) size 785x3617
       RenderBlock (anonymous) at (0,3190) size 769x20
         RenderText {#text} at (0,0) size 55x19
           text run at (0,0) width 55: "TABLE: "
-        RenderInline {FONT} at (0,0) size 164x19 [color=#008000]
+        RenderInline {FONT} at (0,0) size 162x19 [color=#008000]
           RenderInline {FONT} at (0,0) size 0x19 [color=#FF0000]
-          RenderTable {TABLE} at (55,15) size 4x0
+          RenderTable {TABLE} at (55,15) size 2x0
           RenderInline {FONT} at (0,0) size 160x19 [color=#FF0000]
-            RenderText {#text} at (59,0) size 160x19
-              text run at (59,0) width 160: "All of this should be green."
+            RenderText {#text} at (57,0) size 160x19
+              text run at (57,0) width 160: "All of this should be green."
           RenderText {#text} at (0,0) size 0x0
       RenderBlock (anonymous) at (0,3218) size 769x2 [color=#008000]
         RenderBlock {HR} at (0,0) size 769x2 [border: (1px inset #008000)]
       RenderBlock (anonymous) at (0,3228) size 769x20
-        RenderInline {FONT} at (0,0) size 224x19 [color=#008000]
+        RenderInline {FONT} at (0,0) size 222x19 [color=#008000]
           RenderText {#text} at (0,0) size 60x19
             text run at (0,0) width 60: "TBODY: "
-          RenderInline {FONT} at (0,0) size 164x19
+          RenderInline {FONT} at (0,0) size 162x19
             RenderInline {FONT} at (0,0) size 0x19
-            RenderTable {TABLE} at (60,13) size 4x2
-              RenderTableSection {TBODY} at (0,0) size 4x2
+            RenderTable {TABLE} at (60,13) size 2x2
+              RenderTableSection {TBODY} at (0,0) size 2x2
             RenderInline {FONT} at (0,0) size 160x19
-              RenderText {#text} at (64,0) size 160x19
-                text run at (64,0) width 160: "All of this should be green."
+              RenderText {#text} at (62,0) size 160x19
+                text run at (62,0) width 160: "All of this should be green."
             RenderText {#text} at (0,0) size 0x0
       RenderBlock (anonymous) at (0,3256) size 769x2 [color=#008000]
         RenderBlock {HR} at (0,0) size 769x2 [border: (1px inset #008000)]
@@ -759,51 +759,51 @@ layer at (0,0) size 785x3617
       RenderBlock (anonymous) at (0,3294) size 769x2 [color=#008000]
         RenderBlock {HR} at (0,0) size 769x2 [border: (1px inset #008000)]
       RenderBlock (anonymous) at (0,3304) size 769x20
-        RenderInline {FONT} at (0,0) size 222x19 [color=#008000]
-          RenderInline {FONT} at (0,0) size 222x19
+        RenderInline {FONT} at (0,0) size 220x19 [color=#008000]
+          RenderInline {FONT} at (0,0) size 220x19
             RenderText {#text} at (0,0) size 58x19
               text run at (0,0) width 58: "TFOOT: "
-            RenderInline {FONT} at (0,0) size 164x19
+            RenderInline {FONT} at (0,0) size 162x19
               RenderInline {FONT} at (0,0) size 0x19
-              RenderTable {TABLE} at (58,13) size 4x2
-                RenderTableSection {TFOOT} at (0,0) size 4x2
+              RenderTable {TABLE} at (58,13) size 2x2
+                RenderTableSection {TFOOT} at (0,0) size 2x2
               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,3332) size 769x2 [color=#008000]
         RenderBlock {HR} at (0,0) size 769x2 [border: (1px inset #008000)]
       RenderBlock (anonymous) at (0,3342) size 769x20
-        RenderInline {FONT} at (0,0) size 222x19 [color=#008000]
-          RenderInline {FONT} at (0,0) size 222x19
-            RenderInline {FONT} at (0,0) size 222x19
+        RenderInline {FONT} at (0,0) size 220x19 [color=#008000]
+          RenderInline {FONT} at (0,0) size 220x19
+            RenderInline {FONT} at (0,0) size 220x19
               RenderText {#text} at (0,0) size 58x19
                 text run at (0,0) width 58: "THEAD: "
-              RenderInline {FONT} at (0,0) size 164x19
+              RenderInline {FONT} at (0,0) size 162x19
                 RenderInline {FONT} at (0,0) size 0x19
-                RenderTable {TABLE} at (58,13) size 4x2
-                  RenderTableSection {THEAD} at (0,0) size 4x2
+                RenderTable {TABLE} at (58,13) size 2x2
+                  RenderTableSection {THEAD} at (0,0) size 2x2
                 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,3370) size 769x2 [color=#008000]
         RenderBlock {HR} at (0,0) size 769x2 [border: (1px inset #008000)]
       RenderBlock (anonymous) at (0,3380) size 769x20
-        RenderInline {FONT} at (0,0) size 190x19 [color=#008000]
-          RenderInline {FONT} at (0,0) size 190x19
-            RenderInline {FONT} at (0,0) size 190x19
-              RenderInline {FONT} at (0,0) size 190x19
+        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
                 RenderText {#text} at (0,0) size 26x19
                   text run at (0,0) width 26: "TR: "
-                RenderInline {FONT} at (0,0) size 164x19
+                RenderInline {FONT} at (0,0) size 162x19
                   RenderInline {FONT} at (0,0) size 0x19
-                  RenderTable {TABLE} at (26,11) size 4x4
-                    RenderTableSection {TBODY} at (0,0) size 4x4
-                      RenderTableRow {TR} at (0,2) size 4x0
+                  RenderTable {TABLE} at (26,11) size 2x4
+                    RenderTableSection {TBODY} at (0,0) size 2x4
+                      RenderTableRow {TR} at (0,2) size 2x0
                   RenderInline {FONT} at (0,0) size 160x19
-                    RenderText {#text} at (30,0) size 160x19
-                      text run at (30,0) width 160: "All of this should be green."
+                    RenderText {#text} at (28,0) size 160x19
+                      text run at (28,0) width 160: "All of this should be green."
                   RenderText {#text} at (0,0) size 0x0
       RenderBlock (anonymous) at (0,3408) size 769x2 [color=#008000]
         RenderBlock {HR} at (0,0) size 769x2 [border: (1px inset #008000)]
index e3e879a35dfc4ad494c39e8b767da83bc418ff36..f317d691a4f96e67d40839ce3876d0ab23c1a7f5 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 4adf0fe089fe587085f658fe2900b634b442a106..8fe6761443e6f784d1414273d2afe52bc384c51a 100644 (file)
Binary files a/LayoutTests/platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug220653-expected.png and b/LayoutTests/platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug220653-expected.png differ
index 4a58c215490bf74b479c23adb3b57564dfe8ad7f..2fda289a54ba21391bdc467dc0152705d185af7c 100644 (file)
Binary files a/LayoutTests/platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug7121-2-expected.png and b/LayoutTests/platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug7121-2-expected.png differ
index 0298bfb7ee50986a730ff9a6b80c3ee3ddbd530c..3156cf6b42103ba50c617bbba019902c115abaff 100644 (file)
Binary files a/LayoutTests/platform/chromium-win/fast/invalid/017-expected.png and b/LayoutTests/platform/chromium-win/fast/invalid/017-expected.png differ
index 6dee78025bd7cb9ace600cd8696503fa4c9cc452..1842b99f96679bd087f83b5b289182cfef293abc 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 4x4
-        RenderTableSection {TBODY} at (0,0) size 4x4
-          RenderTableRow {TR} at (0,2) size 4x0
+      RenderTable {TABLE} at (0,36) size 2x4
+        RenderTableSection {TBODY} at (0,0) size 2x4
+          RenderTableRow {TR} at (0,2) size 2x0
index 108f31441bdedff11acbdf03b90b1637193ceaaa..69ddd08d31dc53293a88b9d2b44e5085bb20d4f5 100644 (file)
Binary files a/LayoutTests/platform/chromium-win/fast/invalid/018-expected.png and b/LayoutTests/platform/chromium-win/fast/invalid/018-expected.png differ
index 253d03467b8b866a131ddc6b7f1524a2c7ac86f3..77c74c200b1cbe8cc82d80483ac8d0de09ad2ed5 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 4x4
-        RenderTableSection {TBODY} at (0,0) size 4x4
-          RenderTableRow {TR} at (0,2) size 4x0
+      RenderTable {TABLE} at (0,8) size 2x4
+        RenderTableSection {TBODY} at (0,0) size 2x4
+          RenderTableRow {TR} at (0,2) size 2x0
       RenderBlock (anonymous) at (0,12) size 784x0
         RenderInline {FONT} at (0,0) size 0x0
           RenderText {#text} at (0,0) size 0x0
index 737f9ae7b1e4f0de31de3477d7916cd4ad4df455..3156cf6b42103ba50c617bbba019902c115abaff 100644 (file)
Binary files a/LayoutTests/platform/chromium-win/fast/invalid/020-expected.png and b/LayoutTests/platform/chromium-win/fast/invalid/020-expected.png differ
index 8b1e25c8eeeb9fc476f4725292b64f7950b582c8..ea1622490c29b4e2b5ff3ac77a7261b4dd222091 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 4x0
+      RenderTable {table} at (0,20) size 2x0
       RenderTable at (0,20) size 0x0
         RenderTableCol {colgroup} at (0,0) size 0x0
index 996b26e3d8ec814e412dc5a8e6f2b6fa3cf60696..96e29d56b713b0807de2da2082ff85333a97b10f 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 4x0
+        RenderTable {TABLE} at (2,52) size 2x0
         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 93585b6650b1e022f0c31bde4aa58adcd9674585..c9f28796cdd444e7704378f6cd6d01ab204a577c 100644 (file)
@@ -18,9 +18,9 @@ layer at (0,0) size 800x600
       RenderBlock {P} at (0,36) size 784x20
         RenderText {#text} at (0,0) size 172x19
           text run at (0,0) width 172: "No assert means test PASS."
-      RenderTable {TABLE} at (0,72) size 4x0
-      RenderTable {TABLE} at (0,72) size 4x2
-        RenderTableSection {TBODY} at (0,0) size 4x2
+      RenderTable {TABLE} at (0,72) size 2x0
+      RenderTable {TABLE} at (0,72) size 2x2
+        RenderTableSection {TBODY} at (0,0) size 2x2
       RenderTable {TABLE} at (0,74) size 5x4
         RenderTableSection {THEAD} at (0,0) size 5x4
           RenderTableRow (anonymous) at (0,2) size 5x0
@@ -31,6 +31,6 @@ layer at (0,0) size 800x600
           RenderTableRow (anonymous) at (0,2) size 5x0
             RenderTableCell (anonymous) at (2,2) size 1x0 [r=0 c=0 rs=1 cs=1]
               RenderInline {FORM} at (0,0) size 0x0
-      RenderTable {TABLE} at (0,82) size 4x4
-        RenderTableSection {TBODY} at (0,0) size 4x4
-          RenderTableRow {TR} at (0,2) size 4x0
+      RenderTable {TABLE} at (0,82) size 2x4
+        RenderTableSection {TBODY} at (0,0) size 2x4
+          RenderTableRow {TR} at (0,2) size 2x0
index 959a56f0ddaa2f04f5222edee4c02010d62c5d40..12138c0577a41eb186dafe84b14bc12c21146ebd 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 4x4
-          RenderTableSection {TBODY} at (0,0) size 4x4
-            RenderTableRow {TR} at (0,2) size 4x0
+        RenderTable {TABLE} at (0,41) size 2x4
+          RenderTableSection {TBODY} at (0,0) size 2x4
+            RenderTableRow {TR} at (0,2) size 2x0
       RenderBlock (anonymous) at (0,77) size 784x0
         RenderInline {FONT} at (0,0) size 0x0
index e488e78a7b7e00ef5631f676910086be2ee18ed2..bac844448bed9be3162ffa096995f6ca3642a2a4 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 4x0
-        RenderBlock {CAPTION} at (0,0) size 4x0
+      RenderTable {TABLE} at (0,20) size 2x0
+        RenderBlock {CAPTION} at (0,0) size 2x0
index 31ba8423f07fb997b117b806a0e94d8d5ad9b3ae..25b4e4adf0ef1a4058c8dc1e32c56ae018024197 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 4x1078
+      RenderTable {TABLE} at (0,0) size 2x1078
       RenderTable {TABLE} at (0,1078) size 98x26
         RenderTableSection {TBODY} at (0,0) size 98x26
           RenderTableRow {TR} at (0,2) size 98x22
index e79f5575bd7e414e8c19aa125a1390f1ed199fdc..a912b21e25d76364a73df18240903591763b8935 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 6x2 [border: (1px outset #808080)]
+      RenderTable {TABLE} at (0,92) size 4x2 [border: (1px outset #808080)]
index a4247d317ddb15ccdf026f7c440054708d994acd..542b3daa8408c308db8ba589dfba71ce6c56b9a2 100644 (file)
@@ -4,5 +4,5 @@ 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 1x1 [border: none]
+      RenderTable {TABLE} at (0,0) size 0x1 [border: none]
         RenderTableSection {TBODY} at (0,0) size 0x0
index 091c86383da77ac3f7eaa0a6077ad0a26904d49a..3d92381554d95d57bca0507ecbe91f2c91fcccfe 100644 (file)
@@ -6,10 +6,10 @@ layer at (0,0) size 800x585
       RenderTable {TABLE} at (0,0) size 800x38 [border: (1px outset #808080)]
         RenderTableSection {TBODY} at (1,1) size 798x36
           RenderTableRow {TR} at (0,3) size 798x30
-            RenderTableCell {TD} at (3,3) size 40x30 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=10]
+            RenderTableCell {TD} at (3,3) size 41x30 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=10]
               RenderText {#text} at (5,5) size 11x19
                 text run at (5,5) width 11: "A"
-            RenderTableCell {TD} at (46,3) size 218x30 [border: (1px inset #808080)] [r=0 c=10 rs=1 cs=50]
+            RenderTableCell {TD} at (47,3) size 217x30 [border: (1px inset #808080)] [r=0 c=10 rs=1 cs=50]
               RenderText {#text} at (5,5) size 10x19
                 text run at (5,5) width 10: "B"
             RenderTableCell {TD} at (267,3) size 528x30 [border: (1px inset #808080)] [r=0 c=60 rs=1 cs=120]
index b1e52183d4a1dc8db4a0b564662882265905892c..3bf1df9293cad968aeb71a1b337e820e3e41daab 100644 (file)
@@ -4,5 +4,5 @@ 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 1x1 [border: none]
+      RenderTable {TABLE} at (0,0) size 0x1 [border: none]
         RenderTableSection {TBODY} at (0,0) size 0x0
index 314bee4dc0fbd1e4b7b3629530f19362423ce275..29051ec7497e7eb32e770e6ab4e66a56952e344b 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 277x26
-        RenderTableSection {TBODY} at (0,0) size 277x26
-          RenderTableRow {TR} at (0,2) size 277x22
-            RenderTableCell {TD} at (2,2) size 3x22 [bgcolor=#000000] [r=0 c=0 rs=1 cs=15]
+      RenderTable {TABLE} at (0,0) size 276x26
+        RenderTableSection {TBODY} at (0,0) size 276x26
+          RenderTableRow {TR} at (0,2) size 276x22
+            RenderTableCell {TD} at (2,2) size 2x22 [bgcolor=#000000] [r=0 c=0 rs=1 cs=15]
               RenderBR {BR} at (1,1) size 0x19
-            RenderTableCell {TD} at (7,2) size 264x18 [bgcolor=#000000] [r=0 c=15 rs=1 cs=1]
+            RenderTableCell {TD} at (6,2) size 264x18 [bgcolor=#000000] [r=0 c=15 rs=1 cs=1]
               RenderInline {FONT} at (0,0) size 262x15 [color=#AAAAAA]
                 RenderText {#text} at (1,1) size 262x15
                   text run at (1,1) width 262: "Copyright \x{A9} 1998-1999 The Mozilla Organization."
               RenderText {#text} at (0,0) size 0x0
-            RenderTableCell {TD} at (273,2) size 2x22 [bgcolor=#000000] [r=0 c=16 rs=1 cs=15]
+            RenderTableCell {TD} at (272,2) size 2x22 [bgcolor=#000000] [r=0 c=16 rs=1 cs=15]
               RenderBR {BR} at (1,1) size 0x19
index 84119613377bbcb0ec84d8b1537cc8e49c2b1738..c2ee5f4a27fb77188cd02dd2cb42e1a69dc2685f 100644 (file)
@@ -151,17 +151,17 @@ layer at (0,0) size 785x1418
       RenderTable {TABLE} at (0,712) size 300x56 [border: (1px outset #808080)]
         RenderTableSection {TBODY} at (1,1) size 298x54
           RenderTableRow {TR} at (0,2) size 298x24
-            RenderTableCell {TD} at (2,2) size 147x24 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
+            RenderTableCell {TD} at (2,2) size 146x24 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
               RenderText {#text} at (2,2) size 44x19
                 text run at (2,2) width 44: "50CS2"
-            RenderTableCell {TD} at (151,2) size 145x24 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
+            RenderTableCell {TD} at (150,2) size 146x24 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
               RenderText {#text} at (2,2) size 26x19
                 text run at (2,2) width 26: "auto"
           RenderTableRow {TR} at (0,28) size 298x24
-            RenderTableCell {TD} at (2,28) size 147x24 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=2]
+            RenderTableCell {TD} at (2,28) size 146x24 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=2]
               RenderText {#text} at (2,2) size 57x19
                 text run at (2,2) width 57: "50%CS2"
-            RenderTableCell {TD} at (151,28) size 145x24 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
+            RenderTableCell {TD} at (150,28) size 146x24 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
               RenderText {#text} at (2,2) size 26x19
                 text run at (2,2) width 26: "auto"
       RenderBlock (anonymous) at (0,768) size 769x40
@@ -171,17 +171,17 @@ layer at (0,0) size 785x1418
       RenderTable {TABLE} at (0,808) size 300x56 [border: (1px outset #808080)]
         RenderTableSection {TBODY} at (1,1) size 298x54
           RenderTableRow {TR} at (0,2) size 298x24
-            RenderTableCell {TD} at (2,2) size 89x24 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
+            RenderTableCell {TD} at (2,2) size 87x24 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
               RenderText {#text} at (2,2) size 52x19
                 text run at (2,2) width 52: "100CS2"
-            RenderTableCell {TD} at (93,2) size 203x24 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
+            RenderTableCell {TD} at (91,2) size 205x24 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
               RenderText {#text} at (2,2) size 20x19
                 text run at (2,2) width 20: "bar"
           RenderTableRow {TR} at (0,28) size 298x24
-            RenderTableCell {TD} at (2,28) size 89x24 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=2]
+            RenderTableCell {TD} at (2,28) size 87x24 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=2]
               RenderText {#text} at (2,2) size 57x19
                 text run at (2,2) width 57: "30%CS2"
-            RenderTableCell {TD} at (93,28) size 203x24 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
+            RenderTableCell {TD} at (91,28) size 205x24 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
               RenderText {#text} at (2,2) size 20x19
                 text run at (2,2) width 20: "bar"
       RenderBlock (anonymous) at (0,864) size 769x40
@@ -191,17 +191,17 @@ layer at (0,0) size 785x1418
       RenderTable {TABLE} at (0,904) size 769x56 [border: (1px outset #808080)]
         RenderTableSection {TBODY} at (1,1) size 767x54
           RenderTableRow {TR} at (0,2) size 767x24
-            RenderTableCell {TD} at (2,2) size 77x24 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
+            RenderTableCell {TD} at (2,2) size 76x24 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
               RenderText {#text} at (2,2) size 52x19
                 text run at (2,2) width 52: "500CS2"
-            RenderTableCell {TD} at (81,2) size 684x24 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
+            RenderTableCell {TD} at (80,2) size 685x24 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
               RenderText {#text} at (2,2) size 26x19
                 text run at (2,2) width 26: "atuo"
           RenderTableRow {TR} at (0,28) size 767x24
-            RenderTableCell {TD} at (2,28) size 77x24 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=2]
+            RenderTableCell {TD} at (2,28) size 76x24 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=2]
               RenderText {#text} at (2,2) size 57x19
                 text run at (2,2) width 57: "10%CS2"
-            RenderTableCell {TD} at (81,28) size 684x24 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
+            RenderTableCell {TD} at (80,28) size 685x24 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
               RenderText {#text} at (2,2) size 26x19
                 text run at (2,2) width 26: "auto"
       RenderBlock (anonymous) at (0,960) size 769x40
index d6b5aee0356d4305c7401a7db87c680267dc6ddd..bd12a925496fb583ff780f9b8273d5312f5aeb7c 100644 (file)
@@ -341,15 +341,15 @@ layer at (0,0) size 785x2678
         RenderBlock (anonymous) at (0,0) size 769x20
           RenderText {#text} at (0,0) size 411x19
             text run at (0,0) width 411: "this table should be about 38 pixels wide (colspan=4, cellspacing=2)"
-        RenderTable {TABLE} at (0,20) size 29x8 [bgcolor=#FFA500] [border: (1px outset #808080)]
-          RenderTableSection {TBODY} at (1,1) size 27x6
-            RenderTableRow {TR} at (0,2) size 27x2
-              RenderTableCell {TD} at (2,2) size 3x2 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=4]
-              RenderTableCell {TD} at (7,2) size 2x2 [border: (1px inset #808080)] [r=0 c=4 rs=1 cs=4]
-              RenderTableCell {TD} at (11,2) size 2x2 [border: (1px inset #808080)] [r=0 c=8 rs=1 cs=4]
-              RenderTableCell {TD} at (15,2) size 2x2 [border: (1px inset #808080)] [r=0 c=12 rs=1 cs=4]
-              RenderTableCell {TD} at (19,2) size 2x2 [border: (1px inset #808080)] [r=0 c=16 rs=1 cs=4]
-              RenderTableCell {TD} at (23,2) size 2x2 [border: (1px inset #808080)] [r=0 c=20 rs=1 cs=4]
+        RenderTable {TABLE} at (0,20) size 28x8 [bgcolor=#FFA500] [border: (1px outset #808080)]
+          RenderTableSection {TBODY} at (1,1) size 26x6
+            RenderTableRow {TR} at (0,2) size 26x2
+              RenderTableCell {TD} at (2,2) size 2x2 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=4]
+              RenderTableCell {TD} at (6,2) size 2x2 [border: (1px inset #808080)] [r=0 c=4 rs=1 cs=4]
+              RenderTableCell {TD} at (10,2) size 2x2 [border: (1px inset #808080)] [r=0 c=8 rs=1 cs=4]
+              RenderTableCell {TD} at (14,2) size 2x2 [border: (1px inset #808080)] [r=0 c=12 rs=1 cs=4]
+              RenderTableCell {TD} at (18,2) size 2x2 [border: (1px inset #808080)] [r=0 c=16 rs=1 cs=4]
+              RenderTableCell {TD} at (22,2) size 2x2 [border: (1px inset #808080)] [r=0 c=20 rs=1 cs=4]
         RenderBlock (anonymous) at (0,28) size 769x20
           RenderBR {BR} at (0,0) size 0x19
       RenderBlock {P} at (0,1016) size 769x48
index a8228b425ad722ab81a1cfd989c6bfbec9993591..ec35d1dcbd1f10e3930c6fcd1fcc76180247e7ed 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 4x0
+      RenderTable {TABLE} at (0,0) size 2x0
index a8228b425ad722ab81a1cfd989c6bfbec9993591..ec35d1dcbd1f10e3930c6fcd1fcc76180247e7ed 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 4x0
+      RenderTable {TABLE} at (0,0) size 2x0
index a8228b425ad722ab81a1cfd989c6bfbec9993591..ec35d1dcbd1f10e3930c6fcd1fcc76180247e7ed 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 4x0
+      RenderTable {TABLE} at (0,0) size 2x0
index 8e50eb7953f4d22d9eb46f2d13d862f263b6d20d..baa47733ecd5bbec41e2b7812a50e9fa62d6a78d 100644 (file)
@@ -1,3 +1,17 @@
+2011-10-03  Konstantin Scheglov  <scheglov@google.com>
+
+        Right border missing from table with colspan and collapsing border
+        https://bugs.webkit.org/show_bug.cgi?id=14274
+
+        Reviewed by David Hyatt.
+
+        Test: fast/table/border-collapsing/bug14274.html
+
+        * rendering/RenderTable.cpp:
+        (WebCore::RenderTable::RenderTable):
+        * rendering/RenderTable.h:
+        (WebCore::RenderTable::colToEffCol):
+
 2011-10-03  Carlos Garcia Campos  <cgarcia@igalia.com>
 
         [GTK] Fix make distcheck build
index 2ccd795e8e5f6dc3edd6859121aa1a84e011717d..1d224e5d24ae28b934d17f3c82a0ffd0408ba0a2 100644 (file)
@@ -63,8 +63,7 @@ RenderTable::RenderTable(Node* node)
     , m_borderEnd(0)
 {
     setChildrenInline(false);
-    m_columnPos.fill(0, 2);
-    m_columns.fill(ColumnStruct(), 1);
+    m_columnPos.fill(0, 1);
     
 }
 
index 3f7d592ec7d0859ab7d2f8bf5740270fe4089d6a..25780df6e24a48bda0ae9318a91c23d4cbc0f9dd 100644 (file)
@@ -151,13 +151,13 @@ public:
     int numEffCols() const { return m_columns.size(); }
     int spanOfEffCol(int effCol) const { return m_columns[effCol].span; }
     
-    int colToEffCol(int col) const
+    int colToEffCol(unsigned col) const
     {
-        int i = 0;
-        int effCol = numEffCols();
-        for (int c = 0; c < col && i < effCol; ++i)
-            c += m_columns[i].span;
-        return i;
+        unsigned effCol = 0;
+        unsigned numCols = numEffCols();
+        for (unsigned c = 0; effCol < numCols && c + m_columns[effCol].span - 1 < col; ++effCol)
+            c += m_columns[effCol].span;
+        return effCol;
     }
     
     int effColToCol(int effCol) const