LayoutTests:
authoradele <adele@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 23 Mar 2006 21:58:32 +0000 (21:58 +0000)
committeradele <adele@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 23 Mar 2006 21:58:32 +0000 (21:58 +0000)
        - Test for http://bugzilla.opendarwin.org/show_bug.cgi?id=7935
        <rdar://problem/4489010>
        Infinite recursion in table code when button or new text fields get display:table-row

        Added:
        * fast/forms/button-table-styles.txt: Added.
        * fast/forms/button-table-styles.png: Added.
        * fast/forms/button-table-styles.checksum: Added.
        * fast/forms/button-table-styles.html: Added.

WebCore:

        Reviewed by Hyatt.

        - Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=7935
        <rdar://problem/4489010>
        Infinite recursion in table code when button or new text fields get display:table-row

        Test:
        fast/forms/button-table-styles.html

        * rendering/RenderTheme.cpp: (WebCore::RenderTheme::adjustStyle):
        The theme should disallow table display styles form elements.

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

LayoutTests/ChangeLog
LayoutTests/fast/forms/button-table-styles-expected.checksum [new file with mode: 0644]
LayoutTests/fast/forms/button-table-styles-expected.png [new file with mode: 0644]
LayoutTests/fast/forms/button-table-styles-expected.txt [new file with mode: 0644]
LayoutTests/fast/forms/button-table-styles.html [new file with mode: 0644]
WebCore/ChangeLog
WebCore/rendering/RenderTheme.cpp

index a872db3b0db97a43199972b1311f26edfe40ee80..a8f57ccb10a673d3a7ff7ade3567747beb63e435 100644 (file)
@@ -1,3 +1,15 @@
+2006-03-23  Adele Peterson  <adele@apple.com>
+
+        - Test for http://bugzilla.opendarwin.org/show_bug.cgi?id=7935
+        <rdar://problem/4489010>
+        Infinite recursion in table code when button or new text fields get display:table-row
+
+        Added:
+        * fast/forms/button-table-styles.txt: Added.
+        * fast/forms/button-table-styles.png: Added.
+        * fast/forms/button-table-styles.checksum: Added.
+        * fast/forms/button-table-styles.html: Added.
+
 2006-03-22  Justin Garcia  <justin.garcia@apple.com>
 
         Reviewed by harrison
diff --git a/LayoutTests/fast/forms/button-table-styles-expected.checksum b/LayoutTests/fast/forms/button-table-styles-expected.checksum
new file mode 100644 (file)
index 0000000..deca638
--- /dev/null
@@ -0,0 +1 @@
+0bbcec0dc57d7d2667ca51be9a7f1817
\ No newline at end of file
diff --git a/LayoutTests/fast/forms/button-table-styles-expected.png b/LayoutTests/fast/forms/button-table-styles-expected.png
new file mode 100644 (file)
index 0000000..9b26fce
Binary files /dev/null and b/LayoutTests/fast/forms/button-table-styles-expected.png differ
diff --git a/LayoutTests/fast/forms/button-table-styles-expected.txt b/LayoutTests/fast/forms/button-table-styles-expected.txt
new file mode 100644 (file)
index 0000000..e107182
--- /dev/null
@@ -0,0 +1,143 @@
+layer at (0,0) size 800x600
+  RenderCanvas 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 342x18
+          text run at (0,0) width 342: "This tests that buttons don't honor table display styles. "
+        RenderBR {BR} at (0,0) size 0x0
+      RenderButton {INPUT} at (2,20) size 88x18 [bgcolor=#C0C0C0]
+        RenderBlock (anonymous) at (8,2) size 72x13
+          RenderText at (0,0) size 72x13
+            text run at (0,0) width 72: "display: table"
+      RenderButton {INPUT} at (2,40) size 88x18 [bgcolor=#C0C0C0]
+        RenderBlock (anonymous) at (8,2) size 72x13
+          RenderText at (0,0) size 72x13
+            text run at (0,0) width 72: "display: table"
+      RenderBlock (anonymous) at (0,60) size 784x378
+        RenderBR {BR} at (0,0) size 0x18
+        RenderBR {BR} at (0,18) size 0x18
+        RenderButton {INPUT} at (2,38) size 125x18 [bgcolor=#C0C0C0]
+          RenderBlock (anonymous) at (8,2) size 109x13
+            RenderText at (0,0) size 109x13
+              text run at (0,0) width 109: "display: inline-table"
+        RenderText {TEXT} at (129,37) size 4x18
+          text run at (129,37) width 4: " "
+        RenderButton {INPUT} at (135,38) size 125x18 [bgcolor=#C0C0C0]
+          RenderBlock (anonymous) at (8,2) size 109x13
+            RenderText at (0,0) size 109x13
+              text run at (0,0) width 109: "display: inline-table"
+        RenderText {TEXT} at (262,37) size 4x18
+          text run at (262,37) width 4: " "
+        RenderBR {BR} at (0,0) size 0x0
+        RenderBR {BR} at (0,58) size 0x18
+        RenderButton {INPUT} at (2,78) size 154x18 [bgcolor=#C0C0C0]
+          RenderBlock (anonymous) at (8,2) size 138x13
+            RenderText at (0,0) size 138x13
+              text run at (0,0) width 138: "display: table-row-group"
+        RenderText {TEXT} at (158,77) size 4x18
+          text run at (158,77) width 4: " "
+        RenderButton {INPUT} at (164,78) size 154x18 [bgcolor=#C0C0C0]
+          RenderBlock (anonymous) at (8,2) size 138x13
+            RenderText at (0,0) size 138x13
+              text run at (0,0) width 138: "display: table-row-group"
+        RenderText {TEXT} at (320,77) size 4x18
+          text run at (320,77) width 4: " "
+        RenderBR {BR} at (0,0) size 0x0
+        RenderBR {BR} at (0,98) size 0x18
+        RenderButton {INPUT} at (2,118) size 171x18 [bgcolor=#C0C0C0]
+          RenderBlock (anonymous) at (8,2) size 155x13
+            RenderText at (0,0) size 155x13
+              text run at (0,0) width 155: "display: table-header-group"
+        RenderText {TEXT} at (175,117) size 4x18
+          text run at (175,117) width 4: " "
+        RenderButton {INPUT} at (181,118) size 171x18 [bgcolor=#C0C0C0]
+          RenderBlock (anonymous) at (8,2) size 155x13
+            RenderText at (0,0) size 155x13
+              text run at (0,0) width 155: "display: table-header-group"
+        RenderText {TEXT} at (354,117) size 4x18
+          text run at (354,117) width 4: " "
+        RenderBR {BR} at (0,0) size 0x0
+        RenderBR {BR} at (0,138) size 0x18
+        RenderButton {INPUT} at (2,158) size 167x18 [bgcolor=#C0C0C0]
+          RenderBlock (anonymous) at (8,2) size 151x13
+            RenderText at (0,0) size 151x13
+              text run at (0,0) width 151: "display: table-footer-group"
+        RenderText {TEXT} at (171,157) size 4x18
+          text run at (171,157) width 4: " "
+        RenderButton {INPUT} at (177,158) size 167x18 [bgcolor=#C0C0C0]
+          RenderBlock (anonymous) at (8,2) size 151x13
+            RenderText at (0,0) size 151x13
+              text run at (0,0) width 151: "display: table-footer-group"
+        RenderText {TEXT} at (346,157) size 4x18
+          text run at (346,157) width 4: " "
+        RenderBR {BR} at (0,0) size 0x0
+        RenderBR {BR} at (0,178) size 0x18
+        RenderButton {INPUT} at (2,198) size 115x18 [bgcolor=#C0C0C0]
+          RenderBlock (anonymous) at (8,2) size 99x13
+            RenderText at (0,0) size 99x13
+              text run at (0,0) width 99: "display: table-row"
+        RenderText {TEXT} at (119,197) size 4x18
+          text run at (119,197) width 4: " "
+        RenderButton {INPUT} at (125,198) size 115x18 [bgcolor=#C0C0C0]
+          RenderBlock (anonymous) at (8,2) size 99x13
+            RenderText at (0,0) size 99x13
+              text run at (0,0) width 99: "display: table-row"
+        RenderText {TEXT} at (242,197) size 4x18
+          text run at (242,197) width 4: " "
+        RenderBR {BR} at (0,0) size 0x0
+        RenderBR {BR} at (0,218) size 0x18
+        RenderButton {INPUT} at (2,238) size 174x18 [bgcolor=#C0C0C0]
+          RenderBlock (anonymous) at (8,2) size 158x13
+            RenderText at (0,0) size 158x13
+              text run at (0,0) width 158: "display: table-column-group"
+        RenderText {TEXT} at (178,237) size 4x18
+          text run at (178,237) width 4: " "
+        RenderButton {INPUT} at (184,238) size 174x18 [bgcolor=#C0C0C0]
+          RenderBlock (anonymous) at (8,2) size 158x13
+            RenderText at (0,0) size 158x13
+              text run at (0,0) width 158: "display: table-column-group"
+        RenderText {TEXT} at (360,237) size 4x18
+          text run at (360,237) width 4: " "
+        RenderBR {BR} at (0,0) size 0x0
+        RenderBR {BR} at (0,258) size 0x18
+        RenderButton {INPUT} at (2,278) size 135x18 [bgcolor=#C0C0C0]
+          RenderBlock (anonymous) at (8,2) size 119x13
+            RenderText at (0,0) size 119x13
+              text run at (0,0) width 119: "display: table-column"
+        RenderText {TEXT} at (139,277) size 4x18
+          text run at (139,277) width 4: " "
+        RenderButton {INPUT} at (145,278) size 135x18 [bgcolor=#C0C0C0]
+          RenderBlock (anonymous) at (8,2) size 119x13
+            RenderText at (0,0) size 119x13
+              text run at (0,0) width 119: "display: table-column"
+        RenderText {TEXT} at (282,277) size 4x18
+          text run at (282,277) width 4: " "
+        RenderBR {BR} at (0,0) size 0x0
+        RenderBR {BR} at (0,298) size 0x18
+        RenderButton {INPUT} at (2,318) size 114x18 [bgcolor=#C0C0C0]
+          RenderBlock (anonymous) at (8,2) size 98x13
+            RenderText at (0,0) size 98x13
+              text run at (0,0) width 98: "display: table-cell"
+        RenderText {TEXT} at (118,317) size 4x18
+          text run at (118,317) width 4: " "
+        RenderButton {INPUT} at (124,318) size 114x18 [bgcolor=#C0C0C0]
+          RenderBlock (anonymous) at (8,2) size 98x13
+            RenderText at (0,0) size 98x13
+              text run at (0,0) width 98: "display: table-cell"
+        RenderText {TEXT} at (240,317) size 4x18
+          text run at (240,317) width 4: " "
+        RenderBR {BR} at (0,0) size 0x0
+        RenderBR {BR} at (0,338) size 0x18
+        RenderButton {INPUT} at (2,358) size 135x18 [bgcolor=#C0C0C0]
+          RenderBlock (anonymous) at (8,2) size 119x13
+            RenderText at (0,0) size 119x13
+              text run at (0,0) width 119: "display: table-caption"
+        RenderText {TEXT} at (139,357) size 4x18
+          text run at (139,357) width 4: " "
+        RenderButton {INPUT} at (145,358) size 135x18 [bgcolor=#C0C0C0]
+          RenderBlock (anonymous) at (8,2) size 119x13
+            RenderText at (0,0) size 119x13
+              text run at (0,0) width 119: "display: table-caption"
+        RenderText {TEXT} at (0,0) size 0x0
diff --git a/LayoutTests/fast/forms/button-table-styles.html b/LayoutTests/fast/forms/button-table-styles.html
new file mode 100644 (file)
index 0000000..c188dec
--- /dev/null
@@ -0,0 +1,31 @@
+This tests that buttons don't honor table display styles.
+<br>
+<input type="button" value="display: table" style="display: table;">
+<input type="button" value="display: table" style="display: table;">
+<br><br>
+<input type="button" value="display: inline-table" style="display: inline-table;">
+<input type="button" value="display: inline-table" style="display: inline-table;">
+<br><br>
+<input type="button" value="display: table-row-group" style="display: table-row-group;">
+<input type="button" value="display: table-row-group" style="display: table-row-group;">
+<br><br>
+<input type="button" value="display: table-header-group" style="display: table-header-group;">
+<input type="button" value="display: table-header-group" style="display: table-header-group;">
+<br><br>
+<input type="button" value="display: table-footer-group" style="display: table-footer-group;">
+<input type="button" value="display: table-footer-group" style="display: table-footer-group;">
+<br><br>
+<input type="button" value="display: table-row" style="display: table-row;">
+<input type="button" value="display: table-row" style="display: table-row;">
+<br><br>
+<input type="button" value="display: table-column-group" style="display: table-column-group;">
+<input type="button" value="display: table-column-group" style="display: table-column-group;">
+<br><br>
+<input type="button" value="display: table-column" style="display: table-column;">
+<input type="button" value="display: table-column" style="display: table-column;">
+<br><br>
+<input type="button" value="display: table-cell" style="display: table-cell;">
+<input type="button" value="display: table-cell" style="display: table-cell;">
+<br><br>
+<input type="button" value="display: table-caption" style="display: table-caption;">
+<input type="button" value="display: table-caption" style="display: table-caption;">
index 7c874c7a12e6ffaf73a34fb97399d8c49ecf1500..5a957f1800cf4dc32049211269453f6ed597c4bb 100644 (file)
@@ -1,3 +1,17 @@
+2006-03-23  Adele Peterson  <adele@apple.com>
+
+        Reviewed by Hyatt.
+
+        - Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=7935
+        <rdar://problem/4489010>
+        Infinite recursion in table code when button or new text fields get display:table-row
+
+        Test:
+        fast/forms/button-table-styles.html
+
+        * rendering/RenderTheme.cpp: (WebCore::RenderTheme::adjustStyle):
+        The theme should disallow table display styles form elements. 
+
 2006-03-23  Darin Adler  <darin@apple.com>
 
         * generate-derived-sources: Tweaked formatting a tiny bit and removed a stray
index b435733e3091c0a1ce0e5ba8a23ff76500f52f87..8d6c2eb03e546ce046dc8905d4f41ad08c55ed61 100644 (file)
@@ -36,12 +36,14 @@ using namespace HTMLNames;
 
 void RenderTheme::adjustStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e)
 {
-    // Force inline to be inline-block
-    if (style->display() == INLINE)
+    // Force inline and table display styles to be inline-block (except for table- which is block)
+    if (style->display() == INLINE || style->display() == INLINE_TABLE || style->display() == TABLE_ROW_GROUP || 
+        style->display() == TABLE_HEADER_GROUP || style->display() == TABLE_FOOTER_GROUP ||
+        style->display() == TABLE_ROW || style->display() == TABLE_COLUMN_GROUP || style->display() == TABLE_COLUMN || 
+        style->display() == TABLE_CELL || style->display() == TABLE_CAPTION)
         style->setDisplay(INLINE_BLOCK);
-    else if (style->display() == COMPACT || style->display() == RUN_IN || style->display() == LIST_ITEM)
+    else if (style->display() == COMPACT || style->display() == RUN_IN || style->display() == LIST_ITEM || style->display() == TABLE)
         style->setDisplay(BLOCK);
-    // FIXME: Do we really want to honor table display styles?
     
     // Call the appropriate style adjustment method based off the appearance value.
     switch (style->appearance()) {