Changeset 70221 in webkit


Ignore:
Timestamp:
Oct 21, 2010 3:08:19 AM (14 years ago)
Author:
commit-queue@webkit.org
Message:

2010-10-21 Alex Milowski <alex@milowski.com>

Reviewed by Kenneth Rohde Christiansen.

Updated the tests results with changes from the new row layout algorithm.

  • mathml/presentation/row.xhtml:

Added an mrow to make the tests more consistent.

  • platform/mac/mathml/presentation/fenced-expected.txt:
  • platform/mac/mathml/presentation/fenced-mi-expected.txt:
  • platform/mac/mathml/presentation/fractions-expected.checksum:
  • platform/mac/mathml/presentation/fractions-expected.png:
  • platform/mac/mathml/presentation/fractions-expected.txt:
  • platform/mac/mathml/presentation/fractions-vertical-alignment-expected.checksum:
  • platform/mac/mathml/presentation/fractions-vertical-alignment-expected.png:
  • platform/mac/mathml/presentation/fractions-vertical-alignment-expected.txt:
  • platform/mac/mathml/presentation/roots-expected.txt:
  • platform/mac/mathml/presentation/row-alignment-expected.checksum:
  • platform/mac/mathml/presentation/row-alignment-expected.png:
  • platform/mac/mathml/presentation/row-alignment-expected.txt:
  • platform/mac/mathml/presentation/row-expected.txt:
  • platform/mac/mathml/presentation/sub-expected.checksum:
  • platform/mac/mathml/presentation/sub-expected.png:
  • platform/mac/mathml/presentation/sub-expected.txt:
  • platform/mac/mathml/presentation/subsup-expected.txt:
  • platform/mac/mathml/presentation/sup-expected.txt:
  • platform/mac/mathml/presentation/tables-expected.txt:

2010-10-21 Alex Milowski <alex@milowski.com>

Reviewed by Kenneth Rohde Christiansen.

Changed the layout algorithm for rows to avoid unnecessary recursion
into child rows. This solves the long rendering time experienced in
https://bugs.webkit.org/show_bug.cgi?id=43462 as well as reports in
various other bugs. The change in the algorithm required some
tweaks to other rendering objects to make sure that the baseline
alignment still works.

In addition, an attempt was made to go through the various
rendering objects for MathML and reduce unnecessary calls that
mark the tree in need of layout.

  • mathml/RenderMathMLFenced.cpp:
  • mathml/RenderMathMLFenced.h:
  • mathml/RenderMathMLFraction.cpp: (WebCore::RenderMathMLFraction::layout):
  • mathml/RenderMathMLOperator.cpp: (WebCore::RenderMathMLOperator::stretchToHeight):
  • mathml/RenderMathMLRoot.cpp: (WebCore::RenderMathMLRoot::layout):
  • mathml/RenderMathMLRow.cpp: (WebCore::RenderMathMLRow::layout):
  • mathml/RenderMathMLRow.h: (WebCore::RenderMathMLRow::stretchToHeight):
  • mathml/RenderMathMLSubSup.cpp: (WebCore::RenderMathMLSubSup::addChild): (WebCore::RenderMathMLSubSup::stretchToHeight): (WebCore::RenderMathMLSubSup::nonOperatorHeight): (WebCore::RenderMathMLSubSup::layout): (WebCore::RenderMathMLSubSup::baselinePosition):
  • mathml/RenderMathMLUnderOver.cpp: (WebCore::RenderMathMLUnderOver::stretchToHeight): (WebCore::RenderMathMLUnderOver::layout): (WebCore::RenderMathMLUnderOver::nonOperatorHeight):
  • mathml/mathtags.in:
Location:
trunk
Files:
32 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r70215 r70221  
     12010-10-21  Alex Milowski  <alex@milowski.com>
     2
     3        Reviewed by Kenneth Rohde Christiansen.
     4
     5        Updated the tests results with changes from the new row layout algorithm.
     6
     7        * mathml/presentation/row.xhtml:
     8           Added an mrow to make the tests more consistent.
     9        * platform/mac/mathml/presentation/fenced-expected.txt:
     10        * platform/mac/mathml/presentation/fenced-mi-expected.txt:
     11        * platform/mac/mathml/presentation/fractions-expected.checksum:
     12        * platform/mac/mathml/presentation/fractions-expected.png:
     13        * platform/mac/mathml/presentation/fractions-expected.txt:
     14        * platform/mac/mathml/presentation/fractions-vertical-alignment-expected.checksum:
     15        * platform/mac/mathml/presentation/fractions-vertical-alignment-expected.png:
     16        * platform/mac/mathml/presentation/fractions-vertical-alignment-expected.txt:
     17        * platform/mac/mathml/presentation/roots-expected.txt:
     18        * platform/mac/mathml/presentation/row-alignment-expected.checksum:
     19        * platform/mac/mathml/presentation/row-alignment-expected.png:
     20        * platform/mac/mathml/presentation/row-alignment-expected.txt:
     21        * platform/mac/mathml/presentation/row-expected.txt:
     22        * platform/mac/mathml/presentation/sub-expected.checksum:
     23        * platform/mac/mathml/presentation/sub-expected.png:
     24        * platform/mac/mathml/presentation/sub-expected.txt:
     25        * platform/mac/mathml/presentation/subsup-expected.txt:
     26        * platform/mac/mathml/presentation/sup-expected.txt:
     27        * platform/mac/mathml/presentation/tables-expected.txt:
     28
    1292010-10-21  Alejandro G. Castro  <alex@igalia.com>
    230
  • trunk/LayoutTests/mathml/presentation/row.xhtml

    r64967 r70221  
    151516px:
    1616<math xmlns='http://www.w3.org/1998/Math/MathML'>
     17<mrow>
    1718<mo>{</mo><mi>x</mi><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; height: 16px; width: 16px; vertical-align: -33%; background-color: rgb(0,255,0)'/><mo>}</mo>
     19</mrow>
    1820</math>
    1921<math xmlns='http://www.w3.org/1998/Math/MathML'>
  • trunk/LayoutTests/platform/mac/mathml/presentation/fenced-expected.txt

    r69926 r70221  
    55    RenderBody {body} at (8,16) size 784x71
    66      RenderBlock {p} at (0,0) size 784x71
    7         RenderBlock {math} at (0,0) size 171x71
    8           RenderBlock {mfenced} at (1,0) size 169x71
     7        RenderBlock {math} at (0,0) size 170x71
     8          RenderBlock {mfenced} at (1,0) size 168x71
    99            RenderBlock {mfenced} at (1,13) size 6x58
    1010            RenderBlock {div} at (7,22) size 48x48 [bgcolor=#00FF00]
  • trunk/LayoutTests/platform/mac/mathml/presentation/fenced-mi-expected.txt

    r69913 r70221  
    55    RenderBody {body} at (8,16) size 784x58
    66      RenderBlock {p} at (0,0) size 784x21
    7         RenderBlock {math} at (0,0) size 49x21
    8           RenderBlock {mfenced} at (1,0) size 47x21
     7        RenderBlock {math} at (0,0) size 48x21
     8          RenderBlock {mfenced} at (1,0) size 46x21
    99            RenderBlock {mfenced} at (1,0) size 7x21
    10               RenderBlock (anonymous) at (0,0) size 6x21
    11                 RenderBlock {mfenced} at (0,0) size 6x19
    12                   RenderText {mfenced} at (0,-1) size 6x22
    13                     text run at (0,-1) width 6: "("
     10              RenderBlock {mfenced} at (0,0) size 6x19
     11                RenderText {mfenced} at (0,-1) size 6x22
     12                  text run at (0,-1) width 6: "("
    1413            RenderInline {mi} at (0,0) size 7x16
    1514              RenderText {#text} at (8,5) size 7x16
     
    3029                text run at (32,5) width 6: "z"
    3130            RenderBlock {mfenced} at (38,0) size 7x21
    32               RenderBlock (anonymous) at (0,0) size 6x21
    33                 RenderBlock {mfenced} at (0,0) size 6x19
    34                   RenderText {mfenced} at (0,-1) size 6x22
    35                     text run at (0,-1) width 6: ")"
     31              RenderBlock {mfenced} at (0,0) size 6x19
     32                RenderText {mfenced} at (0,-1) size 6x22
     33                  text run at (0,-1) width 6: ")"
    3634        RenderText {#text} at (0,0) size 0x0
    3735      RenderBlock {p} at (0,37) size 784x21
  • trunk/LayoutTests/platform/mac/mathml/presentation/fractions-expected.checksum

    r69913 r70221  
    1 dc3ba7a80d2d7a0f64276076ce1b9535
     16eaf27456a4648391bea2d56aa89d6e6
  • trunk/LayoutTests/platform/mac/mathml/presentation/fractions-expected.txt

    r69913 r70221  
    2222        RenderBlock {math} at (197,0) size 33x40
    2323          RenderBlock {mfrac} at (1,0) size 31x40 [color=#FF0000]
    24             RenderBlock {mfrac} at (0,0) size 31x19
     24            RenderBlock {mfrac} at (0,0) size 22x19
    2525              RenderBlock {mrow} at (3,0) size 25x19
    2626                RenderInline {mi} at (0,0) size 7x16
     
    3434                  RenderText {#text} at (17,3) size 8x16
    3535                    text run at (17,3) width 8: "1"
    36             RenderBlock {mfrac} at (0,19) size 31x21
     36            RenderBlock {mfrac} at (0,19) size 22x21
    3737              RenderBlock {mrow} at (3,2) size 25x19
    3838                RenderInline {mi} at (0,0) size 7x16
     
    9999        RenderBlock {math} at (138,0) size 89x37
    100100          RenderBlock {mfrac} at (1,0) size 87x37
    101             RenderBlock {mfrac} at (0,0) size 87x19
     101            RenderBlock {mfrac} at (0,0) size 51x19
    102102              RenderInline {mi} at (0,0) size 7x16
    103103                RenderText {#text} at (3,3) size 7x16
    104104                  text run at (3,3) width 7: "x"
    105             RenderBlock {mfrac} at (0,19) size 87x18
     105            RenderBlock {mfrac} at (0,19) size 51x18
    106106              RenderBlock {mrow} at (4,2) size 80x16
    107107                RenderInline {mn} at (0,0) size 8x16
     
    140140        RenderBlock {math} at (231,0) size 89x37
    141141          RenderBlock {mfrac} at (1,0) size 87x37
    142             RenderBlock {mfrac} at (0,0) size 87x19
    143               RenderInline {mi} at (0,0) size 7x16
    144                 RenderText {#text} at (40,3) size 7x16
    145                   text run at (40,3) width 7: "x"
    146             RenderBlock {mfrac} at (0,19) size 87x18
     142            RenderBlock {mfrac} at (0,0) size 51x19
     143              RenderInline {mi} at (0,0) size 7x16
     144                RenderText {#text} at (22,3) size 7x16
     145                  text run at (22,3) width 7: "x"
     146            RenderBlock {mfrac} at (0,19) size 51x18
    147147              RenderBlock {mrow} at (4,2) size 80x16
    148148                RenderInline {mn} at (0,0) size 8x16
     
    181181        RenderBlock {math} at (324,0) size 89x37
    182182          RenderBlock {mfrac} at (1,0) size 87x37
    183             RenderBlock {mfrac} at (0,0) size 87x19
    184               RenderInline {mi} at (0,0) size 7x16
    185                 RenderText {#text} at (77,3) size 7x16
    186                   text run at (77,3) width 7: "x"
    187             RenderBlock {mfrac} at (0,19) size 87x18
     183            RenderBlock {mfrac} at (0,0) size 51x19
     184              RenderInline {mi} at (0,0) size 7x16
     185                RenderText {#text} at (41,3) size 7x16
     186                  text run at (41,3) width 7: "x"
     187            RenderBlock {mfrac} at (0,19) size 51x18
    188188              RenderBlock {mrow} at (4,2) size 80x16
    189189                RenderInline {mn} at (0,0) size 8x16
     
    224224        RenderBlock {math} at (153,0) size 88x37
    225225          RenderBlock {mfrac} at (1,0) size 86x37
    226             RenderBlock {mfrac} at (0,0) size 86x16
     226            RenderBlock {mfrac} at (0,0) size 50x16
    227227              RenderBlock {mrow} at (3,0) size 80x16
    228228                RenderInline {mn} at (0,0) size 8x16
     
    257257                  RenderText {#text} at (72,0) size 8x16
    258258                    text run at (72,0) width 8: "5"
    259             RenderBlock {mfrac} at (0,16) size 86x21
     259            RenderBlock {mfrac} at (0,16) size 50x21
    260260              RenderInline {mi} at (0,0) size 7x16
    261261                RenderText {#text} at (3,5) size 7x16
     
    265265        RenderBlock {math} at (245,0) size 88x37
    266266          RenderBlock {mfrac} at (1,0) size 86x37
    267             RenderBlock {mfrac} at (0,0) size 86x16
     267            RenderBlock {mfrac} at (0,0) size 50x16
    268268              RenderBlock {mrow} at (3,0) size 80x16
    269269                RenderInline {mn} at (0,0) size 8x16
     
    298298                  RenderText {#text} at (72,0) size 8x16
    299299                    text run at (72,0) width 8: "5"
    300             RenderBlock {mfrac} at (0,16) size 86x21
    301               RenderInline {mi} at (0,0) size 7x16
    302                 RenderText {#text} at (39,5) size 7x16
    303                   text run at (39,5) width 7: "x"
     300            RenderBlock {mfrac} at (0,16) size 50x21
     301              RenderInline {mi} at (0,0) size 7x16
     302                RenderText {#text} at (21,5) size 7x16
     303                  text run at (21,5) width 7: "x"
    304304        RenderText {#text} at (333,7) size 4x18
    305305          text run at (333,7) width 4: " "
    306306        RenderBlock {math} at (337,0) size 88x37
    307307          RenderBlock {mfrac} at (1,0) size 86x37
    308             RenderBlock {mfrac} at (0,0) size 86x16
     308            RenderBlock {mfrac} at (0,0) size 50x16
    309309              RenderBlock {mrow} at (3,0) size 80x16
    310310                RenderInline {mn} at (0,0) size 8x16
     
    339339                  RenderText {#text} at (72,0) size 8x16
    340340                    text run at (72,0) width 8: "5"
    341             RenderBlock {mfrac} at (0,16) size 86x21
    342               RenderInline {mi} at (0,0) size 7x16
    343                 RenderText {#text} at (76,5) size 7x16
    344                   text run at (76,5) width 7: "x"
     341            RenderBlock {mfrac} at (0,16) size 50x21
     342              RenderInline {mi} at (0,0) size 7x16
     343                RenderText {#text} at (40,5) size 7x16
     344                  text run at (40,5) width 7: "x"
    345345        RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/mac/mathml/presentation/fractions-vertical-alignment-expected.checksum

    r69926 r70221  
    1 99c3bc3a8784d9ae0586838ffa347c48
     1d9b0e251df766713ac341bdfe649e65c
  • trunk/LayoutTests/platform/mac/mathml/presentation/fractions-vertical-alignment-expected.txt

    r69926 r70221  
    1717          text run at (0,0) width 9: "+"
    1818    RenderBlock {math:mfrac} at (28,21) size 44x61
    19       RenderBlock {math:mfrac} at (0,0) size 44x40
     19      RenderBlock {math:mfrac} at (0,0) size 35x40
    2020        RenderBlock {math:mrow} at (3,0) size 38x40
    2121          RenderInline {math:mi} at (0,0) size 10x16
     
    3535                RenderText {#text} at (4,5) size 10x16
    3636                  text run at (4,5) width 10: "E"
    37       RenderBlock {math:mfrac} at (0,40) size 44x21
     37      RenderBlock {math:mfrac} at (0,40) size 35x21
    3838        RenderInline {math:mi} at (0,0) size 11x16
    39           RenderText {#text} at (16,5) size 11x16
    40             text run at (16,5) width 11: "C"
     39          RenderText {#text} at (12,5) size 11x16
     40            text run at (12,5) width 11: "C"
    4141    RenderBlock {math:mo} at (72,55) size 10x16
    4242      RenderBlock {math:mo} at (0,0) size 9x16
     
    4444          text run at (0,0) width 9: "+"
    4545    RenderBlock {math:mfrac} at (82,0) size 72x82
    46       RenderBlock {math:mfrac} at (0,0) size 72x61
     46      RenderBlock {math:mfrac} at (0,0) size 54x61
    4747        RenderBlock {math:mrow} at (3,0) size 66x61
    4848          RenderInline {math:mi} at (0,0) size 10x16
     
    5454                text run at (0,0) width 9: "+"
    5555          RenderBlock {math:mfrac} at (20,0) size 46x61
    56             RenderBlock {math:mfrac} at (0,0) size 46x40
     56            RenderBlock {math:mfrac} at (0,0) size 37x40
    5757              RenderBlock {math:mrow} at (3,0) size 40x40
    5858                RenderInline {math:mi} at (0,0) size 12x16
     
    7272                      RenderText {#text} at (3,5) size 12x16
    7373                        text run at (3,5) width 12: "G"
    74             RenderBlock {math:mfrac} at (0,40) size 46x21
     74            RenderBlock {math:mfrac} at (0,40) size 37x21
    7575              RenderInline {math:mi} at (0,0) size 10x16
    76                 RenderText {#text} at (18,5) size 10x16
    77                   text run at (18,5) width 10: "E"
    78       RenderBlock {math:mfrac} at (0,61) size 72x21
     76                RenderText {#text} at (13,5) size 10x16
     77                  text run at (13,5) width 10: "E"
     78      RenderBlock {math:mfrac} at (0,61) size 54x21
    7979        RenderInline {math:mi} at (0,0) size 11x16
    80           RenderText {#text} at (30,5) size 11x16
    81             text run at (30,5) width 11: "C"
     80          RenderText {#text} at (21,5) size 11x16
     81            text run at (21,5) width 11: "C"
    8282    RenderBlock {math:mo} at (154,55) size 10x16
    8383      RenderBlock {math:mo} at (0,0) size 9x16
     
    8585          text run at (0,0) width 9: "+"
    8686    RenderBlock {math:mfrac} at (164,42) size 71x82
    87       RenderBlock {math:mfrac} at (0,0) size 71x19
     87      RenderBlock {math:mfrac} at (0,0) size 53x19
    8888        RenderInline {math:mi} at (0,0) size 10x16
    89           RenderText {#text} at (30,3) size 10x16
    90             text run at (30,3) width 10: "B"
    91       RenderBlock {math:mfrac} at (0,19) size 71x63
     89          RenderText {#text} at (21,3) size 10x16
     90            text run at (21,3) width 10: "B"
     91      RenderBlock {math:mfrac} at (0,19) size 53x63
    9292        RenderBlock {math:mrow} at (3,2) size 65x61
    9393          RenderInline {math:mi} at (0,0) size 11x16
     
    9999                text run at (0,0) width 9: "+"
    100100          RenderBlock {math:mfrac} at (21,0) size 44x61
    101             RenderBlock {math:mfrac} at (0,0) size 44x19
     101            RenderBlock {math:mfrac} at (0,0) size 35x19
    102102              RenderInline {math:mi} at (0,0) size 12x16
    103                 RenderText {#text} at (16,3) size 12x16
    104                   text run at (16,3) width 12: "D"
    105             RenderBlock {math:mfrac} at (0,19) size 44x42
     103                RenderText {#text} at (11,3) size 12x16
     104                  text run at (11,3) width 12: "D"
     105            RenderBlock {math:mfrac} at (0,19) size 35x42
    106106              RenderBlock {math:mrow} at (3,2) size 38x40
    107107                RenderInline {math:mi} at (0,0) size 10x16
  • trunk/LayoutTests/platform/mac/mathml/presentation/roots-expected.txt

    r69926 r70221  
    3434          RenderBlock {msqrt} at (1,0) size 42x22
    3535            RenderBlock {msup} at (12,3) size 13x19
    36               RenderInline {mi} at (0,0) size 7x16
    37                 RenderText {#text} at (0,3) size 7x16
    38                   text run at (0,3) width 7: "x"
     36              RenderBlock {msup} at (0,0) size 7x19
     37                RenderInline {mi} at (0,0) size 7x16
     38                  RenderText {#text} at (0,3) size 7x16
     39                    text run at (0,3) width 7: "x"
    3940              RenderInline {mn} at (0,0) size 6x12
    4041                RenderText {#text} at (7,0) size 6x12
     
    5354          RenderBlock {msqrt} at (1,0) size 43x46
    5455            RenderBlock {mfrac} at (12,3) size 31x40
    55               RenderBlock {mfrac} at (0,0) size 31x19
     56              RenderBlock {mfrac} at (0,0) size 22x19
    5657                RenderBlock {mrow} at (3,0) size 25x19
    5758                  RenderInline {mi} at (0,0) size 7x16
     
    6566                    RenderText {#text} at (17,3) size 8x16
    6667                      text run at (17,3) width 8: "1"
    67               RenderBlock {mfrac} at (0,19) size 31x21
     68              RenderBlock {mfrac} at (0,19) size 22x21
    6869                RenderBlock {mrow} at (3,2) size 25x19
    6970                  RenderInline {mi} at (0,0) size 7x16
     
    211212    RenderBlock {mroot} at (41,3) size 32x40
    212213      RenderBlock {mfrac} at (1,0) size 31x40
    213         RenderBlock {mfrac} at (0,0) size 31x19
     214        RenderBlock {mfrac} at (0,0) size 22x19
    214215          RenderBlock {mrow} at (3,0) size 25x19
    215216            RenderInline {mi} at (0,0) size 7x16
     
    223224              RenderText {#text} at (17,3) size 8x16
    224225                text run at (17,3) width 8: "1"
    225         RenderBlock {mfrac} at (0,19) size 31x21
     226        RenderBlock {mfrac} at (0,19) size 22x21
    226227          RenderBlock {mrow} at (3,2) size 25x19
    227228            RenderInline {mi} at (0,0) size 7x16
  • trunk/LayoutTests/platform/mac/mathml/presentation/row-alignment-expected.checksum

    r69926 r70221  
    1 7137dd8f5deda6c22a4e32fa9f10b98d
     1a2adcc2b842ee0418f419c8b5653b70b
  • trunk/LayoutTests/platform/mac/mathml/presentation/row-alignment-expected.txt

    r69926 r70221  
    3333          RenderBlock {math} at (27,0) size 33x37
    3434            RenderBlock {mfrac} at (1,0) size 31x37
    35               RenderBlock {mfrac} at (0,0) size 31x19
     35              RenderBlock {mfrac} at (0,0) size 22x19
    3636                RenderBlock {mrow} at (3,0) size 25x19
    3737                  RenderInline {mi} at (0,0) size 7x16
     
    4545                    RenderText {#text} at (17,3) size 8x16
    4646                      text run at (17,3) width 8: "1"
    47               RenderBlock {mfrac} at (0,19) size 31x18
     47              RenderBlock {mfrac} at (0,19) size 22x18
    4848                RenderInline {mn} at (0,0) size 8x16
    49                   RenderText {#text} at (11,2) size 8x16
    50                     text run at (11,2) width 8: "2"
     49                  RenderText {#text} at (7,2) size 8x16
     50                    text run at (7,2) width 8: "2"
    5151          RenderText {#text} at (0,0) size 0x0
    5252        RenderBlock {p} at (0,100) size 784x37
     
    6262                  text run at (0,0) width 9: "+"
    6363            RenderBlock {mfrac} at (18,0) size 31x37
    64               RenderBlock {mfrac} at (0,0) size 31x19
     64              RenderBlock {mfrac} at (0,0) size 22x19
    6565                RenderBlock {mrow} at (3,0) size 25x19
    6666                  RenderInline {mi} at (0,0) size 7x16
     
    7474                    RenderText {#text} at (17,3) size 8x16
    7575                      text run at (17,3) width 8: "1"
    76               RenderBlock {mfrac} at (0,19) size 31x18
     76              RenderBlock {mfrac} at (0,19) size 22x18
    7777                RenderInline {mn} at (0,0) size 8x16
    78                   RenderText {#text} at (11,2) size 8x16
    79                     text run at (11,2) width 8: "2"
     78                  RenderText {#text} at (7,2) size 8x16
     79                    text run at (7,2) width 8: "2"
    8080          RenderText {#text} at (0,0) size 0x0
    8181      RenderBlock {div} at (0,241) size 784x299
     
    9696                  text run at (0,0) width 9: "+"
    9797            RenderBlock {mfrac} at (24,4) size 31x37
    98               RenderBlock {mfrac} at (0,0) size 31x19
     98              RenderBlock {mfrac} at (0,0) size 22x19
    9999                RenderBlock {mrow} at (3,0) size 25x19
    100100                  RenderInline {mi} at (0,0) size 7x16
     
    108108                    RenderText {#text} at (17,3) size 8x16
    109109                      text run at (17,3) width 8: "1"
    110               RenderBlock {mfrac} at (0,19) size 31x18
     110              RenderBlock {mfrac} at (0,19) size 22x18
    111111                RenderInline {mn} at (0,0) size 8x16
    112                   RenderText {#text} at (11,2) size 8x16
    113                     text run at (11,2) width 8: "2"
     112                  RenderText {#text} at (7,2) size 8x16
     113                    text run at (7,2) width 8: "2"
    114114            RenderBlock {mo} at (55,3) size 6x45
    115115          RenderText {#text} at (0,0) size 0x0
     
    132132                    text run at (4,3) width 5: "x"
    133133            RenderBlock {mfrac} at (27,10) size 54x76
    134               RenderBlock {mfrac} at (0,0) size 54x37
     134              RenderBlock {mfrac} at (0,0) size 36x37
    135135                RenderBlock {mrow} at (3,0) size 48x37
    136136                  RenderInline {mi} at (0,0) size 7x16
     
    142142                        text run at (0,0) width 9: "+"
    143143                  RenderBlock {mfrac} at (17,0) size 31x37
    144                     RenderBlock {mfrac} at (0,0) size 31x19
     144                    RenderBlock {mfrac} at (0,0) size 22x19
    145145                      RenderBlock {mrow} at (3,0) size 25x19
    146146                        RenderInline {mi} at (0,0) size 7x16
     
    154154                          RenderText {#text} at (17,3) size 8x16
    155155                            text run at (17,3) width 8: "1"
    156                     RenderBlock {mfrac} at (0,19) size 31x18
     156                    RenderBlock {mfrac} at (0,19) size 22x18
    157157                      RenderInline {mn} at (0,0) size 8x16
    158                         RenderText {#text} at (11,2) size 8x16
    159                           text run at (11,2) width 8: "2"
    160               RenderBlock {mfrac} at (0,37) size 54x39
     158                        RenderText {#text} at (7,2) size 8x16
     159                          text run at (7,2) width 8: "2"
     160              RenderBlock {mfrac} at (0,37) size 36x39
    161161                RenderBlock {mrow} at (3,2) size 48x37
    162162                  RenderInline {mi} at (0,0) size 7x16
     
    168168                        text run at (0,0) width 9: "+"
    169169                  RenderBlock {mfrac} at (17,0) size 31x37
    170                     RenderBlock {mfrac} at (0,0) size 31x19
     170                    RenderBlock {mfrac} at (0,0) size 22x19
    171171                      RenderBlock {mrow} at (3,0) size 25x19
    172172                        RenderInline {mi} at (0,0) size 7x16
     
    180180                          RenderText {#text} at (17,3) size 8x16
    181181                            text run at (17,3) width 8: "1"
    182                     RenderBlock {mfrac} at (0,19) size 31x18
     182                    RenderBlock {mfrac} at (0,19) size 22x18
    183183                      RenderInline {mn} at (0,0) size 8x16
    184                         RenderText {#text} at (11,2) size 8x16
    185                           text run at (11,2) width 8: "2"
     184                        RenderText {#text} at (7,2) size 8x16
     185                          text run at (7,2) width 8: "2"
    186186            RenderBlock {mo} at (81,0) size 6x92
    187187          RenderText {#text} at (0,0) size 0x0
     
    196196                  RenderTableCell {mtd} at (0,0) size 20x22 [r=0 c=0 rs=1 cs=1]
    197197                    RenderBlock {msub} at (0,0) size 20x22
    198                       RenderInline {mi} at (0,0) size 8x16
    199                         RenderText {#text} at (0,3) size 8x16
    200                           text run at (0,3) width 8: "a"
     198                      RenderBlock {msub} at (0,0) size 8x19
     199                        RenderInline {mi} at (0,0) size 8x16
     200                          RenderText {#text} at (0,3) size 8x16
     201                            text run at (0,3) width 8: "a"
    201202                      RenderInline {mn} at (0,0) size 12x12
    202203                        RenderText {#text} at (8,10) size 12x12
     
    204205                  RenderTableCell {mtd} at (20,0) size 20x22 [r=0 c=1 rs=1 cs=1]
    205206                    RenderBlock {msub} at (0,0) size 20x22
    206                       RenderInline {mi} at (0,0) size 8x16
    207                         RenderText {#text} at (0,3) size 8x16
    208                           text run at (0,3) width 8: "a"
     207                      RenderBlock {msub} at (0,0) size 8x19
     208                        RenderInline {mi} at (0,0) size 8x16
     209                          RenderText {#text} at (0,3) size 8x16
     210                            text run at (0,3) width 8: "a"
    209211                      RenderInline {mn} at (0,0) size 12x12
    210212                        RenderText {#text} at (8,10) size 12x12
     
    212214                  RenderTableCell {mtd} at (40,0) size 20x22 [r=0 c=2 rs=1 cs=1]
    213215                    RenderBlock {msub} at (0,0) size 20x22
    214                       RenderInline {mi} at (0,0) size 8x16
    215                         RenderText {#text} at (0,3) size 8x16
    216                           text run at (0,3) width 8: "a"
     216                      RenderBlock {msub} at (0,0) size 8x19
     217                        RenderInline {mi} at (0,0) size 8x16
     218                          RenderText {#text} at (0,3) size 8x16
     219                            text run at (0,3) width 8: "a"
    217220                      RenderInline {mn} at (0,0) size 12x12
    218221                        RenderText {#text} at (8,10) size 12x12
     
    221224                  RenderTableCell {mtd} at (0,22) size 20x22 [r=1 c=0 rs=1 cs=1]
    222225                    RenderBlock {msub} at (0,0) size 20x22
    223                       RenderInline {mi} at (0,0) size 8x16
    224                         RenderText {#text} at (0,3) size 8x16
    225                           text run at (0,3) width 8: "b"
     226                      RenderBlock {msub} at (0,0) size 8x19
     227                        RenderInline {mi} at (0,0) size 8x16
     228                          RenderText {#text} at (0,3) size 8x16
     229                            text run at (0,3) width 8: "b"
    226230                      RenderInline {mn} at (0,0) size 12x12
    227231                        RenderText {#text} at (8,10) size 12x12
     
    229233                  RenderTableCell {mtd} at (20,22) size 20x22 [r=1 c=1 rs=1 cs=1]
    230234                    RenderBlock {msub} at (0,0) size 20x22
    231                       RenderInline {mi} at (0,0) size 8x16
    232                         RenderText {#text} at (0,3) size 8x16
    233                           text run at (0,3) width 8: "b"
     235                      RenderBlock {msub} at (0,0) size 8x19
     236                        RenderInline {mi} at (0,0) size 8x16
     237                          RenderText {#text} at (0,3) size 8x16
     238                            text run at (0,3) width 8: "b"
    234239                      RenderInline {mn} at (0,0) size 12x12
    235240                        RenderText {#text} at (8,10) size 12x12
     
    237242                  RenderTableCell {mtd} at (40,22) size 20x22 [r=1 c=2 rs=1 cs=1]
    238243                    RenderBlock {msub} at (0,0) size 20x22
    239                       RenderInline {mi} at (0,0) size 8x16
    240                         RenderText {#text} at (0,3) size 8x16
    241                           text run at (0,3) width 8: "b"
     244                      RenderBlock {msub} at (0,0) size 8x19
     245                        RenderInline {mi} at (0,0) size 8x16
     246                          RenderText {#text} at (0,3) size 8x16
     247                            text run at (0,3) width 8: "b"
    242248                      RenderInline {mn} at (0,0) size 12x12
    243249                        RenderText {#text} at (8,10) size 12x12
     
    246252                  RenderTableCell {mtd} at (0,44) size 20x22 [r=2 c=0 rs=1 cs=1]
    247253                    RenderBlock {msub} at (0,0) size 19x22
    248                       RenderInline {mi} at (0,0) size 7x16
    249                         RenderText {#text} at (0,3) size 7x16
    250                           text run at (0,3) width 7: "c"
     254                      RenderBlock {msub} at (0,0) size 7x19
     255                        RenderInline {mi} at (0,0) size 7x16
     256                          RenderText {#text} at (0,3) size 7x16
     257                            text run at (0,3) width 7: "c"
    251258                      RenderInline {mn} at (0,0) size 12x12
    252259                        RenderText {#text} at (7,10) size 12x12
     
    254261                  RenderTableCell {mtd} at (20,44) size 20x22 [r=2 c=1 rs=1 cs=1]
    255262                    RenderBlock {msub} at (0,0) size 19x22
    256                       RenderInline {mi} at (0,0) size 7x16
    257                         RenderText {#text} at (0,3) size 7x16
    258                           text run at (0,3) width 7: "c"
     263                      RenderBlock {msub} at (0,0) size 7x19
     264                        RenderInline {mi} at (0,0) size 7x16
     265                          RenderText {#text} at (0,3) size 7x16
     266                            text run at (0,3) width 7: "c"
    259267                      RenderInline {mn} at (0,0) size 12x12
    260268                        RenderText {#text} at (7,10) size 12x12
     
    262270                  RenderTableCell {mtd} at (40,44) size 20x22 [r=2 c=2 rs=1 cs=1]
    263271                    RenderBlock {msub} at (0,0) size 19x22
    264                       RenderInline {mi} at (0,0) size 7x16
    265                         RenderText {#text} at (0,3) size 7x16
    266                           text run at (0,3) width 7: "c"
     272                      RenderBlock {msub} at (0,0) size 7x19
     273                        RenderInline {mi} at (0,0) size 7x16
     274                          RenderText {#text} at (0,3) size 7x16
     275                            text run at (0,3) width 7: "c"
    267276                      RenderInline {mn} at (0,0) size 12x12
    268277                        RenderText {#text} at (7,10) size 12x12
  • trunk/LayoutTests/platform/mac/mathml/presentation/row-expected.txt

    r69926 r70221  
    2121          text run at (0,2) width 40: "16px: "
    2222        RenderBlock {math} at (40,0) size 45x21
    23           RenderBlock {mo} at (1,0) size 10x21 [bgcolor=#C8C8C8]
    24             RenderBlock {mo} at (0,0) size 9x19
    25               RenderText {mo} at (0,-1) size 9x22
    26                 text run at (0,-1) width 9: "{"
    27           RenderInline {mi} at (0,0) size 7x16
    28             RenderText {#text} at (11,5) size 7x16
    29               text run at (11,5) width 7: "x"
    30           RenderBlock {div} at (18,5) size 16x16 [bgcolor=#00FF00]
    31           RenderBlock {mo} at (34,0) size 10x21 [bgcolor=#C8C8C8]
    32             RenderBlock {mo} at (0,0) size 9x19
    33               RenderText {mo} at (0,-1) size 9x22
    34                 text run at (0,-1) width 9: "}"
     23          RenderBlock {mrow} at (1,0) size 43x21
     24            RenderBlock {mo} at (0,0) size 10x21 [bgcolor=#C8C8C8]
     25              RenderBlock {mo} at (0,0) size 9x19
     26                RenderText {mo} at (0,-1) size 9x22
     27                  text run at (0,-1) width 9: "{"
     28            RenderInline {mi} at (0,0) size 7x16
     29              RenderText {#text} at (10,5) size 7x16
     30                text run at (10,5) width 7: "x"
     31            RenderBlock {div} at (17,5) size 16x16 [bgcolor=#00FF00]
     32            RenderBlock {mo} at (33,0) size 10x21 [bgcolor=#C8C8C8]
     33              RenderBlock {mo} at (0,0) size 9x19
     34                RenderText {mo} at (0,-1) size 9x22
     35                  text run at (0,-1) width 9: "}"
    3536        RenderText {#text} at (85,2) size 4x18
    3637          text run at (85,2) width 4: " "
     
    3839          RenderBlock {mrow} at (1,0) size 37x21
    3940            RenderBlock {mo} at (0,0) size 7x21 [bgcolor=#C8C8C8]
    40               RenderBlock (anonymous) at (0,0) size 6x21
    41                 RenderBlock {mo} at (0,0) size 6x19
    42                   RenderText {mo} at (0,-1) size 6x22
    43                     text run at (0,-1) width 6: "["
     41              RenderBlock {mo} at (0,0) size 6x19
     42                RenderText {mo} at (0,-1) size 6x22
     43                  text run at (0,-1) width 6: "["
    4444            RenderInline {mi} at (0,0) size 7x16
    4545              RenderText {#text} at (7,5) size 7x16
     
    4747            RenderBlock {div} at (14,5) size 16x16 [bgcolor=#00FF00]
    4848            RenderBlock {mo} at (30,0) size 7x21 [bgcolor=#C8C8C8]
    49               RenderBlock (anonymous) at (0,0) size 6x21
    50                 RenderBlock {mo} at (0,0) size 6x19
    51                   RenderText {mo} at (0,-1) size 6x22
    52                     text run at (0,-1) width 6: "]"
     49              RenderBlock {mo} at (0,0) size 6x19
     50                RenderText {mo} at (0,-1) size 6x22
     51                  text run at (0,-1) width 6: "]"
    5352        RenderText {#text} at (128,2) size 4x18
    5453          text run at (128,2) width 4: " "
     
    5655          RenderBlock {mrow} at (1,0) size 37x21
    5756            RenderBlock {mo} at (0,0) size 7x21 [bgcolor=#C8C8C8]
    58               RenderBlock (anonymous) at (0,0) size 6x21
    59                 RenderBlock {mo} at (0,0) size 6x19
    60                   RenderText {mo} at (0,-1) size 6x22
    61                     text run at (0,-1) width 6: "("
     57              RenderBlock {mo} at (0,0) size 6x19
     58                RenderText {mo} at (0,-1) size 6x22
     59                  text run at (0,-1) width 6: "("
    6260            RenderInline {mi} at (0,0) size 7x16
    6361              RenderText {#text} at (7,5) size 7x16
     
    6563            RenderBlock {div} at (14,5) size 16x16 [bgcolor=#00FF00]
    6664            RenderBlock {mo} at (30,0) size 7x21 [bgcolor=#C8C8C8]
    67               RenderBlock (anonymous) at (0,0) size 6x21
    68                 RenderBlock {mo} at (0,0) size 6x19
    69                   RenderText {mo} at (0,-1) size 6x22
    70                     text run at (0,-1) width 6: ")"
     65              RenderBlock {mo} at (0,0) size 6x19
     66                RenderText {mo} at (0,-1) size 6x22
     67                  text run at (0,-1) width 6: ")"
    7168        RenderText {#text} at (171,2) size 4x18
    7269          text run at (171,2) width 4: " "
     
    7471          RenderBlock {mrow} at (1,0) size 33x21
    7572            RenderBlock {mo} at (0,0) size 5x21 [bgcolor=#C8C8C8]
    76               RenderBlock (anonymous) at (0,0) size 4x21
    77                 RenderBlock {mo} at (0,0) size 4x19
    78                   RenderText {mo} at (0,-1) size 4x22
    79                     text run at (0,-1) width 4: "|"
     73              RenderBlock {mo} at (0,0) size 4x19
     74                RenderText {mo} at (0,-1) size 4x22
     75                  text run at (0,-1) width 4: "|"
    8076            RenderInline {mi} at (0,0) size 7x16
    8177              RenderText {#text} at (5,5) size 7x16
     
    8379            RenderBlock {div} at (12,5) size 16x16 [bgcolor=#00FF00]
    8480            RenderBlock {mo} at (28,0) size 5x21 [bgcolor=#C8C8C8]
    85               RenderBlock (anonymous) at (0,0) size 4x21
    86                 RenderBlock {mo} at (0,0) size 4x19
    87                   RenderText {mo} at (0,-1) size 4x22
    88                     text run at (0,-1) width 4: "|"
     81              RenderBlock {mo} at (0,0) size 4x19
     82                RenderText {mo} at (0,-1) size 4x22
     83                  text run at (0,-1) width 4: "|"
    8984        RenderText {#text} at (210,2) size 4x18
    9085          text run at (210,2) width 4: " "
     
    9287          RenderBlock {mrow} at (1,0) size 29x21
    9388            RenderBlock {mo} at (0,0) size 6x21 [bgcolor=#C8C8C8]
    94               RenderBlock (anonymous) at (0,0) size 5x21
    95                 RenderBlock {mo} at (0,0) size 5x19
    96                   RenderText {mo} at (0,-1) size 5x22
    97                     text run at (0,-1) width 5: "\x{222B}"
     89              RenderBlock {mo} at (0,0) size 5x19
     90                RenderText {mo} at (0,-1) size 5x22
     91                  text run at (0,-1) width 5: "\x{222B}"
    9892            RenderInline {mi} at (0,0) size 7x16
    9993              RenderText {#text} at (6,5) size 7x16
  • trunk/LayoutTests/platform/mac/mathml/presentation/sub-expected.checksum

    r61861 r70221  
    1 2e9d9b3a454f2d790c8d0a012fcae480
     1d5998c9a1776f79a14c01b6add75e6f0
  • trunk/LayoutTests/platform/mac/mathml/presentation/sub-expected.txt

    r61861 r70221  
    11layer at (0,0) size 800x600
    22  RenderView at (0,0) size 800x600
    3 layer at (0,0) size 800x130
    4   RenderBlock {html} at (0,0) size 800x130
    5     RenderBody {body} at (8,16) size 784x98
     3layer at (0,0) size 800x134
     4  RenderBlock {html} at (0,0) size 800x134
     5    RenderBody {body} at (8,16) size 784x102
    66      RenderBlock {p} at (0,0) size 784x22
    77        RenderText {#text} at (0,0) size 27x18
     
    99        RenderBlock {math} at (27,0) size 15x22
    1010          RenderBlock {msub} at (1,0) size 13x22
    11             RenderInline {mi} at (0,0) size 7x16
    12               RenderText {#text} at (0,3) size 7x16
    13                 text run at (0,3) width 7: "x"
     11            RenderBlock {msub} at (0,0) size 7x19
     12              RenderInline {mi} at (0,0) size 7x16
     13                RenderText {#text} at (0,3) size 7x16
     14                  text run at (0,3) width 7: "x"
    1415            RenderInline {mn} at (0,0) size 6x12
    1516              RenderText {#text} at (7,10) size 6x12
     
    1920        RenderText {#text} at (0,0) size 27x18
    2021          text run at (0,0) width 27: "text "
    21         RenderBlock {math} at (27,3) size 20x19
    22           RenderBlock {msub} at (1,0) size 18x19
    23             RenderBlock {mo} at (0,0) size 9x16
     22        RenderBlock {math} at (27,3) size 16x19
     23          RenderBlock {msub} at (1,0) size 14x19
     24            RenderBlock {msub} at (0,0) size 9x16
    2425              RenderBlock {mo} at (0,0) size 9x16
    25                 RenderText {mo} at (0,0) size 9x16
    26                   text run at (0,0) width 9: "+"
    27             RenderText {#text} at (9,0) size 4x16
    28               text run at (9,0) width 4: " "
     26                RenderBlock {mo} at (0,0) size 9x16
     27                  RenderText {mo} at (0,0) size 9x16
     28                    text run at (0,0) width 9: "+"
    2929            RenderInline {mi} at (0,0) size 5x12
    30               RenderText {#text} at (13,7) size 5x12
    31                 text run at (13,7) width 5: "x"
    32             RenderText {#text} at (0,0) size 0x0
     30              RenderText {#text} at (9,7) size 5x12
     31                text run at (9,7) width 5: "x"
    3332        RenderText {#text} at (0,0) size 0x0
    34       RenderBlock {p} at (0,76) size 784x22
    35         RenderText {#text} at (0,0) size 27x18
    36           text run at (0,0) width 27: "text "
    37         RenderBlock {math} at (27,3) size 17x19
    38           RenderBlock {msub} at (1,0) size 15x19
    39             RenderBlock {mo} at (0,0) size 4x16
    40               RenderBlock {mo} at (0,0) size 4x16
    41                 RenderText {mo} at (0,0) size 4x16
    42                   text run at (0,0) width 4: "\x{222B}"
    43             RenderText {#text} at (4,0) size 4x16
    44               text run at (4,0) width 4: " "
     33      RenderBlock {p} at (0,76) size 784x26
     34        RenderText {#text} at (0,4) size 27x18
     35          text run at (0,4) width 27: "text "
     36        RenderBlock {math} at (27,0) size 15x26
     37          RenderBlock {msub} at (1,0) size 13x26
     38            RenderBlock {msub} at (0,0) size 6x23
     39              RenderBlock {mo} at (0,0) size 6x23
     40                RenderBlock {mo} at (0,0) size 6x22
     41                  RenderText {mo} at (0,-2) size 6x26
     42                    text run at (0,-2) width 6: "\x{222B}"
    4543            RenderInline {mi} at (0,0) size 7x12
    46               RenderText {#text} at (8,7) size 7x12
    47                 text run at (8,7) width 7: "Y"
    48             RenderText {#text} at (0,0) size 0x0
     44              RenderText {#text} at (6,14) size 7x12
     45                text run at (6,14) width 7: "Y"
    4946        RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/mac/mathml/presentation/subsup-expected.txt

    r69913 r70221  
    99        RenderBlock {math} at (36,0) size 16x32
    1010          RenderBlock {msubsup} at (1,0) size 14x32
    11             RenderBlock {msubsup} at (0,8) size 7x19
     11            RenderBlock {msubsup} at (0,0) size 7x27
    1212              RenderInline {mi} at (0,0) size 7x16
    13                 RenderText {#text} at (0,3) size 7x16
    14                   text run at (0,3) width 7: "x"
     13                RenderText {#text} at (0,11) size 7x16
     14                  text run at (0,11) width 7: "x"
    1515            RenderBlock {msubsup} at (8,0) size 6x32
    1616              RenderBlock {msubsup} at (0,0) size 6x16
     
    2828        RenderBlock {math} at (148,0) size 44x32
    2929          RenderBlock {msubsup} at (1,0) size 42x32
    30             RenderBlock {msubsup} at (0,8) size 9x19
     30            RenderBlock {msubsup} at (0,0) size 9x27
    3131              RenderInline {mi} at (0,0) size 9x16
    32                 RenderText {#text} at (0,3) size 9x16
    33                   text run at (0,3) width 9: "Z"
     32                RenderText {#text} at (0,11) size 9x16
     33                  text run at (0,11) width 9: "Z"
    3434            RenderBlock {msubsup} at (10,0) size 32x32
    3535              RenderBlock {msubsup} at (0,0) size 18x16
     
    6262        RenderBlock {math} at (160,0) size 29x32
    6363          RenderBlock {msubsup} at (1,0) size 27x32
    64             RenderBlock {msubsup} at (0,8) size 9x19
     64            RenderBlock {msubsup} at (0,0) size 9x27
    6565              RenderInline {mi} at (0,0) size 9x16
    66                 RenderText {#text} at (0,3) size 9x16
    67                   text run at (0,3) width 9: "Z"
     66                RenderText {#text} at (0,11) size 9x16
     67                  text run at (0,11) width 9: "Z"
    6868            RenderBlock {msubsup} at (10,0) size 17x32
    6969              RenderBlock {msubsup} at (0,0) size 10x16
     
    8989        RenderBlock {math} at (88,0) size 44x32
    9090          RenderBlock {msubsup} at (1,0) size 42x32
    91             RenderBlock {msubsup} at (0,8) size 9x19
     91            RenderBlock {msubsup} at (0,0) size 9x27
    9292              RenderInline {mi} at (0,0) size 9x16
    93                 RenderText {#text} at (0,3) size 9x16
    94                   text run at (0,3) width 9: "Z"
     93                RenderText {#text} at (0,11) size 9x16
     94                  text run at (0,11) width 9: "Z"
    9595            RenderBlock {msubsup} at (10,0) size 32x32
    9696              RenderBlock {msubsup} at (0,0) size 18x16
     
    132132          RenderBlock {mrow} at (1,0) size 14x32
    133133            RenderBlock {msubsup} at (0,0) size 14x32
    134               RenderBlock {msubsup} at (0,8) size 7x19
     134              RenderBlock {msubsup} at (0,0) size 7x27
    135135                RenderInline {mi} at (0,0) size 7x16
    136                   RenderText {#text} at (0,3) size 7x16
    137                     text run at (0,3) width 7: "x"
     136                  RenderText {#text} at (0,11) size 7x16
     137                    text run at (0,11) width 7: "x"
    138138              RenderBlock {msubsup} at (8,0) size 6x32
    139139                RenderBlock {msubsup} at (0,0) size 6x16
  • trunk/LayoutTests/platform/mac/mathml/presentation/sup-expected.txt

    r61861 r70221  
    99        RenderBlock {math} at (76,0) size 15x19
    1010          RenderBlock {msup} at (1,0) size 13x19
    11             RenderInline {mi} at (0,0) size 7x16
    12               RenderText {#text} at (0,3) size 7x16
    13                 text run at (0,3) width 7: "x"
     11            RenderBlock {msup} at (0,0) size 7x19
     12              RenderInline {mi} at (0,0) size 7x16
     13                RenderText {#text} at (0,3) size 7x16
     14                  text run at (0,3) width 7: "x"
    1415            RenderInline {mn} at (0,0) size 6x12
    1516              RenderText {#text} at (7,0) size 6x12
  • trunk/LayoutTests/platform/mac/mathml/presentation/tables-expected.txt

    r62945 r70221  
    1313                RenderTableCell {mtd} at (0,0) size 20x22 [r=0 c=0 rs=1 cs=1]
    1414                  RenderBlock {msub} at (0,0) size 20x22
    15                     RenderInline {mi} at (0,0) size 8x16
    16                       RenderText {#text} at (0,3) size 8x16
    17                         text run at (0,3) width 8: "a"
     15                    RenderBlock {msub} at (0,0) size 8x19
     16                      RenderInline {mi} at (0,0) size 8x16
     17                        RenderText {#text} at (0,3) size 8x16
     18                          text run at (0,3) width 8: "a"
    1819                    RenderInline {mn} at (0,0) size 12x12
    1920                      RenderText {#text} at (8,10) size 12x12
     
    2122                RenderTableCell {mtd} at (20,0) size 20x22 [r=0 c=1 rs=1 cs=1]
    2223                  RenderBlock {msub} at (0,0) size 20x22
    23                     RenderInline {mi} at (0,0) size 8x16
    24                       RenderText {#text} at (0,3) size 8x16
    25                         text run at (0,3) width 8: "a"
     24                    RenderBlock {msub} at (0,0) size 8x19
     25                      RenderInline {mi} at (0,0) size 8x16
     26                        RenderText {#text} at (0,3) size 8x16
     27                          text run at (0,3) width 8: "a"
    2628                    RenderInline {mn} at (0,0) size 12x12
    2729                      RenderText {#text} at (8,10) size 12x12
     
    2931                RenderTableCell {mtd} at (40,0) size 20x22 [r=0 c=2 rs=1 cs=1]
    3032                  RenderBlock {msub} at (0,0) size 20x22
    31                     RenderInline {mi} at (0,0) size 8x16
    32                       RenderText {#text} at (0,3) size 8x16
    33                         text run at (0,3) width 8: "a"
     33                    RenderBlock {msub} at (0,0) size 8x19
     34                      RenderInline {mi} at (0,0) size 8x16
     35                        RenderText {#text} at (0,3) size 8x16
     36                          text run at (0,3) width 8: "a"
    3437                    RenderInline {mn} at (0,0) size 12x12
    3538                      RenderText {#text} at (8,10) size 12x12
     
    3841                RenderTableCell {mtd} at (0,22) size 20x22 [r=1 c=0 rs=1 cs=1]
    3942                  RenderBlock {msub} at (0,0) size 20x22
    40                     RenderInline {mi} at (0,0) size 8x16
    41                       RenderText {#text} at (0,3) size 8x16
    42                         text run at (0,3) width 8: "b"
     43                    RenderBlock {msub} at (0,0) size 8x19
     44                      RenderInline {mi} at (0,0) size 8x16
     45                        RenderText {#text} at (0,3) size 8x16
     46                          text run at (0,3) width 8: "b"
    4347                    RenderInline {mn} at (0,0) size 12x12
    4448                      RenderText {#text} at (8,10) size 12x12
     
    4650                RenderTableCell {mtd} at (20,22) size 20x22 [r=1 c=1 rs=1 cs=1]
    4751                  RenderBlock {msub} at (0,0) size 20x22
    48                     RenderInline {mi} at (0,0) size 8x16
    49                       RenderText {#text} at (0,3) size 8x16
    50                         text run at (0,3) width 8: "b"
     52                    RenderBlock {msub} at (0,0) size 8x19
     53                      RenderInline {mi} at (0,0) size 8x16
     54                        RenderText {#text} at (0,3) size 8x16
     55                          text run at (0,3) width 8: "b"
    5156                    RenderInline {mn} at (0,0) size 12x12
    5257                      RenderText {#text} at (8,10) size 12x12
     
    5459                RenderTableCell {mtd} at (40,22) size 20x22 [r=1 c=2 rs=1 cs=1]
    5560                  RenderBlock {msub} at (0,0) size 20x22
    56                     RenderInline {mi} at (0,0) size 8x16
    57                       RenderText {#text} at (0,3) size 8x16
    58                         text run at (0,3) width 8: "b"
     61                    RenderBlock {msub} at (0,0) size 8x19
     62                      RenderInline {mi} at (0,0) size 8x16
     63                        RenderText {#text} at (0,3) size 8x16
     64                          text run at (0,3) width 8: "b"
    5965                    RenderInline {mn} at (0,0) size 12x12
    6066                      RenderText {#text} at (8,10) size 12x12
     
    6369                RenderTableCell {mtd} at (0,44) size 20x22 [r=2 c=0 rs=1 cs=1]
    6470                  RenderBlock {msub} at (0,0) size 19x22
    65                     RenderInline {mi} at (0,0) size 7x16
    66                       RenderText {#text} at (0,3) size 7x16
    67                         text run at (0,3) width 7: "c"
     71                    RenderBlock {msub} at (0,0) size 7x19
     72                      RenderInline {mi} at (0,0) size 7x16
     73                        RenderText {#text} at (0,3) size 7x16
     74                          text run at (0,3) width 7: "c"
    6875                    RenderInline {mn} at (0,0) size 12x12
    6976                      RenderText {#text} at (7,10) size 12x12
     
    7178                RenderTableCell {mtd} at (20,44) size 20x22 [r=2 c=1 rs=1 cs=1]
    7279                  RenderBlock {msub} at (0,0) size 19x22
    73                     RenderInline {mi} at (0,0) size 7x16
    74                       RenderText {#text} at (0,3) size 7x16
    75                         text run at (0,3) width 7: "c"
     80                    RenderBlock {msub} at (0,0) size 7x19
     81                      RenderInline {mi} at (0,0) size 7x16
     82                        RenderText {#text} at (0,3) size 7x16
     83                          text run at (0,3) width 7: "c"
    7684                    RenderInline {mn} at (0,0) size 12x12
    7785                      RenderText {#text} at (7,10) size 12x12
     
    7987                RenderTableCell {mtd} at (40,44) size 20x22 [r=2 c=2 rs=1 cs=1]
    8088                  RenderBlock {msub} at (0,0) size 19x22
    81                     RenderInline {mi} at (0,0) size 7x16
    82                       RenderText {#text} at (0,3) size 7x16
    83                         text run at (0,3) width 7: "c"
     89                    RenderBlock {msub} at (0,0) size 7x19
     90                      RenderInline {mi} at (0,0) size 7x16
     91                        RenderText {#text} at (0,3) size 7x16
     92                          text run at (0,3) width 7: "c"
    8493                    RenderInline {mn} at (0,0) size 12x12
    8594                      RenderText {#text} at (7,10) size 12x12
     
    95104                RenderTableCell {mtd} at (0,0) size 20x22 [r=0 c=0 rs=1 cs=1]
    96105                  RenderBlock {msub} at (0,0) size 14x22
    97                     RenderInline {mi} at (0,0) size 8x16
    98                       RenderText {#text} at (0,3) size 8x16
    99                         text run at (0,3) width 8: "a"
     106                    RenderBlock {msub} at (0,0) size 8x19
     107                      RenderInline {mi} at (0,0) size 8x16
     108                        RenderText {#text} at (0,3) size 8x16
     109                          text run at (0,3) width 8: "a"
    100110                    RenderInline {mn} at (0,0) size 6x12
    101111                      RenderText {#text} at (8,10) size 6x12
     
    103113                RenderTableCell {mtd} at (20,0) size 20x22 [r=0 c=1 rs=1 cs=1]
    104114                  RenderBlock {msub} at (0,0) size 20x22
    105                     RenderInline {mi} at (0,0) size 8x16
    106                       RenderText {#text} at (0,3) size 8x16
    107                         text run at (0,3) width 8: "a"
     115                    RenderBlock {msub} at (0,0) size 8x19
     116                      RenderInline {mi} at (0,0) size 8x16
     117                        RenderText {#text} at (0,3) size 8x16
     118                          text run at (0,3) width 8: "a"
    108119                    RenderInline {mn} at (0,0) size 12x12
    109120                      RenderText {#text} at (8,10) size 12x12
     
    111122                RenderTableCell {mtd} at (40,0) size 20x22 [r=0 c=2 rs=1 cs=1]
    112123                  RenderBlock {msub} at (0,0) size 20x22
    113                     RenderInline {mi} at (0,0) size 8x16
    114                       RenderText {#text} at (0,3) size 8x16
    115                         text run at (0,3) width 8: "a"
     124                    RenderBlock {msub} at (0,0) size 8x19
     125                      RenderInline {mi} at (0,0) size 8x16
     126                        RenderText {#text} at (0,3) size 8x16
     127                          text run at (0,3) width 8: "a"
    116128                    RenderInline {mn} at (0,0) size 12x12
    117129                      RenderText {#text} at (8,10) size 12x12
     
    120132                RenderTableCell {mtd} at (0,22) size 20x22 [r=1 c=0 rs=1 cs=1]
    121133                  RenderBlock {msub} at (0,0) size 20x22
    122                     RenderInline {mi} at (0,0) size 8x16
    123                       RenderText {#text} at (0,3) size 8x16
    124                         text run at (0,3) width 8: "b"
     134                    RenderBlock {msub} at (0,0) size 8x19
     135                      RenderInline {mi} at (0,0) size 8x16
     136                        RenderText {#text} at (0,3) size 8x16
     137                          text run at (0,3) width 8: "b"
    125138                    RenderInline {mn} at (0,0) size 12x12
    126139                      RenderText {#text} at (8,10) size 12x12
     
    128141                RenderTableCell {mtd} at (20,22) size 20x22 [r=1 c=1 rs=1 cs=1]
    129142                  RenderBlock {msub} at (0,0) size 14x22
    130                     RenderInline {mi} at (0,0) size 8x16
    131                       RenderText {#text} at (0,3) size 8x16
    132                         text run at (0,3) width 8: "b"
     143                    RenderBlock {msub} at (0,0) size 8x19
     144                      RenderInline {mi} at (0,0) size 8x16
     145                        RenderText {#text} at (0,3) size 8x16
     146                          text run at (0,3) width 8: "b"
    133147                    RenderInline {mn} at (0,0) size 6x12
    134148                      RenderText {#text} at (8,10) size 6x12
     
    136150                RenderTableCell {mtd} at (40,22) size 20x22 [r=1 c=2 rs=1 cs=1]
    137151                  RenderBlock {msub} at (0,0) size 20x22
    138                     RenderInline {mi} at (0,0) size 8x16
    139                       RenderText {#text} at (0,3) size 8x16
    140                         text run at (0,3) width 8: "b"
     152                    RenderBlock {msub} at (0,0) size 8x19
     153                      RenderInline {mi} at (0,0) size 8x16
     154                        RenderText {#text} at (0,3) size 8x16
     155                          text run at (0,3) width 8: "b"
    141156                    RenderInline {mn} at (0,0) size 12x12
    142157                      RenderText {#text} at (8,10) size 12x12
     
    145160                RenderTableCell {mtd} at (0,44) size 20x22 [r=2 c=0 rs=1 cs=1]
    146161                  RenderBlock {msub} at (0,0) size 19x22
    147                     RenderInline {mi} at (0,0) size 7x16
    148                       RenderText {#text} at (0,3) size 7x16
    149                         text run at (0,3) width 7: "c"
     162                    RenderBlock {msub} at (0,0) size 7x19
     163                      RenderInline {mi} at (0,0) size 7x16
     164                        RenderText {#text} at (0,3) size 7x16
     165                          text run at (0,3) width 7: "c"
    150166                    RenderInline {mn} at (0,0) size 12x12
    151167                      RenderText {#text} at (7,10) size 12x12
     
    153169                RenderTableCell {mtd} at (20,44) size 20x22 [r=2 c=1 rs=1 cs=1]
    154170                  RenderBlock {msub} at (0,0) size 19x22
    155                     RenderInline {mi} at (0,0) size 7x16
    156                       RenderText {#text} at (0,3) size 7x16
    157                         text run at (0,3) width 7: "c"
     171                    RenderBlock {msub} at (0,0) size 7x19
     172                      RenderInline {mi} at (0,0) size 7x16
     173                        RenderText {#text} at (0,3) size 7x16
     174                          text run at (0,3) width 7: "c"
    158175                    RenderInline {mn} at (0,0) size 12x12
    159176                      RenderText {#text} at (7,10) size 12x12
     
    161178                RenderTableCell {mtd} at (40,44) size 20x22 [r=2 c=2 rs=1 cs=1]
    162179                  RenderBlock {msub} at (0,0) size 13x22
    163                     RenderInline {mi} at (0,0) size 7x16
    164                       RenderText {#text} at (0,3) size 7x16
    165                         text run at (0,3) width 7: "c"
     180                    RenderBlock {msub} at (0,0) size 7x19
     181                      RenderInline {mi} at (0,0) size 7x16
     182                        RenderText {#text} at (0,3) size 7x16
     183                          text run at (0,3) width 7: "c"
    166184                    RenderInline {mn} at (0,0) size 6x12
    167185                      RenderText {#text} at (7,10) size 6x12
     
    175193                RenderTableCell {mtd} at (0,0) size 20x22 [r=0 c=0 rs=1 cs=1]
    176194                  RenderBlock {msub} at (3,0) size 14x22
    177                     RenderInline {mi} at (0,0) size 8x16
    178                       RenderText {#text} at (0,3) size 8x16
    179                         text run at (0,3) width 8: "a"
     195                    RenderBlock {msub} at (0,0) size 8x19
     196                      RenderInline {mi} at (0,0) size 8x16
     197                        RenderText {#text} at (0,3) size 8x16
     198                          text run at (0,3) width 8: "a"
    180199                    RenderInline {mn} at (0,0) size 6x12
    181200                      RenderText {#text} at (8,10) size 6x12
     
    183202                RenderTableCell {mtd} at (20,0) size 20x22 [r=0 c=1 rs=1 cs=1]
    184203                  RenderBlock {msub} at (0,0) size 20x22
    185                     RenderInline {mi} at (0,0) size 8x16
    186                       RenderText {#text} at (0,3) size 8x16
    187                         text run at (0,3) width 8: "a"
     204                    RenderBlock {msub} at (0,0) size 8x19
     205                      RenderInline {mi} at (0,0) size 8x16
     206                        RenderText {#text} at (0,3) size 8x16
     207                          text run at (0,3) width 8: "a"
    188208                    RenderInline {mn} at (0,0) size 12x12
    189209                      RenderText {#text} at (8,10) size 12x12
     
    191211                RenderTableCell {mtd} at (40,0) size 20x22 [r=0 c=2 rs=1 cs=1]
    192212                  RenderBlock {msub} at (0,0) size 20x22
    193                     RenderInline {mi} at (0,0) size 8x16
    194                       RenderText {#text} at (0,3) size 8x16
    195                         text run at (0,3) width 8: "a"
     213                    RenderBlock {msub} at (0,0) size 8x19
     214                      RenderInline {mi} at (0,0) size 8x16
     215                        RenderText {#text} at (0,3) size 8x16
     216                          text run at (0,3) width 8: "a"
    196217                    RenderInline {mn} at (0,0) size 12x12
    197218                      RenderText {#text} at (8,10) size 12x12
     
    200221                RenderTableCell {mtd} at (0,22) size 20x22 [r=1 c=0 rs=1 cs=1]
    201222                  RenderBlock {msub} at (0,0) size 20x22
    202                     RenderInline {mi} at (0,0) size 8x16
    203                       RenderText {#text} at (0,3) size 8x16
    204                         text run at (0,3) width 8: "b"
     223                    RenderBlock {msub} at (0,0) size 8x19
     224                      RenderInline {mi} at (0,0) size 8x16
     225                        RenderText {#text} at (0,3) size 8x16
     226                          text run at (0,3) width 8: "b"
    205227                    RenderInline {mn} at (0,0) size 12x12
    206228                      RenderText {#text} at (8,10) size 12x12
     
    208230                RenderTableCell {mtd} at (20,22) size 20x22 [r=1 c=1 rs=1 cs=1]
    209231                  RenderBlock {msub} at (3,0) size 14x22
    210                     RenderInline {mi} at (0,0) size 8x16
    211                       RenderText {#text} at (0,3) size 8x16
    212                         text run at (0,3) width 8: "b"
     232                    RenderBlock {msub} at (0,0) size 8x19
     233                      RenderInline {mi} at (0,0) size 8x16
     234                        RenderText {#text} at (0,3) size 8x16
     235                          text run at (0,3) width 8: "b"
    213236                    RenderInline {mn} at (0,0) size 6x12
    214237                      RenderText {#text} at (8,10) size 6x12
     
    216239                RenderTableCell {mtd} at (40,22) size 20x22 [r=1 c=2 rs=1 cs=1]
    217240                  RenderBlock {msub} at (0,0) size 20x22
    218                     RenderInline {mi} at (0,0) size 8x16
    219                       RenderText {#text} at (0,3) size 8x16
    220                         text run at (0,3) width 8: "b"
     241                    RenderBlock {msub} at (0,0) size 8x19
     242                      RenderInline {mi} at (0,0) size 8x16
     243                        RenderText {#text} at (0,3) size 8x16
     244                          text run at (0,3) width 8: "b"
    221245                    RenderInline {mn} at (0,0) size 12x12
    222246                      RenderText {#text} at (8,10) size 12x12
     
    225249                RenderTableCell {mtd} at (0,44) size 20x22 [r=2 c=0 rs=1 cs=1]
    226250                  RenderBlock {msub} at (0,0) size 19x22
    227                     RenderInline {mi} at (0,0) size 7x16
    228                       RenderText {#text} at (0,3) size 7x16
    229                         text run at (0,3) width 7: "c"
     251                    RenderBlock {msub} at (0,0) size 7x19
     252                      RenderInline {mi} at (0,0) size 7x16
     253                        RenderText {#text} at (0,3) size 7x16
     254                          text run at (0,3) width 7: "c"
    230255                    RenderInline {mn} at (0,0) size 12x12
    231256                      RenderText {#text} at (7,10) size 12x12
     
    233258                RenderTableCell {mtd} at (20,44) size 20x22 [r=2 c=1 rs=1 cs=1]
    234259                  RenderBlock {msub} at (0,0) size 19x22
    235                     RenderInline {mi} at (0,0) size 7x16
    236                       RenderText {#text} at (0,3) size 7x16
    237                         text run at (0,3) width 7: "c"
     260                    RenderBlock {msub} at (0,0) size 7x19
     261                      RenderInline {mi} at (0,0) size 7x16
     262                        RenderText {#text} at (0,3) size 7x16
     263                          text run at (0,3) width 7: "c"
    238264                    RenderInline {mn} at (0,0) size 12x12
    239265                      RenderText {#text} at (7,10) size 12x12
     
    241267                RenderTableCell {mtd} at (40,44) size 20x22 [r=2 c=2 rs=1 cs=1]
    242268                  RenderBlock {msub} at (3,0) size 13x22
    243                     RenderInline {mi} at (0,0) size 7x16
    244                       RenderText {#text} at (0,3) size 7x16
    245                         text run at (0,3) width 7: "c"
     269                    RenderBlock {msub} at (0,0) size 7x19
     270                      RenderInline {mi} at (0,0) size 7x16
     271                        RenderText {#text} at (0,3) size 7x16
     272                          text run at (0,3) width 7: "c"
    246273                    RenderInline {mn} at (0,0) size 6x12
    247274                      RenderText {#text} at (7,10) size 6x12
     
    255282                RenderTableCell {mtd} at (0,0) size 20x22 [r=0 c=0 rs=1 cs=1]
    256283                  RenderBlock {msub} at (6,0) size 14x22
    257                     RenderInline {mi} at (0,0) size 8x16
    258                       RenderText {#text} at (0,3) size 8x16
    259                         text run at (0,3) width 8: "a"
     284                    RenderBlock {msub} at (0,0) size 8x19
     285                      RenderInline {mi} at (0,0) size 8x16
     286                        RenderText {#text} at (0,3) size 8x16
     287                          text run at (0,3) width 8: "a"
    260288                    RenderInline {mn} at (0,0) size 6x12
    261289                      RenderText {#text} at (8,10) size 6x12
     
    263291                RenderTableCell {mtd} at (20,0) size 20x22 [r=0 c=1 rs=1 cs=1]
    264292                  RenderBlock {msub} at (0,0) size 20x22
    265                     RenderInline {mi} at (0,0) size 8x16
    266                       RenderText {#text} at (0,3) size 8x16
    267                         text run at (0,3) width 8: "a"
     293                    RenderBlock {msub} at (0,0) size 8x19
     294                      RenderInline {mi} at (0,0) size 8x16
     295                        RenderText {#text} at (0,3) size 8x16
     296                          text run at (0,3) width 8: "a"
    268297                    RenderInline {mn} at (0,0) size 12x12
    269298                      RenderText {#text} at (8,10) size 12x12
     
    271300                RenderTableCell {mtd} at (40,0) size 20x22 [r=0 c=2 rs=1 cs=1]
    272301                  RenderBlock {msub} at (0,0) size 20x22
    273                     RenderInline {mi} at (0,0) size 8x16
    274                       RenderText {#text} at (0,3) size 8x16
    275                         text run at (0,3) width 8: "a"
     302                    RenderBlock {msub} at (0,0) size 8x19
     303                      RenderInline {mi} at (0,0) size 8x16
     304                        RenderText {#text} at (0,3) size 8x16
     305                          text run at (0,3) width 8: "a"
    276306                    RenderInline {mn} at (0,0) size 12x12
    277307                      RenderText {#text} at (8,10) size 12x12
     
    280310                RenderTableCell {mtd} at (0,22) size 20x22 [r=1 c=0 rs=1 cs=1]
    281311                  RenderBlock {msub} at (0,0) size 20x22
    282                     RenderInline {mi} at (0,0) size 8x16
    283                       RenderText {#text} at (0,3) size 8x16
    284                         text run at (0,3) width 8: "b"
     312                    RenderBlock {msub} at (0,0) size 8x19
     313                      RenderInline {mi} at (0,0) size 8x16
     314                        RenderText {#text} at (0,3) size 8x16
     315                          text run at (0,3) width 8: "b"
    285316                    RenderInline {mn} at (0,0) size 12x12
    286317                      RenderText {#text} at (8,10) size 12x12
     
    288319                RenderTableCell {mtd} at (20,22) size 20x22 [r=1 c=1 rs=1 cs=1]
    289320                  RenderBlock {msub} at (6,0) size 14x22
    290                     RenderInline {mi} at (0,0) size 8x16
    291                       RenderText {#text} at (0,3) size 8x16
    292                         text run at (0,3) width 8: "b"
     321                    RenderBlock {msub} at (0,0) size 8x19
     322                      RenderInline {mi} at (0,0) size 8x16
     323                        RenderText {#text} at (0,3) size 8x16
     324                          text run at (0,3) width 8: "b"
    293325                    RenderInline {mn} at (0,0) size 6x12
    294326                      RenderText {#text} at (8,10) size 6x12
     
    296328                RenderTableCell {mtd} at (40,22) size 20x22 [r=1 c=2 rs=1 cs=1]
    297329                  RenderBlock {msub} at (0,0) size 20x22
    298                     RenderInline {mi} at (0,0) size 8x16
    299                       RenderText {#text} at (0,3) size 8x16
    300                         text run at (0,3) width 8: "b"
     330                    RenderBlock {msub} at (0,0) size 8x19
     331                      RenderInline {mi} at (0,0) size 8x16
     332                        RenderText {#text} at (0,3) size 8x16
     333                          text run at (0,3) width 8: "b"
    301334                    RenderInline {mn} at (0,0) size 12x12
    302335                      RenderText {#text} at (8,10) size 12x12
     
    305338                RenderTableCell {mtd} at (0,44) size 20x22 [r=2 c=0 rs=1 cs=1]
    306339                  RenderBlock {msub} at (1,0) size 19x22
    307                     RenderInline {mi} at (0,0) size 7x16
    308                       RenderText {#text} at (0,3) size 7x16
    309                         text run at (0,3) width 7: "c"
     340                    RenderBlock {msub} at (0,0) size 7x19
     341                      RenderInline {mi} at (0,0) size 7x16
     342                        RenderText {#text} at (0,3) size 7x16
     343                          text run at (0,3) width 7: "c"
    310344                    RenderInline {mn} at (0,0) size 12x12
    311345                      RenderText {#text} at (7,10) size 12x12
     
    313347                RenderTableCell {mtd} at (20,44) size 20x22 [r=2 c=1 rs=1 cs=1]
    314348                  RenderBlock {msub} at (1,0) size 19x22
    315                     RenderInline {mi} at (0,0) size 7x16
    316                       RenderText {#text} at (0,3) size 7x16
    317                         text run at (0,3) width 7: "c"
     349                    RenderBlock {msub} at (0,0) size 7x19
     350                      RenderInline {mi} at (0,0) size 7x16
     351                        RenderText {#text} at (0,3) size 7x16
     352                          text run at (0,3) width 7: "c"
    318353                    RenderInline {mn} at (0,0) size 12x12
    319354                      RenderText {#text} at (7,10) size 12x12
     
    321356                RenderTableCell {mtd} at (40,44) size 20x22 [r=2 c=2 rs=1 cs=1]
    322357                  RenderBlock {msub} at (7,0) size 13x22
    323                     RenderInline {mi} at (0,0) size 7x16
    324                       RenderText {#text} at (0,3) size 7x16
    325                         text run at (0,3) width 7: "c"
     358                    RenderBlock {msub} at (0,0) size 7x19
     359                      RenderInline {mi} at (0,0) size 7x16
     360                        RenderText {#text} at (0,3) size 7x16
     361                          text run at (0,3) width 7: "c"
    326362                    RenderInline {mn} at (0,0) size 6x12
    327363                      RenderText {#text} at (7,10) size 6x12
  • trunk/WebCore/ChangeLog

    r70219 r70221  
     12010-10-21  Alex Milowski  <alex@milowski.com>
     2
     3        Reviewed by Kenneth Rohde Christiansen.
     4
     5        Changed the layout algorithm for rows to avoid unnecessary recursion
     6        into child rows.  This solves the long rendering time experienced in
     7        https://bugs.webkit.org/show_bug.cgi?id=43462 as well as reports in
     8        various other bugs.  The change in the algorithm required some
     9        tweaks to other rendering objects to make sure that the baseline
     10        alignment still works.
     11
     12        In addition, an attempt was made to go through the various
     13        rendering objects for MathML and reduce unnecessary calls that
     14        mark the tree in need of layout.
     15
     16        * mathml/RenderMathMLFenced.cpp:
     17        * mathml/RenderMathMLFenced.h:
     18        * mathml/RenderMathMLFraction.cpp:
     19        (WebCore::RenderMathMLFraction::layout):
     20        * mathml/RenderMathMLOperator.cpp:
     21        (WebCore::RenderMathMLOperator::stretchToHeight):
     22        * mathml/RenderMathMLRoot.cpp:
     23        (WebCore::RenderMathMLRoot::layout):
     24        * mathml/RenderMathMLRow.cpp:
     25        (WebCore::RenderMathMLRow::layout):
     26        * mathml/RenderMathMLRow.h:
     27        (WebCore::RenderMathMLRow::stretchToHeight):
     28        * mathml/RenderMathMLSubSup.cpp:
     29        (WebCore::RenderMathMLSubSup::addChild):
     30        (WebCore::RenderMathMLSubSup::stretchToHeight):
     31        (WebCore::RenderMathMLSubSup::nonOperatorHeight):
     32        (WebCore::RenderMathMLSubSup::layout):
     33        (WebCore::RenderMathMLSubSup::baselinePosition):
     34        * mathml/RenderMathMLUnderOver.cpp:
     35        (WebCore::RenderMathMLUnderOver::stretchToHeight):
     36        (WebCore::RenderMathMLUnderOver::layout):
     37        (WebCore::RenderMathMLUnderOver::nonOperatorHeight):
     38        * mathml/mathtags.in:
     39
    1402010-10-21  Evan Martin  <evan@chromium.org>
    241
  • trunk/WebCore/mathml/RenderMathMLFenced.cpp

    r69913 r70221  
    143143}
    144144
    145 void RenderMathMLFenced::layout()
    146 {
    147     RenderMathMLRow::layout();
    148    
    149     int width = 0;
    150     for (RenderObject* current = firstChild(); current; current = current->nextSibling()) {
    151         if (current->isBoxModelObject()) {
    152             RenderBoxModelObject* box = toRenderBoxModelObject(current);
    153             width += box->offsetWidth();
    154         }
    155     }
    156     width++;
    157     style()->setWidth(Length(width, Fixed));
    158 
    159     setNeedsLayoutAndPrefWidthsRecalc();
    160     markContainingBlocksForLayout();
    161     RenderBlock::layout();
    162    
    163     setNeedsLayout(false);
    164 }
    165145}   
    166146
  • trunk/WebCore/mathml/RenderMathMLFenced.h

    r64967 r70221  
    3939    virtual void updateFromElement();
    4040   
    41 protected:
    42     virtual void layout();
    43    
    4441private:
    4542    void makeFences();
  • trunk/WebCore/mathml/RenderMathMLFraction.cpp

    r70143 r70221  
    130130    RenderBlock::layout();
    131131
    132     // The row layout can affect the numerator/denominator width.
    133     // FIXME: This is probably only needed if one of the children
    134     // contains an mrow.
    135     setNeedsLayoutAndPrefWidthsRecalc();
    136     markContainingBlocksForLayout();
    137 
    138     RenderBlock::layout();
    139132}
    140133
  • trunk/WebCore/mathml/RenderMathMLOperator.cpp

    r70072 r70221  
    6868   
    6969    updateBoxModelInfoFromStyle();
    70     setNeedsLayoutAndPrefWidthsRecalc();
    71     markContainingBlocksForLayout();
     70    setNeedsLayout(true);
    7271}
    7372
  • trunk/WebCore/mathml/RenderMathMLRoot.cpp

    r70143 r70221  
    247247        style()->setPaddingTop(Length(rootMarginTop + static_cast<int>(gRootPadding * style()->fontSize()), Fixed));
    248248   
    249     setNeedsLayoutAndPrefWidthsRecalc();
    250     markContainingBlocksForLayout();
     249    setNeedsLayout(true);
     250    setPreferredLogicalWidthsDirty(true, false);
    251251    RenderBlock::layout();
    252252
     
    254254
    255255    // Now that we've potentially changed its position, we need layout the index again.
    256     indexBox->setNeedsLayoutAndPrefWidthsRecalc();
     256    indexBox->setNeedsLayout(true);
    257257    indexBox->layout();
    258258}
  • trunk/WebCore/mathml/RenderMathMLRow.cpp

    r70072 r70221  
    6767    RenderBlock::layout();
    6868   
    69     // Calculate the maximum height of the row without the operators.
    70     int maxHeight = nonOperatorHeight();
    71    
    72     // Notify contained operators they may need to re-layout their stretched operators.
    73     // We need to keep track of the number of children and operators because a row of
    74     // operators needs some special handling.
     69    int maxHeight = 0;
    7570    int childCount = 0;
    7671    int operatorCount = 0;
     72
     73    // Calculate the non-operator max height of the row.
     74    int operatorHeight = 0;
    7775    for (RenderObject* current = firstChild(); current; current = current->nextSibling()) {
    7876        childCount++;
    7977        if (current->isRenderMathMLBlock()) {
    8078            RenderMathMLBlock* block = toRenderMathMLBlock(current);
    81             block->stretchToHeight(maxHeight);
    82             if (block->isRenderMathMLOperator())
    83                 operatorCount++;
    84         }
    85     }
    86    
    87     // Layout the non-operators which have just been stretched.
    88     setNeedsLayoutAndPrefWidthsRecalc();
    89     markContainingBlocksForLayout();
    90     RenderBlock::layout();
    91 
    92     // Make a second pass with the real height of the operators.
    93     int operatorHeight = 0;
    94     for (RenderObject* current = firstChild(); current; current = current->nextSibling()) {
    95         if (current->isRenderMathMLBlock()) {
    96             RenderMathMLBlock* block = toRenderMathMLBlock(current);
    97             if (!block->hasBase() && !block->isRenderMathMLOperator()) {
    98                 // Check to see if this box has a larger height.
    99                 if (block->offsetHeight() > maxHeight)
    100                     maxHeight = block->offsetHeight();
    101             }
    102             if (block->isRenderMathMLOperator())
     79            // Check to see if the non-operator block has a greater height.
     80            if (!block->hasBase() && !block->isRenderMathMLOperator() && block->offsetHeight() > maxHeight)
     81                maxHeight = block->offsetHeight();
     82            if (block->hasBase() && block->nonOperatorHeight() > maxHeight)
     83                maxHeight = block->nonOperatorHeight();
     84            // If the block is an operator, capture the maximum height and increment the count.
     85            if (block->isRenderMathMLOperator()) {
    10386                if (block->offsetHeight() > operatorHeight)
    10487                    operatorHeight = block->offsetHeight();
     88                operatorCount++;
     89            }
    10590        } else if (current->isBoxModelObject()) {
    10691            RenderBoxModelObject* box = toRenderBoxModelObject(current);
     
    116101    }
    117102   
    118     int stretchHeight = maxHeight;
    119    
    120     // Stretch the operators again and re-calculate the row height.
    121     for (RenderObject* current = firstChild(); current; current = current->nextSibling()) {
    122         if (current->isRenderMathMLBlock()) {
    123             RenderMathMLBlock* block = toRenderMathMLBlock(current);
    124             if (block->isRenderMathMLOperator()) {
    125                 RenderMathMLOperator* mathop = toRenderMathMLOperator(block);
    126                 mathop->stretchToHeight(stretchHeight);
    127             } else {
    128                 block->stretchToHeight(stretchHeight);
    129                 RenderBoxModelObject* box = toRenderBoxModelObject(current);
    130                 // Check to see if this box has a larger height
    131                 if (box->offsetHeight() > maxHeight)
    132                     maxHeight = box->offsetHeight();
     103    // Stretch everything to the same height (blocks can ignore the request).
     104    if (maxHeight > 0) {
     105        bool didStretch = false;
     106        for (RenderObject* current = firstChild(); current; current = current->nextSibling()) {
     107            if (current->isRenderMathMLBlock()) {
     108                RenderMathMLBlock* block = toRenderMathMLBlock(current);
     109                block->stretchToHeight(maxHeight);
     110                didStretch = true;
    133111            }
    134         } else if (current->isBoxModelObject()) {
    135             RenderBoxModelObject* box = toRenderBoxModelObject(current);
    136             // Check to see if this box has a larger height
    137             if (box->offsetHeight() > maxHeight)
    138                 maxHeight = box->offsetHeight();
     112        }
     113        if (didStretch) {
     114            setNeedsLayout(true);
     115            setPreferredLogicalWidthsDirty(true, false);
     116            RenderBlock::layout();
    139117        }
    140118    }
    141119   
    142     // Mark outself as needing layout and do the final layout of the row.
    143     setNeedsLayoutAndPrefWidthsRecalc();
    144     markContainingBlocksForLayout();
    145     RenderBlock::layout();
    146120}   
    147121
  • trunk/WebCore/mathml/RenderMathMLRow.h

    r70072 r70221  
    3939    virtual int nonOperatorHeight() const;
    4040    virtual int baselinePosition(bool firstLine, LineDirectionMode, LinePositionMode = PositionOnContainingLine) const;   
     41    virtual void stretchToHeight(int) {}
    4142protected:
    4243    virtual void layout();
  • trunk/WebCore/mathml/RenderMathMLSubSup.cpp

    r70072 r70221  
    9696        wrapperStyle->inheritFrom(style());
    9797        wrapperStyle->setDisplay(INLINE_BLOCK);
    98         wrapperStyle->setVerticalAlign(TOP);
     98        wrapperStyle->setVerticalAlign(BASELINE);
    9999        wrapper->setStyle(wrapperStyle.release());
    100100        RenderMathMLBlock::addChild(wrapper, beforeChild);
    101101        wrapper->addChild(child);
     102       
    102103    }
    103104}
     
    112113        RenderMathMLBlock* block = toRenderMathMLBlock(base->firstChild());
    113114        block->stretchToHeight(static_cast<int>(gSubSupStretch * height));
     115       
     116        // Adjust the script placement after we stretch
    114117        if (height > 0 && m_kind == SubSup && m_scripts) {
    115118            RenderObject* script = m_scripts->firstChild();
     
    125128                    topBox->updateBoxModelInfoFromStyle();
    126129                }
    127                 m_scripts->setNeedsLayoutAndPrefWidthsRecalc();
    128                 m_scripts->markContainingBlocksForLayout();
     130                m_scripts->setNeedsLayout(true);
     131                setNeedsLayout(true);
    129132            }
    130133        }
     134       
    131135    }
    132     updateBoxModelInfoFromStyle();
    133     setNeedsLayoutAndPrefWidthsRecalc();
    134     markContainingBlocksForLayout();
    135136}
    136137
    137138int RenderMathMLSubSup::nonOperatorHeight() const
    138139{
    139     return 0;
     140    if (m_kind == SubSup)
     141       return static_cast<int>(style()->fontSize()*gSubSupStretch);
     142    return static_cast<int>(style()->fontSize());
    140143}
    141144
    142145void RenderMathMLSubSup::layout()
    143146{
    144     if (firstChild()) {
    145         firstChild()->setNeedsLayoutAndPrefWidthsRecalc();
    146         firstChild()->markContainingBlocksForLayout();
    147     }
    148     if (m_scripts) {
    149         m_scripts->setNeedsLayoutAndPrefWidthsRecalc();
    150         m_scripts->markContainingBlocksForLayout();
    151     }
     147    if (firstChild())
     148        firstChild()->setNeedsLayout(true);
     149    if (m_scripts)
     150        m_scripts->setNeedsLayout(true);
     151   
    152152    RenderBlock::layout();
    153153   
     
    166166            if (heightDiff < 0)
    167167                heightDiff = 0;
    168             base->style()->setMarginTop(Length(heightDiff, Fixed));
     168            base->style()->setPaddingTop(Length(heightDiff, Fixed));
    169169        }
    170         setNeedsLayoutAndPrefWidthsRecalc();
    171         markContainingBlocksForLayout();
     170        setNeedsLayout(true);
     171        base->setNeedsLayout(true);
    172172        RenderBlock::layout();
    173173    }   
     
    179179    if (!base)
    180180        return offsetHeight();
    181     base = base->firstChild();
    182181   
    183182    int baseline = offsetHeight();
     
    185184        return baseline;
    186185
    187     RenderBoxModelObject* box = toRenderBoxModelObject(base);
    188 
    189186    switch (m_kind) {
    190187    case SubSup:
    191         if (m_scripts) {
     188        base = base->firstChild();
     189        if (m_scripts && base->isBoxModelObject()) {
     190            RenderBoxModelObject* box = toRenderBoxModelObject(base);
     191           
    192192            int topAdjust = (m_scripts->offsetHeight() - box->offsetHeight()) / 2;
    193193       
     
    198198        }
    199199        break;
    200     case Sup: {
    201         baseline = box->baselinePosition(firstLine, direction, linePositionMode) + 4;
    202         // FIXME: The extra amount of the superscript ascending above the base's box
    203         // isn't taken into account.  This should be calculated in a more reliable
    204         // way.
    205         RenderObject* sup = base->nextSibling();
    206         if (sup && sup->isBoxModelObject()) {
    207             RenderBoxModelObject* box = toRenderBoxModelObject(sup);
    208             // we'll take half of the sup's box height into account in the baseline
    209             baseline += static_cast<int>(box->offsetHeight() * 0.5);
    210         }
    211         baseline++;
     200    case Sup:
     201    case Sub:
     202        RenderBoxModelObject* box = toRenderBoxModelObject(base);
     203        baseline = box->baselinePosition(firstLine, direction, linePositionMode);
    212204        break;
    213205    }
    214     case Sub:
    215         baseline = box->baselinePosition(true, direction) + 4;
    216         break;
    217     }
    218206   
    219207    return baseline;
  • trunk/WebCore/mathml/RenderMathMLUnderOver.cpp

    r70072 r70221  
    119119}
    120120
    121 void  RenderMathMLUnderOver::stretchToHeight(int height)
     121void RenderMathMLUnderOver::stretchToHeight(int height)
    122122{
    123123
     
    139139        RenderMathMLBlock* block = toRenderMathMLBlock(base);
    140140        block->stretchToHeight(height);
    141         updateBoxModelInfoFromStyle();
    142         setNeedsLayoutAndPrefWidthsRecalc();
    143         markContainingBlocksForLayout();
     141        setNeedsLayout(true);
    144142    }
    145143}
     
    242240        break;
    243241    }
    244     setNeedsLayoutAndPrefWidthsRecalc();
     242    setNeedsLayout(true);
    245243    RenderBlock::layout();
    246244}
     
    283281int RenderMathMLUnderOver::nonOperatorHeight() const
    284282{
    285     return 0;
     283    int nonOperators = 0;
     284    for (RenderObject* current = firstChild(); current; current = current->nextSibling()) {
     285        if (current->firstChild()->isRenderMathMLBlock()) {
     286            RenderMathMLBlock* block = toRenderMathMLBlock(current->firstChild());
     287            if (!block->isRenderMathMLOperator())
     288                nonOperators += getOffsetHeight(current);
     289        } else {
     290            nonOperators += getOffsetHeight(current);
     291        }
     292    }
     293    return nonOperators;
    286294}
    287295
  • trunk/WebCore/mathml/mathtags.in

    r63116 r70221  
    1717mo interfaceName=MathMLTextElement
    1818mtext interfaceName=MathMLTextElement
    19 msub interfaceName=MathMLElement
    20 msup interfaceName=MathMLElement
     19msub interfaceName=MathMLInlineContainerElement
     20msup interfaceName=MathMLInlineContainerElement
    2121
    2222#if 0 // Curently only for MathMLNames used by HTMLTreeBuilder.
Note: See TracChangeset for help on using the changeset viewer.