Changeset 150023 in webkit


Ignore:
Timestamp:
May 13, 2013 11:16:51 AM (11 years ago)
Author:
commit-queue@webkit.org
Message:

Cell heights are disproportional when a row-spanning cell contains a block element that determines the height of the rows
https://bugs.webkit.org/show_bug.cgi?id=52185

Patch by Suchit Agrawal <a.suchit@samsung.com> on 2013-05-13
Reviewed by David Hyatt.

Source/WebCore:

Cells heights are not proper when rowspan cell have its own height and rowspan height
is more than the height of the rows present in rowspan.

After calculating logical height of the rows in the table, we are recalculating the height
of the rows present in rowspan. Based on the ratio of row's logical height, we are
distributing rowspan cell height in rows.

Test: fast/table/table-rowspan-height-distribution-in-rows.html

  • rendering/RenderTableSection.cpp:

(WebCore):

Update the logical height of the rows based on rowspan cell height.
(WebCore::RenderTableSection::distributeRowSpanHeightToRows):

It calculates logical height of the rows in the table.
(WebCore::RenderTableSection::calcRowLogicalHeight):

Added new private API to distribute rowSpan cell height in rows.

  • rendering/RenderTableSection.h:

(RenderTableSection):

LayoutTests:

Test case updated.

  • fast/css/vertical-align-baseline-rowspan-007.htm:

Reference Test cases updated.

  • fast/css/vertical-align-baseline-rowspan-007-expected.html:
  • fast/css/vertical-align-baseline-rowspan-008-expected.html:

Added test cases based on changes in the code and different scenarios for rowspan height
distribution in rows.

  • fast/table/table-rowspan-height-distribution-in-rows.html: Added.
  • platform/qt/fast/table/table-rowspan-height-distribution-in-rows-expected.png: Added.
  • platform/qt/fast/table/table-rowspan-height-distribution-in-rows-expected.txt: Added.

Test cases need to rebaseline in qt, efl, gtk and mac platforms.

  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/qt/TestExpectations:

Test case results are updated in qt platform.

  • platform/qt/tables/mozilla/bugs/bug17548-expected.png:
  • platform/qt/tables/mozilla/bugs/bug17548-expected.txt:
  • platform/qt/tables/mozilla/bugs/bug220536-expected.png:
  • platform/qt/tables/mozilla/bugs/bug220536-expected.txt:
  • platform/qt/tables/mozilla/bugs/bug7714-expected.png:
  • platform/qt/tables/mozilla/bugs/bug7714-expected.txt:
  • platform/qt/tables/mozilla/core/bloomberg-expected.png:
  • platform/qt/tables/mozilla/core/bloomberg-expected.txt:
  • platform/qt/tables/mozilla/other/test6-expected.png:
  • platform/qt/tables/mozilla/other/test6-expected.txt:
  • platform/qt/tables/mozilla_expected_failures/bugs/bug1010-expected.png:
  • platform/qt/tables/mozilla_expected_failures/bugs/bug1010-expected.txt:
  • platform/qt/tables/mozilla_expected_failures/bugs/bug23847-expected.png:
  • platform/qt/tables/mozilla_expected_failures/bugs/bug58402-2-expected.png:
  • platform/qt/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt:
  • platform/qt/tables/mozilla_expected_failures/bugs/bug6933-expected.png:
  • platform/qt/tables/mozilla_expected_failures/bugs/bug6933-expected.txt:
  • tables/mozilla/core/bloomberg-expected.txt:
  • tables/mozilla_expected_failures/bugs/bug23847-expected.txt:
Location:
trunk
Files:
3 added
30 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r150022 r150023  
     12013-05-13  Suchit Agrawal  <a.suchit@samsung.com>
     2
     3        Cell heights are disproportional when a row-spanning cell contains a block element that determines the height of the rows
     4        https://bugs.webkit.org/show_bug.cgi?id=52185
     5
     6        Reviewed by David Hyatt.
     7
     8        Test case updated.
     9        * fast/css/vertical-align-baseline-rowspan-007.htm:
     10
     11        Reference Test cases updated.
     12        * fast/css/vertical-align-baseline-rowspan-007-expected.html:
     13        * fast/css/vertical-align-baseline-rowspan-008-expected.html:
     14
     15        Added test cases based on changes in the code and different scenarios for rowspan height
     16        distribution in rows.
     17        * fast/table/table-rowspan-height-distribution-in-rows.html: Added.
     18        * platform/qt/fast/table/table-rowspan-height-distribution-in-rows-expected.png: Added.
     19        * platform/qt/fast/table/table-rowspan-height-distribution-in-rows-expected.txt: Added.
     20
     21        Test cases need to rebaseline in qt, efl, gtk and mac platforms.
     22        * platform/efl/TestExpectations:
     23        * platform/gtk/TestExpectations:
     24        * platform/mac/TestExpectations:
     25        * platform/qt/TestExpectations:
     26
     27        Test case results are updated in qt platform.
     28        * platform/qt/tables/mozilla/bugs/bug17548-expected.png:
     29        * platform/qt/tables/mozilla/bugs/bug17548-expected.txt:
     30        * platform/qt/tables/mozilla/bugs/bug220536-expected.png:
     31        * platform/qt/tables/mozilla/bugs/bug220536-expected.txt:
     32        * platform/qt/tables/mozilla/bugs/bug7714-expected.png:
     33        * platform/qt/tables/mozilla/bugs/bug7714-expected.txt:
     34        * platform/qt/tables/mozilla/core/bloomberg-expected.png:
     35        * platform/qt/tables/mozilla/core/bloomberg-expected.txt:
     36        * platform/qt/tables/mozilla/other/test6-expected.png:
     37        * platform/qt/tables/mozilla/other/test6-expected.txt:
     38        * platform/qt/tables/mozilla_expected_failures/bugs/bug1010-expected.png:
     39        * platform/qt/tables/mozilla_expected_failures/bugs/bug1010-expected.txt:
     40        * platform/qt/tables/mozilla_expected_failures/bugs/bug23847-expected.png:
     41        * platform/qt/tables/mozilla_expected_failures/bugs/bug58402-2-expected.png:
     42        * platform/qt/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt:
     43        * platform/qt/tables/mozilla_expected_failures/bugs/bug6933-expected.png:
     44        * platform/qt/tables/mozilla_expected_failures/bugs/bug6933-expected.txt:
     45        * tables/mozilla/core/bloomberg-expected.txt:
     46        * tables/mozilla_expected_failures/bugs/bug23847-expected.txt:
     47
    1482013-04-30  Balazs Kelemen  <b.kelemen@sisa.samsung.com>
    249
  • trunk/LayoutTests/fast/css/vertical-align-baseline-rowspan-007-expected.html

    r120616 r150023  
    88            td
    99            {
    10                 height:10px;
     10                height:100px;
     11            }
     12            #first
     13            {
     14                padding-top: 8px;
     15                vertical-align: top;
     16            }
     17            #second
     18            {
     19                /*padding-top: 0px;*/
    1120                vertical-align: baseline;
    1221            }
     
    1928    </head>
    2029    <body>
    21         <p>Test passes if the bottom of the black boxes is aligned.</p>
     30        <p>Test passes if the bottom of first and last black boxes is aligned.</p>
    2231        <table>
    2332            <tr>
    24                 <td>
     33                <td id="first">
    2534                    <div id="small">Text</div>
    2635                </td>
    27                 <td>
     36                <td id="second">
    2837                    <div id="small">Text</div>
    2938                </td>
    30                 <td>
     39                <td id="first">
    3140                    <div id="small">Text</div>
    3241                </td>
  • trunk/LayoutTests/fast/css/vertical-align-baseline-rowspan-007.htm

    r120616 r150023  
    2929        and as it is the same height as the other cells in the row, it sets the baseline for the row. This is unaffected by
    3030        the total height of the rowspan (80px) -->
    31         <p>Test passes if the bottom of the black boxes is aligned.</p>
     31        <p>Test passes if the bottom of first and last black boxes is aligned.</p>
    3232        <table>
    3333            <tr>
  • trunk/LayoutTests/fast/css/vertical-align-baseline-rowspan-008-expected.html

    r120616 r150023  
    1313            {
    1414                vertical-align: middle;
     15                height: 70px;
    1516            }
    1617            #small
  • trunk/LayoutTests/platform/efl/TestExpectations

    r150004 r150023  
    18811881webkit.org/b/115439 fast/text/complex-initial-advance.html [ ImageOnlyFailure ]
    18821882webkit.org/b/115440 svg/stroke/animated-non-scaling-stroke.html [ ImageOnlyFailure ]
     1883
     1884# Needs rebaseline after bug https://bugs.webkit.org/show_bug.cgi?id=52185
     1885webkit.org/b/52185 fast/table/007.html [ Failure Rebaseline ]
     1886webkit.org/b/52185 fast/table/colspanMinWidth.html [ Failure Rebaseline ]
     1887webkit.org/b/52185 fast/table/colspanMinWidth-vertical.html [ Failure Rebaseline ]
     1888webkit.org/b/52185 fast/table/spanOverlapRepaint.html [ Failure Rebaseline ]
     1889webkit.org/b/52185 tables/mozilla/bugs/bug13169.html [ Failure Rebaseline ]
     1890webkit.org/b/52185 tables/mozilla/bugs/bug133756-1.html [ Failure Rebaseline ]
     1891webkit.org/b/52185 tables/mozilla/bugs/bug133756-2.html [ Failure Rebaseline ]
     1892webkit.org/b/52185 tables/mozilla/bugs/bug17138.html [ Failure Rebaseline ]
     1893webkit.org/b/52185 tables/mozilla/bugs/bug17548.html [ Failure Rebaseline ]
     1894webkit.org/b/52185 tables/mozilla/bugs/bug220536.html [ Failure Rebaseline ]
     1895webkit.org/b/52185 tables/mozilla/bugs/bug6304.html [ Failure Rebaseline ]
     1896webkit.org/b/52185 tables/mozilla/bugs/bug73321.html [ Failure Rebaseline ]
     1897webkit.org/b/52185 tables/mozilla/bugs/bug7714.html [ Failure Rebaseline ]
     1898webkit.org/b/52185 tables/mozilla/bugs/bug86708.html [ ImageOnlyFailure Rebaseline ]
     1899webkit.org/b/52185 tables/mozilla/bugs/bug8858.html [ Failure Rebaseline ]
     1900webkit.org/b/52185 tables/mozilla/core/bloomberg.html [ Failure Rebaseline ]
     1901webkit.org/b/52185 tables/mozilla/core/cell_heights.html [ Failure Rebaseline ]
     1902webkit.org/b/52185 tables/mozilla/other/test6.html [ Failure Rebaseline ]
     1903webkit.org/b/52185 tables/mozilla_expected_failures/bugs/bug1010.html [ Failure Rebaseline ]
     1904webkit.org/b/52185 tables/mozilla_expected_failures/bugs/bug131020-3.html [ Failure Rebaseline ]
     1905webkit.org/b/52185 tables/mozilla_expected_failures/bugs/bug23847.html [ Failure Rebaseline ]
     1906webkit.org/b/52185 tables/mozilla_expected_failures/bugs/bug58402-2.html [ Failure Rebaseline ]
     1907webkit.org/b/52185 tables/mozilla_expected_failures/bugs/bug65372.html [ Failure Rebaseline ]
     1908webkit.org/b/52185 tables/mozilla_expected_failures/bugs/bug6933.html [ Failure Rebaseline ]
     1909webkit.org/b/52185 accessibility/table-cells.html [ Failure Rebaseline ]
     1910webkit.org/b/52185 accessibility/table-attributes.html [ Failure Rebaseline ]
  • trunk/LayoutTests/platform/gtk/TestExpectations

    r149973 r150023  
    13861386webkit.org/b/115633 accessibility/meter-element.html [ Failure ]
    13871387
     1388# Needs rebaseline after bug https://bugs.webkit.org/show_bug.cgi?id=52185
     1389webkit.org/b/52185 fast/table/007.html [ Failure Rebaseline ]
     1390webkit.org/b/52185 fast/table/colspanMinWidth.html [ Failure Rebaseline ]
     1391webkit.org/b/52185 fast/table/colspanMinWidth-vertical.html [ Failure Rebaseline ]
     1392webkit.org/b/52185 fast/table/spanOverlapRepaint.html [ Failure Rebaseline ]
     1393webkit.org/b/52185 tables/mozilla/bugs/bug13169.html [ Failure Rebaseline ]
     1394webkit.org/b/52185 tables/mozilla/bugs/bug133756-1.html [ Failure Rebaseline ]
     1395webkit.org/b/52185 tables/mozilla/bugs/bug133756-2.html [ Failure Rebaseline ]
     1396webkit.org/b/52185 tables/mozilla/bugs/bug17138.html [ Failure Rebaseline ]
     1397webkit.org/b/52185 tables/mozilla/bugs/bug17548.html [ Failure Rebaseline ]
     1398webkit.org/b/52185 tables/mozilla/bugs/bug220536.html [ Failure Rebaseline ]
     1399webkit.org/b/52185 tables/mozilla/bugs/bug6304.html [ Failure Rebaseline ]
     1400webkit.org/b/52185 tables/mozilla/bugs/bug73321.html [ Failure Rebaseline ]
     1401webkit.org/b/52185 tables/mozilla/bugs/bug7714.html [ Failure Rebaseline ]
     1402webkit.org/b/52185 tables/mozilla/bugs/bug86708.html [ ImageOnlyFailure Rebaseline ]
     1403webkit.org/b/52185 tables/mozilla/bugs/bug8858.html [ Failure Rebaseline ]
     1404webkit.org/b/52185 tables/mozilla/core/bloomberg.html [ Failure Rebaseline ]
     1405webkit.org/b/52185 tables/mozilla/core/cell_heights.html [ Failure Rebaseline ]
     1406webkit.org/b/52185 tables/mozilla/other/test6.html [ Failure Rebaseline ]
     1407webkit.org/b/52185 tables/mozilla_expected_failures/bugs/bug1010.html [ Failure Rebaseline ]
     1408webkit.org/b/52185 tables/mozilla_expected_failures/bugs/bug131020-3.html [ Failure Rebaseline ]
     1409webkit.org/b/52185 tables/mozilla_expected_failures/bugs/bug23847.html [ Failure Rebaseline ]
     1410webkit.org/b/52185 tables/mozilla_expected_failures/bugs/bug58402-2.html [ Failure Rebaseline ]
     1411webkit.org/b/52185 tables/mozilla_expected_failures/bugs/bug65372.html [ Failure Rebaseline ]
     1412webkit.org/b/52185 tables/mozilla_expected_failures/bugs/bug6933.html [ Failure Rebaseline ]
     1413webkit.org/b/52185 accessibility/table-cells.html [ Failure Rebaseline ]
     1414webkit.org/b/52185 accessibility/table-attributes.html [ Failure Rebaseline ]
     1415
    13881416#////////////////////////////////////////////////////////////////////////////////////////
    13891417# End of Tests failing
  • trunk/LayoutTests/platform/mac/TestExpectations

    r149999 r150023  
    15401540webkit.org/b/115292 fast/writing-mode/vertical-baseline-alignment.html
    15411541webkit.org/b/115292 fast/writing-mode/vertical-font-fallback.html
     1542
     1543# Needs rebaseline after bug https://bugs.webkit.org/show_bug.cgi?id=52185
     1544webkit.org/b/52185 fast/table/007.html [ Failure Rebaseline ]
     1545webkit.org/b/52185 fast/table/colspanMinWidth.html [ Failure Rebaseline ]
     1546webkit.org/b/52185 fast/table/colspanMinWidth-vertical.html [ Failure Rebaseline ]
     1547webkit.org/b/52185 fast/table/spanOverlapRepaint.html [ Failure Rebaseline ]
     1548webkit.org/b/52185 tables/mozilla/bugs/bug13169.html [ Failure Rebaseline ]
     1549webkit.org/b/52185 tables/mozilla/bugs/bug133756-1.html [ Failure Rebaseline ]
     1550webkit.org/b/52185 tables/mozilla/bugs/bug133756-2.html [ Failure Rebaseline ]
     1551webkit.org/b/52185 tables/mozilla/bugs/bug17138.html [ Failure Rebaseline ]
     1552webkit.org/b/52185 tables/mozilla/bugs/bug17548.html [ Failure Rebaseline ]
     1553webkit.org/b/52185 tables/mozilla/bugs/bug220536.html [ Failure Rebaseline ]
     1554webkit.org/b/52185 tables/mozilla/bugs/bug6304.html [ Failure Rebaseline ]
     1555webkit.org/b/52185 tables/mozilla/bugs/bug73321.html [ Failure Rebaseline ]
     1556webkit.org/b/52185 tables/mozilla/bugs/bug7714.html [ Failure Rebaseline ]
     1557webkit.org/b/52185 tables/mozilla/bugs/bug86708.html [ ImageOnlyFailure Rebaseline ]
     1558webkit.org/b/52185 tables/mozilla/bugs/bug8858.html [ Failure Rebaseline ]
     1559webkit.org/b/52185 tables/mozilla/core/bloomberg.html [ Failure Rebaseline ]
     1560webkit.org/b/52185 tables/mozilla/core/cell_heights.html [ Failure Rebaseline ]
     1561webkit.org/b/52185 tables/mozilla/other/test6.html [ Failure Rebaseline ]
     1562webkit.org/b/52185 tables/mozilla_expected_failures/bugs/bug1010.html [ Failure Rebaseline ]
     1563webkit.org/b/52185 tables/mozilla_expected_failures/bugs/bug131020-3.html [ Failure Rebaseline ]
     1564webkit.org/b/52185 tables/mozilla_expected_failures/bugs/bug23847.html [ Failure Rebaseline ]
     1565webkit.org/b/52185 tables/mozilla_expected_failures/bugs/bug58402-2.html [ Failure Rebaseline ]
     1566webkit.org/b/52185 tables/mozilla_expected_failures/bugs/bug65372.html [ Failure Rebaseline ]
     1567webkit.org/b/52185 tables/mozilla_expected_failures/bugs/bug6933.html [ Failure Rebaseline ]
     1568webkit.org/b/52185 accessibility/table-cells.html [ Failure Rebaseline ]
     1569webkit.org/b/52185 accessibility/table-attributes.html [ Failure Rebaseline ]
  • trunk/LayoutTests/platform/qt/TestExpectations

    r149906 r150023  
    27562756# Reference test fast/sub-pixel/float-wrap-zoom.html fails
    27572757webkit.org/b/114800 fast/sub-pixel/float-wrap-zoom.html [ ImageOnlyFailure ]
     2758
     2759# Needs rebaseline after bug https://bugs.webkit.org/show_bug.cgi?id=52185
     2760webkit.org/b/52185 fast/table/007.html [ Failure Rebaseline ]
     2761webkit.org/b/52185 fast/table/colspanMinWidth.html [ Failure Rebaseline ]
     2762webkit.org/b/52185 fast/table/colspanMinWidth-vertical.html [ Failure Rebaseline ]
     2763webkit.org/b/52185 fast/table/spanOverlapRepaint.html [ Failure Rebaseline ]
     2764webkit.org/b/52185 tables/mozilla/bugs/bug13169.html [ Failure Rebaseline ]
     2765webkit.org/b/52185 tables/mozilla/bugs/bug133756-1.html [ Failure Rebaseline ]
     2766webkit.org/b/52185 tables/mozilla/bugs/bug133756-2.html [ Failure Rebaseline ]
     2767webkit.org/b/52185 tables/mozilla/bugs/bug17138.html [ Failure Rebaseline ]
     2768webkit.org/b/52185 tables/mozilla/bugs/bug6304.html [ Failure Rebaseline ]
     2769webkit.org/b/52185 tables/mozilla/bugs/bug73321.html [ Failure Rebaseline ]
     2770webkit.org/b/52185 tables/mozilla/bugs/bug86708.html [ ImageOnlyFailure Rebaseline ]
     2771webkit.org/b/52185 tables/mozilla/bugs/bug8858.html [ Failure Rebaseline ]
     2772webkit.org/b/52185 tables/mozilla/core/cell_heights.html [ Failure Rebaseline ]
     2773webkit.org/b/52185 tables/mozilla_expected_failures/bugs/bug131020-3.html [ Failure Rebaseline ]
     2774webkit.org/b/52185 tables/mozilla_expected_failures/bugs/bug65372.html [ Failure Rebaseline ]
     2775webkit.org/b/52185 accessibility/table-cells.html [ Failure Rebaseline ]
     2776webkit.org/b/52185 accessibility/table-attributes.html [ Failure Rebaseline ]
  • trunk/LayoutTests/platform/qt/tables/mozilla/bugs/bug17548-expected.txt

    r122719 r150023  
    66      RenderTable {TABLE} at (0,0) size 784x78 [border: (1px outset #808080)]
    77        RenderTableSection {TBODY} at (1,1) size 782x76
    8           RenderTableRow {TR} at (0,2) size 782x4
     8          RenderTableRow {TR} at (0,2) size 782x6
    99            RenderTableCell {TD} at (2,2) size 198x49 [border: (1px inset #808080)] [r=0 c=0 rs=2 cs=1]
    1010              RenderImage {IMG} at (2,2) size 194x45
    11             RenderTableCell {TD} at (202,2) size 578x4 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
    12           RenderTableRow {TR} at (0,8) size 782x43
    13             RenderTableCell {TD} at (202,18) size 578x23 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
     11            RenderTableCell {TD} at (202,3) size 578x4 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
     12          RenderTableRow {TR} at (0,10) size 782x41
     13            RenderTableCell {TD} at (202,19) size 578x23 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
    1414              RenderText {#text} at (2,2) size 73x19
    1515                text run at (2,2) width 73: "Information "
  • trunk/LayoutTests/platform/qt/tables/mozilla/bugs/bug220536-expected.txt

    r148944 r150023  
    44  RenderBlock {HTML} at (0,0) size 800x600
    55    RenderBody {BODY} at (8,8) size 784x584
    6       RenderTable {TABLE} at (0,0) size 118x58 [border: (1px outset #808080)]
    7         RenderTableSection {THEAD} at (1,1) size 116x29
    8           RenderTableRow {TR} at (0,2) size 116x23
    9             RenderTableCell {TH} at (2,3) size 36x23 [border: (1px inset #808080)] [r=0 c=0 rs=2 cs=1]
     6      RenderTable {TABLE} at (0,0) size 118x56 [border: (1px outset #808080)]
     7        RenderTableSection {THEAD} at (1,1) size 116x27
     8          RenderTableRow {TR} at (0,2) size 116x11
     9            RenderTableCell {TH} at (2,2) size 36x23 [border: (1px inset #808080)] [r=0 c=0 rs=2 cs=1]
    1010              RenderText {#text} at (2,2) size 32x19
    1111                text run at (2,2) width 32: "aaaa"
    12             RenderTableCell {TH} at (40,3) size 36x23 [border: (1px inset #808080)] [r=0 c=1 rs=2 cs=1]
     12            RenderTableCell {TH} at (40,2) size 36x23 [border: (1px inset #808080)] [r=0 c=1 rs=2 cs=1]
    1313              RenderText {#text} at (2,2) size 32x19
    1414                text run at (2,2) width 32: "bbbb"
    15             RenderTableCell {TH} at (78,3) size 36x23 [border: (1px inset #808080)] [r=0 c=2 rs=2 cs=1]
     15            RenderTableCell {TH} at (78,2) size 36x23 [border: (1px inset #808080)] [r=0 c=2 rs=2 cs=1]
    1616              RenderText {#text} at (2,2) size 32x19
    1717                text run at (2,2) width 32: "dddd"
    18           RenderTableRow {TR} at (0,27) size 116x0
    19         RenderTableSection {TBODY} at (1,30) size 116x27
     18          RenderTableRow {TR} at (0,15) size 116x10
     19        RenderTableSection {TBODY} at (1,28) size 116x27
    2020          RenderTableRow {TR} at (0,2) size 116x23
    2121            RenderTableCell {TD} at (2,2) size 36x23 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
  • trunk/LayoutTests/platform/qt/tables/mozilla/bugs/bug7714-expected.txt

    r122719 r150023  
    1212        RenderTableSection {TBODY} at (1,1) size 20x122
    1313          RenderTableRow {TR} at (0,0) size 20x21
    14             RenderTableCell {TD} at (0,9) size 10x21 [border: (1px inset #808080)] [r=0 c=0 rs=2 cs=1]
     14            RenderTableCell {TD} at (0,10) size 10x21 [border: (1px inset #808080)] [r=0 c=0 rs=2 cs=1]
    1515              RenderText {#text} at (1,1) size 8x19
    1616                text run at (1,1) width 8: "1"
     
    1818              RenderText {#text} at (1,1) size 8x19
    1919                text run at (1,1) width 8: "2"
    20           RenderTableRow {TR} at (0,21) size 20x19
     20          RenderTableRow {TR} at (0,21) size 20x20
    2121            RenderTableCell {TD} at (10,30) size 10x21 [border: (1px inset #808080)] [r=1 c=1 rs=2 cs=1]
    2222              RenderText {#text} at (1,1) size 8x19
    2323                text run at (1,1) width 8: "3"
    24           RenderTableRow {TR} at (0,40) size 20x21
    25             RenderTableCell {TD} at (0,49) size 10x21 [border: (1px inset #808080)] [r=2 c=0 rs=2 cs=1]
     24          RenderTableRow {TR} at (0,41) size 20x20
     25            RenderTableCell {TD} at (0,50) size 10x21 [border: (1px inset #808080)] [r=2 c=0 rs=2 cs=1]
    2626              RenderText {#text} at (1,1) size 8x19
    2727                text run at (1,1) width 8: "4"
    28           RenderTableRow {TR} at (0,61) size 20x19
     28          RenderTableRow {TR} at (0,61) size 20x20
    2929            RenderTableCell {TD} at (10,70) size 10x21 [border: (1px inset #808080)] [r=3 c=1 rs=2 cs=1]
    3030              RenderText {#text} at (1,1) size 8x19
    3131                text run at (1,1) width 8: "5"
    32           RenderTableRow {TR} at (0,80) size 20x21
    33             RenderTableCell {TD} at (0,90) size 10x21 [border: (1px inset #808080)] [r=4 c=0 rs=2 cs=1]
     32          RenderTableRow {TR} at (0,81) size 20x20
     33            RenderTableCell {TD} at (0,91) size 10x21 [border: (1px inset #808080)] [r=4 c=0 rs=2 cs=1]
    3434              RenderText {#text} at (1,1) size 8x19
    3535                text run at (1,1) width 8: "6"
     
    4242          text run at (0,0) width 760: "This is the same table as above, but cellspacing=5 in this case. For 5.0, (jun08 win95) notice the odd cellspacing overlaps. See"
    4343          text run at (0,19) width 98: "also bug #6304."
    44       RenderTable {TABLE} at (0,267) size 37x149 [border: (1px outset #808080)]
    45         RenderTableSection {TBODY} at (1,1) size 35x147
    46           RenderTableRow {TR} at (0,5) size 35x21
    47             RenderTableCell {TD} at (5,14) size 10x21 [border: (1px inset #808080)] [r=0 c=0 rs=2 cs=1]
     44      RenderTable {TABLE} at (0,267) size 37x153 [border: (1px outset #808080)]
     45        RenderTableSection {TBODY} at (1,1) size 35x151
     46          RenderTableRow {TR} at (0,5) size 35x22
     47            RenderTableCell {TD} at (5,17) size 10x21 [border: (1px inset #808080)] [r=0 c=0 rs=2 cs=1]
    4848              RenderText {#text} at (1,1) size 8x19
    4949                text run at (1,1) width 8: "1"
     
    5151              RenderText {#text} at (1,1) size 8x19
    5252                text run at (1,1) width 8: "2"
    53           RenderTableRow {TR} at (0,31) size 35x14
    54             RenderTableCell {TD} at (20,40) size 10x21 [border: (1px inset #808080)] [r=1 c=1 rs=2 cs=1]
     53          RenderTableRow {TR} at (0,32) size 35x18
     54            RenderTableCell {TD} at (20,43) size 10x21 [border: (1px inset #808080)] [r=1 c=1 rs=2 cs=1]
    5555              RenderText {#text} at (1,1) size 8x19
    5656                text run at (1,1) width 8: "3"
    57           RenderTableRow {TR} at (0,50) size 35x21
    58             RenderTableCell {TD} at (5,59) size 10x21 [border: (1px inset #808080)] [r=2 c=0 rs=2 cs=1]
     57          RenderTableRow {TR} at (0,55) size 35x20
     58            RenderTableCell {TD} at (5,66) size 10x21 [border: (1px inset #808080)] [r=2 c=0 rs=2 cs=1]
    5959              RenderText {#text} at (1,1) size 8x19
    6060                text run at (1,1) width 8: "4"
    61           RenderTableRow {TR} at (0,76) size 35x14
    62             RenderTableCell {TD} at (20,85) size 10x21 [border: (1px inset #808080)] [r=3 c=1 rs=2 cs=1]
     61          RenderTableRow {TR} at (0,80) size 35x19
     62            RenderTableCell {TD} at (20,89) size 10x21 [border: (1px inset #808080)] [r=3 c=1 rs=2 cs=1]
    6363              RenderText {#text} at (1,1) size 8x19
    6464                text run at (1,1) width 8: "5"
    65           RenderTableRow {TR} at (0,95) size 35x21
    66             RenderTableCell {TD} at (5,108) size 10x21 [border: (1px inset #808080)] [r=4 c=0 rs=2 cs=1]
     65          RenderTableRow {TR} at (0,104) size 35x16
     66            RenderTableCell {TD} at (5,114) size 10x21 [border: (1px inset #808080)] [r=4 c=0 rs=2 cs=1]
    6767              RenderText {#text} at (1,1) size 8x19
    6868                text run at (1,1) width 8: "6"
    69           RenderTableRow {TR} at (0,121) size 35x21
    70             RenderTableCell {TD} at (20,121) size 10x21 [border: (1px inset #808080)] [r=5 c=1 rs=1 cs=1]
     69          RenderTableRow {TR} at (0,125) size 35x21
     70            RenderTableCell {TD} at (20,125) size 10x21 [border: (1px inset #808080)] [r=5 c=1 rs=1 cs=1]
    7171              RenderText {#text} at (1,1) size 8x19
    7272                text run at (1,1) width 8: "7"
  • trunk/LayoutTests/platform/qt/tables/mozilla/core/bloomberg-expected.txt

    r148944 r150023  
    66      RenderTable {TABLE} at (0,0) size 636x624 [border: (1px outset #808080)]
    77        RenderTableSection {TBODY} at (1,1) size 634x622
    8           RenderTableRow {TR} at (0,0) size 634x24
     8          RenderTableRow {TR} at (0,0) size 634x28
    99            RenderTableCell {TD} at (0,0) size 148x622 [bgcolor=#660000] [border: (1px inset #808080)] [r=0 c=0 rs=6 cs=1]
    1010              RenderInline {B} at (0,0) size 63x19
     
    215215            RenderTableCell {TD} at (148,0) size 486x24 [bgcolor=#660000] [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=3]
    216216              RenderImage {IMG} at (10,4) size 466x16
    217           RenderTableRow {TR} at (0,24) size 634x69
    218             RenderTableCell {TD} at (148,24) size 128x69 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
     217          RenderTableRow {TR} at (0,28) size 634x81
     218            RenderTableCell {TD} at (148,28) size 128x69 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
    219219              RenderInline {A} at (0,0) size 120x19
    220220                RenderText {#text} at (0,0) size 0x0
     
    223223              RenderText {#text} at (0,0) size 0x0
    224224              RenderImage {IMG} at (4,64) size 120x1
    225             RenderTableCell {TD} at (276,24) size 175x69 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
     225            RenderTableCell {TD} at (276,28) size 175x69 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
    226226              RenderInline {A} at (0,0) size 167x19
    227227                RenderText {#text} at (0,0) size 0x0
     
    230230              RenderText {#text} at (0,0) size 0x0
    231231              RenderImage {IMG} at (4,64) size 167x1
    232             RenderTableCell {TD} at (451,24) size 183x527 [bgcolor=#CCCC99] [border: (1px inset #808080)] [r=1 c=3 rs=6 cs=1]
     232            RenderTableCell {TD} at (451,28) size 183x527 [bgcolor=#CCCC99] [border: (1px inset #808080)] [r=1 c=3 rs=6 cs=1]
    233233              RenderBlock (anonymous) at (4,4) size 175x28
    234234                RenderInline {FONT} at (0,0) size 147x12
     
    283283                RenderText {#text} at (0,0) size 0x0
    284284                RenderText {#text} at (0,0) size 0x0
    285           RenderTableRow {TR} at (0,93) size 634x122
    286             RenderTableCell {TD} at (148,93) size 303x122 [bgcolor=#FFFFFF] [border: (1px inset #808080)] [r=2 c=1 rs=1 cs=2]
     285          RenderTableRow {TR} at (0,109) size 634x143
     286            RenderTableCell {TD} at (148,109) size 303x122 [bgcolor=#FFFFFF] [border: (1px inset #808080)] [r=2 c=1 rs=1 cs=2]
    287287              RenderInline {A} at (0,0) size 0x0
    288288                RenderImage {IMG} at (4,4) size 288x26
     
    301301                    text run at (4,99) width 46: "More..."
    302302              RenderText {#text} at (0,0) size 0x0
    303           RenderTableRow {TR} at (0,215) size 634x407
    304             RenderTableCell {TD} at (148,215) size 303x313 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=3 c=1 rs=1 cs=2]
     303          RenderTableRow {TR} at (0,252) size 634x370
     304            RenderTableCell {TD} at (148,252) size 303x313 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=3 c=1 rs=1 cs=2]
    305305              RenderImage {IMG} at (4,4) size 290x35
    306306              RenderBR {BR} at (294,39) size 0x0
  • trunk/LayoutTests/platform/qt/tables/mozilla/other/test6-expected.txt

    r148596 r150023  
    1717      RenderTable {TABLE} at (0,173) size 769x363 [bgcolor=#FF0000] [border: (1px outset #808080)]
    1818        RenderTableSection {TBODY} at (1,1) size 767x360
    19           RenderTableRow {TR} at (0,2) size 767x23
    20             RenderTableCell {TD} at (2,2) size 28x23 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
     19          RenderTableRow {TR} at (0,2) size 767x164
     20            RenderTableCell {TD} at (2,72) size 28x23 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
    2121              RenderText {#text} at (2,2) size 24x19
    2222                text run at (2,2) width 24: "Cell"
     
    2424              RenderTable {TABLE} at (2,2) size 729x327 [bgcolor=#ADD8E6] [border: (1px outset #808080)]
    2525                RenderTableSection {TBODY} at (1,1) size 727x325
    26                   RenderTableRow {TR} at (0,2) size 727x23
    27                     RenderTableCell {TD} at (2,2) size 28x23 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
     26                  RenderTableRow {TR} at (0,2) size 727x147
     27                    RenderTableCell {TD} at (2,64) size 28x23 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
    2828                      RenderText {#text} at (2,2) size 24x19
    2929                        text run at (2,2) width 24: "Cell"
     
    3131                      RenderTable {TABLE} at (2,2) size 689x292 [bgcolor=#90EE90] [border: (1px outset #808080)]
    3232                        RenderTableSection {TBODY} at (1,1) size 687x290
    33                           RenderTableRow {TR} at (0,2) size 687x23
    34                             RenderTableCell {TD} at (2,2) size 28x23 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
     33                          RenderTableRow {TR} at (0,2) size 687x129
     34                            RenderTableCell {TD} at (2,55) size 28x23 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
    3535                              RenderText {#text} at (2,2) size 24x19
    3636                                text run at (2,2) width 24: "Cell"
     
    3838                              RenderTable {TABLE} at (2,2) size 649x257 [border: (1px outset #808080)]
    3939                                RenderTableSection {TBODY} at (1,1) size 647x255
    40                                   RenderTableRow {TR} at (0,2) size 647x23
    41                                     RenderTableCell {TD} at (2,2) size 28x23 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
     40                                  RenderTableRow {TR} at (0,2) size 647x112
     41                                    RenderTableCell {TD} at (2,46) size 28x23 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
    4242                                      RenderText {#text} at (2,2) size 24x19
    4343                                        text run at (2,2) width 24: "Cell"
     
    4545                                      RenderTable {TABLE} at (2,2) size 609x222 [bgcolor=#FFA500] [border: (1px outset #808080)]
    4646                                        RenderTableSection {TBODY} at (1,1) size 607x220
    47                                           RenderTableRow {TR} at (0,2) size 607x23
    48                                             RenderTableCell {TD} at (2,2) size 28x23 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
     47                                          RenderTableRow {TR} at (0,2) size 607x94
     48                                            RenderTableCell {TD} at (2,37) size 28x23 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
    4949                                              RenderText {#text} at (2,2) size 24x19
    5050                                                text run at (2,2) width 24: "Cell"
     
    5252                                              RenderTable {TABLE} at (2,2) size 569x187 [bgcolor=#FF0000] [border: (1px outset #808080)]
    5353                                                RenderTableSection {TBODY} at (1,1) size 567x185
    54                                                   RenderTableRow {TR} at (0,2) size 567x23
    55                                                     RenderTableCell {TD} at (2,2) size 28x23 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
     54                                                  RenderTableRow {TR} at (0,2) size 567x77
     55                                                    RenderTableCell {TD} at (2,29) size 28x23 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
    5656                                                      RenderText {#text} at (2,2) size 24x19
    5757                                                        text run at (2,2) width 24: "Cell"
     
    5959                                                      RenderTable {TABLE} at (2,2) size 529x152 [bgcolor=#ADD8E6] [border: (1px outset #808080)]
    6060                                                        RenderTableSection {TBODY} at (1,1) size 527x150
    61                                                           RenderTableRow {TR} at (0,2) size 527x23
    62                                                             RenderTableCell {TD} at (2,2) size 28x23 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
     61                                                          RenderTableRow {TR} at (0,2) size 527x50
     62                                                            RenderTableCell {TD} at (2,15) size 28x23 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
    6363                                                              RenderText {#text} at (2,2) size 24x19
    6464                                                                text run at (2,2) width 24: "Cell"
     
    9191                                                                      RenderText {#text} at (2,2) size 24x19
    9292                                                                        text run at (2,2) width 24: "Cell"
    93                                                           RenderTableRow {TR} at (0,27) size 527x77
    94                                                             RenderTableCell {TD} at (2,54) size 28x23 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
     93                                                          RenderTableRow {TR} at (0,54) size 527x50
     94                                                            RenderTableCell {TD} at (2,67) size 28x23 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
    9595                                                              RenderText {#text} at (2,2) size 24x19
    9696                                                                text run at (2,2) width 24: "Cell"
     
    107107                                                              RenderText {#text} at (2,2) size 24x19
    108108                                                                text run at (2,2) width 24: "Cell"
    109                                                   RenderTableRow {TR} at (0,27) size 567x131
    110                                                     RenderTableCell {TD} at (2,81) size 28x23 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
     109                                                  RenderTableRow {TR} at (0,81) size 567x77
     110                                                    RenderTableCell {TD} at (2,108) size 28x23 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
    111111                                                      RenderText {#text} at (2,2) size 24x19
    112112                                                        text run at (2,2) width 24: "Cell"
     
    122122                                                      RenderText {#text} at (2,2) size 24x19
    123123                                                        text run at (2,2) width 24: "Cell"
    124                                           RenderTableRow {TR} at (0,27) size 607x166
    125                                             RenderTableCell {TD} at (2,98) size 28x23 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
     124                                          RenderTableRow {TR} at (0,98) size 607x95
     125                                            RenderTableCell {TD} at (2,134) size 28x23 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
    126126                                              RenderText {#text} at (2,2) size 24x19
    127127                                                text run at (2,2) width 24: "Cell"
     
    137137                                              RenderText {#text} at (2,2) size 24x19
    138138                                                text run at (2,2) width 24: "Cell"
    139                                   RenderTableRow {TR} at (0,27) size 647x201
    140                                     RenderTableCell {TD} at (2,116) size 28x23 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
     139                                  RenderTableRow {TR} at (0,116) size 647x112
     140                                    RenderTableCell {TD} at (2,160) size 28x23 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
    141141                                      RenderText {#text} at (2,2) size 24x19
    142142                                        text run at (2,2) width 24: "Cell"
     
    152152                                      RenderText {#text} at (2,2) size 24x19
    153153                                        text run at (2,2) width 24: "Cell"
    154                           RenderTableRow {TR} at (0,27) size 687x236
    155                             RenderTableCell {TD} at (2,133) size 28x23 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
     154                          RenderTableRow {TR} at (0,133) size 687x130
     155                            RenderTableCell {TD} at (2,186) size 28x23 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
    156156                              RenderText {#text} at (2,2) size 24x19
    157157                                text run at (2,2) width 24: "Cell"
     
    167167                              RenderText {#text} at (2,2) size 24x19
    168168                                text run at (2,2) width 24: "Cell"
    169                   RenderTableRow {TR} at (0,27) size 727x271
    170                     RenderTableCell {TD} at (2,151) size 28x23 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
     169                  RenderTableRow {TR} at (0,151) size 727x147
     170                    RenderTableCell {TD} at (2,213) size 28x23 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
    171171                      RenderText {#text} at (2,2) size 24x19
    172172                        text run at (2,2) width 24: "Cell"
     
    182182                      RenderText {#text} at (2,2) size 24x19
    183183                        text run at (2,2) width 24: "Cell"
    184           RenderTableRow {TR} at (0,27) size 767x306
    185             RenderTableCell {TD} at (2,168) size 28x23 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
     184          RenderTableRow {TR} at (0,168) size 767x165
     185            RenderTableCell {TD} at (2,239) size 28x23 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
    186186              RenderText {#text} at (2,2) size 24x19
    187187                text run at (2,2) width 24: "Cell"
  • trunk/LayoutTests/platform/qt/tables/mozilla_expected_failures/bugs/bug1010-expected.txt

    r123094 r150023  
    66      RenderTable {TABLE} at (0,0) size 784x273 [border: (1px outset #808080)]
    77        RenderTableSection {TBODY} at (1,1) size 782x271
    8           RenderTableRow {TR} at (0,2) size 782x23
     8          RenderTableRow {TR} at (0,2) size 782x132
    99            RenderTableCell {TD} at (2,2) size 662x267 [border: (1px inset #808080)] [r=0 c=0 rs=2 cs=1]
    1010              RenderBlock {UL} at (2,2) size 658x247
     
    7979                      text run at (0,0) width 312: "A relatively large (150k) document with an average "
    8080                      text run at (312,0) width 132: "mix of HTML content"
    81             RenderTableCell {TD} at (666,2) size 56x23 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
     81            RenderTableCell {TD} at (666,56) size 56x23 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
    8282              RenderText {#text} at (2,2) size 32x19
    8383                text run at (2,2) width 32: "foo 1"
    84             RenderTableCell {TD} at (724,2) size 56x23 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
     84            RenderTableCell {TD} at (724,56) size 56x23 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
    8585              RenderText {#text} at (2,2) size 32x19
    8686                text run at (2,2) width 32: "foo 2"
    87           RenderTableRow {TR} at (0,27) size 782x242
    88             RenderTableCell {TD} at (666,136) size 56x23 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
     87          RenderTableRow {TR} at (0,136) size 782x133
     88            RenderTableCell {TD} at (666,191) size 56x23 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
    8989              RenderText {#text} at (2,2) size 37x19
    9090                text run at (2,2) width 37: "Foo 3"
    91             RenderTableCell {TD} at (724,136) size 56x23 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
     91            RenderTableCell {TD} at (724,191) size 56x23 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
    9292              RenderText {#text} at (2,2) size 37x19
    9393                text run at (2,2) width 37: "Foo 4"
  • trunk/LayoutTests/platform/qt/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt

    r123094 r150023  
    1717              RenderText {#text} at (2,2) size 30x19
    1818                text run at (2,2) width 30: "col 3"
    19           RenderTableRow {TR} at (0,27) size 256x23
    20             RenderTableCell {TD} at (2,27) size 40x23 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
     19          RenderTableRow {TR} at (0,27) size 256x49
     20            RenderTableCell {TD} at (2,40) size 40x23 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
    2121              RenderText {#text} at (2,2) size 36x19
    2222                text run at (2,2) width 36: "row 1"
     
    2525                RenderText {#text} at (85,3) size 36x19
    2626                  text run at (85,3) width 36: "tjosan"
    27           RenderTableRow {TR} at (0,52) size 256x50
    28             RenderTableCell {TD} at (2,65) size 40x23 [border: (1px inset #808080)] [r=2 c=0 rs=1 cs=1]
     27          RenderTableRow {TR} at (0,78) size 256x107
     28            RenderTableCell {TD} at (2,120) size 40x23 [border: (1px inset #808080)] [r=2 c=0 rs=1 cs=1]
    2929              RenderText {#text} at (2,2) size 36x19
    3030                text run at (2,2) width 36: "row 2"
    31           RenderTableRow {TR} at (0,104) size 256x133
    32             RenderTableCell {TD} at (2,159) size 40x23 [border: (1px inset #808080)] [r=3 c=0 rs=1 cs=1]
     31          RenderTableRow {TR} at (0,187) size 256x50
     32            RenderTableCell {TD} at (2,200) size 40x23 [border: (1px inset #808080)] [r=3 c=0 rs=1 cs=1]
    3333              RenderText {#text} at (2,2) size 36x19
    3434                text run at (2,2) width 36: "row 3"
  • trunk/LayoutTests/platform/qt/tables/mozilla_expected_failures/bugs/bug6933-expected.txt

    r123094 r150023  
    66      RenderTable {TABLE} at (0,0) size 194x246 [bgcolor=#FF0000] [border: (1px outset #808080)]
    77        RenderTableSection {TBODY} at (1,1) size 192x244
    8           RenderTableRow {TR} at (0,20) size 192x23
    9             RenderTableCell {TD} at (20,20) size 28x23 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
     8          RenderTableRow {TR} at (0,20) size 192x92
     9            RenderTableCell {TD} at (20,54) size 28x23 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
    1010              RenderText {#text} at (2,2) size 24x19
    1111                text run at (2,2) width 24: "Cell"
     
    1313              RenderImage {IMG} at (2,2) size 100x200
    1414              RenderText {#text} at (0,0) size 0x0
    15           RenderTableRow {TR} at (0,63) size 192x161
    16             RenderTableCell {TD} at (20,132) size 28x23 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
     15          RenderTableRow {TR} at (0,132) size 192x92
     16            RenderTableCell {TD} at (20,166) size 28x23 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
    1717              RenderText {#text} at (2,2) size 24x19
    1818                text run at (2,2) width 24: "Cell"
  • trunk/LayoutTests/tables/mozilla/core/bloomberg-expected.txt

    r148944 r150023  
    66      RenderTable {TABLE} at (0,0) size 636x624 [border: (1px outset #808080)]
    77        RenderTableSection {TBODY} at (1,1) size 634x622
    8           RenderTableRow {TR} at (0,0) size 634x24
     8          RenderTableRow {TR} at (0,0) size 634x28
    99            RenderTableCell {TD} at (0,0) size 148x622 [bgcolor=#660000] [border: (1px inset #808080)] [r=0 c=0 rs=6 cs=1]
    1010              RenderInline {B} at (0,0) size 63x19
     
    215215            RenderTableCell {TD} at (148,0) size 486x24 [bgcolor=#660000] [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=3]
    216216              RenderImage {IMG} at (10,4) size 466x16
    217           RenderTableRow {TR} at (0,24) size 634x69
    218             RenderTableCell {TD} at (148,24) size 128x69 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
     217          RenderTableRow {TR} at (0,28) size 634x81
     218            RenderTableCell {TD} at (148,28) size 128x69 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
    219219              RenderInline {A} at (0,0) size 120x19
    220220                RenderText {#text} at (0,0) size 0x0
     
    223223              RenderText {#text} at (0,0) size 0x0
    224224              RenderImage {IMG} at (4,64) size 120x1
    225             RenderTableCell {TD} at (276,24) size 175x69 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
     225            RenderTableCell {TD} at (276,28) size 175x69 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
    226226              RenderInline {A} at (0,0) size 167x19
    227227                RenderText {#text} at (0,0) size 0x0
     
    230230              RenderText {#text} at (0,0) size 0x0
    231231              RenderImage {IMG} at (4,64) size 167x1
    232             RenderTableCell {TD} at (451,24) size 183x527 [bgcolor=#CCCC99] [border: (1px inset #808080)] [r=1 c=3 rs=6 cs=1]
     232            RenderTableCell {TD} at (451,28) size 183x527 [bgcolor=#CCCC99] [border: (1px inset #808080)] [r=1 c=3 rs=6 cs=1]
    233233              RenderBlock (anonymous) at (4,4) size 175x28
    234234                RenderInline {FONT} at (0,0) size 147x12
     
    283283                RenderText {#text} at (0,0) size 0x0
    284284                RenderText {#text} at (0,0) size 0x0
    285           RenderTableRow {TR} at (0,93) size 634x122
    286             RenderTableCell {TD} at (148,93) size 303x122 [bgcolor=#FFFFFF] [border: (1px inset #808080)] [r=2 c=1 rs=1 cs=2]
     285          RenderTableRow {TR} at (0,109) size 634x143
     286            RenderTableCell {TD} at (148,109) size 303x122 [bgcolor=#FFFFFF] [border: (1px inset #808080)] [r=2 c=1 rs=1 cs=2]
    287287              RenderInline {A} at (0,0) size 0x0
    288288                RenderImage {IMG} at (4,4) size 288x26
     
    301301                    text run at (4,99) width 46: "More..."
    302302              RenderText {#text} at (0,0) size 0x0
    303           RenderTableRow {TR} at (0,215) size 634x407
    304             RenderTableCell {TD} at (148,215) size 303x313 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=3 c=1 rs=1 cs=2]
     303          RenderTableRow {TR} at (0,252) size 634x370
     304            RenderTableCell {TD} at (148,252) size 303x313 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=3 c=1 rs=1 cs=2]
    305305              RenderImage {IMG} at (4,4) size 290x35
    306306              RenderBR {BR} at (294,39) size 0x0
  • trunk/LayoutTests/tables/mozilla_expected_failures/bugs/bug23847-expected.txt

    r148944 r150023  
    66      RenderTable {TABLE} at (0,0) size 345x123 [border: (1px outset #808080)]
    77        RenderTableSection {TBODY} at (1,1) size 343x121
    8           RenderTableRow {TR} at (0,2) size 343x9
     8          RenderTableRow {TR} at (0,2) size 343x24
    99            RenderTableCell {TD} at (2,41) size 126x39 [border: (1px inset #808080)] [r=0 c=0 rs=2 cs=2]
    1010              RenderImage {IMG} at (2,2) size 122x35
    11             RenderTableCell {TD} at (130,2) size 199x9 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
     11            RenderTableCell {TD} at (130,9) size 199x9 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
    1212              RenderImage {IMG} at (2,2) size 195x5
    1313            RenderTableCell {TD} at (331,2) size 10x117 [border: (1px inset #808080)] [r=0 c=3 rs=4 cs=1]
    1414              RenderImage {IMG} at (2,2) size 6x113
    15           RenderTableRow {TR} at (0,13) size 343x106
    16             RenderTableCell {TD} at (130,49) size 199x34 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
     15          RenderTableRow {TR} at (0,28) size 343x91
     16            RenderTableCell {TD} at (130,56) size 199x34 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
    1717              RenderInline {A} at (0,0) size 195x19 [color=#0000EE]
    1818                RenderText {#text} at (0,0) size 0x0
  • trunk/Source/WebCore/ChangeLog

    r150022 r150023  
     12013-05-13  Suchit Agrawal  <a.suchit@samsung.com>
     2
     3        Cell heights are disproportional when a row-spanning cell contains a block element that determines the height of the rows
     4        https://bugs.webkit.org/show_bug.cgi?id=52185
     5
     6        Reviewed by David Hyatt.
     7
     8        Cells heights are not proper when rowspan cell have its own height and rowspan height
     9        is more than the height of the rows present in rowspan.
     10
     11        After calculating logical height of the rows in the table, we are recalculating the height
     12        of the rows present in rowspan. Based on the ratio of row's logical height, we are
     13        distributing rowspan cell height in rows.
     14
     15        Test: fast/table/table-rowspan-height-distribution-in-rows.html
     16
     17        * rendering/RenderTableSection.cpp:
     18        (WebCore):
     19
     20        Update the logical height of the rows based on rowspan cell height.
     21        (WebCore::RenderTableSection::distributeRowSpanHeightToRows):
     22
     23        It calculates logical height of the rows in the table.
     24        (WebCore::RenderTableSection::calcRowLogicalHeight):
     25
     26        Added new private API to distribute rowSpan cell height in rows.
     27        * rendering/RenderTableSection.h:
     28        (RenderTableSection):
     29
    1302013-04-30  Balazs Kelemen  <b.kelemen@sisa.samsung.com>
    231
  • trunk/Source/WebCore/rendering/RenderTableSection.cpp

    r149844 r150023  
    256256}
    257257
     258// Distribute rowSpan cell height in rows those comes in rowSpan cell
     259void RenderTableSection::distributeRowSpanHeightToRows(Vector<RenderTableCell*, 5>& rowSpanCells)
     260{
     261    RenderTableCell* cell;
     262
     263    // Rearranging the rowSpan cells in the order, we need to calculate the height of the rows.
     264    cell = rowSpanCells[0];
     265    for (unsigned i = 1; i < rowSpanCells.size(); i++) {
     266        for (unsigned j = i; j > 0; j--) {
     267            if (cell->rowIndex() == rowSpanCells[j]->rowIndex()) {
     268                // if 2 or more cells have same rowIndex then height of the row will be calculated first for the cell
     269                // which have lower rowSpan value.
     270                if (cell->rowSpan() > rowSpanCells[j]->rowSpan()) {
     271                    rowSpanCells[j - 1] = rowSpanCells[j];
     272                    rowSpanCells[j - 1] = cell;
     273                    if (j > 1)
     274                        cell = rowSpanCells[j - 2];
     275                } else if (cell->rowSpan() == rowSpanCells[j]->rowSpan()) {
     276                    // If 2 or more cells have same rowIndex and same rowSpan then height of the row will be calculated
     277                    // only for the cell which have more height. So more height cell pushed back in the list.
     278                    if (cell->logicalHeightForRowSizing() > rowSpanCells[j]->logicalHeightForRowSizing()) {
     279                        rowSpanCells[j - 1] = rowSpanCells[j];
     280                        rowSpanCells[j] = cell;
     281                    }
     282                    break;
     283                } else
     284                    break;
     285            } else {
     286                // Height of the rows will be calculated first for the cell which comes under the boundries of other rowSpan cell.
     287                if ((cell->rowIndex() + cell->rowSpan()) > rowSpanCells[j]->rowIndex()
     288                    && (cell->rowIndex() + cell->rowSpan()) >= (rowSpanCells[j]->rowIndex() + rowSpanCells[j]->rowSpan())) {
     289                    rowSpanCells[j - 1] = rowSpanCells[j];
     290                    rowSpanCells[j] = cell;
     291                    if (j > 1)
     292                        cell = rowSpanCells[j - 2];
     293                } else
     294                    break;
     295            }
     296        }
     297        cell = rowSpanCells[i];
     298    }
     299
     300    unsigned changedHeight = 0;
     301    unsigned lastRowIndex = 0;
     302    unsigned lastRowSpan = 1;
     303
     304    // Here we are recalculating the height of the rows in the rowSpan
     305    for (unsigned i = 0; i < rowSpanCells.size(); i++) {
     306        cell = rowSpanCells[i];
     307
     308        // If 2 or more cells have same rowIndex and same rowSpan then height of the row will be calculated
     309        // only for the cell which have more height.
     310        if ((i + 1) < rowSpanCells.size()) {
     311            if (cell->rowIndex() == rowSpanCells[i + 1]->rowIndex() && cell->rowSpan() == rowSpanCells[i + 1]->rowSpan())
     312                continue;
     313        }
     314
     315        unsigned rowSpan = cell->rowSpan();
     316        unsigned rowIndex = cell->rowIndex();
     317        bool changedHeightApplied = false;
     318        int initialPos = m_rowPos[rowIndex + rowSpan];
     319
     320        // Apply height changed by previous rowSpan cells
     321        if (changedHeight > 0) {
     322            // if previous rowSpan cell comes under the boundries of current rowSpan cell then apply the changed height
     323            // to remain rows below previous rowSpan cell and till current rowSpan cell end boundry
     324            if (lastRowIndex >= rowIndex) {
     325                for (unsigned row = lastRowIndex + lastRowSpan; row <= (rowIndex + rowSpan); row++)
     326                    m_rowPos[row] += changedHeight;
     327
     328                changedHeightApplied = true;
     329            } else {
     330                // if rowIndex of current rowSpan cell comes under the boundries of previous rowSpan cell then apply the changed height
     331                // to remain rows below previous rowSpan cell and till current rowSpan cell end boundry
     332                if (rowIndex < lastRowIndex + lastRowSpan) {
     333                    for (unsigned row = lastRowIndex + lastRowSpan; row <= (rowIndex + rowSpan); row++)
     334                        m_rowPos[row] += changedHeight;
     335
     336                    changedHeightApplied = true;
     337                } else {
     338                    // If rowIndex of current rowSpan cell is greater than the previous row span cell then apply the changed height
     339                    // to rows below end of previous rowSpan cell and above current rowSpan cell.
     340                    for (unsigned row = lastRowIndex + lastRowSpan; row < rowIndex; row++)
     341                        m_rowPos[row] += changedHeight;
     342                }
     343            }
     344        }
     345
     346        lastRowIndex = rowIndex;
     347        lastRowSpan = rowSpan;
     348
     349        int totalRowsHeight = 0;
     350        // Getting rowSpan cell height
     351        int rowSpanCellHeight = cell->logicalHeightForRowSizing();
     352        Vector<int> rowsHeight(rowSpan);
     353        bool rowWithOnlyRowSpanCells = false;
     354        int spacing = table()->vBorderSpacing();
     355        int lastRowWithValidHeight = rowIndex;
     356
     357        unsigned effectiveCols = 0;
     358        // Calculating number of effective columns within rowSpan
     359        for (unsigned row = rowIndex; row < (rowIndex + rowSpan); row++) {
     360            unsigned totalCols = m_grid[row].row.size();
     361            unsigned col = 0;
     362            unsigned nCols = 0;
     363
     364            if (totalCols) {
     365                CellStruct rowSpanCell;
     366                do {
     367                    rowSpanCell = cellAt(row, col);
     368                    if (rowSpanCell.cells.size())
     369                        nCols++;
     370                    else
     371                        break;
     372                    col++;
     373                } while (col < totalCols);
     374
     375                if (nCols > effectiveCols)
     376                    effectiveCols = nCols;
     377            }
     378        }
     379
     380        // Storing height of rows in current rowSpan cell, getting total height of rows and adjusting rowSpan cell height with border spacing.
     381        for (unsigned row = rowIndex; row < (rowIndex + rowSpan); row++) {
     382            rowsHeight[row - rowIndex] = (m_rowPos[row + 1] - (m_grid[row].rowRenderer ? spacing : 0)) - m_rowPos[row];
     383            // If row height is zero and row having only rowSpan cells then one part of rowSpan cell height is applied to the row.
     384            if (!rowsHeight[row - rowIndex]) {
     385                unsigned totalCols = m_grid[row].row.size();
     386                unsigned col = 0;
     387
     388                if (totalCols) {
     389                    CellStruct rowSpanCell;
     390                    unsigned rowSpanCells = 0;
     391
     392                    // Finding number of rowSpan cells.
     393                    do {
     394                        rowSpanCell = cellAt(row, col);
     395                        if (rowSpanCell.cells.size() && rowSpanCell.cells[0]->rowSpan() > 1)
     396                            rowSpanCells++;
     397
     398                        col++;
     399                    } while (col < totalCols);
     400
     401                    // Row having only rowSpan cells then one part of rowSpan cell height is applied to the row.
     402                    if (rowSpanCells == effectiveCols) {
     403                        rowWithOnlyRowSpanCells = true;
     404                        rowsHeight[row - rowIndex] = rowSpanCellHeight / rowSpan - (m_grid[row].rowRenderer ? spacing : 0);
     405                    }
     406                }
     407            }
     408            totalRowsHeight += rowsHeight[row - rowIndex];
     409            if (rowsHeight[row - rowIndex])
     410                lastRowWithValidHeight = row;
     411            rowSpanCellHeight -= m_grid[row].rowRenderer ? spacing : 0;
     412        }
     413        rowSpanCellHeight += m_grid[lastRowWithValidHeight].rowRenderer ? spacing : 0;
     414
     415        if (rowWithOnlyRowSpanCells && rowSpanCellHeight < totalRowsHeight)
     416            rowSpanCellHeight = totalRowsHeight;
     417
     418        if (rowWithOnlyRowSpanCells || (totalRowsHeight && rowSpanCellHeight > totalRowsHeight)) {
     419            // Recalculating the height of rows based on rowSpan cell height if rowSpan cell height is more than total height of rows.
     420            int remainHeight = rowSpanCellHeight;
     421
     422            if (!changedHeightApplied)
     423                m_rowPos[rowIndex] += changedHeight;
     424            for (unsigned row = rowIndex; row < (rowIndex + rowSpan); row++) {
     425                int rowHeight = (rowSpanCellHeight * rowsHeight[row - rowIndex]) / totalRowsHeight;
     426                remainHeight -= rowHeight;
     427                m_rowPos[row + 1] = m_rowPos[row] + rowHeight + (m_grid[row].rowRenderer ? spacing : 0);
     428            }
     429            for (unsigned row = lastRowWithValidHeight; row < (rowIndex + rowSpan); row++)
     430                m_rowPos[row + 1] += remainHeight;
     431
     432            changedHeight = (m_rowPos[rowIndex + rowSpan] - initialPos);
     433            m_rowPos[rowIndex + rowSpan] -= changedHeight;
     434        } else {
     435            // Just apply changed height by previous rowSpan cells to rows in current rowSpan if it is not already applied.
     436            if (!changedHeightApplied) {
     437                for (unsigned row = rowIndex; row < rowIndex + rowSpan; row++)
     438                    m_rowPos[row] += changedHeight;
     439            } else
     440                m_rowPos[rowIndex + rowSpan] -= changedHeight;
     441        }
     442    }
     443
     444    unsigned totalRows = m_grid.size();
     445
     446    // Apply changed height by rowSpan cells to rows present at the end of the table
     447    for (unsigned row = lastRowIndex + lastRowSpan; row <= totalRows; row++)
     448        m_rowPos[row] += changedHeight;
     449}
     450
    258451int RenderTableSection::calcRowLogicalHeight()
    259452{
     
    275468
    276469    unsigned totalRows = m_grid.size();
     470
     471    // Keeps all rowSpan cells.
     472    Vector<RenderTableCell*, 5> rowSpanCells;
    277473
    278474    for (unsigned r = 0; r < totalRows; r++) {
     
    293489                    continue;
    294490
    295                 // FIXME: We are always adding the height of a rowspan to the last rows which doesn't match
    296                 // other browsers. See webkit.org/b/52185 for example.
    297                 if ((cell->rowIndex() + cell->rowSpan() - 1) != r) {
    298                     // We will apply the height of the rowspan to the current row if next row is not valid.
    299                     if ((r + 1) < totalRows) {
    300                         unsigned col = 0;
    301                         CellStruct nextRowCell = cellAt(r + 1, col);
    302 
    303                         // We are trying to find that next row is valid or not.
    304                         while (nextRowCell.cells.size() && nextRowCell.cells[0]->rowSpan() > 1 && nextRowCell.cells[0]->rowIndex() < (r + 1)) {
    305                             col++;
    306                             if (col < totalCols)
    307                                 nextRowCell = cellAt(r + 1, col);
    308                             else
    309                                 break;
     491                if (cell->rowSpan() > 1) {
     492                    // Storing rowSpan cells if row and rowIndex are same.
     493                    if (cell->rowIndex() == r) {
     494                        rowSpanCells.append(cell);
     495
     496                        // Find out the baseline. The baseline is set on the first row in a rowSpan.
     497                        if (cell->isBaselineAligned()) {
     498                            LayoutUnit baselinePosition = cell->cellBaselinePosition();
     499                            if (baselinePosition > cell->borderBefore() + cell->paddingBefore()) {
     500                                m_grid[r].baseline = max(m_grid[r].baseline, baselinePosition);
     501                                m_rowPos[r + 1] = max<int>(m_rowPos[r + 1], m_rowPos[r] + m_grid[r].baseline);
     502                            }
    310503                        }
    311 
    312                         // We are adding the height of the rowspan to the current row if next row is not valid.
    313                         if (col < totalCols && nextRowCell.cells.size())
    314                             continue;
    315504                    }
     505                    continue;
    316506                }
    317 
    318                 // For row spanning cells, |r| is the last row in the span.
    319                 unsigned cellStartRow = cell->rowIndex();
    320507
    321508                if (cell->hasOverrideHeight()) {
     
    332519
    333520                int cellLogicalHeight = cell->logicalHeightForRowSizing();
    334                 m_rowPos[r + 1] = max(m_rowPos[r + 1], m_rowPos[cellStartRow] + cellLogicalHeight);
    335 
    336                 // Find out the baseline. The baseline is set on the first row in a rowspan.
     521                m_rowPos[r + 1] = max(m_rowPos[r + 1], m_rowPos[r] + cellLogicalHeight);
     522
     523                // Find out the baseline.
    337524                if (cell->isBaselineAligned()) {
    338525                    LayoutUnit baselinePosition = cell->cellBaselinePosition();
    339526                    if (baselinePosition > cell->borderBefore() + cell->paddingBefore()) {
    340                         m_grid[cellStartRow].baseline = max(m_grid[cellStartRow].baseline, baselinePosition);
    341                         // The descent of a cell that spans multiple rows does not affect the height of the first row it spans, so don't let it
    342                         // become the baseline descent applied to the rest of the row. Also we don't account for the baseline descent of
    343                         // non-spanning cells when computing a spanning cell's extent.
    344                         int cellStartRowBaselineDescent = 0;
    345                         if (cell->rowSpan() == 1) {
    346                             baselineDescent = max(baselineDescent, cellLogicalHeight - (baselinePosition - cell->intrinsicPaddingBefore()));
    347                             cellStartRowBaselineDescent = baselineDescent;
    348                         }
    349                         m_rowPos[cellStartRow + 1] = max<int>(m_rowPos[cellStartRow + 1], m_rowPos[cellStartRow] + m_grid[cellStartRow].baseline + cellStartRowBaselineDescent);
     527                        m_grid[r].baseline = max(m_grid[r].baseline, baselinePosition);
     528                        baselineDescent = max(baselineDescent, cellLogicalHeight - (baselinePosition - cell->intrinsicPaddingBefore()));
     529                        m_rowPos[r + 1] = max<int>(m_rowPos[r + 1], m_rowPos[r] + m_grid[r].baseline + baselineDescent);
    350530                    }
    351531                }
     
    357537        m_rowPos[r + 1] = max(m_rowPos[r + 1], m_rowPos[r]);
    358538    }
     539
     540    // Calculating and applying the height of the rows in rowSpan if any rowSpan cell present in the table.
     541    if (!rowSpanCells.isEmpty())
     542        distributeRowSpanHeightToRows(rowSpanCells);
    359543
    360544    ASSERT(!needsLayout());
  • trunk/Source/WebCore/rendering/RenderTableSection.h

    r149967 r150023  
    223223    void ensureRows(unsigned);
    224224
     225    void distributeRowSpanHeightToRows(Vector<RenderTableCell*, 5>& rowSpanCells);
     226
    225227    void distributeExtraLogicalHeightToPercentRows(int& extraLogicalHeight, int totalPercent);
    226228    void distributeExtraLogicalHeightToAutoRows(int& extraLogicalHeight, unsigned autoRowsCount);
Note: See TracChangeset for help on using the changeset viewer.