LayoutTests:
authorbdakin <bdakin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 16 May 2007 21:47:31 +0000 (21:47 +0000)
committerbdakin <bdakin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 16 May 2007 21:47:31 +0000 (21:47 +0000)
        Reviewed by Hyatt.

        Changes for <rdar://problem/5204107> REGRESSION: CSS web forum site
        layout not displaying properly in latest WebKit

        New test:
        * fast/table/tableInsideCaption-expected.checksum: Added.
        * fast/table/tableInsideCaption-expected.png: Added.
        * fast/table/tableInsideCaption-expected.txt: Added.
        * fast/table/tableInsideCaption.html: Added.

        Good changes.
        * tables/mozilla/bugs/bug48028-1-expected.checksum:
        * tables/mozilla/bugs/bug48028-1-expected.png:
        * tables/mozilla/bugs/bug48028-1-expected.txt:
        * tables/mozilla_expected_failures/core/captions1-
        expected.checksum:
        * tables/mozilla_expected_failures/core/captions1-expected.png:
        * tables/mozilla_expected_failures/core/captions1-expected.txt:

        Not great changes. These changes expose other bugs. Filing reports
        for these.
        * tables/mozilla/bugs/bug48028-2-expected.txt:
        * tables/mozilla/bugs/bug55789-expected.checksum:
        * tables/mozilla/bugs/bug55789-expected.png:
        * tables/mozilla/bugs/bug55789-expected.txt:

WebCore:

        Reviewed by Hyatt.

        Fix for <rdar://problem/5204107> REGRESSION: CSS web forum site
        layout not displaying properly in latest WebKit

        Hyatt's http://trac.webkit.org/projects/webkit/changeset/21428
        exposed this bug. We were not handling error cases with <caption>
        correctly. This patch makes them do the same thing as colgroup.

        * html/HTMLParser.cpp:
        (WebCore::HTMLParser::handleError):
        * html/HTMLParserErrorCodes.cpp: No need any more for caption-
        specific errors.
        (WebCore::htmlParserErrorMessageTemplate):
        * html/HTMLParserErrorCodes.h:
        (WebCore::):

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

19 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/table/tableInsideCaption-expected.checksum [new file with mode: 0644]
LayoutTests/fast/table/tableInsideCaption-expected.png [new file with mode: 0644]
LayoutTests/fast/table/tableInsideCaption-expected.txt [new file with mode: 0644]
LayoutTests/fast/table/tableInsideCaption.html [new file with mode: 0644]
LayoutTests/tables/mozilla/bugs/bug48028-1-expected.checksum
LayoutTests/tables/mozilla/bugs/bug48028-1-expected.png
LayoutTests/tables/mozilla/bugs/bug48028-1-expected.txt
LayoutTests/tables/mozilla/bugs/bug48028-2-expected.txt
LayoutTests/tables/mozilla/bugs/bug55789-expected.checksum
LayoutTests/tables/mozilla/bugs/bug55789-expected.png
LayoutTests/tables/mozilla/bugs/bug55789-expected.txt
LayoutTests/tables/mozilla_expected_failures/core/captions1-expected.checksum
LayoutTests/tables/mozilla_expected_failures/core/captions1-expected.png
LayoutTests/tables/mozilla_expected_failures/core/captions1-expected.txt
WebCore/ChangeLog
WebCore/html/HTMLParser.cpp
WebCore/html/HTMLParserErrorCodes.cpp
WebCore/html/HTMLParserErrorCodes.h

index 55ff4a3..f952abf 100644 (file)
@@ -1,3 +1,32 @@
+2007-05-16  dethbakin  <bdakin@apple.com>
+
+        Reviewed by Hyatt.
+
+        Changes for <rdar://problem/5204107> REGRESSION: CSS web forum site 
+        layout not displaying properly in latest WebKit
+
+        New test:
+        * fast/table/tableInsideCaption-expected.checksum: Added.
+        * fast/table/tableInsideCaption-expected.png: Added.
+        * fast/table/tableInsideCaption-expected.txt: Added.
+        * fast/table/tableInsideCaption.html: Added.
+        
+        Good changes.
+        * tables/mozilla/bugs/bug48028-1-expected.checksum:
+        * tables/mozilla/bugs/bug48028-1-expected.png:
+        * tables/mozilla/bugs/bug48028-1-expected.txt:
+        * tables/mozilla_expected_failures/core/captions1-
+        expected.checksum:
+        * tables/mozilla_expected_failures/core/captions1-expected.png:
+        * tables/mozilla_expected_failures/core/captions1-expected.txt:
+
+        Not great changes. These changes expose other bugs. Filing reports 
+        for these.
+        * tables/mozilla/bugs/bug48028-2-expected.txt:
+        * tables/mozilla/bugs/bug55789-expected.checksum:
+        * tables/mozilla/bugs/bug55789-expected.png:
+        * tables/mozilla/bugs/bug55789-expected.txt:
+
 2007-05-16  Kevin McCullough  <kmccullough@apple.com>
 
         Reviewed by Darin and Geoff.
diff --git a/LayoutTests/fast/table/tableInsideCaption-expected.checksum b/LayoutTests/fast/table/tableInsideCaption-expected.checksum
new file mode 100644 (file)
index 0000000..9d2f25b
--- /dev/null
@@ -0,0 +1 @@
+e4ed0ee0eb7c59f46b681555cc252d48
\ No newline at end of file
diff --git a/LayoutTests/fast/table/tableInsideCaption-expected.png b/LayoutTests/fast/table/tableInsideCaption-expected.png
new file mode 100644 (file)
index 0000000..b0bc0aa
Binary files /dev/null and b/LayoutTests/fast/table/tableInsideCaption-expected.png differ
diff --git a/LayoutTests/fast/table/tableInsideCaption-expected.txt b/LayoutTests/fast/table/tableInsideCaption-expected.txt
new file mode 100644 (file)
index 0000000..7cfa809
--- /dev/null
@@ -0,0 +1,32 @@
+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 202x80
+        RenderTableSection {TBODY} at (0,0) size 202x80
+          RenderTableRow {TR} at (0,2) size 202x76
+            RenderTableCell {TD} at (2,2) size 198x76 [r=0 c=0 rs=1 cs=1]
+              RenderTable {TABLE} at (1,1) size 196x24
+                RenderTableSection {TBODY} at (0,0) size 196x24
+                  RenderTableRow {TR} at (0,2) size 196x20
+                    RenderTableCell {TD} at (2,2) size 192x20 [r=0 c=0 rs=1 cs=1]
+                      RenderText {#text} at (1,1) size 190x18
+                        text run at (1,1) width 190: "This should all be on one line."
+              RenderTable {TABLE} at (1,25) size 84x50
+                RenderTableSection {THEAD} at (0,24) size 84x2
+                RenderBlock {CAPTION} at (0,0) size 84x24
+                  RenderTable {TABLE} at (14,0) size 56x24
+                    RenderTableSection {TBODY} at (0,0) size 56x24
+                      RenderTableRow {TR} at (0,2) size 56x20
+                        RenderTableCell {TD} at (2,2) size 52x20 [r=0 c=0 rs=1 cs=1]
+                          RenderText {#text} at (1,1) size 50x18
+                            text run at (1,1) width 50: "Caption"
+                RenderTableSection {TBODY} at (0,26) size 84x24
+                  RenderTableRow {TR} at (0,2) size 84x20
+                    RenderTableCell {TD} at (2,2) size 49x20 [r=0 c=0 rs=1 cs=1]
+                      RenderText {#text} at (1,1) size 47x18
+                        text run at (1,1) width 47: "Bottom"
+                    RenderTableCell {TD} at (53,2) size 29x20 [r=0 c=1 rs=1 cs=1]
+                      RenderText {#text} at (1,1) size 27x18
+                        text run at (1,1) width 27: "line."
diff --git a/LayoutTests/fast/table/tableInsideCaption.html b/LayoutTests/fast/table/tableInsideCaption.html
new file mode 100644 (file)
index 0000000..74c4146
--- /dev/null
@@ -0,0 +1,18 @@
+<table>
+    <tr>
+        <td>
+            <table><tr><td>This should all be on one line.</td></tr></table>
+            <table>
+                <thead>
+                    <caption><table><tr><td>Caption</td></tr></table></caption>
+                </thead>
+                <tbody>
+                    <tr>
+                        <td>Bottom</td>
+                        <td width="100%">line.</td>
+                    </tr>
+                </tbody>
+            </table>
+        </td>
+    </tr>
+</table>
index d3daab0..25d76e0 100644 (file)
@@ -1 +1 @@
-f25000bb13a8ef03daa356a8dbd1e178
\ No newline at end of file
+62b1408ac26006438d4cb2c457530917
\ No newline at end of file
index e6310c6..5854638 100644 (file)
Binary files a/LayoutTests/tables/mozilla/bugs/bug48028-1-expected.png and b/LayoutTests/tables/mozilla/bugs/bug48028-1-expected.png differ
index 986dd5b..c51e56b 100644 (file)
@@ -5,26 +5,27 @@ layer at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x584
       RenderBlock (anonymous) at (0,0) size 784x0
         RenderInline {FONT} at (0,0) size 0x0
-      RenderTable {TABLE} at (0,0) size 117x46 [border: (1px outset #808080)]
+      RenderTable {TABLE} at (0,0) size 117x48 [border: (1px outset #808080)]
+        RenderTableSection {TBODY} at (1,19) size 115x2
         RenderBlock {CAPTION} at (0,0) size 115x18
           RenderText {#text} at (34,0) size 47x18
             text run at (34,0) width 47: "TEST1"
-        RenderTableSection {TBODY} at (1,19) size 115x26
+        RenderTableSection {TBODY} at (1,21) size 115x26
           RenderTableRow {TR} at (0,2) size 115x22
             RenderTableCell {TD} at (2,2) size 111x22 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
               RenderText {#text} at (2,2) size 107x18
                 text run at (2,2) width 107: "TABLE TEXT1"
-      RenderBlock (anonymous) at (0,46) size 784x18
+      RenderBlock (anonymous) at (0,48) size 784x18
         RenderInline {FONT} at (0,0) size 47x18
           RenderText {#text} at (0,0) size 47x18
             text run at (0,0) width 47: "TEST2"
-      RenderTable {TABLE} at (0,64) size 117x28 [border: (1px outset #808080)]
+      RenderTable {TABLE} at (0,66) size 117x28 [border: (1px outset #808080)]
         RenderTableSection {TBODY} at (1,1) size 115x26
           RenderTableRow {TR} at (0,2) size 115x22
             RenderTableCell {TD} at (2,2) size 111x22 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
               RenderText {#text} at (2,2) size 107x18
                 text run at (2,2) width 107: "TABLE TEXT2"
-      RenderTable {TABLE} at (0,92) size 117x46 [border: (1px outset #808080)]
+      RenderTable {TABLE} at (0,94) size 117x46 [border: (1px outset #808080)]
         RenderBlock {CAPTION} at (0,0) size 115x18
           RenderText {#text} at (34,0) size 47x18
             text run at (34,0) width 47: "TEST3"
index 6daee84..66327b9 100644 (file)
@@ -6,6 +6,7 @@ layer at (0,0) size 800x600
       RenderBlock (anonymous) at (0,0) size 784x0
         RenderInline {FONT} at (0,0) size 0x0
       RenderTable {TABLE} at (0,0) size 346x39 [bgcolor=#FFFFFF] [border: (1px outset #808080)]
+        RenderTableSection {TBODY} at (1,19) size 344x0
         RenderBlock {CAPTION} at (0,0) size 344x18
           RenderText {#text} at (109,0) size 125x18
             text run at (109,0) width 125: "Complete Price List"
index 5360128..dc26996 100644 (file)
@@ -1 +1 @@
-9ef20b7701178977d7f00e7dfcdea900
\ No newline at end of file
+049e281e6cf2b33d650938f6a7c9ea96
\ No newline at end of file
index f6ae82e..f420a7b 100644 (file)
Binary files a/LayoutTests/tables/mozilla/bugs/bug55789-expected.png and b/LayoutTests/tables/mozilla/bugs/bug55789-expected.png differ
index 50ac29a..6596fa8 100644 (file)
@@ -3,16 +3,19 @@ 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
-      RenderBlock (anonymous) at (0,0) size 784x18
-        RenderText {#text} at (0,0) size 40x18
-          text run at (0,0) width 40: "25016"
-      RenderTable {TABLE} at (0,18) size 38x28
-        RenderBlock {CAPTION} at (0,0) size 38x0
-        RenderTableSection {TBODY} at (0,0) size 38x28
-          RenderTableRow {TR} at (0,2) size 38x20
-            RenderTableCell {TD} at (2,2) size 34x20 [r=0 c=0 rs=1 cs=1]
+      RenderTable {TABLE} at (0,0) size 46x54
+        RenderTableSection {TBODY} at (0,0) size 46x24
+          RenderTableRow {TR} at (0,2) size 46x20
+            RenderTableCell {TD} at (2,2) size 42x20 [r=0 c=0 rs=1 cs=1]
               RenderText {#text} at (1,1) size 32x18
                 text run at (1,1) width 32: "4659"
-          RenderTableRow {TR} at (0,24) size 38x2
-            RenderTableCell {TH} at (2,24) size 34x2 [r=1 c=0 rs=1 cs=1]
+        RenderBlock {CAPTION} at (0,0) size 46x0
+        RenderTableSection at (0,24) size 46x24
+          RenderTableRow at (0,2) size 46x20
+            RenderTableCell at (2,2) size 42x20 [r=0 c=0 rs=1 cs=1]
+              RenderText {#text} at (1,1) size 40x18
+                text run at (1,1) width 40: "25016"
+        RenderTableSection {TBODY} at (0,48) size 46x6
+          RenderTableRow {TR} at (0,2) size 46x2
+            RenderTableCell {TH} at (2,2) size 42x2 [r=0 c=0 rs=1 cs=1]
         RenderTableCol {COLGROUP} at (0,0) size 0x0
index f3b92a8..becfcba 100644 (file)
Binary files a/LayoutTests/tables/mozilla_expected_failures/core/captions1-expected.png and b/LayoutTests/tables/mozilla_expected_failures/core/captions1-expected.png differ
index b53d5dc..87e6ce4 100644 (file)
@@ -1,9 +1,9 @@
 CONSOLE MESSAGE: line 37: Value undefined (result of expression document.getElementsById) is not object.
-layer at (0,0) size 785x1147
+layer at (0,0) size 785x1149
   RenderView at (0,0) size 785x600
-layer at (0,0) size 785x1147
-  RenderBlock {HTML} at (0,0) size 785x1147
-    RenderBody {BODY} at (8,8) size 769x1131
+layer at (0,0) size 785x1149
+  RenderBlock {HTML} at (0,0) size 785x1149
+    RenderBody {BODY} at (8,8) size 769x1133
       RenderBlock {CENTER} at (0,0) size 769x18
         RenderText {#text} at (322,0) size 125x18
           text run at (322,0) width 125: "bottom caption tests"
@@ -131,12 +131,17 @@ layer at (0,0) size 785x1147
       RenderBlock (anonymous) at (0,719) size 769x18
         RenderText {#text} at (0,0) size 149x18
           text run at (0,0) width 149: "table 6 - table gets taller"
-      RenderTable {TABLE} at (5,747) size 106x115 [border: (10px solid #008000)]
-        RenderBlock {CAPTION} at (10,88) size 76x25 [border: (3px solid #800080)]
+      RenderTable {TABLE} at (5,747) size 106x117 [border: (10px solid #008000)]
+        RenderTableSection {TBODY} at (10,10) size 86x24
+          RenderTableRow {TR} at (0,2) size 86x20
+            RenderTableCell {TD} at (2,2) size 48x20 [r=0 c=0 rs=1 cs=1]
+              RenderText {#text} at (1,1) size 46x18
+                text run at (1,1) width 46: "foo foo"
+        RenderBlock {CAPTION} at (10,90) size 76x25 [border: (3px solid #800080)]
           RenderText {#text} at (6,3) size 46x18
             text run at (6,3) width 46: "caption"
           RenderBlock {INPUT} at (55,6) size 12x13
-        RenderTableSection {TBODY} at (10,10) size 86x68
+        RenderTableSection {TBODY} at (10,34) size 86x46
           RenderTableRow {TR} at (0,2) size 86x20
             RenderTableCell {TD} at (2,2) size 48x20 [r=0 c=0 rs=1 cs=1]
               RenderText {#text} at (1,1) size 30x18
@@ -151,14 +156,10 @@ layer at (0,0) size 785x1147
             RenderTableCell {TD} at (52,24) size 32x20 [r=1 c=1 rs=1 cs=1]
               RenderText {#text} at (1,1) size 30x18
                 text run at (1,1) width 30: "Data"
-          RenderTableRow {TR} at (0,46) size 86x20
-            RenderTableCell {TD} at (2,46) size 48x20 [r=2 c=0 rs=1 cs=1]
-              RenderText {#text} at (1,1) size 46x18
-                text run at (1,1) width 46: "foo foo"
-      RenderBlock (anonymous) at (0,867) size 769x18
+      RenderBlock (anonymous) at (0,869) size 769x18
         RenderText {#text} at (0,0) size 139x18
           text run at (0,0) width 139: "table 7 - insert caption"
-      RenderTable {TABLE} at (5,895) size 90x92 [border: (10px solid #008000)]
+      RenderTable {TABLE} at (5,897) size 90x92 [border: (10px solid #008000)]
         RenderTableSection {TBODY} at (10,10) size 70x46
           RenderTableRow {TR} at (0,2) size 70x20
             RenderTableCell {TD} at (2,2) size 32x20 [r=0 c=0 rs=1 cs=1]
@@ -177,10 +178,10 @@ layer at (0,0) size 785x1147
         RenderBlock {CAPTION} at (10,66) size 60x24 [border: (3px solid #800080)]
           RenderText {#text} at (3,3) size 53x18
             text run at (3,3) width 53: "new cap"
-      RenderBlock (anonymous) at (0,992) size 769x18
+      RenderBlock (anonymous) at (0,994) size 769x18
         RenderText {#text} at (0,0) size 152x18
           text run at (0,0) width 152: "table 8 - remove caption"
-      RenderTable {TABLE} at (5,1020) size 90x111 [border: (10px solid #008000)]
+      RenderTable {TABLE} at (5,1022) size 90x111 [border: (10px solid #008000)]
         RenderBlock {CAPTION} at (10,66) size 60x43 [border: (3px solid #800080)]
           RenderText {#text} at (7,3) size 46x18
             text run at (7,3) width 46: "caption"
index 5a775e2..d5a8369 100644 (file)
@@ -1,3 +1,22 @@
+2007-05-16  dethbakin  <bdakin@apple.com>
+
+        Reviewed by Hyatt.
+
+        Fix for <rdar://problem/5204107> REGRESSION: CSS web forum site 
+        layout not displaying properly in latest WebKit
+
+        Hyatt's http://trac.webkit.org/projects/webkit/changeset/21428 
+        exposed this bug. We were not handling error cases with <caption> 
+        correctly. This patch makes them do the same thing as colgroup.
+
+        * html/HTMLParser.cpp:
+        (WebCore::HTMLParser::handleError):
+        * html/HTMLParserErrorCodes.cpp: No need any more for caption-
+        specific errors.
+        (WebCore::htmlParserErrorMessageTemplate):
+        * html/HTMLParserErrorCodes.h:
+        (WebCore::):
+
 2007-05-16  Kevin McCullough  <kmccullough@apple.com>
 
         Reviewed by Darin and Geoff.
index 91118fa..a926a35 100644 (file)
@@ -420,25 +420,7 @@ bool HTMLParser::handleError(Node* n, bool flat, const AtomicString& localName,
                 return true;
             }
             return false;
-        } else if (h->hasLocalName(captionTag)) {
-            if (isTablePart(current)) {
-                reportError(MisplacedCaptionInTableError, &current->localName());
-                Node* tsection = current;
-                if (current->hasTagName(trTag))
-                    tsection = current->parent();
-                else if (current->hasTagName(tdTag) || current->hasTagName(thTag))
-                    tsection = current->parent()->parent();
-                Node* table = tsection->parent();
-                ExceptionCode ec = 0;
-                table->insertBefore(n, tsection, ec);
-                pushBlock(localName, tagPriority);
-                setCurrent(n);
-                inStrayTableContent++;
-                blockStack->strayTableContent = true;
-                return true;
-            } else
-                reportError(MisplacedCaptionError);
-        } else if (h->hasLocalName(colgroupTag)) {
+        } else if (h->hasLocalName(colgroupTag) || h->hasLocalName(captionTag)) {
             if (isTableRelated(current)) {
                 while (blockStack && isTablePart(current))
                     popOneBlock();
index 0e96a6b..2f044fd 100644 (file)
@@ -36,8 +36,6 @@ const char* htmlParserErrorMessageTemplate(HTMLParserErrorCode errorCode)
         "Extra %tag1 encountered.  Migrating attributes back to the original %tag1 element and ignoring the tag.",
         "%tag1 is not allowed inside <object>. Skipping all content until </object> is encountered.",
         "<area> is not allowed inside %tag1. Moving the <area> into the nearest enclosing <map>.",
-        "<caption> found outside of a table.  Content ignored.",
-        "<caption> is not allowed inside %tag1. Moving the <caption> into the enclosing table before all table sections.",
         "%tag1 is not allowed inside %tag2. Content ignored.",
         "%tag1 is not allowed in a <frameset> page. Content ignored.",
         "%tag1 is not allowed inside %tag2. Closing %tag2 and trying the insertion again.",
index 75d5715..4b93d38 100644 (file)
@@ -34,8 +34,6 @@ enum HTMLParserErrorCode {
     RedundantHTMLBodyError,
     BadObjectContentError,
     MisplacedAreaError,
-    MisplacedCaptionError,
-    MisplacedCaptionInTableError,
     IgnoredContentError,
     MisplacedFramesetContentError,
     MisplacedContentRetryError,