Changeset 29246 in webkit


Ignore:
Timestamp:
Jan 7, 2008 2:56:54 PM (16 years ago)
Author:
Nikolas Zimmermann
Message:

Reviewed by Oliver. Parts reviewed by Eric, David Hyatt & Dan & Alexey.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=15741 (REGRESSION: svg/W3C-SVG-1.1/fonts-elem-03-b.svg shows worse behavior on TOT)

Display SVG Fonts, fill svg/SVGFont.cpp with life by adding all needed code to
measure & render glyphs contained in SVG Fonts, including ligature lookup support.

Fixes dozens of testcases, see ChangeLog for details.

Location:
trunk
Files:
1 added
187 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r29244 r29246  
     12008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
     2
     3        Reviewed by Oliver.
     4
     5        Update layout tests after landing SVG Fonts support.
     6
     7        * platform/mac/svg/W3C-SVG-1.1/animate-elem-03-t-expected.checksum:
     8        * platform/mac/svg/W3C-SVG-1.1/animate-elem-03-t-expected.png:
     9        * platform/mac/svg/W3C-SVG-1.1/animate-elem-03-t-expected.txt:
     10        * platform/mac/svg/W3C-SVG-1.1/animate-elem-24-t-expected.checksum:
     11        * platform/mac/svg/W3C-SVG-1.1/animate-elem-24-t-expected.png:
     12        * platform/mac/svg/W3C-SVG-1.1/animate-elem-24-t-expected.txt:
     13        * platform/mac/svg/W3C-SVG-1.1/animate-elem-36-t-expected.checksum:
     14        * platform/mac/svg/W3C-SVG-1.1/animate-elem-36-t-expected.png:
     15        * platform/mac/svg/W3C-SVG-1.1/animate-elem-36-t-expected.txt:
     16        * platform/mac/svg/W3C-SVG-1.1/animate-elem-39-t-expected.checksum:
     17        * platform/mac/svg/W3C-SVG-1.1/animate-elem-39-t-expected.png:
     18        * platform/mac/svg/W3C-SVG-1.1/animate-elem-40-t-expected.checksum:
     19        * platform/mac/svg/W3C-SVG-1.1/animate-elem-40-t-expected.png:
     20        * platform/mac/svg/W3C-SVG-1.1/animate-elem-40-t-expected.txt:
     21        * platform/mac/svg/W3C-SVG-1.1/fonts-desc-02-t-expected.checksum:
     22        * platform/mac/svg/W3C-SVG-1.1/fonts-desc-02-t-expected.png:
     23        * platform/mac/svg/W3C-SVG-1.1/fonts-desc-02-t-expected.txt:
     24        * platform/mac/svg/W3C-SVG-1.1/fonts-elem-01-t-expected.checksum:
     25        * platform/mac/svg/W3C-SVG-1.1/fonts-elem-01-t-expected.png:
     26        * platform/mac/svg/W3C-SVG-1.1/fonts-elem-01-t-expected.txt:
     27        * platform/mac/svg/W3C-SVG-1.1/fonts-elem-02-t-expected.checksum:
     28        * platform/mac/svg/W3C-SVG-1.1/fonts-elem-02-t-expected.png:
     29        * platform/mac/svg/W3C-SVG-1.1/fonts-elem-02-t-expected.txt:
     30        * platform/mac/svg/W3C-SVG-1.1/fonts-elem-05-t-expected.checksum:
     31        * platform/mac/svg/W3C-SVG-1.1/fonts-elem-05-t-expected.png:
     32        * platform/mac/svg/W3C-SVG-1.1/fonts-elem-05-t-expected.txt:
     33        * platform/mac/svg/W3C-SVG-1.1/fonts-elem-06-t-expected.checksum:
     34        * platform/mac/svg/W3C-SVG-1.1/fonts-elem-06-t-expected.png:
     35        * platform/mac/svg/W3C-SVG-1.1/fonts-elem-06-t-expected.txt:
     36        * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-02-t-expected.checksum:
     37        * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-02-t-expected.png:
     38        * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-02-t-expected.txt:
     39        * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-03-t-expected.checksum:
     40        * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-03-t-expected.png:
     41        * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-03-t-expected.txt:
     42        * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-04-t-expected.checksum:
     43        * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-04-t-expected.png:
     44        * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-04-t-expected.txt:
     45        * platform/mac/svg/W3C-SVG-1.1/fonts-kern-01-t-expected.checksum:
     46        * platform/mac/svg/W3C-SVG-1.1/fonts-kern-01-t-expected.png:
     47        * platform/mac/svg/W3C-SVG-1.1/fonts-kern-01-t-expected.txt:
     48        * platform/mac/svg/W3C-SVG-1.1/masking-mask-01-b-expected.checksum:
     49        * platform/mac/svg/W3C-SVG-1.1/masking-mask-01-b-expected.png:
     50        * platform/mac/svg/W3C-SVG-1.1/masking-mask-01-b-expected.txt:
     51        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.checksum:
     52        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.png:
     53        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.txt:
     54        * platform/mac/svg/W3C-SVG-1.1/render-elems-06-t-expected.checksum:
     55        * platform/mac/svg/W3C-SVG-1.1/render-elems-06-t-expected.png:
     56        * platform/mac/svg/W3C-SVG-1.1/render-elems-06-t-expected.txt:
     57        * platform/mac/svg/W3C-SVG-1.1/render-elems-07-t-expected.checksum:
     58        * platform/mac/svg/W3C-SVG-1.1/render-elems-07-t-expected.png:
     59        * platform/mac/svg/W3C-SVG-1.1/render-elems-07-t-expected.txt:
     60        * platform/mac/svg/W3C-SVG-1.1/render-elems-08-t-expected.checksum:
     61        * platform/mac/svg/W3C-SVG-1.1/render-elems-08-t-expected.png:
     62        * platform/mac/svg/W3C-SVG-1.1/render-elems-08-t-expected.txt:
     63        * platform/mac/svg/W3C-SVG-1.1/render-groups-01-b-expected.checksum:
     64        * platform/mac/svg/W3C-SVG-1.1/render-groups-01-b-expected.png:
     65        * platform/mac/svg/W3C-SVG-1.1/render-groups-01-b-expected.txt:
     66        * platform/mac/svg/W3C-SVG-1.1/render-groups-03-t-expected.checksum:
     67        * platform/mac/svg/W3C-SVG-1.1/render-groups-03-t-expected.png:
     68        * platform/mac/svg/W3C-SVG-1.1/render-groups-03-t-expected.txt:
     69        * platform/mac/svg/W3C-SVG-1.1/text-altglyph-01-b-expected.checksum:
     70        * platform/mac/svg/W3C-SVG-1.1/text-altglyph-01-b-expected.png:
     71        * platform/mac/svg/W3C-SVG-1.1/text-altglyph-01-b-expected.txt:
     72        * platform/mac/svg/W3C-SVG-1.1/text-text-04-t-expected.checksum:
     73        * platform/mac/svg/W3C-SVG-1.1/text-text-04-t-expected.png:
     74        * platform/mac/svg/W3C-SVG-1.1/text-text-04-t-expected.txt:
     75        * platform/mac/svg/W3C-SVG-1.1/text-text-05-t-expected.checksum:
     76        * platform/mac/svg/W3C-SVG-1.1/text-text-05-t-expected.png:
     77        * platform/mac/svg/W3C-SVG-1.1/text-text-05-t-expected.txt:
     78        * platform/mac/svg/W3C-SVG-1.1/text-text-06-t-expected.checksum:
     79        * platform/mac/svg/W3C-SVG-1.1/text-text-06-t-expected.png:
     80        * platform/mac/svg/W3C-SVG-1.1/text-text-06-t-expected.txt:
     81        * platform/mac/svg/batik/masking/maskRegions-expected.checksum:
     82        * platform/mac/svg/batik/masking/maskRegions-expected.png:
     83        * platform/mac/svg/batik/paints/gradientLimit-expected.checksum:
     84        * platform/mac/svg/batik/paints/gradientLimit-expected.png:
     85        * platform/mac/svg/batik/paints/patternRegionA-expected.checksum:
     86        * platform/mac/svg/batik/paints/patternRegionA-expected.png:
     87        * platform/mac/svg/batik/paints/patternRegions-expected.checksum:
     88        * platform/mac/svg/batik/paints/patternRegions-expected.png:
     89        * platform/mac/svg/batik/text/longTextOnPath-expected.checksum:
     90        * platform/mac/svg/batik/text/longTextOnPath-expected.png:
     91        * platform/mac/svg/batik/text/textBiDi-expected.checksum:
     92        * platform/mac/svg/batik/text/textBiDi-expected.png:
     93        * platform/mac/svg/batik/text/textEffect-expected.checksum:
     94        * platform/mac/svg/batik/text/textEffect-expected.png:
     95        * platform/mac/svg/batik/text/textEffect-expected.txt:
     96        * platform/mac/svg/batik/text/textEffect3-expected.checksum:
     97        * platform/mac/svg/batik/text/textEffect3-expected.png:
     98        * platform/mac/svg/batik/text/textEffect3-expected.txt:
     99        * platform/mac/svg/batik/text/textGlyphOrientationHorizontal-expected.checksum:
     100        * platform/mac/svg/batik/text/textGlyphOrientationHorizontal-expected.png:
     101        * platform/mac/svg/batik/text/textLayout2-expected.checksum:
     102        * platform/mac/svg/batik/text/textLayout2-expected.png:
     103        * platform/mac/svg/batik/text/textOnPath3-expected.checksum:
     104        * platform/mac/svg/batik/text/textOnPath3-expected.png:
     105        * platform/mac/svg/batik/text/textPCDATA-expected.checksum:
     106        * platform/mac/svg/batik/text/textPCDATA-expected.png:
     107        * platform/mac/svg/batik/text/textPosition-expected.checksum:
     108        * platform/mac/svg/batik/text/textPosition-expected.png:
     109        * platform/mac/svg/batik/text/textPosition2-expected.checksum:
     110        * platform/mac/svg/batik/text/textPosition2-expected.png:
     111        * platform/mac/svg/batik/text/textPosition2-expected.txt:
     112        * platform/mac/svg/batik/text/textProperties-expected.checksum:
     113        * platform/mac/svg/batik/text/textProperties-expected.png:
     114        * platform/mac/svg/batik/text/textStyles-expected.checksum:
     115        * platform/mac/svg/batik/text/textStyles-expected.png:
     116        * platform/mac/svg/batik/text/xmlSpace-expected.checksum:
     117        * platform/mac/svg/batik/text/xmlSpace-expected.png:
     118        * platform/mac/svg/custom/focus-ring-expected.checksum:
     119        * platform/mac/svg/custom/focus-ring-expected.png:
     120        * platform/mac/svg/custom/font-face-simple-expected.checksum:
     121        * platform/mac/svg/custom/font-face-simple-expected.png:
     122        * platform/mac/svg/custom/font-face-simple-expected.txt:
     123        * platform/mac/svg/custom/linking-a-03-b-preserveAspectRatio-expected.checksum:
     124        * platform/mac/svg/custom/linking-a-03-b-preserveAspectRatio-expected.png:
     125        * platform/mac/svg/custom/linking-a-03-b-transform-expected.checksum:
     126        * platform/mac/svg/custom/linking-a-03-b-transform-expected.png:
     127        * platform/mac/svg/custom/linking-a-03-b-viewBox-expected.checksum:
     128        * platform/mac/svg/custom/linking-a-03-b-viewBox-expected.png:
     129        * platform/mac/svg/custom/linking-a-03-b-viewTarget-expected.checksum:
     130        * platform/mac/svg/custom/linking-a-03-b-viewTarget-expected.png:
     131        * platform/mac/svg/custom/linking-a-03-b-zoomAndPan-expected.checksum:
     132        * platform/mac/svg/custom/linking-a-03-b-zoomAndPan-expected.png:
     133        * platform/mac/svg/custom/pattern-rotate-expected.checksum:
     134        * platform/mac/svg/custom/pattern-rotate-expected.png:
     135        * platform/mac/svg/custom/pointer-events-path-expected.checksum:
     136        * platform/mac/svg/custom/pointer-events-path-expected.png:
     137        * platform/mac/svg/custom/pointer-events-text-expected.checksum:
     138        * platform/mac/svg/custom/pointer-events-text-expected.png:
     139        * platform/mac/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.checksum:
     140        * platform/mac/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.png:
     141        * platform/mac/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.txt:
     142        * platform/mac/svg/custom/text-hit-test-expected.checksum:
     143        * platform/mac/svg/custom/text-hit-test-expected.png:
     144        * platform/mac/svg/text/text-align-01-b-expected.checksum:
     145        * platform/mac/svg/text/text-align-01-b-expected.png:
     146        * platform/mac/svg/text/text-align-02-b-expected.checksum:
     147        * platform/mac/svg/text/text-align-02-b-expected.png:
     148        * platform/mac/svg/text/text-align-05-b-expected.checksum:
     149        * platform/mac/svg/text/text-align-05-b-expected.png:
     150        * platform/mac/svg/text/text-align-06-b-expected.checksum:
     151        * platform/mac/svg/text/text-align-06-b-expected.png:
     152        * platform/mac/svg/text/text-altglyph-01-b-expected.checksum:
     153        * platform/mac/svg/text/text-altglyph-01-b-expected.png:
     154        * platform/mac/svg/text/text-altglyph-01-b-expected.txt:
     155        * platform/mac/svg/text/text-fonts-01-t-expected.checksum:
     156        * platform/mac/svg/text/text-fonts-01-t-expected.png:
     157        * platform/mac/svg/text/text-intro-05-t-expected.checksum:
     158        * platform/mac/svg/text/text-intro-05-t-expected.png:
     159        * platform/mac/svg/text/text-text-04-t-expected.checksum:
     160        * platform/mac/svg/text/text-text-04-t-expected.png:
     161        * platform/mac/svg/text/text-text-04-t-expected.txt:
     162        * platform/mac/svg/text/text-text-05-t-expected.checksum:
     163        * platform/mac/svg/text/text-text-05-t-expected.png:
     164        * platform/mac/svg/text/text-text-05-t-expected.txt:
     165        * platform/mac/svg/text/text-text-06-t-expected.checksum:
     166        * platform/mac/svg/text/text-text-06-t-expected.png:
     167        * platform/mac/svg/text/text-text-06-t-expected.txt:
     168        * platform/mac/svg/text/text-text-07-t-expected.checksum:
     169        * platform/mac/svg/text/text-text-07-t-expected.png:
     170        * platform/mac/svg/text/text-tselect-01-b-expected.checksum:
     171        * platform/mac/svg/text/text-tselect-01-b-expected.png:
     172        * svg/custom/stroke-width-click-expected.txt: Added.
     173        * svg/dom/font-face-elements-expected.txt:
     174
    11752008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
    2176
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-03-t-expected.checksum

    r27850 r29246  
    1 a2568e87af64a12823b702adae4e2ddb
     117ca175f6eca21895e4e68273240172e
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-03-t-expected.txt

    r26599 r29246  
    44  RenderSVGRoot {svg} at (0.50,0.50) size 479x359
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    6     RenderSVGContainer {g} at (20,44) size 286x210
    7       RenderSVGContainer {g} at (20,44) size 286x210
    8         RenderSVGContainer {g} at (20,44) size 286x210
    9           RenderSVGText {text} at (20,80) size 190x46 contains 1 chunk(s)
    10             RenderSVGInlineText {#text} at (0,-36) size 190x46
    11               chunk 1 text run 1 at (20.00,80.00) startOffset 0 endOffset 10 width 190.00: "Sample 123"
    12           RenderSVGText {text} at (20,155) size 286x69 contains 1 chunk(s)
    13             RenderSVGInlineText {#text} at (0,-54) size 286x69
    14               chunk 1 text run 1 at (20.00,155.00) startOffset 0 endOffset 10 width 286.00: "Sample 123"
    15           RenderSVGText {text} at (20,250) size 75x18 contains 1 chunk(s)
    16             RenderSVGInlineText {#text} at (0,-14) size 75x18
    17               chunk 1 text run 1 at (20.00,250.00) startOffset 0 endOffset 10 width 75.00: "Sample 123"
     6    RenderSVGContainer {g} at (20,48) size 322x205
     7      RenderSVGContainer {g} at (20,48) size 322x205
     8        RenderSVGContainer {g} at (20,48) size 322x205
     9          RenderSVGText {text} at (20,80) size 214x40 contains 1 chunk(s)
     10            RenderSVGInlineText {#text} at (0,-32) size 214x40
     11              chunk 1 text run 1 at (20.00,80.00) startOffset 0 endOffset 10 width 214.44: "Sample 123"
     12          RenderSVGText {text} at (20,155) size 322x60 contains 1 chunk(s)
     13            RenderSVGInlineText {#text} at (0,-48) size 322x60
     14              chunk 1 text run 1 at (20.00,155.00) startOffset 0 endOffset 10 width 321.66: "Sample 123"
     15          RenderSVGText {text} at (20,250) size 86x15 contains 1 chunk(s)
     16            RenderSVGInlineText {#text} at (0,-12) size 86x15
     17              chunk 1 text run 1 at (20.00,250.00) startOffset 0 endOffset 10 width 85.78: "Sample 123"
    1818    RenderSVGText {text} at (10,340) size 284x46 contains 1 chunk(s)
    1919      RenderSVGInlineText {#text} at (0,-36) size 284x46
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-24-t-expected.checksum

    r27850 r29246  
    1 7368abf2cfb93d2439cb218a916e3684
     11be4769b77ba5fd969eb7d2c8aa3e4d4
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-24-t-expected.txt

    r26599 r29246  
    44  RenderSVGRoot {svg} at (0.50,0.50) size 479x359
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    6     RenderSVGContainer {g} at (41,35.91) size 283x249.09
     6    RenderSVGContainer {g} at (43,39.38) size 288x237.62
    77      RenderSVGContainer {g} at (70,92) size 149x133
    88        RenderSVGText {text} at (70,110) size 149x23 contains 1 chunk(s)
     
    1515          RenderSVGInlineText {#text} at (0,-18) size 80x23
    1616            chunk 1 text run 1 at (100.00,220.00) startOffset 0 endOffset 10 width 80.00: "Text at 9s"
    17       RenderSVGContainer {g} at (41,35.91) size 283x249.09
    18         RenderSVGText {text} at (0,0) size 77x23 contains 1 chunk(s)
    19           RenderSVGInlineText {#text} at (0,-18) size 77x23
    20             chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 11 width 77.00: "It's alive!"
    21         RenderSVGText {text} at (0,0) size 148x46 contains 1 chunk(s)
    22           RenderSVGInlineText {#text} at (0,-36) size 148x46
    23             chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 11 width 148.00: "It's alive!"
    24         RenderSVGText {text} at (100,270) size 224x69 contains 1 chunk(s)
    25           RenderSVGInlineText {#text} at (0,-54) size 224x69
    26             chunk 1 text run 1 at (100.00,270.00) startOffset 0 endOffset 11 width 224.00: "It's alive!"
    27       RenderSVGContainer {g} at (41,35.91) size 78.18x58.42 [transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,90.00)}]
    28         RenderSVGText {text} at (0,0) size 77x23 contains 1 chunk(s)
    29           RenderSVGInlineText {#text} at (0,-18) size 77x23
    30             chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 11 width 77.00: "It's alive!"
     17      RenderSVGContainer {g} at (43,39.38) size 288x237.62
     18        RenderSVGText {text} at (0,0) size 77x16 contains 1 chunk(s)
     19          RenderSVGInlineText {#text} at (0,-14) size 77x16
     20            chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 11 width 76.84: "It's alive!"
     21        RenderSVGText {text} at (0,0) size 154x33 contains 1 chunk(s)
     22          RenderSVGInlineText {#text} at (0,-28) size 154x33
     23            chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 11 width 153.68: "It's alive!"
     24        RenderSVGText {text} at (100,270) size 231x49 contains 1 chunk(s)
     25          RenderSVGInlineText {#text} at (0,-42) size 231x49
     26            chunk 1 text run 1 at (100.00,270.00) startOffset 0 endOffset 11 width 230.52: "It's alive!"
     27      RenderSVGContainer {g} at (43,39.38) size 74.68x52.36 [transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,90.00)}]
     28        RenderSVGText {text} at (0,0) size 77x16 contains 1 chunk(s)
     29          RenderSVGInlineText {#text} at (0,-14) size 77x16
     30            chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 11 width 76.84: "It's alive!"
    3131          RenderSVGInlineText {#text} at (0,0) size 0x0
    3232          RenderSVGInlineText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-36-t-expected.checksum

    r27850 r29246  
    1 bfc09dd436daeef53406fd4ef3553c7a
     152530c496fc5550095fe5eb428595df8
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-36-t-expected.txt

    r26599 r29246  
    8888          RenderSVGInlineText {#text} at (1,-14) size 25x18
    8989            chunk 1 (middle anchor) text run 1 at (-12.50,60.00) startOffset 0 endOffset 3 width 25.00: "<a>"
    90       RenderSVGContainer {g} at (150,184) size 60x100 [transform={m=((1.00,0.00)(0.00,1.00)) t=(180.00,220.00)}]
     90      RenderSVGContainer {g} at (147,188) size 67x96 [transform={m=((1.00,0.00)(0.00,1.00)) t=(180.00,220.00)}]
    9191        RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    92         RenderSVGText {text} at (-30,0) size 60x46 contains 1 chunk(s)
    93           RenderSVGInlineText {#text} at (0,-36) size 60x46
    94             chunk 1 (middle anchor) text run 1 at (-30.00,0.00) startOffset 0 endOffset 3 width 60.00: "123"
     92        RenderSVGText {text} at (-34,0) size 67x40 contains 1 chunk(s)
     93          RenderSVGInlineText {#text} at (1,-32) size 67x40
     94            chunk 1 (middle anchor) text run 1 at (-33.70,0.00) startOffset 0 endOffset 3 width 67.40: "123"
    9595        RenderSVGText {text} at (-21,60) size 41x18 contains 1 chunk(s)
    9696          RenderSVGInlineText {#text} at (1,-14) size 41x18
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-39-t-expected.checksum

    r27850 r29246  
    1 8a63242a32fbd516b0d7d7124efa3548
     109388fee065b1ed2bea2762f7ed7dcb8
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-40-t-expected.checksum

    r27850 r29246  
    1 a37a5439bb6cfd8f03b1ea28dcedda14
     1eaf4ae3356c6332b40e23303e5a525c8
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-40-t-expected.txt

    r26599 r29246  
    66      RenderSVGInlineText {#text} at (0,-14) size 192x18
    77        chunk 1 (middle anchor) text run 1 at (144.50,25.00) startOffset 0 endOffset 29 width 191.00: "<animate> of x/y/width/height"
    8     RenderSVGContainer {g} at (9,39) size 456x250
     8    RenderSVGContainer {g} at (9,43) size 463x246
    99      RenderSVGContainer {g} at (19,54.50) size 83x99.50 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,90.00)}]
    1010        RenderSVGHiddenContainer {defs} at (0,0) size 0x0
     
    8989          RenderSVGInlineText {#text} at (1,-14) size 85x18
    9090            chunk 1 (middle anchor) text run 1 at (-42.50,60.00) startOffset 0 endOffset 13 width 85.00: "x/y on <rect>"
    91       RenderSVGContainer {g} at (378,39) size 87x115 [transform={m=((1.00,0.00)(0.00,1.00)) t=(420.00,90.00)}]
     91      RenderSVGContainer {g} at (378,43) size 94x111 [transform={m=((1.00,0.00)(0.00,1.00)) t=(420.00,90.00)}]
    9292        RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    93         RenderSVGText {text} at (-15,-15) size 60x47 contains 1 chunk(s)
    94           RenderSVGInlineText {#text} at (0,-36) size 60x47
    95             chunk 1 text run 1 at (-15.00,-15.00) startOffset 0 endOffset 3 width 60.00: "123"
     93        RenderSVGText {text} at (-15,-15) size 67x41 contains 1 chunk(s)
     94          RenderSVGInlineText {#text} at (0,-32) size 67x41
     95            chunk 1 text run 1 at (-15.00,-15.00) startOffset 0 endOffset 3 width 67.40: "123"
    9696        RenderSVGContainer {use} at (401.50,71.50) size 37x37
    9797          RenderSVGContainer {g} at (401.50,71.50) size 37x37
     
    108108          RenderSVGInlineText {#text} at (1,-14) size 85x18
    109109            chunk 1 (middle anchor) text run 1 at (-42.50,60.00) startOffset 0 endOffset 13 width 85.00: "x/y on <rect>"
    110       RenderSVGContainer {g} at (9,159) size 103x115 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,210.00)}]
     110      RenderSVGContainer {g} at (9,163) size 103x111 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,210.00)}]
    111111        RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    112112          RenderSVGContainer {g} at (-18.50,-18.50) size 37x37
     
    123123              RenderSVGContainer {g} at (-18.50,11.50) size 7x7 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-15.00,15.00)}]
    124124                RenderPath {rect} at (-18.50,11.50) size 7x7 [stroke={[type=SOLID] [color=#FFB400]}] [fill={[type=SOLID] [color=#E6E6E6]}] [data="M-3.00,-3.00L3.00,-3.00L3.00,3.00L-3.00,3.00"]
    125         RenderSVGText {text} at (-35,-15) size 60x47 contains 2 chunk(s)
    126           RenderSVGInlineText {#text} at (0,-36) size 60x47
    127             chunk 1 text run 1 at (-35.00,-15.00) startOffset 0 endOffset 1 width 20.00: "1"
    128             chunk 2 text run 1 at (5.00,-15.00) startOffset 1 endOffset 2 width 20.00: "2"
     125        RenderSVGText {text} at (-35,-15) size 63x41 contains 2 chunk(s)
     126          RenderSVGInlineText {#text} at (0,-32) size 63x41
     127            chunk 1 text run 1 at (-35.00,-15.00) startOffset 0 endOffset 1 width 22.32: "1"
     128            chunk 2 text run 1 at (5.00,-15.00) startOffset 1 endOffset 2 width 23.40: "2"
    129129        RenderSVGContainer {use} at (21.50,191.50) size 37x37
    130130          RenderSVGContainer {g} at (21.50,191.50) size 37x37 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-20.00,0.00)}]
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-desc-02-t-expected.checksum

    r27850 r29246  
    1 cc4e45756c39c0cc8aa3ceca2a579ebd
     127a9685e057f909267f4c5dc7613107d
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-desc-02-t-expected.txt

    r26599 r29246  
    33layer at (0,0) size 480x360
    44  RenderSVGRoot {svg} at (0.50,0.50) size 479x359
    5     RenderSVGContainer {g} at (50,22) size 165x186
     5    RenderSVGContainer {g} at (50,26) size 165x182
    66      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    7       RenderSVGContainer {g} at (50,22) size 165x186
    8         RenderSVGText {text} at (50,50) size 13x36 contains 1 chunk(s)
    9           RenderSVGInlineText {#text} at (0,-28) size 13x36
    10             chunk 1 text run 1 at (50.00,50.00) startOffset 0 endOffset 1 width 13.00: "a"
    11         RenderSVGText {text} at (100,50) size 15x36 contains 1 chunk(s)
    12           RenderSVGInlineText {#text} at (0,-28) size 15x36
     7      RenderSVGContainer {g} at (50,26) size 165x182
     8        RenderSVGText {text} at (50,50) size 15x30 contains 1 chunk(s)
     9          RenderSVGInlineText {#text} at (0,-24) size 15x30
     10            chunk 1 text run 1 at (50.00,50.00) startOffset 0 endOffset 1 width 15.00: "a"
     11        RenderSVGText {text} at (100,50) size 15x30 contains 1 chunk(s)
     12          RenderSVGInlineText {#text} at (0,-24) size 15x30
    1313            chunk 1 text run 1 at (100.00,50.00) startOffset 0 endOffset 1 width 15.00: "a"
    14         RenderSVGText {text} at (50,100) size 13x36 contains 1 chunk(s)
    15           RenderSVGInlineText {#text} at (0,-28) size 13x36
    16             chunk 1 text run 1 at (50.00,100.00) startOffset 0 endOffset 1 width 13.00: "a"
    17         RenderSVGText {text} at (100,100) size 15x36 contains 1 chunk(s)
    18           RenderSVGInlineText {#text} at (0,-28) size 15x36
     14        RenderSVGText {text} at (50,100) size 15x30 contains 1 chunk(s)
     15          RenderSVGInlineText {#text} at (0,-24) size 15x30
     16            chunk 1 text run 1 at (50.00,100.00) startOffset 0 endOffset 1 width 15.00: "a"
     17        RenderSVGText {text} at (100,100) size 15x30 contains 1 chunk(s)
     18          RenderSVGInlineText {#text} at (0,-24) size 15x30
    1919            chunk 1 text run 1 at (100.00,100.00) startOffset 0 endOffset 1 width 15.00: "a"
    20         RenderSVGText {text} at (50,150) size 13x36 contains 1 chunk(s)
    21           RenderSVGInlineText {#text} at (0,-28) size 13x36
    22             chunk 1 text run 1 at (50.00,150.00) startOffset 0 endOffset 1 width 13.00: "a"
    23         RenderSVGText {text} at (100,150) size 15x36 contains 1 chunk(s)
    24           RenderSVGInlineText {#text} at (0,-28) size 15x36
     20        RenderSVGText {text} at (50,150) size 15x30 contains 1 chunk(s)
     21          RenderSVGInlineText {#text} at (0,-24) size 15x30
     22            chunk 1 text run 1 at (50.00,150.00) startOffset 0 endOffset 1 width 15.00: "a"
     23        RenderSVGText {text} at (100,150) size 15x30 contains 1 chunk(s)
     24          RenderSVGInlineText {#text} at (0,-24) size 15x30
    2525            chunk 1 text run 1 at (100.00,150.00) startOffset 0 endOffset 1 width 15.00: "a"
    26         RenderSVGText {text} at (150,150) size 13x36 contains 1 chunk(s)
    27           RenderSVGInlineText {#text} at (0,-28) size 13x36
    28             chunk 1 text run 1 at (150.00,150.00) startOffset 0 endOffset 1 width 13.00: "a"
    29         RenderSVGText {text} at (200,150) size 15x36 contains 1 chunk(s)
    30           RenderSVGInlineText {#text} at (0,-28) size 15x36
     26        RenderSVGText {text} at (150,150) size 15x30 contains 1 chunk(s)
     27          RenderSVGInlineText {#text} at (0,-24) size 15x30
     28            chunk 1 text run 1 at (150.00,150.00) startOffset 0 endOffset 1 width 15.00: "a"
     29        RenderSVGText {text} at (200,150) size 15x30 contains 1 chunk(s)
     30          RenderSVGInlineText {#text} at (0,-24) size 15x30
    3131            chunk 1 text run 1 at (200.00,150.00) startOffset 0 endOffset 1 width 15.00: "a"
    32         RenderSVGText {text} at (50,200) size 13x36 contains 1 chunk(s)
    33           RenderSVGInlineText {#text} at (0,-28) size 13x36
    34             chunk 1 text run 1 at (50.00,200.00) startOffset 0 endOffset 1 width 13.00: "a"
     32        RenderSVGText {text} at (50,200) size 15x30 contains 1 chunk(s)
     33          RenderSVGInlineText {#text} at (0,-24) size 15x30
     34            chunk 1 text run 1 at (50.00,200.00) startOffset 0 endOffset 1 width 15.00: "a"
    3535        RenderSVGText {text} at (100,200) size 15x36 contains 1 chunk(s)
    3636          RenderSVGInlineText {#text} at (0,-28) size 15x36
     
    3939          RenderSVGInlineText {#text} at (0,-28) size 13x36
    4040            chunk 1 text run 1 at (150.00,200.00) startOffset 0 endOffset 1 width 13.00: "a"
    41         RenderSVGText {text} at (200,200) size 15x36 contains 1 chunk(s)
    42           RenderSVGInlineText {#text} at (0,-28) size 15x36
     41        RenderSVGText {text} at (200,200) size 15x30 contains 1 chunk(s)
     42          RenderSVGInlineText {#text} at (0,-24) size 15x30
    4343            chunk 1 text run 1 at (200.00,200.00) startOffset 0 endOffset 1 width 15.00: "a"
    4444    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-elem-01-t-expected.checksum

    r27850 r29246  
    1 96deb30944aa7fa024f3525885108db3
     16aa37810d4172b658be78dfd6cffb7be
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-elem-01-t-expected.txt

    r26599 r29246  
    2929        RenderSVGInlineText {#text} at (0,-17) size 74x22
    3030          chunk 1 text run 1 at (65.00,210.00) startOffset 0 endOffset 8 width 74.00: "SVG Font"
    31       RenderSVGContainer {g} at (165,166) size 210x69 [transform={m=((1.00,0.00)(0.00,1.00)) t=(165.00,220.00)}]
     31      RenderSVGContainer {g} at (165,154) size 210x83 [transform={m=((1.00,0.00)(0.00,1.00)) t=(165.00,220.00)}]
    3232        RenderPath {line} at (165,219.50) size 210x1 [stroke={[type=SOLID] [color=#888888]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00L210.00,0.00"]
    33         RenderSVGText {text} at (0,0) size 198x69 contains 1 chunk(s)
    34           RenderSVGInlineText {#text} at (0,-54) size 198x69
    35             chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 5 width 198.00: "Ay\x{D6}@\x{E7}"
     33        RenderSVGText {text} at (0,0) size 210x83 contains 1 chunk(s)
     34          RenderSVGInlineText {#text} at (0,-66) size 210x83
     35            chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 5 width 209.71: "Ay\x{D6}@\x{E7}"
    3636    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
    3737      RenderSVGInlineText {#text} at (0,-36) size 264x46
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-elem-02-t-expected.checksum

    r27850 r29246  
    1 1194b5fa5e06ec5fc1bcb01254289bf2
     141dbb15973cc7b66f714745852c7d563
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-elem-02-t-expected.txt

    r26599 r29246  
    1919          RenderPath {path} at (291.24,92.25) size 48.13x51.86 [transform={m=((1.00,0.00)(0.00,1.00)) t=(4199.00,0.00)}] [fill={[type=SOLID] [color=#FFFFFF]}] [data="M1306.00,412.00C1235.33,412.00,1174.33,422.33,1123.00,443.00C1071.67,463.67,1030.33,494.33,999.00,535.00C963.00,499.67,928.00,473.00,894.00,455.00C860.00,437.00,826.33,428.00,793.00,428.00C719.00,428.00,649.33,458.00,584.00,518.00C518.67,578.00,485.67,644.33,485.00,717.00C485.00,840.33,533.33,953.00,630.00,1055.00C726.67,1157.00,837.00,1208.00,961.00,1208.00C989.00,1208.00,1012.33,1197.67,1031.00,1177.00C1049.67,1156.33,1059.00,1131.33,1059.00,1102.00C1059.00,1062.00,1025.67,1032.33,959.00,1013.00C870.33,987.67,807.67,958.67,771.00,926.00C717.00,878.67,690.00,809.00,690.00,717.00C690.00,697.67,699.00,679.00,717.00,661.00C737.67,641.00,763.33,631.67,794.00,633.00C852.00,635.67,905.67,689.67,955.00,795.00C999.67,887.00,1039.33,933.00,1074.00,933.00C1102.00,933.00,1124.67,922.67,1142.00,902.00C1159.33,881.33,1168.00,856.00,1168.00,826.00C1168.00,812.67,1166.00,792.67,1162.00,766.00C1158.00,739.33,1155.67,719.33,1155.00,706.00C1155.00,662.67,1173.67,635.33,1211.00,624.00C1225.67,619.33,1257.33,617.00,1306.00,617.00C1397.33,617.00,1461.33,639.33,1498.00,684.00C1531.33,724.00,1548.00,790.33,1548.00,883.00C1548.00,1046.33,1482.33,1179.67,1351.00,1283.00C1231.00,1377.67,1087.67,1425.00,921.00,1425.00C727.00,1425.00,575.00,1351.67,465.00,1205.00C365.67,1074.33,316.00,910.00,316.00,712.00C316.00,529.33,374.33,375.33,491.00,250.00C612.33,119.33,768.33,54.00,959.00,54.00C1013.00,54.00,1074.00,64.33,1142.00,85.00L1317.00,150.00C1346.33,160.67,1365.33,166.00,1374.00,166.00C1401.33,166.00,1425.00,155.33,1445.00,134.00C1465.00,112.67,1475.00,87.33,1475.00,58.00C1475.00,-5.33,1404.00,-56.67,1262.00,-96.00C1154.67,-125.33,1054.33,-140.00,961.00,-140.00C867.00,-140.00,771.00,-122.00,673.00,-86.00C575.00,-50.00,490.67,-1.33,420.00,60.00C213.33,238.67,110.00,456.00,110.00,712.00C110.00,968.00,180.67,1182.00,322.00,1354.00C472.00,1538.00,671.67,1630.00,921.00,1630.00C1146.33,1630.00,1339.33,1562.33,1500.00,1427.00C1668.67,1283.67,1753.00,1102.33,1753.00,883.00C1753.00,733.00,1716.33,617.67,1643.00,537.00C1566.33,453.67,1454.00,412.00,1306.00,412.00"]
    2020          RenderPath {path} at (346.96,108.86) size 25.31x44.18 [transform={m=((1.00,0.00)(0.00,1.00)) t=(6106.00,0.00)}] [fill={[type=SOLID] [color=#FFFFFF]}] [data="M770.00,-196.00C770.00,-278.67,750.00,-340.67,710.00,-382.00C670.00,-423.33,609.33,-444.33,528.00,-445.00C471.33,-445.00,417.67,-434.33,367.00,-413.00C303.00,-385.00,271.00,-346.67,271.00,-298.00C271.00,-262.00,293.67,-244.00,339.00,-244.00C363.00,-244.00,390.00,-252.00,420.00,-268.00C450.00,-284.00,482.33,-292.33,517.00,-293.00C549.67,-292.33,574.00,-284.33,590.00,-269.00C606.00,-253.67,614.00,-231.00,614.00,-201.00C614.00,-169.00,601.67,-140.33,577.00,-115.00C552.33,-89.67,514.33,-67.33,463.00,-48.00C357.00,-24.00,272.00,26.67,208.00,104.00C139.33,186.00,105.00,286.00,105.00,404.00C105.00,539.33,150.00,679.00,240.00,823.00C340.00,983.00,452.67,1063.00,578.00,1063.00C643.33,1063.00,716.33,1047.67,797.00,1017.00C899.00,977.67,950.00,929.67,950.00,873.00C950.00,847.67,941.67,825.33,925.00,806.00C908.33,786.67,887.67,776.67,863.00,776.00C843.67,776.00,827.00,781.67,813.00,793.00C799.00,804.33,785.00,816.00,771.00,828.00C731.67,859.33,667.33,875.00,578.00,875.00C510.00,875.00,442.67,814.33,376.00,693.00C315.33,581.67,285.00,485.33,285.00,404.00C285.00,316.00,315.00,246.67,375.00,196.00C431.00,148.67,503.00,125.00,591.00,125.00C631.00,125.00,673.67,135.67,719.00,157.00L835.00,219.00C855.00,229.67,869.33,235.00,878.00,235.00C902.67,235.00,924.00,225.33,942.00,206.00C960.00,186.67,969.00,164.00,969.00,138.00C969.00,69.33,883.67,10.00,713.00,-40.00C732.33,-65.33,746.67,-91.00,756.00,-117.00C765.33,-143.00,770.00,-169.33,770.00,-196.00"]
    21       RenderSVGContainer {g} at (165,86) size 198x69 [transform={m=((1.00,0.00)(0.00,1.00)) t=(165.00,140.00)}]
    22         RenderSVGText {text} at (0,0) size 198x69 contains 1 chunk(s)
    23           RenderSVGInlineText {#text} at (0,-54) size 198x69
    24             chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 5 width 198.00: "Ay\x{D6}@\x{E7}"
     21      RenderSVGContainer {g} at (165,74) size 210x83 [transform={m=((1.00,0.00)(0.00,1.00)) t=(165.00,140.00)}]
     22        RenderSVGText {text} at (0,0) size 210x83 contains 1 chunk(s)
     23          RenderSVGInlineText {#text} at (0,-66) size 210x83
     24            chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 5 width 209.71: "Ay\x{D6}@\x{E7}"
    2525      RenderSVGText {text} at (7,210) size 130x22 contains 1 chunk(s)
    2626        RenderSVGInlineText {#text} at (0,-17) size 130x22
    2727          chunk 1 text run 1 at (7.00,210.00) startOffset 0 endOffset 15 width 130.00: "Glyphs over SVG"
    28       RenderSVGContainer {g} at (165,156) size 198x69 [transform={m=((1.00,0.00)(0.00,1.00)) t=(165.00,210.00)}]
    29         RenderSVGText {text} at (0,0) size 198x69 contains 1 chunk(s)
    30           RenderSVGInlineText {#text} at (0,-54) size 198x69
    31             chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 5 width 198.00: "Ay\x{D6}@\x{E7}"
     28      RenderSVGContainer {g} at (165,144) size 210x83 [transform={m=((1.00,0.00)(0.00,1.00)) t=(165.00,210.00)}]
     29        RenderSVGText {text} at (0,0) size 210x83 contains 1 chunk(s)
     30          RenderSVGInlineText {#text} at (0,-66) size 210x83
     31            chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 5 width 209.71: "Ay\x{D6}@\x{E7}"
    3232      RenderSVGContainer {g} at (168.84,155.62) size 203.44x71.34 [transform={m=((1.00,0.00)(-0.00,-1.00)) t=(165.00,210.00)}]
    3333        RenderSVGContainer {g} at (168.84,155.62) size 203.44x71.34 [transform={m=((0.03,0.00)(0.00,0.03)) t=(0.00,0.00)}]
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-elem-05-t-expected.checksum

    r27850 r29246  
    1 6362ebf46dc586c8c3a3ed969dacf53d
     1f217c4fb41705c18493d0a87a6083c27
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-elem-05-t-expected.txt

    r26599 r29246  
    33layer at (0,0) size 480x360
    44  RenderSVGRoot {svg} at (0.50,0.50) size 479x359
    5     RenderSVGContainer {g} at (20,22) size 405.50x226
     5    RenderSVGContainer {g} at (20,22) size 420x222
    66      RenderSVGText {text} at (111,50) size 258x36 contains 1 chunk(s)
    77        RenderSVGInlineText {#text} at (0,-28) size 258x36
     
    2121          RenderPath {line} at (0,-0.50) size 30x1 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00L30.00,0.00"]
    2222          RenderPath {rect} at (-4,-4) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    23       RenderSVGContainer {g} at (20,80) size 405.50x168 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,120.00)}]
    24         RenderSVGContainer {g} at (20,80) size 379x48
     23      RenderSVGContainer {g} at (20,80) size 420x164 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,120.00)}]
     24        RenderSVGContainer {g} at (20,80) size 420x44
    2525          RenderSVGText {text} at (0,0) size 169x17 contains 1 chunk(s)
    2626            RenderSVGInlineText {#text} at (0,-13) size 169x17
     
    4646                RenderPath {line} at (394.50,80) size 1x40 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00L0.00,-40.00"]
    4747                RenderPath {rect} at (391,116) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    48           RenderSVGText {text} at (240,0) size 60x36 contains 1 chunk(s)
    49             RenderSVGInlineText {#text} at (0,-28) size 60x36
    50               chunk 1 text run 1 at (240.00,0.00) startOffset 0 endOffset 4 width 60.00: "1234"
    51         RenderSVGContainer {g} at (20,140) size 390.50x48 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,60.00)}]
     48          RenderSVGText {text} at (240,0) size 180x30 contains 1 chunk(s)
     49            RenderSVGInlineText {#text} at (0,-30) size 180x30
     50              chunk 1 text run 1 at (240.00,0.00) startOffset 0 endOffset 4 width 180.00: "1234"
     51        RenderSVGContainer {g} at (20,140) size 420x44 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,60.00)}]
    5252          RenderSVGText {text} at (0,0) size 109x17 contains 1 chunk(s)
    5353            RenderSVGInlineText {#text} at (0,-13) size 109x17
     
    8181                RenderPath {line} at (395,179.50) size 15x1 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00L15.00,0.00"]
    8282                RenderPath {rect} at (391,176) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    83           RenderSVGText {text} at (240,0) size 60x36 contains 1 chunk(s)
    84             RenderSVGInlineText {#text} at (0,-28) size 60x36
    85               chunk 1 text run 1 at (240.00,0.00) startOffset 0 endOffset 4 width 60.00: "1234"
    86         RenderSVGContainer {g} at (20,200) size 405.50x48 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,120.00)}]
     83          RenderSVGText {text} at (240,0) size 180x30 contains 1 chunk(s)
     84            RenderSVGInlineText {#text} at (0,-30) size 180x30
     85              chunk 1 text run 1 at (240.00,0.00) startOffset 0 endOffset 4 width 180.00: "1234"
     86        RenderSVGContainer {g} at (20,200) size 420x44 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,120.00)}]
    8787          RenderSVGText {text} at (0,0) size 171x17 contains 1 chunk(s)
    8888            RenderSVGInlineText {#text} at (0,-13) size 171x17
     
    116116                RenderPath {line} at (395,239.50) size 30x1 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00L30.00,0.00"]
    117117                RenderPath {rect} at (391,236) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    118           RenderSVGText {text} at (240,0) size 60x36 contains 1 chunk(s)
    119             RenderSVGInlineText {#text} at (0,-28) size 60x36
    120               chunk 1 text run 1 at (240.00,0.00) startOffset 0 endOffset 4 width 60.00: "1234"
     118          RenderSVGText {text} at (240,0) size 180x30 contains 1 chunk(s)
     119            RenderSVGInlineText {#text} at (0,-30) size 180x30
     120              chunk 1 text run 1 at (240.00,0.00) startOffset 0 endOffset 4 width 180.00: "1234"
    121121    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
    122122      RenderSVGInlineText {#text} at (0,-36) size 264x46
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-elem-06-t-expected.checksum

    r27850 r29246  
    1 6cd76b1cbda23594882868ebab02874f
     1009e8fd7c26d5005a64f05fde4a8cf40
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-elem-06-t-expected.txt

    r26599 r29246  
    33layer at (0,0) size 480x360
    44  RenderSVGRoot {svg} at (0.50,0.50) size 479x359
    5     RenderSVGContainer {g} at (20,22) size 335x186
     5    RenderSVGContainer {g} at (20,22) size 420x182
    66      RenderSVGText {text} at (125,50) size 230x36 contains 1 chunk(s)
    77        RenderSVGInlineText {#text} at (0,-28) size 230x36
     
    1111          RenderPath {line} at (-0.50,-20) size 1x20 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00L0.00,-20.00"]
    1212          RenderPath {rect} at (-4,-4) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    13       RenderSVGContainer {g} at (20,92) size 334x116 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,120.00)}]
    14         RenderSVGContainer {g} at (20,92) size 274x36
     13      RenderSVGContainer {g} at (20,90) size 420x114 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,120.00)}]
     14        RenderSVGContainer {g} at (20,90) size 300x34
    1515          RenderSVGText {text} at (0,0) size 102x17 contains 1 chunk(s)
    1616            RenderSVGInlineText {#text} at (0,-13) size 102x17
     
    2626                RenderPath {line} at (289.50,100) size 1x20 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00L0.00,-20.00"]
    2727                RenderPath {rect} at (286,116) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    28           RenderSVGText {text} at (240,0) size 30x36 contains 1 chunk(s)
    29             RenderSVGInlineText {#text} at (0,-28) size 30x36
    30               chunk 1 text run 1 at (240.00,0.00) startOffset 0 endOffset 2 width 30.00: "12"
    31         RenderSVGContainer {g} at (20,132) size 304x36 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,40.00)}]
     28          RenderSVGText {text} at (240,0) size 60x30 contains 1 chunk(s)
     29            RenderSVGInlineText {#text} at (0,-30) size 60x30
     30              chunk 1 text run 1 at (240.00,0.00) startOffset 0 endOffset 2 width 60.00: "12"
     31        RenderSVGContainer {g} at (20,130) size 360x34 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,40.00)}]
    3232          RenderSVGText {text} at (0,0) size 102x17 contains 1 chunk(s)
    3333            RenderSVGInlineText {#text} at (0,-13) size 102x17
     
    4343                RenderPath {line} at (319.50,140) size 1x20 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00L0.00,-20.00"]
    4444                RenderPath {rect} at (316,156) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    45           RenderSVGText {text} at (240,0) size 30x36 contains 1 chunk(s)
    46             RenderSVGInlineText {#text} at (0,-28) size 30x36
    47               chunk 1 text run 1 at (240.00,0.00) startOffset 0 endOffset 2 width 30.00: "12"
    48         RenderSVGContainer {g} at (20,172) size 334x36 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,80.00)}]
     45          RenderSVGText {text} at (240,0) size 120x30 contains 1 chunk(s)
     46            RenderSVGInlineText {#text} at (0,-30) size 120x30
     47              chunk 1 text run 1 at (240.00,0.00) startOffset 0 endOffset 2 width 120.00: "12"
     48        RenderSVGContainer {g} at (20,170) size 420x34 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,80.00)}]
    4949          RenderSVGText {text} at (0,0) size 171x17 contains 1 chunk(s)
    5050            RenderSVGInlineText {#text} at (0,-13) size 171x17
     
    6060                RenderPath {line} at (349.50,180) size 1x20 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00L0.00,-20.00"]
    6161                RenderPath {rect} at (346,196) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    62           RenderSVGText {text} at (240,0) size 30x36 contains 1 chunk(s)
    63             RenderSVGInlineText {#text} at (0,-28) size 30x36
    64               chunk 1 text run 1 at (240.00,0.00) startOffset 0 endOffset 2 width 30.00: "12"
     62          RenderSVGText {text} at (240,0) size 180x30 contains 1 chunk(s)
     63            RenderSVGInlineText {#text} at (0,-30) size 180x30
     64              chunk 1 text run 1 at (240.00,0.00) startOffset 0 endOffset 2 width 180.00: "12"
    6565    RenderSVGText {text} at (10,340) size 284x46 contains 1 chunk(s)
    6666      RenderSVGInlineText {#text} at (0,-36) size 284x46
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-glyph-02-t-expected.checksum

    r27850 r29246  
    1 d7e249849eef1e22126617a815009bc6
     130a857ce0cd6056576667f910a07152b
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-glyph-02-t-expected.txt

    r26599 r29246  
    33layer at (0,0) size 480x360
    44  RenderSVGRoot {svg} at (0.50,0.50) size 479x359
    5     RenderSVGContainer {g} at (100,28) size 284x192
     5    RenderSVGContainer {g} at (100,36) size 209x195
    66      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    7       RenderSVGContainer {g} at (100,28) size 284x92
    8         RenderSVGText {text} at (100,100) size 284x92 contains 1 chunk(s)
    9           RenderSVGInlineText {#text} at (0,-72) size 284x92
    10             chunk 1 text run 1 at (100.00,100.00) startOffset 0 endOffset 5 width 261.00 RTL: "\x{69A} \x{69A}\x{69A}\x{69A}"
    11       RenderSVGContainer {g} at (100,128) size 192x92
    12         RenderSVGText {text} at (100,200) size 192x92 contains 1 chunk(s)
    13           RenderSVGInlineText {#text} at (0,-72) size 192x92
    14             chunk 1 text run 1 at (100.00,200.00) startOffset 0 endOffset 5 width 191.00 RTL: "\x{62E} \x{62E}\x{62E}\x{62E}"
     7      RenderSVGContainer {g} at (100,36) size 184x80
     8        RenderSVGText {text} at (100,100) size 184x80 contains 1 chunk(s)
     9          RenderSVGInlineText {#text} at (0,-64) size 184x80
     10            chunk 1 text run 1 at (100.00,100.00) startOffset 0 endOffset 5 width 184.00 RTL: "\x{69A} \x{69A}\x{69A}\x{69A}"
     11      RenderSVGContainer {g} at (100,118) size 209x113
     12        RenderSVGText {text} at (100,200) size 209x113 contains 1 chunk(s)
     13          RenderSVGInlineText {#text} at (0,-82) size 209x113
     14            chunk 1 text run 1 at (100.00,200.00) startOffset 0 endOffset 5 width 223.92 RTL: "\x{62E} \x{62E}\x{62E}\x{62E}"
    1515    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
    1616      RenderSVGInlineText {#text} at (0,-36) size 264x46
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-glyph-03-t-expected.checksum

    r27850 r29246  
    1 bc094373726e61e3c458075e481668b0
     190e63486ca5ed0fe3343db1aa14e49c9
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-glyph-03-t-expected.txt

    r26599 r29246  
    33layer at (0,0) size 480x360
    44  RenderSVGRoot {svg} at (0.50,0.50) size 479x359
    5     RenderSVGContainer {g} at (50,4) size 22x269
     5    RenderSVGContainer {g} at (50,10) size 25x260
    66      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    7       RenderSVGContainer {g} at (50,4) size 22x269
    8         RenderSVGText {text} at (50,50) size 22x59 contains 1 chunk(s)
    9           RenderSVGInlineText {#text} at (0,-46) size 22x59
    10             chunk 1 text run 1 at (50.00,50.00) startOffset 0 endOffset 1 width 22.00: "a"
    11         RenderSVGText {text} at (50,120) size 22x59 contains 1 chunk(s)
    12           RenderSVGInlineText {#text} at (0,-46) size 22x59
    13             chunk 1 text run 1 at (50.00,120.00) startOffset 0 endOffset 1 width 22.00: "a"
    14         RenderSVGText {text} at (50,190) size 22x59 contains 1 chunk(s)
    15           RenderSVGInlineText {#text} at (0,-46) size 22x59
    16             chunk 1 text run 1 at (50.00,190.00) startOffset 0 endOffset 1 width 22.00: "a"
    17         RenderSVGText {text} at (50,260) size 22x59 contains 1 chunk(s)
    18           RenderSVGInlineText {#text} at (0,-46) size 22x59
     7      RenderSVGContainer {g} at (50,10) size 25x260
     8        RenderSVGText {text} at (50,50) size 25x50 contains 1 chunk(s)
     9          RenderSVGInlineText {#text} at (0,-40) size 25x50
     10            chunk 1 text run 1 at (50.00,50.00) startOffset 0 endOffset 1 width 25.00: "a"
     11        RenderSVGText {text} at (50,120) size 25x50 contains 1 chunk(s)
     12          RenderSVGInlineText {#text} at (0,-40) size 25x50
     13            chunk 1 text run 1 at (50.00,120.00) startOffset 0 endOffset 1 width 25.00: "a"
     14        RenderSVGText {text} at (50,190) size 25x50 contains 1 chunk(s)
     15          RenderSVGInlineText {#text} at (0,-40) size 25x50
     16            chunk 1 text run 1 at (50.00,190.00) startOffset 0 endOffset 1 width 25.00: "a"
     17        RenderSVGText {text} at (50,260) size 22x50 contains 1 chunk(s)
     18          RenderSVGInlineText {#text} at (0,-40) size 22x50
    1919            chunk 1 text run 1 at (50.00,260.00) startOffset 0 endOffset 1 width 22.00: "a"
    2020    RenderSVGText {text} at (10,340) size 284x46 contains 1 chunk(s)
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-glyph-04-t-expected.checksum

    r27850 r29246  
    1 6cae8e76d57517cd2fc5e1febd8653f8
     1e5bd08b6261d0aafb4c682fbebc1e10b
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-glyph-04-t-expected.txt

    r26599 r29246  
    33layer at (0,0) size 480x360
    44  RenderSVGRoot {svg} at (0.50,0.50) size 479x359
    5     RenderSVGContainer {g} at (100,54) size 48x159
     5    RenderSVGContainer {g} at (100,60) size 64x150
    66      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    7       RenderSVGText {text} at (100,100) size 48x59 contains 1 chunk(s)
    8         RenderSVGInlineText {#text} at (0,-46) size 48x59
    9           chunk 1 text run 1 at (100.00,100.00) startOffset 0 endOffset 3 width 48.00: "ffl"
    10       RenderSVGText {text} at (100,200) size 48x59 contains 1 chunk(s)
    11         RenderSVGInlineText {#text} at (0,-46) size 48x59
    12           chunk 1 text run 1 at (100.00,200.00) startOffset 0 endOffset 3 width 48.00: "ffl"
     7      RenderSVGText {text} at (100,100) size 64x50 contains 1 chunk(s)
     8        RenderSVGInlineText {#text} at (0,-40) size 64x50
     9          chunk 1 text run 1 at (100.00,100.00) startOffset 0 endOffset 3 width 25.00: "ffl"
     10      RenderSVGText {text} at (100,200) size 64x50 contains 1 chunk(s)
     11        RenderSVGInlineText {#text} at (0,-40) size 64x50
     12          chunk 1 text run 1 at (100.00,200.00) startOffset 0 endOffset 3 width 25.00: "ffl"
    1313    RenderSVGText {text} at (10,340) size 284x46 contains 1 chunk(s)
    1414      RenderSVGInlineText {#text} at (0,-36) size 284x46
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-kern-01-t-expected.checksum

    r27850 r29246  
    1 fdd4e324b21f5c52b8a249c4f8c1b600
     143a409c01d743eb03994acfc9e3e5956
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-kern-01-t-expected.txt

    r26599 r29246  
    33layer at (0,0) size 480x360
    44  RenderSVGRoot {svg} at (0.50,0.50) size 482.50x359
    5     RenderSVGContainer {g} at (9.50,12) size 473.50x264
     5    RenderSVGContainer {g} at (9.50,12) size 473.50x263.50
    66      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    77        RenderSVGContainer {g} at (-2,-12) size 14x14
     
    1616        RenderSVGInlineText {#text} at (0,-18) size 68x23
    1717          chunk 1 (middle anchor) text run 1 at (206.00,30.00) startOffset 0 endOffset 7 width 68.00: "<hkern>"
    18       RenderSVGContainer {g} at (9.50,59.50) size 473.50x216.50 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,60.00)}]
    19         RenderSVGContainer {g} at (9.50,59.50) size 221x51.50
     18      RenderSVGContainer {g} at (9.50,59.50) size 473.50x216 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,60.00)}]
     19        RenderSVGContainer {g} at (9.50,59.50) size 221x51
    2020          RenderSVGContainer {g} at (9.50,59.50) size 21x51
    2121            RenderPath {rect} at (9.50,59.50) size 21x51 [stroke={[type=SOLID] [color=#000000]}] [data="M-20.00,0.00L0.00,0.00L0.00,50.00L-20.00,50.00"]
     
    3232            RenderSVGInlineText {#text} at (0,-11) size 73x14
    3333              chunk 1 text run 1 at (5.00,15.00) startOffset 0 endOffset 13 width 73.00: "u1=\"1\" u2=\"2\""
    34           RenderSVGContainer {g} at (31,81) size 53x30 [transform={m=((2.00,0.00)(0.00,2.00)) t=(5.00,45.00)}]
     34          RenderSVGContainer {g} at (31,81) size 53x28 [transform={m=((2.00,0.00)(0.00,2.00)) t=(5.00,45.00)}]
    3535            RenderSVGContainer {use} at (31,81) size 28x28
    3636              RenderSVGContainer {g} at (31,81) size 28x28
     
    4545                  RenderPath {line} at (60,104) size 24x2 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L12.00,0.00"]
    4646                  RenderPath {rect} at (56,101) size 8x8 [fill={[type=SOLID] [color=#FF0000]}] [data="M-2.00,-2.00L2.00,-2.00L2.00,2.00L-2.00,2.00"]
    47             RenderSVGText {text} at (0,0) size 10x13 contains 1 chunk(s)
    48               RenderSVGInlineText {#text} at (0,-10) size 10x13
    49                 chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 2 width 10.00: "12"
    50         RenderSVGContainer {g} at (9.50,114.50) size 221x51.50 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,55.00)}]
     47            RenderSVGText {text} at (0,0) size 8x11 contains 1 chunk(s)
     48              RenderSVGInlineText {#text} at (0,-9) size 8x11
     49                chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 2 width 7.50: "12"
     50        RenderSVGContainer {g} at (9.50,114.50) size 221x51 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,55.00)}]
    5151          RenderSVGContainer {g} at (9.50,114.50) size 21x51
    5252            RenderPath {rect} at (9.50,114.50) size 21x51 [stroke={[type=SOLID] [color=#000000]}] [data="M-20.00,0.00L0.00,0.00L0.00,50.00L-20.00,50.00"]
     
    6363            RenderSVGInlineText {#text} at (0,-14) size 138x18
    6464              chunk 1 text run 1 at (5.00,15.00) startOffset 0 endOffset 19 width 138.00: "g1=\"gl_1\" g2=\"gl_2\""
    65           RenderSVGContainer {g} at (31,136) size 73x30 [transform={m=((2.00,0.00)(0.00,2.00)) t=(5.00,45.00)}]
     65          RenderSVGContainer {g} at (31,136) size 73x28 [transform={m=((2.00,0.00)(0.00,2.00)) t=(5.00,45.00)}]
    6666            RenderSVGContainer {use} at (31,136) size 28x28
    6767              RenderSVGContainer {g} at (31,136) size 28x28
     
    7676                  RenderPath {line} at (80,159) size 24x2 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L12.00,0.00"]
    7777                  RenderPath {rect} at (76,156) size 8x8 [fill={[type=SOLID] [color=#FF0000]}] [data="M-2.00,-2.00L2.00,-2.00L2.00,2.00L-2.00,2.00"]
    78             RenderSVGText {text} at (0,0) size 10x13 contains 1 chunk(s)
    79               RenderSVGInlineText {#text} at (0,-10) size 10x13
    80                 chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 2 width 10.00: "12"
    81         RenderSVGContainer {g} at (9.50,169.50) size 265.50x51.50 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,110.00)}]
     78            RenderSVGText {text} at (0,0) size 8x11 contains 1 chunk(s)
     79              RenderSVGInlineText {#text} at (0,-9) size 8x11
     80                chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 2 width 7.50: "12"
     81        RenderSVGContainer {g} at (9.50,169.50) size 265.50x51 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,110.00)}]
    8282          RenderSVGContainer {g} at (9.50,169.50) size 21x51
    8383            RenderPath {rect} at (9.50,169.50) size 21x51 [stroke={[type=SOLID] [color=#000000]}] [data="M-20.00,0.00L0.00,0.00L0.00,50.00L-20.00,50.00"]
     
    9494            RenderSVGInlineText {#text} at (0,-14) size 240x18
    9595              chunk 1 text run 1 at (5.00,15.00) startOffset 0 endOffset 33 width 240.00: "u1=\"1\" u2=\"2\" g1=\"gl_3\" g2=\"gl_4\""
    96           RenderSVGContainer {g} at (31,191) size 138x30 [transform={m=((2.00,0.00)(0.00,2.00)) t=(5.00,45.00)}]
     96          RenderSVGContainer {g} at (31,191) size 138x28 [transform={m=((2.00,0.00)(0.00,2.00)) t=(5.00,45.00)}]
    9797            RenderSVGContainer {use} at (31,191) size 28x28
    9898              RenderSVGContainer {g} at (31,191) size 28x28
     
    119119                  RenderPath {line} at (145,214) size 24x2 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L12.00,0.00"]
    120120                  RenderPath {rect} at (141,211) size 8x8 [fill={[type=SOLID] [color=#FF0000]}] [data="M-2.00,-2.00L2.00,-2.00L2.00,2.00L-2.00,2.00"]
    121             RenderSVGText {text} at (0,0) size 20x13 contains 1 chunk(s)
    122               RenderSVGInlineText {#text} at (0,-10) size 20x13
    123                 chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 4 width 20.00: "1234"
    124         RenderSVGContainer {g} at (9.50,224.50) size 221x51.50 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,165.00)}]
     121            RenderSVGText {text} at (0,0) size 35x11 contains 1 chunk(s)
     122              RenderSVGInlineText {#text} at (0,-9) size 35x11
     123                chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 4 width 35.00: "1234"
     124        RenderSVGContainer {g} at (9.50,224.50) size 221x51 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,165.00)}]
    125125          RenderSVGContainer {g} at (9.50,224.50) size 21x51
    126126            RenderPath {rect} at (9.50,224.50) size 21x51 [stroke={[type=SOLID] [color=#000000]}] [data="M-20.00,0.00L0.00,0.00L0.00,50.00L-20.00,50.00"]
     
    137137            RenderSVGInlineText {#text} at (0,-14) size 122x18
    138138              chunk 1 text run 1 at (5.00,15.00) startOffset 0 endOffset 17 width 122.00: "u1=\"1,3\" u2=\"2,4\""
    139           RenderSVGContainer {g} at (31,246) size 138x30 [transform={m=((2.00,0.00)(0.00,2.00)) t=(5.00,45.00)}]
     139          RenderSVGContainer {g} at (31,246) size 138x28 [transform={m=((2.00,0.00)(0.00,2.00)) t=(5.00,45.00)}]
    140140            RenderSVGContainer {use} at (31,246) size 28x28
    141141              RenderSVGContainer {g} at (31,246) size 28x28
     
    162162                  RenderPath {line} at (145,269) size 24x2 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L12.00,0.00"]
    163163                  RenderPath {rect} at (141,266) size 8x8 [fill={[type=SOLID] [color=#FF0000]}] [data="M-2.00,-2.00L2.00,-2.00L2.00,2.00L-2.00,2.00"]
    164             RenderSVGText {text} at (0,0) size 20x13 contains 1 chunk(s)
    165               RenderSVGInlineText {#text} at (0,-10) size 20x13
    166                 chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 4 width 20.00: "1234"
    167         RenderSVGContainer {g} at (249.50,59.50) size 227.50x51.50 [transform={m=((1.00,0.00)(0.00,1.00)) t=(240.00,0.00)}]
     164            RenderSVGText {text} at (0,0) size 35x11 contains 1 chunk(s)
     165              RenderSVGInlineText {#text} at (0,-9) size 35x11
     166                chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 4 width 35.00: "1234"
     167        RenderSVGContainer {g} at (249.50,59.50) size 227.50x51 [transform={m=((1.00,0.00)(0.00,1.00)) t=(240.00,0.00)}]
    168168          RenderSVGContainer {g} at (249.50,59.50) size 21x51
    169169            RenderPath {rect} at (249.50,59.50) size 21x51 [stroke={[type=SOLID] [color=#000000]}] [data="M-20.00,0.00L0.00,0.00L0.00,50.00L-20.00,50.00"]
     
    180180            RenderSVGInlineText {#text} at (0,-14) size 202x18
    181181              chunk 1 text run 1 at (5.00,15.00) startOffset 0 endOffset 29 width 202.00: "g1=\"gl_1,gl_3\" g2=\"gl_2,gl_4\""
    182           RenderSVGContainer {g} at (271,81) size 138x30 [transform={m=((2.00,0.00)(0.00,2.00)) t=(5.00,45.00)}]
     182          RenderSVGContainer {g} at (271,81) size 138x28 [transform={m=((2.00,0.00)(0.00,2.00)) t=(5.00,45.00)}]
    183183            RenderSVGContainer {use} at (271,81) size 28x28
    184184              RenderSVGContainer {g} at (271,81) size 28x28
     
    205205                  RenderPath {line} at (385,104) size 24x2 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L12.00,0.00"]
    206206                  RenderPath {rect} at (381,101) size 8x8 [fill={[type=SOLID] [color=#FF0000]}] [data="M-2.00,-2.00L2.00,-2.00L2.00,2.00L-2.00,2.00"]
    207             RenderSVGText {text} at (0,0) size 20x13 contains 1 chunk(s)
    208               RenderSVGInlineText {#text} at (0,-10) size 20x13
    209                 chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 4 width 20.00: "1234"
    210         RenderSVGContainer {g} at (249.50,114.50) size 233.50x51.50 [transform={m=((1.00,0.00)(0.00,1.00)) t=(240.00,55.00)}]
     207            RenderSVGText {text} at (0,0) size 35x11 contains 1 chunk(s)
     208              RenderSVGInlineText {#text} at (0,-9) size 35x11
     209                chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 4 width 35.00: "1234"
     210        RenderSVGContainer {g} at (249.50,114.50) size 233.50x51 [transform={m=((1.00,0.00)(0.00,1.00)) t=(240.00,55.00)}]
    211211          RenderSVGContainer {g} at (249.50,114.50) size 21x51
    212212            RenderPath {rect} at (249.50,114.50) size 21x51 [stroke={[type=SOLID] [color=#000000]}] [data="M-20.00,0.00L0.00,0.00L0.00,50.00L-20.00,50.00"]
     
    223223            RenderSVGInlineText {#text} at (0,-14) size 208x18
    224224              chunk 1 text run 1 at (5.00,15.00) startOffset 0 endOffset 26 width 208.00: "u1=\"U+003?\" u2=\"U+0031-34\""
    225           RenderSVGContainer {g} at (271,136) size 168x30 [transform={m=((2.00,0.00)(0.00,2.00)) t=(5.00,45.00)}]
     225          RenderSVGContainer {g} at (271,136) size 168x28 [transform={m=((2.00,0.00)(0.00,2.00)) t=(5.00,45.00)}]
    226226            RenderSVGContainer {use} at (271,136) size 28x28
    227227              RenderSVGContainer {g} at (271,136) size 28x28
     
    248248                  RenderPath {line} at (415,159) size 24x2 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L12.00,0.00"]
    249249                  RenderPath {rect} at (411,156) size 8x8 [fill={[type=SOLID] [color=#FF0000]}] [data="M-2.00,-2.00L2.00,-2.00L2.00,2.00L-2.00,2.00"]
    250             RenderSVGText {text} at (0,0) size 20x13 contains 1 chunk(s)
    251               RenderSVGInlineText {#text} at (0,-10) size 20x13
    252                 chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 4 width 20.00: "1234"
    253         RenderSVGContainer {g} at (249.50,169.50) size 221x51.50 [transform={m=((1.00,0.00)(0.00,1.00)) t=(240.00,110.00)}]
     250            RenderSVGText {text} at (0,0) size 35x11 contains 1 chunk(s)
     251              RenderSVGInlineText {#text} at (0,-9) size 35x11
     252                chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 4 width 35.00: "1234"
     253        RenderSVGContainer {g} at (249.50,169.50) size 221x51 [transform={m=((1.00,0.00)(0.00,1.00)) t=(240.00,110.00)}]
    254254          RenderSVGContainer {g} at (249.50,169.50) size 21x51
    255255            RenderPath {rect} at (249.50,169.50) size 21x51 [stroke={[type=SOLID] [color=#000000]}] [data="M-20.00,0.00L0.00,0.00L0.00,50.00L-20.00,50.00"]
     
    266266            RenderSVGInlineText {#text} at (0,-14) size 118x18
    267267              chunk 1 text run 1 at (5.00,15.00) startOffset 0 endOffset 16 width 118.00: "u1=\"1\" g2=\"gl_2\""
    268           RenderSVGContainer {g} at (271,191) size 53x30 [transform={m=((2.00,0.00)(0.00,2.00)) t=(5.00,45.00)}]
     268          RenderSVGContainer {g} at (271,191) size 53x28 [transform={m=((2.00,0.00)(0.00,2.00)) t=(5.00,45.00)}]
    269269            RenderSVGContainer {use} at (271,191) size 28x28
    270270              RenderSVGContainer {g} at (271,191) size 28x28
     
    279279                  RenderPath {line} at (300,214) size 24x2 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L12.00,0.00"]
    280280                  RenderPath {rect} at (296,211) size 8x8 [fill={[type=SOLID] [color=#FF0000]}] [data="M-2.00,-2.00L2.00,-2.00L2.00,2.00L-2.00,2.00"]
    281             RenderSVGText {text} at (0,0) size 10x13 contains 1 chunk(s)
    282               RenderSVGInlineText {#text} at (0,-10) size 10x13
    283                 chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 2 width 10.00: "12"
     281            RenderSVGText {text} at (0,0) size 18x11 contains 1 chunk(s)
     282              RenderSVGInlineText {#text} at (0,-9) size 18x11
     283                chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 2 width 17.50: "12"
    284284      RenderSVGContainer {g} at (320,100) size 0x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(320.00,100.00)}]
    285285    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-mask-01-b-expected.checksum

    r27850 r29246  
    1 1d9c09c31bf102422ae51a4c8117d446
     1cec1de853f342b4e964d9bba203582c6
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-mask-01-b-expected.txt

    r26599 r29246  
    77layer at (0,0) size 480x360
    88  RenderSVGRoot {svg} at (0.50,0.50) size 479x359
    9     RenderSVGContainer {g} at (10,7) size 390x301
     9    RenderSVGContainer {g} at (10,7) size 390x306
    1010      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    1111      RenderSVGText {text} at (10,20) size 139x16 contains 1 chunk(s)
     
    4141        RenderPath {rect} at (60,250) size 200x25 [fill={[type=SOLID] [color=#FFFFFF]}] [data="M60.00,250.00L260.00,250.00L260.00,275.00L60.00,275.00"]
    4242        RenderPath {rect} at (60,275) size 200x25 [fill={[type=SOLID] [color=#FFFFFF] [opacity=0.70]}] [data="M60.00,275.00L260.00,275.00L260.00,300.00L60.00,300.00"]
    43       RenderSVGText {text} at (60,280) size 219x128 contains 1 chunk(s)
    44         RenderSVGInlineText {#text} at (0,-100) size 219x128
    45           chunk 1 text run 1 at (60.00,280.00) startOffset 0 endOffset 3 width 219.00: "SVG"
     43      RenderSVGText {text} at (60,280) size 121x110 contains 1 chunk(s)
     44        RenderSVGInlineText {#text} at (0,-77) size 121x110
     45          chunk 1 text run 1 at (60.00,280.00) startOffset 0 endOffset 3 width 121.33: "SVG"
    4646      RenderSVGText {text} at (200,225) size 200x14 contains 1 chunk(s)
    4747        RenderSVGInlineText {#text} at (0,-11) size 200x14
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.checksum

    r27850 r29246  
    1 cd48f838b14366e739413801be13eeaf
     1639c6cbb5b4ddd5b843b5ba520fa897a
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.txt

    r26599 r29246  
    33  RenderView at (0,0) size 480x360
    44layer at (0,0) size 480x360
    5   RenderSVGRoot {svg} at (0.50,0.50) size 479x359
     5  RenderSVGRoot {svg} at (-34.55,0.50) size 539.09x359
    66    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    7     RenderSVGContainer {g} at (17,13.50) size 423x252 [transform={m=((1.00,0.00)(0.00,1.50)) t=(0.00,0.00)}]
     7    RenderSVGContainer {g} at (-34.55,34.50) size 539.09x296.32 [transform={m=((1.00,0.00)(0.00,1.50)) t=(0.00,0.00)}]
    88      RenderSVGHiddenContainer {linearGradient} at (0,0) size 0x0
    99        RenderSVGGradientStop {stop} at (0,0) size 0x0
    1010        RenderSVGGradientStop {stop} at (0,0) size 0x0
    11       RenderSVGText {text} at (20,70) size 420x78 contains 1 chunk(s)
    12         RenderSVGInlineText {#text} at (0,-61) size 420x78
    13           chunk 1 text run 1 at (20.00,70.00) startOffset 0 endOffset 16 width 420.00: "Gradient on fill"
    14       RenderSVGText {text} at (20,160) size 410x63 contains 1 chunk(s)
    15         RenderSVGInlineText {#text} at (0,-49) size 410x63
    16           chunk 1 text run 1 at (20.00,160.00) startOffset 0 endOffset 18 width 410.00: "Gradient on stroke"
     11      RenderSVGText {text} at (20,70) size 446x55 contains 1 chunk(s)
     12        RenderSVGInlineText {#text} at (0,-47) size 446x55
     13          chunk 1 text run 1 at (20.00,70.00) startOffset 0 endOffset 16 width 446.28: "Gradient on fill"
     14      RenderSVGText {text} at (20,160) size 430x44 contains 1 chunk(s)
     15        RenderSVGInlineText {#text} at (0,-38) size 430x44
     16          chunk 1 text run 1 at (20.00,160.00) startOffset 0 endOffset 18 width 429.88: "Gradient on stroke"
    1717    RenderSVGText {text} at (40,145) size 342x36 contains 1 chunk(s)
    1818      RenderSVGInlineText {#text} at (0,-28) size 342x36
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/render-elems-06-t-expected.checksum

    r27850 r29246  
    1 da32abeeb7b5e0a3b553c76919a92eed
     1ca119a30f15a443640ff17528405ab32
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/render-elems-06-t-expected.txt

    r26599 r29246  
    44  RenderSVGRoot {svg} at (0.50,0.50) size 479x359
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    6     RenderSVGContainer {g} at (60,10) size 417x345
     6    RenderSVGContainer {g} at (60,12) size 352x306
    77      RenderSVGText {text} at (180,40) size 96x36 contains 1 chunk(s)
    88        RenderSVGInlineText {#text} at (0,-28) size 96x36
    99          chunk 1 text run 1 at (180.00,40.00) startOffset 0 endOffset 9 width 96.00: "Text fill"
    10       RenderSVGContainer {g} at (60,10) size 417x345
    11         RenderSVGText {text} at (60,280) size 217x345 contains 1 chunk(s)
    12           RenderSVGInlineText {#text} at (0,-270) size 217x345
    13             chunk 1 text run 1 at (60.00,280.00) startOffset 0 endOffset 1 width 217.00: "A"
    14         RenderSVGText {text} at (260,280) size 217x345 contains 1 chunk(s)
    15           RenderSVGInlineText {#text} at (0,-270) size 217x345
    16             chunk 1 text run 1 at (260.00,280.00) startOffset 0 endOffset 1 width 217.00: "A"
     10      RenderSVGContainer {g} at (60,70) size 352x248
     11        RenderSVGText {text} at (60,280) size 152x248 contains 1 chunk(s)
     12          RenderSVGInlineText {#text} at (0,-210) size 152x248
     13            chunk 1 text run 1 at (60.00,280.00) startOffset 0 endOffset 1 width 151.50: "A"
     14        RenderSVGText {text} at (260,280) size 152x248 contains 1 chunk(s)
     15          RenderSVGInlineText {#text} at (0,-210) size 152x248
     16            chunk 1 text run 1 at (260.00,280.00) startOffset 0 endOffset 1 width 151.50: "A"
    1717    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
    1818      RenderSVGInlineText {#text} at (0,-36) size 264x46
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/render-elems-07-t-expected.checksum

    r27850 r29246  
    1 c17ecb04f0a277344764cc1d1289708e
     18d85d5ca966910a5ff28423af6d9d778
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/render-elems-07-t-expected.txt

    r26599 r29246  
    22  RenderView at (0,0) size 480x360
    33layer at (0,0) size 480x360
    4   RenderSVGRoot {svg} at (0.50,-2) size 479x369
     4  RenderSVGRoot {svg} at (0.50,0.50) size 479x359
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    6     RenderSVGContainer {g} at (0.50,-2) size 479x369
     6    RenderSVGContainer {g} at (0.50,0.50) size 479x359
    77      RenderSVGText {text} at (180,40) size 135x36 contains 1 chunk(s)
    88        RenderSVGInlineText {#text} at (0,-28) size 135x36
    99          chunk 1 text run 1 at (180.00,40.00) startOffset 0 endOffset 11 width 135.00: "Text stroke"
    10       RenderSVGContainer {g} at (48,-2) size 424x369
    11         RenderSVGText {text} at (60,280) size 217x345 contains 1 chunk(s)
    12           RenderSVGInlineText {#text} at (0,-270) size 217x345
    13             chunk 1 text run 1 at (60.00,280.00) startOffset 0 endOffset 1 width 217.00: "A"
    14         RenderSVGText {text} at (260,280) size 200x345 contains 1 chunk(s)
    15           RenderSVGInlineText {#text} at (0,-270) size 200x345
    16             chunk 1 text run 1 at (260.00,280.00) startOffset 0 endOffset 1 width 200.00: "B"
     10      RenderSVGContainer {g} at (20,30) size 445x328
     11        RenderSVGText {text} at (60,280) size 152x248 contains 1 chunk(s)
     12          RenderSVGInlineText {#text} at (0,-210) size 152x248
     13            chunk 1 text run 1 at (60.00,280.00) startOffset 0 endOffset 1 width 151.50: "A"
     14        RenderSVGText {text} at (260,280) size 165x248 contains 1 chunk(s)
     15          RenderSVGInlineText {#text} at (0,-210) size 165x248
     16            chunk 1 text run 1 at (260.00,280.00) startOffset 0 endOffset 1 width 165.00: "B"
    1717      RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
    1818        RenderSVGInlineText {#text} at (0,-36) size 264x46
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/render-elems-08-t-expected.checksum

    r27850 r29246  
    1 f2f1381e921cc9f531b9b67f4ddec380
     19f75e3c47ec2fa929a12045551812f9a
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/render-elems-08-t-expected.txt

    r26599 r29246  
    22  RenderView at (0,0) size 480x360
    33layer at (0,0) size 480x360
    4   RenderSVGRoot {svg} at (0.50,-2) size 479x369
     4  RenderSVGRoot {svg} at (0.50,0.50) size 479x359
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    6     RenderSVGContainer {g} at (0.50,-2) size 479x369
     6    RenderSVGContainer {g} at (0.50,0.50) size 479x359
    77      RenderSVGText {text} at (120,40) size 228x36 contains 1 chunk(s)
    88        RenderSVGInlineText {#text} at (0,-28) size 228x36
    99          chunk 1 text run 1 at (120.00,40.00) startOffset 0 endOffset 20 width 228.00: "Text fill and stroke"
    10       RenderSVGContainer {g} at (48,-2) size 424x369
    11         RenderSVGText {text} at (60,280) size 217x345 contains 1 chunk(s)
    12           RenderSVGInlineText {#text} at (0,-270) size 217x345
    13             chunk 1 text run 1 at (60.00,280.00) startOffset 0 endOffset 1 width 217.00: "A"
    14         RenderSVGText {text} at (260,280) size 200x345 contains 1 chunk(s)
    15           RenderSVGInlineText {#text} at (0,-270) size 200x345
    16             chunk 1 text run 1 at (260.00,280.00) startOffset 0 endOffset 1 width 200.00: "B"
     10      RenderSVGContainer {g} at (20,30) size 445x328
     11        RenderSVGText {text} at (60,280) size 152x248 contains 1 chunk(s)
     12          RenderSVGInlineText {#text} at (0,-210) size 152x248
     13            chunk 1 text run 1 at (60.00,280.00) startOffset 0 endOffset 1 width 151.50: "A"
     14        RenderSVGText {text} at (260,280) size 165x248 contains 1 chunk(s)
     15          RenderSVGInlineText {#text} at (0,-210) size 165x248
     16            chunk 1 text run 1 at (260.00,280.00) startOffset 0 endOffset 1 width 165.00: "B"
    1717      RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
    1818        RenderSVGInlineText {#text} at (0,-36) size 264x46
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/render-groups-01-b-expected.checksum

    r27850 r29246  
    1 8fc9ec96e8f524cb1a0035aa8fcde7d2
     14b9682252bb61420b644623b615a3a7d
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/render-groups-01-b-expected.txt

    r26599 r29246  
    22  RenderView at (0,0) size 480x360
    33layer at (0,0) size 480x360
    4   RenderSVGRoot {svg} at (0.50,-32.40) size 487.30x391.90
    5     RenderSVGContainer {g} at (35.10,-32.40) size 452.70x347.40
     4  RenderSVGRoot {svg} at (0.50,0.50) size 479x359
     5    RenderSVGContainer {g} at (35.10,10.80) size 428.40x304.20
    66      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    7       RenderSVGContainer {g} at (35.10,-32.40) size 452.70x347.40 [transform={m=((1.80,0.00)(0.00,1.80)) t=(0.00,0.00)}]
     7      RenderSVGContainer {g} at (35.10,10.80) size 428.40x304.20 [transform={m=((1.80,0.00)(0.00,1.80)) t=(0.00,0.00)}]
    88        RenderPath {rect} at (36,18) size 414x279 [fill={[type=SOLID] [color=#C0C0C0]}] [data="M20.00,10.00L250.00,10.00L250.00,165.00L20.00,165.00"]
    99        RenderPath {line} at (58.50,18) size 27x297 [stroke={[type=SOLID] [color=#FFFFFF] [stroke width=15.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M40.00,10.00L40.00,175.00"]
     
    1616        RenderPath {line} at (436.50,18) size 27x297 [stroke={[type=SOLID] [color=#FFFFFF] [stroke width=15.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M250.00,10.00L250.00,175.00"]
    1717        RenderPath {rect} at (35.10,17.10) size 415.80x280.80 [stroke={[type=SOLID] [color=#000000]}] [data="M20.00,10.00L250.00,10.00L250.00,165.00L20.00,165.00"]
    18         RenderSVGContainer {g} at (54,-32.40) size 433.80x311.40 [opacity=0.50]
    19           RenderSVGText {text} at (30,90) size 241x138 contains 1 chunk(s)
    20             RenderSVGInlineText {#text} at (0,-108) size 241x138
    21               chunk 1 text run 1 at (30.00,90.00) startOffset 0 endOffset 3 width 241.00: "SVG"
     18        RenderSVGContainer {g} at (54,10.80) size 381.60x268.20 [opacity=0.50]
     19          RenderSVGText {text} at (30,90) size 132x120 contains 1 chunk(s)
     20            RenderSVGInlineText {#text} at (0,-84) size 132x120
     21              chunk 1 text run 1 at (30.00,90.00) startOffset 0 endOffset 3 width 132.36: "SVG"
    2222          RenderPath {rect} at (126,99) size 234x126 [fill={[type=SOLID] [color=#820032]}] [data="M70.00,55.00L200.00,55.00L200.00,125.00L70.00,125.00"]
    2323          RenderImage {image} at (0,0) size 80x80
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/render-groups-03-t-expected.checksum

    r27850 r29246  
    1 4d4549fa0fc0af93a911e70734642085
     184a10d5f3d00c22c6f2c71072a9e4504
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/render-groups-03-t-expected.txt

    r26599 r29246  
    22  RenderView at (0,0) size 480x360
    33layer at (0,0) size 480x360
    4   RenderSVGRoot {svg} at (0.50,-32.40) size 487.30x391.90
    5     RenderSVGContainer {g} at (35.10,-32.40) size 452.70x347.40
     4  RenderSVGRoot {svg} at (0.50,0.50) size 479x359
     5    RenderSVGContainer {g} at (35.10,10.80) size 428.40x304.20
    66      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    7       RenderSVGContainer {g} at (35.10,-32.40) size 452.70x347.40 [transform={m=((1.80,0.00)(0.00,1.80)) t=(0.00,0.00)}]
     7      RenderSVGContainer {g} at (35.10,10.80) size 428.40x304.20 [transform={m=((1.80,0.00)(0.00,1.80)) t=(0.00,0.00)}]
    88        RenderPath {rect} at (36,18) size 414x279 [fill={[type=SOLID] [color=#C0C0C0]}] [data="M20.00,10.00L250.00,10.00L250.00,165.00L20.00,165.00"]
    99        RenderPath {line} at (58.50,18) size 27x297 [stroke={[type=SOLID] [color=#FFFFFF] [stroke width=15.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M40.00,10.00L40.00,175.00"]
     
    1616        RenderPath {line} at (436.50,18) size 27x297 [stroke={[type=SOLID] [color=#FFFFFF] [stroke width=15.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M250.00,10.00L250.00,175.00"]
    1717        RenderPath {rect} at (35.10,17.10) size 415.80x280.80 [stroke={[type=SOLID] [color=#000000]}] [data="M20.00,10.00L250.00,10.00L250.00,165.00L20.00,165.00"]
    18         RenderSVGText {text} at (30,90) size 241x138 contains 1 chunk(s)
    19           RenderSVGInlineText {#text} at (0,-108) size 241x138
    20             chunk 1 text run 1 at (30.00,90.00) startOffset 0 endOffset 3 width 241.00: "SVG"
     18        RenderSVGText {text} at (30,90) size 132x120 contains 1 chunk(s)
     19          RenderSVGInlineText {#text} at (0,-84) size 132x120
     20            chunk 1 text run 1 at (30.00,90.00) startOffset 0 endOffset 3 width 132.36: "SVG"
    2121        RenderPath {rect} at (126,99) size 234x126 [fill={[type=SOLID] [color=#820032]}] [data="M70.00,55.00L200.00,55.00L200.00,125.00L70.00,125.00"]
    2222        RenderImage {image} at (0,0) size 80x80
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/text-altglyph-01-b-expected.checksum

    r27850 r29246  
    1 1db40f48d4db0f00ec02ea1b758afc8b
     1ac7b8049dacaab09bdc18f556b357483
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/text-altglyph-01-b-expected.txt

    r26599 r29246  
    33layer at (0,0) size 480x360
    44  RenderSVGRoot {svg} at (0.50,0.50) size 479x359
    5     RenderSVGContainer {g} at (5,14) size 465x276
     5    RenderSVGContainer {g} at (5,14) size 463.67x271.67
    66      RenderSVGText {text} at (5,50) size 403x44 contains 1 chunk(s)
    77        RenderSVGInlineText {#text} at (0,-36) size 403x44
     
    1111          chunk 1 text run 1 at (5.00,90.00) startOffset 0 endOffset 32 width 463.00: "and many-to-many chars to glyphs"
    1212      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    13       RenderSVGContainer {g} at (45,185) size 425x105
     13      RenderSVGContainer {g} at (49.33,189.33) size 419.33x96.33
    1414        RenderSVGText {text}
    15         RenderSVGText {text} at (50,270) size 43x69 contains 1 chunk(s)
    16           RenderSVGInlineText {#text} at (0,-54) size 43x69
    17             chunk 1 text run 1 at (50.00,270.00) startOffset 0 endOffset 1 width 43.00: "D"
    18         RenderSVGText {text} at (280,270) size 185x69 contains 1 chunk(s)
    19           RenderSVGInlineText {#text} at (0,-54) size 185x69
    20             chunk 1 text run 1 at (280.00,270.00) startOffset 0 endOffset 5 width 185.00: "SASSY"
     15        RenderSVGText {text} at (50,270) size 38x75 contains 1 chunk(s)
     16          RenderSVGInlineText {#text} at (0,-60) size 38x75
     17            chunk 1 text run 1 at (50.00,270.00) startOffset 0 endOffset 1 width 37.50: "D"
     18        RenderSVGText {text} at (280,270) size 188x75 contains 1 chunk(s)
     19          RenderSVGInlineText {#text} at (0,-60) size 188x75
     20            chunk 1 text run 1 at (280.00,270.00) startOffset 0 endOffset 5 width 157.50: "SASSY"
    2121    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
    2222      RenderSVGInlineText {#text} at (0,-36) size 264x46
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/text-text-04-t-expected.checksum

    r27850 r29246  
    1 d16183e8b01f7a955c89e2ba81ea6496
     1a2ca2ebdac665a9396161b2453a312cc
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/text-text-04-t-expected.txt

    r26599 r29246  
    44  RenderSVGRoot {svg} at (0.50,0.50) size 479x359
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    6     RenderSVGContainer {g} at (36,22) size 418x288
    7       RenderSVGContainer {g} at (36,22) size 143x23 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,40.00)}]
     6    RenderSVGContainer {g} at (36,20) size 418x290
     7      RenderSVGContainer {g} at (36,20) size 154x25 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,40.00)}]
    88        RenderSVGText {text} at (-94,0) size 65x18 contains 1 chunk(s)
    99          RenderSVGInlineText {#text} at (0,-14) size 65x18
    1010            chunk 1 (end anchor) text run 1 at (-94.00,0.00) startOffset 0 endOffset 9 width 64.00: "Reference"
    11         RenderSVGContainer {g} at (126,22) size 53x23
     11        RenderSVGContainer {g} at (126,20) size 64x25
    1212          RenderSVGContainer {use} at (126,36) size 8x8
    1313            RenderSVGContainer {g} at (126,36) size 8x8
     
    2222            RenderSVGContainer {g} at (171,36) size 8x8 [transform={m=((1.00,0.00)(0.00,1.00)) t=(45.00,0.00)}]
    2323              RenderPath {rect} at (171,36) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    24           RenderSVGText {text} at (0,0) size 40x23 contains 1 chunk(s)
    25             RenderSVGInlineText {#text} at (0,-18) size 40x23
    26               chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 4 width 40.00: "1234"
     24          RenderSVGText {text} at (0,0) size 60x25 contains 1 chunk(s)
     25            RenderSVGInlineText {#text} at (0,-20) size 60x25
     26              chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 4 width 60.00: "1234"
    2727      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    2828        RenderPath {rect} at (-4,-4) size 8x8 [fill={[type=SOLID] [color=#000000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    29       RenderSVGContainer {g} at (73,62) size 147x23 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,80.00)}]
     29      RenderSVGContainer {g} at (73,60) size 152x25 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,80.00)}]
    3030        RenderSVGText {text} at (-57,0) size 28x18 contains 1 chunk(s)
    3131          RenderSVGInlineText {#text} at (0,-14) size 28x18
     
    4646          RenderSVGContainer {g} at (206,76) size 8x8 [transform={m=((1.00,0.00)(0.00,1.00)) t=(80.00,0.00)}]
    4747            RenderPath {rect} at (206,76) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    48         RenderSVGText {text} at (20,0) size 70x23 contains 4 chunk(s)
    49           RenderSVGInlineText {#text} at (0,-18) size 70x23
    50             chunk 1 text run 1 at (20.00,0.00) startOffset 0 endOffset 1 width 10.00: "1"
    51             chunk 2 text run 1 at (40.00,0.00) startOffset 1 endOffset 2 width 10.00: "2"
    52             chunk 3 text run 1 at (60.00,0.00) startOffset 2 endOffset 3 width 10.00: "3"
    53             chunk 4 text run 1 at (80.00,0.00) startOffset 3 endOffset 4 width 10.00: "4"
    54       RenderSVGContainer {g} at (56,102) size 178x23 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,120.00)}]
     48        RenderSVGText {text} at (20,0) size 75x25 contains 4 chunk(s)
     49          RenderSVGInlineText {#text} at (0,-20) size 75x25
     50            chunk 1 text run 1 at (20.00,0.00) startOffset 0 endOffset 1 width 15.00: "1"
     51            chunk 2 text run 1 at (40.00,0.00) startOffset 1 endOffset 2 width 15.00: "2"
     52            chunk 3 text run 1 at (60.00,0.00) startOffset 2 endOffset 3 width 15.00: "3"
     53            chunk 4 text run 1 at (80.00,0.00) startOffset 3 endOffset 4 width 15.00: "4"
     54      RenderSVGContainer {g} at (56,100) size 178x25 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,120.00)}]
    5555        RenderSVGText {text} at (-74,0) size 45x18 contains 1 chunk(s)
    5656          RenderSVGInlineText {#text} at (0,-14) size 45x18
     
    7474          RenderSVGContainer {g} at (226,116) size 8x8 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,0.00)}]
    7575            RenderPath {rect} at (226,116) size 8x8 [fill={[type=SOLID] [color=#FF0000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    76         RenderSVGText {text} at (20,0) size 70x23 contains 4 chunk(s)
    77           RenderSVGInlineText {#text} at (0,-18) size 70x23
    78             chunk 1 text run 1 at (20.00,0.00) startOffset 0 endOffset 1 width 10.00: "1"
    79             chunk 2 text run 1 at (40.00,0.00) startOffset 1 endOffset 2 width 10.00: "2"
    80             chunk 3 text run 1 at (60.00,0.00) startOffset 2 endOffset 3 width 10.00: "3"
    81             chunk 4 text run 1 at (80.00,0.00) startOffset 3 endOffset 4 width 10.00: "4"
    82       RenderSVGContainer {g} at (52,142) size 158x23 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,160.00)}]
     76        RenderSVGText {text} at (20,0) size 75x25 contains 4 chunk(s)
     77          RenderSVGInlineText {#text} at (0,-20) size 75x25
     78            chunk 1 text run 1 at (20.00,0.00) startOffset 0 endOffset 1 width 15.00: "1"
     79            chunk 2 text run 1 at (40.00,0.00) startOffset 1 endOffset 2 width 15.00: "2"
     80            chunk 3 text run 1 at (60.00,0.00) startOffset 2 endOffset 3 width 15.00: "3"
     81            chunk 4 text run 1 at (80.00,0.00) startOffset 3 endOffset 4 width 15.00: "4"
     82      RenderSVGContainer {g} at (52,140) size 168x25 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,160.00)}]
    8383        RenderSVGText {text} at (-78,0) size 49x18 contains 1 chunk(s)
    8484          RenderSVGInlineText {#text} at (0,-14) size 49x18
     
    9999          RenderSVGContainer {g} at (201,156) size 8x8 [transform={m=((1.00,0.00)(0.00,1.00)) t=(75.00,0.00)}]
    100100            RenderPath {rect} at (201,156) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    101         RenderSVGText {text} at (20,0) size 60x23 contains 3 chunk(s)
    102           RenderSVGInlineText {#text} at (0,-18) size 60x23
    103             chunk 1 text run 1 at (20.00,0.00) startOffset 0 endOffset 1 width 10.00: "1"
    104             chunk 2 text run 1 at (40.00,0.00) startOffset 1 endOffset 2 width 10.00: "2"
    105             chunk 3 text run 1 at (60.00,0.00) startOffset 2 endOffset 4 width 20.00: "34"
    106       RenderSVGContainer {g} at (73,172) size 106x43 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,200.00)}]
     101        RenderSVGText {text} at (20,0) size 70x25 contains 3 chunk(s)
     102          RenderSVGInlineText {#text} at (0,-20) size 70x25
     103            chunk 1 text run 1 at (20.00,0.00) startOffset 0 endOffset 1 width 15.00: "1"
     104            chunk 2 text run 1 at (40.00,0.00) startOffset 1 endOffset 2 width 15.00: "2"
     105            chunk 3 text run 1 at (60.00,0.00) startOffset 2 endOffset 4 width 30.00: "34"
     106      RenderSVGContainer {g} at (73,170) size 117x45 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,200.00)}]
    107107        RenderSVGText {text} at (-57,0) size 28x18 contains 1 chunk(s)
    108108          RenderSVGInlineText {#text} at (0,-14) size 28x18
     
    120120          RenderSVGContainer {g} at (171,206) size 8x8 [transform={m=((1.00,0.00)(0.00,1.00)) t=(45.00,10.00)}]
    121121            RenderPath {rect} at (171,206) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    122         RenderSVGText {text} at (0,-10) size 40x43 contains 1 chunk(s)
    123           RenderSVGInlineText {#text} at (0,-18) size 40x43
    124             chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 40.00: "1234"
    125       RenderSVGContainer {g} at (56,222) size 123x43 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,250.00)}]
     122        RenderSVGText {text} at (0,-10) size 60x45 contains 1 chunk(s)
     123          RenderSVGInlineText {#text} at (0,-20) size 60x45
     124            chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 60.00: "1234"
     125      RenderSVGContainer {g} at (56,220) size 134x45 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,250.00)}]
    126126        RenderSVGText {text} at (-74,0) size 45x18 contains 1 chunk(s)
    127127          RenderSVGInlineText {#text} at (0,-14) size 45x18
     
    139139          RenderSVGContainer {g} at (171,256) size 8x8 [transform={m=((1.00,0.00)(0.00,1.00)) t=(45.00,10.00)}]
    140140            RenderPath {rect} at (171,256) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    141         RenderSVGText {text} at (0,-10) size 40x43 contains 1 chunk(s)
    142           RenderSVGInlineText {#text} at (0,-18) size 40x43
    143             chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 40.00: "1234"
    144       RenderSVGContainer {g} at (52,272) size 127x38 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,300.00)}]
     141        RenderSVGText {text} at (0,-10) size 60x45 contains 1 chunk(s)
     142          RenderSVGInlineText {#text} at (0,-20) size 60x45
     143            chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 60.00: "1234"
     144      RenderSVGContainer {g} at (52,270) size 138x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,300.00)}]
    145145        RenderSVGText {text} at (-78,0) size 49x18 contains 1 chunk(s)
    146146          RenderSVGInlineText {#text} at (0,-14) size 49x18
     
    158158          RenderSVGContainer {g} at (171,301) size 8x8 [transform={m=((1.00,0.00)(0.00,1.00)) t=(45.00,5.00)}]
    159159            RenderPath {rect} at (171,301) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    160         RenderSVGText {text} at (0,-10) size 40x38 contains 1 chunk(s)
    161           RenderSVGInlineText {#text} at (0,-18) size 40x38
    162             chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 40.00: "1234"
    163       RenderSVGContainer {g} at (241,52) size 213x203 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,0.00)}]
    164         RenderSVGContainer {g} at (281,52) size 159x43 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,80.00)}]
     160        RenderSVGText {text} at (0,-10) size 60x40 contains 1 chunk(s)
     161          RenderSVGInlineText {#text} at (0,-20) size 60x40
     162            chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 60.00: "1234"
     163      RenderSVGContainer {g} at (241,50) size 213x205 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,0.00)}]
     164        RenderSVGContainer {g} at (281,50) size 164x45 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,80.00)}]
    165165          RenderSVGText {text} at (-69,0) size 40x18 contains 1 chunk(s)
    166166            RenderSVGInlineText {#text} at (0,-14) size 40x18
     
    181181            RenderSVGContainer {g} at (426,86) size 8x8 [transform={m=((1.00,0.00)(0.00,1.00)) t=(80.00,10.00)}]
    182182              RenderPath {rect} at (426,86) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    183           RenderSVGText {text} at (20,-10) size 70x43 contains 4 chunk(s)
    184             RenderSVGInlineText {#text} at (0,-18) size 70x43
    185               chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 10.00: "1"
    186               chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 10.00: "2"
    187               chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 3 width 10.00: "3"
    188               chunk 4 text run 1 at (80.00,10.00) startOffset 3 endOffset 4 width 10.00: "4"
    189         RenderSVGContainer {g} at (264,92) size 190x52 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,120.00)}]
     183          RenderSVGText {text} at (20,-10) size 75x45 contains 4 chunk(s)
     184            RenderSVGInlineText {#text} at (0,-20) size 75x45
     185              chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     186              chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     187              chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 3 width 15.00: "3"
     188              chunk 4 text run 1 at (80.00,10.00) startOffset 3 endOffset 4 width 15.00: "4"
     189        RenderSVGContainer {g} at (264,90) size 190x54 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,120.00)}]
    190190          RenderSVGText {text} at (-86,0) size 57x18 contains 1 chunk(s)
    191191            RenderSVGInlineText {#text} at (0,-14) size 57x18
     
    209209            RenderSVGContainer {g} at (446,136) size 8x8 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,20.00)}]
    210210              RenderPath {rect} at (446,136) size 8x8 [fill={[type=SOLID] [color=#FF0000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    211           RenderSVGText {text} at (20,-10) size 70x43 contains 4 chunk(s)
    212             RenderSVGInlineText {#text} at (0,-18) size 70x43
    213               chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 10.00: "1"
    214               chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 10.00: "2"
    215               chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 3 width 10.00: "3"
    216               chunk 4 text run 1 at (80.00,10.00) startOffset 3 endOffset 4 width 10.00: "4"
    217         RenderSVGContainer {g} at (260,132) size 170x38 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,160.00)}]
     211          RenderSVGText {text} at (20,-10) size 75x45 contains 4 chunk(s)
     212            RenderSVGInlineText {#text} at (0,-20) size 75x45
     213              chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     214              chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     215              chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 3 width 15.00: "3"
     216              chunk 4 text run 1 at (80.00,10.00) startOffset 3 endOffset 4 width 15.00: "4"
     217        RenderSVGContainer {g} at (260,130) size 180x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,160.00)}]
    218218          RenderSVGText {text} at (-90,0) size 61x18 contains 1 chunk(s)
    219219            RenderSVGInlineText {#text} at (0,-14) size 61x18
     
    234234            RenderSVGContainer {g} at (421,161) size 8x8 [transform={m=((1.00,0.00)(0.00,1.00)) t=(75.00,5.00)}]
    235235              RenderPath {rect} at (421,161) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    236           RenderSVGText {text} at (20,-10) size 60x38 contains 3 chunk(s)
    237             RenderSVGInlineText {#text} at (0,-18) size 60x38
    238               chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 10.00: "1"
    239               chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 10.00: "2"
    240               chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 4 width 20.00: "34"
    241         RenderSVGContainer {g} at (241,172) size 199x38 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,200.00)}]
     236          RenderSVGText {text} at (20,-10) size 70x40 contains 3 chunk(s)
     237            RenderSVGInlineText {#text} at (0,-20) size 70x40
     238              chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     239              chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     240              chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 4 width 30.00: "34"
     241        RenderSVGContainer {g} at (241,170) size 204x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,200.00)}]
    242242          RenderSVGText {text} at (-109,0) size 80x18 contains 1 chunk(s)
    243243            RenderSVGInlineText {#text} at (0,-14) size 80x18
     
    258258            RenderSVGContainer {g} at (426,201) size 8x8 [transform={m=((1.00,0.00)(0.00,1.00)) t=(80.00,5.00)}]
    259259              RenderPath {rect} at (426,201) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    260           RenderSVGText {text} at (20,-10) size 70x38 contains 4 chunk(s)
    261             RenderSVGInlineText {#text} at (0,-18) size 70x38
    262               chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 10.00: "1"
    263               chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 10.00: "2"
    264               chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 3 width 10.00: "3"
    265               chunk 4 text run 1 at (80.00,5.00) startOffset 3 endOffset 4 width 10.00: "4"
    266         RenderSVGContainer {g} at (241,212) size 190.52x43 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,240.00)}]
     260          RenderSVGText {text} at (20,-10) size 75x40 contains 4 chunk(s)
     261            RenderSVGInlineText {#text} at (0,-20) size 75x40
     262              chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     263              chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     264              chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 3 width 15.00: "3"
     265              chunk 4 text run 1 at (80.00,5.00) startOffset 3 endOffset 4 width 15.00: "4"
     266        RenderSVGContainer {g} at (241,210) size 199x45 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,240.00)}]
    267267          RenderSVGText {text} at (-109,0) size 80x18 contains 1 chunk(s)
    268268            RenderSVGInlineText {#text} at (0,-14) size 80x18
     
    283283            RenderSVGContainer {g} at (423.52,246) size 8x8 [transform={m=((1.00,0.00)(0.00,1.00)) t=(77.52,10.00)}]
    284284              RenderPath {rect} at (423.52,246) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    285           RenderSVGText {text} at (20,-10) size 60x43 contains 3 chunk(s)
    286             RenderSVGInlineText {#text} at (0,-18) size 60x43
    287               chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 10.00: "1"
    288               chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 10.00: "2"
    289               chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 4 width 20.00: "34"
     285          RenderSVGText {text} at (20,-10) size 70x45 contains 3 chunk(s)
     286            RenderSVGInlineText {#text} at (0,-20) size 70x45
     287              chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     288              chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     289              chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 4 width 30.00: "34"
    290290    RenderSVGText {text} at (10,340) size 284x46 contains 1 chunk(s)
    291291      RenderSVGInlineText {#text} at (0,-36) size 284x46
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/text-text-05-t-expected.checksum

    r27850 r29246  
    1 ac12da9440918526ccb6c570c5e589aa
     1afc533ff6f4dde85234ae3ff0b106cd7
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/text-text-05-t-expected.txt

    r26599 r29246  
    3737          RenderSVGInlineText {#text} at (0,-14) size 44x18
    3838            chunk 1 text run 1 at (0.00,270.00) startOffset 0 endOffset 7 width 44.00: "2.x 2.y"
    39       RenderSVGContainer {g} at (115,9) size 110x321 [transform={m=((1.00,0.00)(0.00,1.00)) t=(150.00,40.00)}]
     39      RenderSVGContainer {g} at (115,9) size 140x321 [transform={m=((1.00,0.00)(0.00,1.00)) t=(150.00,40.00)}]
    4040        RenderSVGText {text} at (-36,-17) size 71x19 contains 1 chunk(s)
    4141          RenderSVGInlineText {#text} at (1,-14) size 71x19
     
    4545            chunk 1 (middle anchor) text run 1 at (-13.00,-3.00) startOffset 0 endOffset 5 width 26.00: "start"
    4646        RenderPath {line} at (149.50,50) size 1x280 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,10.00L0.00,290.00"]
    47         RenderSVGContainer {g} at (146,55) size 79x254
     47        RenderSVGContainer {g} at (146,55) size 109x254
    4848          RenderSVGContainer {use} at (146,55) size 8x19
    4949            RenderSVGContainer {g} at (146,55) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,30.00)}]
     
    5151                RenderPath {line} at (149.50,55) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    5252                RenderPath {rect} at (146,66) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    53           RenderSVGText {text} at (0,30) size 20x13 contains 1 chunk(s)
    54             RenderSVGInlineText {#text} at (0,-10) size 20x13
    55               chunk 1 text run 1 at (0.00,30.00) startOffset 0 endOffset 4 width 20.00: "1234"
     53          RenderSVGText {text} at (0,30) size 60x11 contains 1 chunk(s)
     54            RenderSVGInlineText {#text} at (0,-9) size 60x11
     55              chunk 1 text run 1 at (0.00,30.00) startOffset 0 endOffset 4 width 60.00: "1234"
    5656          RenderSVGContainer {use} at (156,85) size 8x19
    5757            RenderSVGContainer {g} at (156,85) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,60.00)}]
     
    7474                RenderPath {line} at (189.50,85) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    7575                RenderPath {rect} at (186,96) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    76           RenderSVGText {text} at (10,60) size 35x13 contains 4 chunk(s)
    77             RenderSVGInlineText {#text} at (0,-10) size 35x13
    78               chunk 1 text run 1 at (10.00,60.00) startOffset 0 endOffset 1 width 5.00: "1"
    79               chunk 2 text run 1 at (20.00,60.00) startOffset 1 endOffset 2 width 5.00: "2"
    80               chunk 3 text run 1 at (30.00,60.00) startOffset 2 endOffset 3 width 5.00: "3"
    81               chunk 4 text run 1 at (40.00,60.00) startOffset 3 endOffset 4 width 5.00: "4"
     76          RenderSVGText {text} at (10,60) size 45x11 contains 4 chunk(s)
     77            RenderSVGInlineText {#text} at (0,-9) size 45x11
     78              chunk 1 text run 1 at (10.00,60.00) startOffset 0 endOffset 1 width 15.00: "1"
     79              chunk 2 text run 1 at (20.00,60.00) startOffset 1 endOffset 2 width 15.00: "2"
     80              chunk 3 text run 1 at (30.00,60.00) startOffset 2 endOffset 3 width 15.00: "3"
     81              chunk 4 text run 1 at (40.00,60.00) startOffset 3 endOffset 4 width 15.00: "4"
    8282          RenderSVGContainer {use} at (156,115) size 8x19
    8383            RenderSVGContainer {g} at (156,115) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,90.00)}]
     
    9090                RenderPath {line} at (209.50,115) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    9191                RenderPath {rect} at (206,126) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    92           RenderSVGText {text} at (10,90) size 65x13 contains 2 chunk(s)
    93             RenderSVGInlineText {#text} at (0,-10) size 65x13
    94               chunk 1 text run 1 at (10.00,90.00) startOffset 0 endOffset 1 width 5.00: "1"
    95               chunk 2 text run 1 at (60.00,90.00) startOffset 1 endOffset 4 width 15.00: "234"
    96           RenderSVGContainer {g} at (146,135) size 53x39 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,120.00)}]
     92          RenderSVGText {text} at (10,90) size 95x11 contains 2 chunk(s)
     93            RenderSVGInlineText {#text} at (0,-9) size 95x11
     94              chunk 1 text run 1 at (10.00,90.00) startOffset 0 endOffset 1 width 15.00: "1"
     95              chunk 2 text run 1 at (60.00,90.00) startOffset 1 endOffset 4 width 45.00: "234"
     96          RenderSVGContainer {g} at (146,135) size 64x39 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,120.00)}]
    9797            RenderSVGContainer {use} at (146,135) size 8x19
    9898              RenderSVGContainer {g} at (146,135) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
     
    115115                  RenderPath {line} at (194.50,155) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    116116                  RenderPath {rect} at (191,166) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    117             RenderSVGText {text} at (0,-10) size 20x33 contains 1 chunk(s)
    118               RenderSVGInlineText {#text} at (0,-10) size 20x33
    119                 chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 20.00: "1234"
    120           RenderSVGContainer {g} at (156,165) size 39x39 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,150.00)}]
     117            RenderSVGText {text} at (0,-10) size 60x31 contains 1 chunk(s)
     118              RenderSVGInlineText {#text} at (0,-9) size 60x31
     119                chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 60.00: "1234"
     120          RenderSVGContainer {g} at (156,165) size 49x39 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,150.00)}]
    121121            RenderSVGContainer {use} at (156,165) size 8x19
    122122              RenderSVGContainer {g} at (156,165) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
     
    139139                  RenderPath {line} at (189.50,185) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    140140                  RenderPath {rect} at (186,196) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    141             RenderSVGText {text} at (10,-10) size 35x33 contains 4 chunk(s)
    142               RenderSVGInlineText {#text} at (0,-10) size 35x33
    143                 chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    144                 chunk 2 text run 1 at (20.00,-5.00) startOffset 1 endOffset 2 width 5.00: "2"
    145                 chunk 3 text run 1 at (30.00,5.00) startOffset 2 endOffset 3 width 5.00: "3"
    146                 chunk 4 text run 1 at (40.00,10.00) startOffset 3 endOffset 4 width 5.00: "4"
    147           RenderSVGContainer {g} at (156,195) size 48x39 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,180.00)}]
     141            RenderSVGText {text} at (10,-10) size 45x31 contains 4 chunk(s)
     142              RenderSVGInlineText {#text} at (0,-9) size 45x31
     143                chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     144                chunk 2 text run 1 at (20.00,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     145                chunk 3 text run 1 at (30.00,5.00) startOffset 2 endOffset 3 width 15.00: "3"
     146                chunk 4 text run 1 at (40.00,10.00) startOffset 3 endOffset 4 width 15.00: "4"
     147          RenderSVGContainer {g} at (156,195) size 59x39 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,180.00)}]
    148148            RenderSVGContainer {use} at (156,195) size 8x19
    149149              RenderSVGContainer {g} at (156,195) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
     
    166166                  RenderPath {line} at (199.50,215) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    167167                  RenderPath {rect} at (196,226) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    168             RenderSVGText {text} at (10,-10) size 25x33 contains 2 chunk(s)
    169               RenderSVGInlineText {#text} at (0,-10) size 25x33
    170                 chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    171                 chunk 2 text run 1 at (20.00,-5.00) startOffset 1 endOffset 4 width 15.00: "234"
    172           RenderSVGContainer {g} at (146,225) size 24x34 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,210.00)}]
     168            RenderSVGText {text} at (10,-10) size 55x31 contains 2 chunk(s)
     169              RenderSVGInlineText {#text} at (0,-9) size 55x31
     170                chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     171                chunk 2 text run 1 at (20.00,-5.00) startOffset 1 endOffset 4 width 45.00: "234"
     172          RenderSVGContainer {g} at (146,225) size 64x34 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,210.00)}]
    173173            RenderSVGContainer {use} at (146,225) size 8x19
    174174              RenderSVGContainer {g} at (146,225) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
     
    181181                  RenderPath {line} at (164.50,240) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    182182                  RenderPath {rect} at (161,251) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    183             RenderSVGText {text} at (0,-10) size 20x28 contains 1 chunk(s)
    184               RenderSVGInlineText {#text} at (0,-10) size 20x28
    185                 chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 20.00: "1234"
    186           RenderSVGContainer {g} at (156,255) size 39x24 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,240.00)}]
     183            RenderSVGText {text} at (0,-10) size 60x26 contains 1 chunk(s)
     184              RenderSVGInlineText {#text} at (0,-9) size 60x26
     185                chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 60.00: "1234"
     186          RenderSVGContainer {g} at (156,255) size 49x24 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,240.00)}]
    187187            RenderSVGContainer {use} at (156,255) size 8x19
    188188              RenderSVGContainer {g} at (156,255) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
     
    205205                  RenderPath {line} at (189.50,260) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    206206                  RenderPath {rect} at (186,271) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    207             RenderSVGText {text} at (10,-10) size 35x19 contains 4 chunk(s)
    208               RenderSVGInlineText {#text} at (0,-10) size 35x19
    209                 chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    210                 chunk 2 text run 1 at (20.00,-5.00) startOffset 1 endOffset 2 width 5.00: "2"
    211                 chunk 3 text run 1 at (30.00,-5.00) startOffset 2 endOffset 3 width 5.00: "3"
    212                 chunk 4 text run 1 at (40.00,-5.00) startOffset 3 endOffset 4 width 5.00: "4"
    213           RenderSVGContainer {g} at (156,285) size 69x24 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,270.00)}]
     207            RenderSVGText {text} at (10,-10) size 45x17 contains 4 chunk(s)
     208              RenderSVGInlineText {#text} at (0,-9) size 45x17
     209                chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     210                chunk 2 text run 1 at (20.00,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     211                chunk 3 text run 1 at (30.00,-5.00) startOffset 2 endOffset 3 width 15.00: "3"
     212                chunk 4 text run 1 at (40.00,-5.00) startOffset 3 endOffset 4 width 15.00: "4"
     213          RenderSVGContainer {g} at (156,285) size 99x24 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,270.00)}]
    214214            RenderSVGContainer {use} at (156,285) size 8x19
    215215              RenderSVGContainer {g} at (156,285) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
     
    222222                  RenderPath {line} at (209.50,290) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    223223                  RenderPath {rect} at (206,301) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    224             RenderSVGText {text} at (10,-10) size 65x19 contains 2 chunk(s)
    225               RenderSVGInlineText {#text} at (0,-10) size 65x19
    226                 chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    227                 chunk 2 text run 1 at (60.00,-5.00) startOffset 1 endOffset 4 width 15.00: "234"
    228       RenderSVGContainer {g} at (215,9) size 103x321 [transform={m=((1.00,0.00)(0.00,1.00)) t=(250.00,40.00)}]
     224            RenderSVGText {text} at (10,-10) size 95x17 contains 2 chunk(s)
     225              RenderSVGInlineText {#text} at (0,-9) size 95x17
     226                chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     227                chunk 2 text run 1 at (60.00,-5.00) startOffset 1 endOffset 4 width 45.00: "234"
     228      RenderSVGContainer {g} at (215,9) size 118x321 [transform={m=((1.00,0.00)(0.00,1.00)) t=(250.00,40.00)}]
    229229        RenderSVGText {text} at (-36,-17) size 71x19 contains 1 chunk(s)
    230230          RenderSVGInlineText {#text} at (1,-14) size 71x19
     
    234234            chunk 1 (middle anchor) text run 1 at (-21.50,-3.00) startOffset 0 endOffset 6 width 43.00: "middle"
    235235        RenderPath {line} at (249.50,50) size 1x280 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,10.00L0.00,290.00"]
    236         RenderSVGContainer {use} at (240,55) size 78x254
    237           RenderSVGContainer {g} at (240,55) size 78x254
    238             RenderSVGContainer {g} at (240,55) size 78x254
     236        RenderSVGContainer {use} at (220,55) size 113x254
     237          RenderSVGContainer {g} at (220,55) size 113x254
     238            RenderSVGContainer {g} at (220,55) size 113x254
    239239              RenderSVGContainer {g} at (246,55) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,30.00)}]
    240240                RenderSVGContainer {g} at (246,55) size 8x19
    241241                  RenderPath {line} at (249.50,55) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    242242                  RenderPath {rect} at (246,66) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    243               RenderSVGText {text} at (-10,30) size 20x13 contains 1 chunk(s)
    244                 RenderSVGInlineText {#text} at (0,-10) size 20x13
    245                   chunk 1 (middle anchor) text run 1 at (-10.00,30.00) startOffset 0 endOffset 4 width 20.00: "1234"
     243              RenderSVGText {text} at (-30,30) size 60x11 contains 1 chunk(s)
     244                RenderSVGInlineText {#text} at (0,-9) size 60x11
     245                  chunk 1 (middle anchor) text run 1 at (-30.00,30.00) startOffset 0 endOffset 4 width 60.00: "1234"
    246246              RenderSVGContainer {g} at (256,85) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,60.00)}]
    247247                RenderSVGContainer {g} at (256,85) size 8x19
     
    260260                  RenderPath {line} at (289.50,85) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    261261                  RenderPath {rect} at (286,96) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    262               RenderSVGText {text} at (7,60) size 36x13 contains 4 chunk(s)
    263                 RenderSVGInlineText {#text} at (0,-10) size 36x13
    264                   chunk 1 (middle anchor) text run 1 at (7.50,60.00) startOffset 0 endOffset 1 width 5.00: "1"
    265                   chunk 2 (middle anchor) text run 1 at (17.50,60.00) startOffset 1 endOffset 2 width 5.00: "2"
    266                   chunk 3 (middle anchor) text run 1 at (27.50,60.00) startOffset 2 endOffset 3 width 5.00: "3"
    267                   chunk 4 (middle anchor) text run 1 at (37.50,60.00) startOffset 3 endOffset 4 width 5.00: "4"
     262              RenderSVGText {text} at (2,60) size 46x11 contains 4 chunk(s)
     263                RenderSVGInlineText {#text} at (0,-9) size 46x11
     264                  chunk 1 (middle anchor) text run 1 at (2.50,60.00) startOffset 0 endOffset 1 width 15.00: "1"
     265                  chunk 2 (middle anchor) text run 1 at (12.50,60.00) startOffset 1 endOffset 2 width 15.00: "2"
     266                  chunk 3 (middle anchor) text run 1 at (22.50,60.00) startOffset 2 endOffset 3 width 15.00: "3"
     267                  chunk 4 (middle anchor) text run 1 at (32.50,60.00) startOffset 3 endOffset 4 width 15.00: "4"
    268268              RenderSVGContainer {g} at (256,115) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,90.00)}]
    269269                RenderSVGContainer {g} at (256,115) size 8x19
     
    274274                  RenderPath {line} at (309.50,115) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    275275                  RenderPath {rect} at (306,126) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    276               RenderSVGText {text} at (7,90) size 61x13 contains 2 chunk(s)
    277                 RenderSVGInlineText {#text} at (0,-10) size 61x13
    278                   chunk 1 (middle anchor) text run 1 at (7.50,90.00) startOffset 0 endOffset 1 width 5.00: "1"
    279                   chunk 2 (middle anchor) text run 1 at (52.50,90.00) startOffset 1 endOffset 4 width 15.00: "234"
    280               RenderSVGContainer {g} at (240,135) size 59x39 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,120.00)}]
     276              RenderSVGText {text} at (2,90) size 81x11 contains 2 chunk(s)
     277                RenderSVGInlineText {#text} at (0,-9) size 81x11
     278                  chunk 1 (middle anchor) text run 1 at (2.50,90.00) startOffset 0 endOffset 1 width 15.00: "1"
     279                  chunk 2 (middle anchor) text run 1 at (37.50,90.00) startOffset 1 endOffset 4 width 45.00: "234"
     280              RenderSVGContainer {g} at (220,135) size 79x39 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,120.00)}]
    281281                RenderSVGContainer {g} at (246,135) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
    282282                  RenderSVGContainer {g} at (246,135) size 8x19
     
    295295                    RenderPath {line} at (294.50,155) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    296296                    RenderPath {rect} at (291,166) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    297                 RenderSVGText {text} at (-10,-10) size 20x33 contains 1 chunk(s)
    298                   RenderSVGInlineText {#text} at (0,-10) size 20x33
    299                     chunk 1 (middle anchor) text run 1 at (-10.00,-10.00) startOffset 0 endOffset 4 width 20.00: "1234"
    300               RenderSVGContainer {g} at (256,165) size 38x39 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,150.00)}]
     297                RenderSVGText {text} at (-30,-10) size 60x31 contains 1 chunk(s)
     298                  RenderSVGInlineText {#text} at (0,-9) size 60x31
     299                    chunk 1 (middle anchor) text run 1 at (-30.00,-10.00) startOffset 0 endOffset 4 width 60.00: "1234"
     300              RenderSVGContainer {g} at (252,165) size 46x39 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,150.00)}]
    301301                RenderSVGContainer {g} at (256,165) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
    302302                  RenderSVGContainer {g} at (256,165) size 8x19
     
    315315                    RenderPath {line} at (289.50,185) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    316316                    RenderPath {rect} at (286,196) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    317                 RenderSVGText {text} at (7,-10) size 36x33 contains 4 chunk(s)
    318                   RenderSVGInlineText {#text} at (0,-10) size 36x33
    319                     chunk 1 (middle anchor) text run 1 at (7.50,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    320                     chunk 2 (middle anchor) text run 1 at (17.50,-5.00) startOffset 1 endOffset 2 width 5.00: "2"
    321                     chunk 3 (middle anchor) text run 1 at (27.50,5.00) startOffset 2 endOffset 3 width 5.00: "3"
    322                     chunk 4 (middle anchor) text run 1 at (37.50,10.00) startOffset 3 endOffset 4 width 5.00: "4"
    323               RenderSVGContainer {g} at (256,195) size 48x39 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,180.00)}]
     317                RenderSVGText {text} at (2,-10) size 46x31 contains 4 chunk(s)
     318                  RenderSVGInlineText {#text} at (0,-9) size 46x31
     319                    chunk 1 (middle anchor) text run 1 at (2.50,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     320                    chunk 2 (middle anchor) text run 1 at (12.50,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     321                    chunk 3 (middle anchor) text run 1 at (22.50,5.00) startOffset 2 endOffset 3 width 15.00: "3"
     322                    chunk 4 (middle anchor) text run 1 at (32.50,10.00) startOffset 3 endOffset 4 width 15.00: "4"
     323              RenderSVGContainer {g} at (248,195) size 56x39 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,180.00)}]
    324324                RenderSVGContainer {g} at (256,195) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
    325325                  RenderSVGContainer {g} at (256,195) size 8x19
     
    338338                    RenderPath {line} at (299.50,215) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    339339                    RenderPath {rect} at (296,226) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    340                 RenderSVGText {text} at (7,-10) size 21x33 contains 2 chunk(s)
    341                   RenderSVGInlineText {#text} at (0,-10) size 21x33
    342                     chunk 1 (middle anchor) text run 1 at (7.50,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    343                     chunk 2 (middle anchor) text run 1 at (12.50,-5.00) startOffset 1 endOffset 4 width 15.00: "234"
    344               RenderSVGContainer {g} at (240,225) size 29x34 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,210.00)}]
     340                RenderSVGText {text} at (-3,-10) size 45x31 contains 2 chunk(s)
     341                  RenderSVGInlineText {#text} at (1,-9) size 45x31
     342                    chunk 1 (middle anchor) text run 1 at (2.50,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     343                    chunk 2 (middle anchor) text run 1 at (-2.50,-5.00) startOffset 1 endOffset 4 width 45.00: "234"
     344              RenderSVGContainer {g} at (220,225) size 60x34 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,210.00)}]
    345345                RenderSVGContainer {g} at (246,225) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
    346346                  RenderSVGContainer {g} at (246,225) size 8x19
     
    351351                    RenderPath {line} at (264.50,240) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    352352                    RenderPath {rect} at (261,251) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    353                 RenderSVGText {text} at (-10,-10) size 20x28 contains 1 chunk(s)
    354                   RenderSVGInlineText {#text} at (0,-10) size 20x28
    355                     chunk 1 (middle anchor) text run 1 at (-10.00,-10.00) startOffset 0 endOffset 4 width 20.00: "1234"
    356               RenderSVGContainer {g} at (256,255) size 38x24 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,240.00)}]
     353                RenderSVGText {text} at (-30,-10) size 60x26 contains 1 chunk(s)
     354                  RenderSVGInlineText {#text} at (0,-9) size 60x26
     355                    chunk 1 (middle anchor) text run 1 at (-30.00,-10.00) startOffset 0 endOffset 4 width 60.00: "1234"
     356              RenderSVGContainer {g} at (252,255) size 46x24 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,240.00)}]
    357357                RenderSVGContainer {g} at (256,255) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
    358358                  RenderSVGContainer {g} at (256,255) size 8x19
     
    371371                    RenderPath {line} at (289.50,260) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    372372                    RenderPath {rect} at (286,271) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    373                 RenderSVGText {text} at (7,-10) size 36x19 contains 4 chunk(s)
    374                   RenderSVGInlineText {#text} at (0,-10) size 36x19
    375                     chunk 1 (middle anchor) text run 1 at (7.50,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    376                     chunk 2 (middle anchor) text run 1 at (17.50,-5.00) startOffset 1 endOffset 2 width 5.00: "2"
    377                     chunk 3 (middle anchor) text run 1 at (27.50,-5.00) startOffset 2 endOffset 3 width 5.00: "3"
    378                     chunk 4 (middle anchor) text run 1 at (37.50,-5.00) startOffset 3 endOffset 4 width 5.00: "4"
    379               RenderSVGContainer {g} at (256,285) size 62x24 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,270.00)}]
     373                RenderSVGText {text} at (2,-10) size 46x17 contains 4 chunk(s)
     374                  RenderSVGInlineText {#text} at (0,-9) size 46x17
     375                    chunk 1 (middle anchor) text run 1 at (2.50,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     376                    chunk 2 (middle anchor) text run 1 at (12.50,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     377                    chunk 3 (middle anchor) text run 1 at (22.50,-5.00) startOffset 2 endOffset 3 width 15.00: "3"
     378                    chunk 4 (middle anchor) text run 1 at (32.50,-5.00) startOffset 3 endOffset 4 width 15.00: "4"
     379              RenderSVGContainer {g} at (252,285) size 81x24 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,270.00)}]
    380380                RenderSVGContainer {g} at (256,285) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
    381381                  RenderSVGContainer {g} at (256,285) size 8x19
     
    386386                    RenderPath {line} at (309.50,290) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    387387                    RenderPath {rect} at (306,301) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    388                 RenderSVGText {text} at (7,-10) size 61x19 contains 2 chunk(s)
    389                   RenderSVGInlineText {#text} at (0,-10) size 61x19
    390                     chunk 1 (middle anchor) text run 1 at (7.50,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    391                     chunk 2 (middle anchor) text run 1 at (52.50,-5.00) startOffset 1 endOffset 4 width 15.00: "234"
    392       RenderSVGContainer {g} at (315,9) size 99x321 [transform={m=((1.00,0.00)(0.00,1.00)) t=(350.00,40.00)}]
     388                RenderSVGText {text} at (2,-10) size 81x17 contains 2 chunk(s)
     389                  RenderSVGInlineText {#text} at (0,-9) size 81x17
     390                    chunk 1 (middle anchor) text run 1 at (2.50,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     391                    chunk 2 (middle anchor) text run 1 at (37.50,-5.00) startOffset 1 endOffset 4 width 45.00: "234"
     392      RenderSVGContainer {g} at (290,9) size 124x321 [transform={m=((1.00,0.00)(0.00,1.00)) t=(350.00,40.00)}]
    393393        RenderSVGText {text} at (-36,-17) size 71x19 contains 1 chunk(s)
    394394          RenderSVGInlineText {#text} at (1,-14) size 71x19
     
    398398            chunk 1 (middle anchor) text run 1 at (-11.50,-3.00) startOffset 0 endOffset 3 width 23.00: "end"
    399399        RenderPath {line} at (349.50,50) size 1x280 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,10.00L0.00,290.00"]
    400         RenderSVGContainer {use} at (330,55) size 84x254
    401           RenderSVGContainer {g} at (330,55) size 84x254
    402             RenderSVGContainer {g} at (330,55) size 84x254
     400        RenderSVGContainer {use} at (290,55) size 124x254
     401          RenderSVGContainer {g} at (290,55) size 124x254
     402            RenderSVGContainer {g} at (290,55) size 124x254
    403403              RenderSVGContainer {g} at (346,55) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,30.00)}]
    404404                RenderSVGContainer {g} at (346,55) size 8x19
    405405                  RenderPath {line} at (349.50,55) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    406406                  RenderPath {rect} at (346,66) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    407               RenderSVGText {text} at (-20,30) size 20x13 contains 1 chunk(s)
    408                 RenderSVGInlineText {#text} at (0,-10) size 20x13
    409                   chunk 1 (end anchor) text run 1 at (-20.00,30.00) startOffset 0 endOffset 4 width 20.00: "1234"
     407              RenderSVGText {text} at (-60,30) size 60x11 contains 1 chunk(s)
     408                RenderSVGInlineText {#text} at (0,-9) size 60x11
     409                  chunk 1 (end anchor) text run 1 at (-60.00,30.00) startOffset 0 endOffset 4 width 60.00: "1234"
    410410              RenderSVGContainer {g} at (356,85) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,60.00)}]
    411411                RenderSVGContainer {g} at (356,85) size 8x19
     
    424424                  RenderPath {line} at (389.50,85) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    425425                  RenderPath {rect} at (386,96) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    426               RenderSVGText {text} at (5,60) size 35x13 contains 4 chunk(s)
    427                 RenderSVGInlineText {#text} at (0,-10) size 35x13
    428                   chunk 1 (end anchor) text run 1 at (5.00,60.00) startOffset 0 endOffset 1 width 5.00: "1"
    429                   chunk 2 (end anchor) text run 1 at (15.00,60.00) startOffset 1 endOffset 2 width 5.00: "2"
    430                   chunk 3 (end anchor) text run 1 at (25.00,60.00) startOffset 2 endOffset 3 width 5.00: "3"
    431                   chunk 4 (end anchor) text run 1 at (35.00,60.00) startOffset 3 endOffset 4 width 5.00: "4"
     426              RenderSVGText {text} at (-5,60) size 45x11 contains 4 chunk(s)
     427                RenderSVGInlineText {#text} at (0,-9) size 45x11
     428                  chunk 1 (end anchor) text run 1 at (-5.00,60.00) startOffset 0 endOffset 1 width 15.00: "1"
     429                  chunk 2 (end anchor) text run 1 at (5.00,60.00) startOffset 1 endOffset 2 width 15.00: "2"
     430                  chunk 3 (end anchor) text run 1 at (15.00,60.00) startOffset 2 endOffset 3 width 15.00: "3"
     431                  chunk 4 (end anchor) text run 1 at (25.00,60.00) startOffset 3 endOffset 4 width 15.00: "4"
    432432              RenderSVGContainer {g} at (356,115) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,90.00)}]
    433433                RenderSVGContainer {g} at (356,115) size 8x19
     
    438438                  RenderPath {line} at (409.50,115) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    439439                  RenderPath {rect} at (406,126) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    440               RenderSVGText {text} at (5,90) size 55x13 contains 2 chunk(s)
    441                 RenderSVGInlineText {#text} at (0,-10) size 55x13
    442                   chunk 1 (end anchor) text run 1 at (5.00,90.00) startOffset 0 endOffset 1 width 5.00: "1"
    443                   chunk 2 (end anchor) text run 1 at (45.00,90.00) startOffset 1 endOffset 4 width 15.00: "234"
    444               RenderSVGContainer {g} at (330,135) size 69x39 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,120.00)}]
     440              RenderSVGText {text} at (-5,90) size 65x11 contains 2 chunk(s)
     441                RenderSVGInlineText {#text} at (0,-9) size 65x11
     442                  chunk 1 (end anchor) text run 1 at (-5.00,90.00) startOffset 0 endOffset 1 width 15.00: "1"
     443                  chunk 2 (end anchor) text run 1 at (15.00,90.00) startOffset 1 endOffset 4 width 45.00: "234"
     444              RenderSVGContainer {g} at (290,135) size 109x39 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,120.00)}]
    445445                RenderSVGContainer {g} at (346,135) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
    446446                  RenderSVGContainer {g} at (346,135) size 8x19
     
    459459                    RenderPath {line} at (394.50,155) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    460460                    RenderPath {rect} at (391,166) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    461                 RenderSVGText {text} at (-20,-10) size 20x33 contains 1 chunk(s)
    462                   RenderSVGInlineText {#text} at (0,-10) size 20x33
    463                     chunk 1 (end anchor) text run 1 at (-20.00,-10.00) startOffset 0 endOffset 4 width 20.00: "1234"
    464               RenderSVGContainer {g} at (355,165) size 39x39 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,150.00)}]
     461                RenderSVGText {text} at (-60,-10) size 60x31 contains 1 chunk(s)
     462                  RenderSVGInlineText {#text} at (0,-9) size 60x31
     463                    chunk 1 (end anchor) text run 1 at (-60.00,-10.00) startOffset 0 endOffset 4 width 60.00: "1234"
     464              RenderSVGContainer {g} at (345,165) size 49x39 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,150.00)}]
    465465                RenderSVGContainer {g} at (356,165) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
    466466                  RenderSVGContainer {g} at (356,165) size 8x19
     
    479479                    RenderPath {line} at (389.50,185) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    480480                    RenderPath {rect} at (386,196) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    481                 RenderSVGText {text} at (5,-10) size 35x33 contains 4 chunk(s)
    482                   RenderSVGInlineText {#text} at (0,-10) size 35x33
    483                     chunk 1 (end anchor) text run 1 at (5.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    484                     chunk 2 (end anchor) text run 1 at (15.00,-5.00) startOffset 1 endOffset 2 width 5.00: "2"
    485                     chunk 3 (end anchor) text run 1 at (25.00,5.00) startOffset 2 endOffset 3 width 5.00: "3"
    486                     chunk 4 (end anchor) text run 1 at (35.00,10.00) startOffset 3 endOffset 4 width 5.00: "4"
    487               RenderSVGContainer {g} at (355,195) size 49x39 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,180.00)}]
     481                RenderSVGText {text} at (-5,-10) size 45x31 contains 4 chunk(s)
     482                  RenderSVGInlineText {#text} at (0,-9) size 45x31
     483                    chunk 1 (end anchor) text run 1 at (-5.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     484                    chunk 2 (end anchor) text run 1 at (5.00,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     485                    chunk 3 (end anchor) text run 1 at (15.00,5.00) startOffset 2 endOffset 3 width 15.00: "3"
     486                    chunk 4 (end anchor) text run 1 at (25.00,10.00) startOffset 3 endOffset 4 width 15.00: "4"
     487              RenderSVGContainer {g} at (325,195) size 79x39 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,180.00)}]
    488488                RenderSVGContainer {g} at (356,195) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
    489489                  RenderSVGContainer {g} at (356,195) size 8x19
     
    502502                    RenderPath {line} at (399.50,215) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    503503                    RenderPath {rect} at (396,226) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    504                 RenderSVGText {text} at (5,-10) size 15x33 contains 2 chunk(s)
    505                   RenderSVGInlineText {#text} at (0,-10) size 15x33
    506                     chunk 1 (end anchor) text run 1 at (5.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    507                     chunk 2 (end anchor) text run 1 at (5.00,-5.00) startOffset 1 endOffset 4 width 15.00: "234"
    508               RenderSVGContainer {g} at (330,225) size 39x34 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,210.00)}]
     504                RenderSVGText {text} at (-25,-10) size 45x31 contains 2 chunk(s)
     505                  RenderSVGInlineText {#text} at (0,-9) size 45x31
     506                    chunk 1 (end anchor) text run 1 at (-5.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     507                    chunk 2 (end anchor) text run 1 at (-25.00,-5.00) startOffset 1 endOffset 4 width 45.00: "234"
     508              RenderSVGContainer {g} at (290,225) size 79x34 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,210.00)}]
    509509                RenderSVGContainer {g} at (346,225) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
    510510                  RenderSVGContainer {g} at (346,225) size 8x19
     
    515515                    RenderPath {line} at (364.50,240) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    516516                    RenderPath {rect} at (361,251) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    517                 RenderSVGText {text} at (-20,-10) size 20x28 contains 1 chunk(s)
    518                   RenderSVGInlineText {#text} at (0,-10) size 20x28
    519                     chunk 1 (end anchor) text run 1 at (-20.00,-10.00) startOffset 0 endOffset 4 width 20.00: "1234"
    520               RenderSVGContainer {g} at (355,255) size 39x24 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,240.00)}]
     517                RenderSVGText {text} at (-60,-10) size 60x26 contains 1 chunk(s)
     518                  RenderSVGInlineText {#text} at (0,-9) size 60x26
     519                    chunk 1 (end anchor) text run 1 at (-60.00,-10.00) startOffset 0 endOffset 4 width 60.00: "1234"
     520              RenderSVGContainer {g} at (345,255) size 49x24 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,240.00)}]
    521521                RenderSVGContainer {g} at (356,255) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
    522522                  RenderSVGContainer {g} at (356,255) size 8x19
     
    535535                    RenderPath {line} at (389.50,260) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    536536                    RenderPath {rect} at (386,271) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    537                 RenderSVGText {text} at (5,-10) size 35x19 contains 4 chunk(s)
    538                   RenderSVGInlineText {#text} at (0,-10) size 35x19
    539                     chunk 1 (end anchor) text run 1 at (5.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    540                     chunk 2 (end anchor) text run 1 at (15.00,-5.00) startOffset 1 endOffset 2 width 5.00: "2"
    541                     chunk 3 (end anchor) text run 1 at (25.00,-5.00) startOffset 2 endOffset 3 width 5.00: "3"
    542                     chunk 4 (end anchor) text run 1 at (35.00,-5.00) startOffset 3 endOffset 4 width 5.00: "4"
    543               RenderSVGContainer {g} at (355,285) size 59x24 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,270.00)}]
     537                RenderSVGText {text} at (-5,-10) size 45x17 contains 4 chunk(s)
     538                  RenderSVGInlineText {#text} at (0,-9) size 45x17
     539                    chunk 1 (end anchor) text run 1 at (-5.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     540                    chunk 2 (end anchor) text run 1 at (5.00,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     541                    chunk 3 (end anchor) text run 1 at (15.00,-5.00) startOffset 2 endOffset 3 width 15.00: "3"
     542                    chunk 4 (end anchor) text run 1 at (25.00,-5.00) startOffset 3 endOffset 4 width 15.00: "4"
     543              RenderSVGContainer {g} at (345,285) size 69x24 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,270.00)}]
    544544                RenderSVGContainer {g} at (356,285) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
    545545                  RenderSVGContainer {g} at (356,285) size 8x19
     
    550550                    RenderPath {line} at (409.50,290) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    551551                    RenderPath {rect} at (406,301) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    552                 RenderSVGText {text} at (5,-10) size 55x19 contains 2 chunk(s)
    553                   RenderSVGInlineText {#text} at (0,-10) size 55x19
    554                     chunk 1 (end anchor) text run 1 at (5.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    555                     chunk 2 (end anchor) text run 1 at (45.00,-5.00) startOffset 1 endOffset 4 width 15.00: "234"
     552                RenderSVGText {text} at (-5,-10) size 65x17 contains 2 chunk(s)
     553                  RenderSVGInlineText {#text} at (0,-9) size 65x17
     554                    chunk 1 (end anchor) text run 1 at (-5.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     555                    chunk 2 (end anchor) text run 1 at (15.00,-5.00) startOffset 1 endOffset 4 width 45.00: "234"
    556556    RenderSVGText {text} at (10,350) size 264x46 contains 1 chunk(s)
    557557      RenderSVGInlineText {#text} at (0,-36) size 264x46
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/text-text-06-t-expected.checksum

    r27850 r29246  
    1 dc6f3c8a41eb34121f7ad246b9b89568
     10cd7683922e8a2169a09a5c8c2738faa
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/text-text-06-t-expected.txt

    r26599 r29246  
    5151                RenderPath {line} at (249.50,55) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    5252                RenderPath {rect} at (246,66) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    53           RenderSVGText {text} at (10,0) size 173x13 contains 6 chunk(s)
    54             RenderSVGInlineText {#text} at (0,-10) size 173x13
     53          RenderSVGText {text} at (10,0) size 173x11 contains 6 chunk(s)
     54            RenderSVGInlineText {#text} at (0,-9) size 173x11
    5555              chunk 1 text run 1 at (10.00,0.00) startOffset 0 endOffset 1 width 3.00: "f"
    5656              chunk 2 text run 1 at (180.00,0.00) startOffset 1 endOffset 2 width 3.00: "i"
    57               chunk 3 text run 1 at (40.00,0.00) startOffset 2 endOffset 3 width 5.00: "1"
    58               chunk 4 text run 1 at (70.00,0.00) startOffset 3 endOffset 4 width 5.00: "2"
    59               chunk 5 text run 1 at (100.00,0.00) startOffset 4 endOffset 5 width 5.00: "3"
    60               chunk 6 text run 1 at (130.00,0.00) startOffset 5 endOffset 6 width 5.00: "4"
    61         RenderSVGContainer {g} at (116,85) size 68x79 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,80.00)}]
     57              chunk 3 text run 1 at (40.00,0.00) startOffset 2 endOffset 3 width 15.00: "1"
     58              chunk 4 text run 1 at (70.00,0.00) startOffset 3 endOffset 4 width 15.00: "2"
     59              chunk 5 text run 1 at (100.00,0.00) startOffset 4 endOffset 5 width 15.00: "3"
     60              chunk 6 text run 1 at (130.00,0.00) startOffset 5 endOffset 6 width 15.00: "4"
     61        RenderSVGContainer {g} at (116,85) size 70x79 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,80.00)}]
    6262          RenderSVGContainer {use} at (116,85) size 8x19
    6363            RenderSVGContainer {g} at (116,85) size 8x19 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
     
    9090                RenderPath {line} at (179.50,125) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    9191                RenderPath {rect} at (176,136) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    92           RenderSVGText {text} at (0,-10) size 26x73 contains 1 chunk(s)
    93             RenderSVGInlineText {#text} at (0,-10) size 26x73
    94               chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 6 width 26.00: "fi1234"
     92          RenderSVGText {text} at (0,-10) size 66x71 contains 1 chunk(s)
     93            RenderSVGInlineText {#text} at (0,-9) size 66x71
     94              chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 6 width 75.00: "fi1234"
    9595        RenderSVGContainer {g} at (126,185) size 178x79 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,180.00)}]
    9696          RenderSVGContainer {use} at (126,185) size 8x19
     
    124124                RenderPath {line} at (249.50,225) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    125125                RenderPath {rect} at (246,236) size 8x8 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    126           RenderSVGText {text} at (10,-10) size 173x73 contains 6 chunk(s)
    127             RenderSVGInlineText {#text} at (0,-10) size 173x73
     126          RenderSVGText {text} at (10,-10) size 173x71 contains 6 chunk(s)
     127            RenderSVGInlineText {#text} at (0,-9) size 173x71
    128128              chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 3.00: "f"
    129129              chunk 2 text run 1 at (180.00,50.00) startOffset 1 endOffset 2 width 3.00: "i"
    130               chunk 3 text run 1 at (40.00,0.00) startOffset 2 endOffset 3 width 5.00: "1"
    131               chunk 4 text run 1 at (70.00,10.00) startOffset 3 endOffset 4 width 5.00: "2"
    132               chunk 5 text run 1 at (100.00,20.00) startOffset 4 endOffset 5 width 5.00: "3"
    133               chunk 6 text run 1 at (130.00,30.00) startOffset 5 endOffset 6 width 5.00: "4"
     130              chunk 3 text run 1 at (40.00,0.00) startOffset 2 endOffset 3 width 15.00: "1"
     131              chunk 4 text run 1 at (70.00,10.00) startOffset 3 endOffset 4 width 15.00: "2"
     132              chunk 5 text run 1 at (100.00,20.00) startOffset 4 endOffset 5 width 15.00: "3"
     133              chunk 6 text run 1 at (130.00,30.00) startOffset 5 endOffset 6 width 15.00: "4"
    134134    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
    135135      RenderSVGInlineText {#text} at (0,-36) size 264x46
  • trunk/LayoutTests/platform/mac/svg/batik/masking/maskRegions-expected.checksum

    r26602 r29246  
    1 c6973478390f5c1db59eb2b970c68bda
     18a001cfa651b0e72d731d43e2703c01e
  • trunk/LayoutTests/platform/mac/svg/batik/paints/gradientLimit-expected.checksum

    r26602 r29246  
    1 6892c89fa4b9335d00e75be86240f848
     1d61789f428af13827778f811276f0779
  • trunk/LayoutTests/platform/mac/svg/batik/paints/patternRegionA-expected.checksum

    r26602 r29246  
    1 28d457d72ed24350e44b6697ea61ab29
     1a49be824e3dcb868c2fe8f40ffa6d1dc
  • trunk/LayoutTests/platform/mac/svg/batik/paints/patternRegions-expected.checksum

    r26602 r29246  
    1 8f6ad169cb3b4b934f2e8e8d1c8dd647
     163123ca146f8464524c30158edb457a0
  • trunk/LayoutTests/platform/mac/svg/batik/text/longTextOnPath-expected.checksum

    r26602 r29246  
    1 6bd590c04715168f255a5aeb53431ac4
     19eda40a7ee642341fc36efc2f0da6db7
  • trunk/LayoutTests/platform/mac/svg/batik/text/textBiDi-expected.checksum

    r26602 r29246  
    1 c0ba7869abe91358166d37be1fb02fa4
     1aac478fc4fa63a4d7cd3fed83adbc691
  • trunk/LayoutTests/platform/mac/svg/batik/text/textEffect-expected.checksum

    r26602 r29246  
    1 9ae22358fac345a2ed6629fdf5bca273
     1b6f84d3a372f31d2df519de70c9f16eb
  • trunk/LayoutTests/platform/mac/svg/batik/text/textEffect-expected.txt

    r29244 r29246  
    44  RenderView at (0,0) size 800x600
    55layer at (0,0) size 450x500
    6   RenderSVGRoot {svg} at (42,16) size 371x387
    7     RenderSVGContainer {g} at (42,16) size 371x387
     6  RenderSVGRoot {svg} at (42,16) size 441.80x387
     7    RenderSVGContainer {g} at (42,16) size 441.80x387
    88      RenderSVGText {text} at (136,30) size 178x17 contains 1 chunk(s)
    99        RenderSVGInlineText {#text} at (0,-14) size 178x17
     
    2424        RenderSVGInlineText {#text} at (0,-48) size 152x59
    2525          chunk 1 (middle anchor) text run 1 at (44.00,160.00) startOffset 0 endOffset 5 width 152.00: "BATIK"
    26       RenderSVGText {text} at (249,160) size 162x61 contains 1 chunk(s)
    27         RenderSVGInlineText {#text} at (0,-48) size 162x61
    28           chunk 1 (middle anchor) text run 1 at (249.50,160.00) startOffset 0 endOffset 5 width 161.00: "BATIK"
     26      RenderSVGText {text} at (252,160) size 155x59 contains 1 chunk(s)
     27        RenderSVGInlineText {#text} at (0,-48) size 155x59
     28          chunk 1 (middle anchor) text run 1 at (252.94,160.00) startOffset 0 endOffset 5 width 154.11: "BATIK"
    2929      RenderSVGText {text} at (44,260) size 152x59 contains 1 chunk(s)
    3030        RenderSVGInlineText {#text} at (0,-48) size 152x59
    3131          chunk 1 (middle anchor) text run 1 at (44.00,260.00) startOffset 0 endOffset 5 width 152.00: "BATIK"
    32       RenderSVGText {text} at (249,260) size 162x61 contains 1 chunk(s)
    33         RenderSVGInlineText {#text} at (0,-48) size 162x61
    34           chunk 1 (middle anchor) text run 1 at (249.50,260.00) startOffset 0 endOffset 5 width 161.00: "BATIK"
     32      RenderSVGText {text} at (252,260) size 155x59 contains 1 chunk(s)
     33        RenderSVGInlineText {#text} at (0,-48) size 155x59
     34          chunk 1 (middle anchor) text run 1 at (252.94,260.00) startOffset 0 endOffset 5 width 154.11: "BATIK"
    3535      RenderSVGText {text} at (44,360) size 152x59 contains 1 chunk(s)
    3636        RenderSVGInlineText {#text} at (0,-48) size 152x59
    3737          chunk 1 (middle anchor) text run 1 at (44.00,360.00) startOffset 0 endOffset 5 width 152.00: "BATIK"
    38       RenderSVGText {text} at (249,360) size 162x61 contains 1 chunk(s)
    39         RenderSVGInlineText {#text} at (0,-48) size 162x61
    40           chunk 1 (middle anchor) text run 1 at (249.50,360.00) startOffset 0 endOffset 5 width 161.00: "BATIK"
     38      RenderSVGText {text} at (252,360) size 155x59 contains 1 chunk(s)
     39        RenderSVGInlineText {#text} at (0,-48) size 155x59
     40          chunk 1 (middle anchor) text run 1 at (252.94,360.00) startOffset 0 endOffset 5 width 154.11: "BATIK"
    4141      RenderSVGText {text} at (87,400) size 66x14 contains 1 chunk(s)
    4242        RenderSVGInlineText {#text} at (0,-11) size 66x14
  • trunk/LayoutTests/platform/mac/svg/batik/text/textEffect3-expected.checksum

    r26602 r29246  
    1 0f9df03608b57e9298118d653891882c
     1c6e3a77963cbb5dcd1cee329b469140e
  • trunk/LayoutTests/platform/mac/svg/batik/text/textEffect3-expected.txt

    r29244 r29246  
    44  RenderView at (0,0) size 800x600
    55layer at (0,0) size 450x500
    6   RenderSVGRoot {svg} at (52,16) size 363x387
    7     RenderSVGContainer {g} at (52,16) size 363x387
     6  RenderSVGRoot {svg} at (52,16) size 435.80x387
     7    RenderSVGContainer {g} at (52,16) size 435.80x387
    88      RenderSVGText {text} at (99,30) size 252x17 contains 1 chunk(s)
    99        RenderSVGInlineText {#text} at (0,-14) size 252x17
     
    3636            chunk 1 (middle anchor) text run 5 at (150.50,140.00) startOffset 0 endOffset 1 width 35.00: "K"
    3737        RenderSVGInlineText {#text} at (0,0) size 0x0
    38       RenderSVGText {text} at (261,140) size 152x81 contains 1 chunk(s)
    39         RenderSVGInlineText {#text} at (0,-28) size 36x61
    40           chunk 1 (middle anchor) text run 1 at (261.50,160.00) startOffset 0 endOffset 1 width 35.00: "B"
    41         RenderSVGTSpan {tspan} at (0,0) size 20x31
    42           RenderSVGInlineText {#text} at (35,-24) size 20x31
    43             chunk 1 (middle anchor) text run 2 at (296.50,140.00) startOffset 0 endOffset 1 width 19.00: "A"
    44         RenderSVGInlineText {#text} at (54,-48) size 33x61
    45           chunk 1 (middle anchor) text run 3 at (315.50,140.00) startOffset 0 endOffset 1 width 32.00: "T"
    46         RenderSVGTSpan {tspan} at (0,0) size 14x46
    47           RenderSVGInlineText {#text} at (86,-36) size 14x46
    48             chunk 1 (middle anchor) text run 4 at (347.50,140.00) startOffset 0 endOffset 1 width 13.00: "I"
    49         RenderSVGTSpan {tspan} at (0,0) size 57x71
    50           RenderSVGInlineText {#text} at (95,-46) size 57x71
    51             chunk 1 (middle anchor) text run 5 at (360.50,140.00) startOffset 0 endOffset 1 width 38.00: "K"
     38      RenderSVGText {text} at (263,140) size 148x79 contains 1 chunk(s)
     39        RenderSVGInlineText {#text} at (0,-28) size 36x59
     40          chunk 1 (middle anchor) text run 1 at (263.69,160.00) startOffset 0 endOffset 1 width 35.57: "B"
     41        RenderSVGTSpan {tspan} at (0,0) size 18x29
     42          RenderSVGInlineText {#text} at (36,-24) size 18x29
     43            chunk 1 (middle anchor) text run 2 at (299.26,140.00) startOffset 0 endOffset 1 width 17.79: "A"
     44        RenderSVGInlineText {#text} at (54,-48) size 33x59
     45          chunk 1 (middle anchor) text run 3 at (317.05,140.00) startOffset 0 endOffset 1 width 32.58: "T"
     46        RenderSVGTSpan {tspan} at (0,0) size 12x44
     47          RenderSVGInlineText {#text} at (86,-36) size 12x44
     48            chunk 1 (middle anchor) text run 4 at (349.63,140.00) startOffset 0 endOffset 1 width 11.11: "I"
     49        RenderSVGTSpan {tspan} at (0,0) size 55x69
     50          RenderSVGInlineText {#text} at (93,-46) size 55x69
     51            chunk 1 (middle anchor) text run 5 at (360.74,140.00) startOffset 0 endOffset 1 width 35.57: "K"
    5252        RenderSVGInlineText {#text} at (0,0) size 0x0
    5353      RenderSVGText {text} at (54,240) size 146x79 contains 1 chunk(s)
     
    6666            chunk 1 (middle anchor) text run 5 at (150.50,240.00) startOffset 0 endOffset 1 width 35.00: "K"
    6767        RenderSVGInlineText {#text} at (0,0) size 0x0
    68       RenderSVGText {text} at (261,240) size 152x81 contains 1 chunk(s)
    69         RenderSVGInlineText {#text} at (0,-28) size 36x61
    70           chunk 1 (middle anchor) text run 1 at (261.50,260.00) startOffset 0 endOffset 1 width 35.00: "B"
    71         RenderSVGTSpan {tspan} at (0,0) size 20x31
    72           RenderSVGInlineText {#text} at (35,-24) size 20x31
    73             chunk 1 (middle anchor) text run 2 at (296.50,240.00) startOffset 0 endOffset 1 width 19.00: "A"
    74         RenderSVGInlineText {#text} at (54,-48) size 33x61
    75           chunk 1 (middle anchor) text run 3 at (315.50,240.00) startOffset 0 endOffset 1 width 32.00: "T"
    76         RenderSVGTSpan {tspan} at (0,0) size 14x46
    77           RenderSVGInlineText {#text} at (86,-36) size 14x46
    78             chunk 1 (middle anchor) text run 4 at (347.50,240.00) startOffset 0 endOffset 1 width 13.00: "I"
    79         RenderSVGTSpan {tspan} at (0,0) size 57x71
    80           RenderSVGInlineText {#text} at (95,-46) size 57x71
    81             chunk 1 (middle anchor) text run 5 at (360.50,240.00) startOffset 0 endOffset 1 width 38.00: "K"
     68      RenderSVGText {text} at (263,240) size 148x79 contains 1 chunk(s)
     69        RenderSVGInlineText {#text} at (0,-28) size 36x59
     70          chunk 1 (middle anchor) text run 1 at (263.69,260.00) startOffset 0 endOffset 1 width 35.57: "B"
     71        RenderSVGTSpan {tspan} at (0,0) size 18x29
     72          RenderSVGInlineText {#text} at (36,-24) size 18x29
     73            chunk 1 (middle anchor) text run 2 at (299.26,240.00) startOffset 0 endOffset 1 width 17.79: "A"
     74        RenderSVGInlineText {#text} at (54,-48) size 33x59
     75          chunk 1 (middle anchor) text run 3 at (317.05,240.00) startOffset 0 endOffset 1 width 32.58: "T"
     76        RenderSVGTSpan {tspan} at (0,0) size 12x44
     77          RenderSVGInlineText {#text} at (86,-36) size 12x44
     78            chunk 1 (middle anchor) text run 4 at (349.63,240.00) startOffset 0 endOffset 1 width 11.11: "I"
     79        RenderSVGTSpan {tspan} at (0,0) size 55x69
     80          RenderSVGInlineText {#text} at (93,-46) size 55x69
     81            chunk 1 (middle anchor) text run 5 at (360.74,240.00) startOffset 0 endOffset 1 width 35.57: "K"
    8282        RenderSVGInlineText {#text} at (0,0) size 0x0
    8383      RenderSVGText {text} at (54,340) size 146x79 contains 1 chunk(s)
     
    9696            chunk 1 (middle anchor) text run 5 at (150.50,340.00) startOffset 0 endOffset 1 width 35.00: "K"
    9797        RenderSVGInlineText {#text} at (0,0) size 0x0
    98       RenderSVGText {text} at (261,340) size 152x81 contains 1 chunk(s)
    99         RenderSVGInlineText {#text} at (0,-28) size 36x61
    100           chunk 1 (middle anchor) text run 1 at (261.50,360.00) startOffset 0 endOffset 1 width 35.00: "B"
    101         RenderSVGTSpan {tspan} at (0,0) size 20x31
    102           RenderSVGInlineText {#text} at (35,-24) size 20x31
    103             chunk 1 (middle anchor) text run 2 at (296.50,340.00) startOffset 0 endOffset 1 width 19.00: "A"
    104         RenderSVGInlineText {#text} at (54,-48) size 33x61
    105           chunk 1 (middle anchor) text run 3 at (315.50,340.00) startOffset 0 endOffset 1 width 32.00: "T"
    106         RenderSVGTSpan {tspan} at (0,0) size 14x46
    107           RenderSVGInlineText {#text} at (86,-36) size 14x46
    108             chunk 1 (middle anchor) text run 4 at (347.50,340.00) startOffset 0 endOffset 1 width 13.00: "I"
    109         RenderSVGTSpan {tspan} at (0,0) size 57x71
    110           RenderSVGInlineText {#text} at (95,-46) size 57x71
    111             chunk 1 (middle anchor) text run 5 at (360.50,340.00) startOffset 0 endOffset 1 width 38.00: "K"
     98      RenderSVGText {text} at (263,340) size 148x79 contains 1 chunk(s)
     99        RenderSVGInlineText {#text} at (0,-28) size 36x59
     100          chunk 1 (middle anchor) text run 1 at (263.69,360.00) startOffset 0 endOffset 1 width 35.57: "B"
     101        RenderSVGTSpan {tspan} at (0,0) size 18x29
     102          RenderSVGInlineText {#text} at (36,-24) size 18x29
     103            chunk 1 (middle anchor) text run 2 at (299.26,340.00) startOffset 0 endOffset 1 width 17.79: "A"
     104        RenderSVGInlineText {#text} at (54,-48) size 33x59
     105          chunk 1 (middle anchor) text run 3 at (317.05,340.00) startOffset 0 endOffset 1 width 32.58: "T"
     106        RenderSVGTSpan {tspan} at (0,0) size 12x44
     107          RenderSVGInlineText {#text} at (86,-36) size 12x44
     108            chunk 1 (middle anchor) text run 4 at (349.63,340.00) startOffset 0 endOffset 1 width 11.11: "I"
     109        RenderSVGTSpan {tspan} at (0,0) size 55x69
     110          RenderSVGInlineText {#text} at (93,-46) size 55x69
     111            chunk 1 (middle anchor) text run 5 at (360.74,340.00) startOffset 0 endOffset 1 width 35.57: "K"
    112112        RenderSVGInlineText {#text} at (0,0) size 0x0
    113113      RenderSVGText {text} at (87,400) size 66x14 contains 1 chunk(s)
  • trunk/LayoutTests/platform/mac/svg/batik/text/textGlyphOrientationHorizontal-expected.checksum

    r26602 r29246  
    1 5deb3445896f5b370c451e19215aa257
     1ff75ffb9ebf94129cf88592702199b65
  • trunk/LayoutTests/platform/mac/svg/batik/text/textLayout2-expected.checksum

    r26602 r29246  
    1 7884df254ea4ac9a33fe177a5ca382cb
     146110a8643dcc54a8f6e1b4b52b32bb5
  • trunk/LayoutTests/platform/mac/svg/batik/text/textOnPath3-expected.checksum

    r26602 r29246  
    1 7999e46756275da64d2c471d073d4f59
     14b64d48ecb8015fdaf929ab4736ef776
  • trunk/LayoutTests/platform/mac/svg/batik/text/textPCDATA-expected.checksum

    r26602 r29246  
    1 f2252c3130d622a2dcaf5532239f5ae8
     114cc9317ca80dbaac372b63c865a24a7
  • trunk/LayoutTests/platform/mac/svg/batik/text/textPosition-expected.checksum

    r26602 r29246  
    1 df99d29569cb921716dbe0552336999e
     190c73ab81ca159dcb656145f9f0a66b6
  • trunk/LayoutTests/platform/mac/svg/batik/text/textPosition2-expected.checksum

    r26602 r29246  
    1 988c0e39afd9a5284df6b37bb5ee0777
     1ff05d12e0e84f466b37451acaf3b2afc
  • trunk/LayoutTests/platform/mac/svg/batik/text/textPosition2-expected.txt

    r29244 r29246  
    77      RenderSVGInlineText {#text} at (0,-14) size 106x17
    88        chunk 1 (middle anchor) text run 1 at (172.00,30.00) startOffset 0 endOffset 15 width 106.00: "Text Position 2"
    9     RenderSVGContainer {g} at (50,58) size 399x295
    10       RenderSVGText {text} at (50,80) size 53x28 contains 1 chunk(s)
    11         RenderSVGInlineText {#text} at (0,-22) size 53x28
    12           chunk 1 text run 1 at (50.00,80.00) startOffset 0 endOffset 5 width 53.00: "Batik"
     9    RenderSVGContainer {g} at (50,59) size 399x294
     10      RenderSVGText {text} at (50,80) size 53x26 contains 1 chunk(s)
     11        RenderSVGInlineText {#text} at (0,-21) size 53x26
     12          chunk 1 text run 1 at (50.00,80.00) startOffset 0 endOffset 5 width 53.36: "Batik"
    1313      RenderSVGText {text} at (50,100) size 103x11 contains 1 chunk(s)
    1414        RenderSVGInlineText {#text} at (0,-9) size 103x11
    1515          chunk 1 text run 1 at (50.00,100.00) startOffset 0 endOffset 21 width 103.00: "<text x=\"100\" y=\"80\">"
    16       RenderSVGText {text} at (240,80) size 133x28 contains 1 chunk(s)
    17         RenderSVGInlineText {#text} at (0,-22) size 133x28
    18           chunk 1 text run 1 at (240.00,80.00) startOffset 0 endOffset 5 width 53.00: "Batik"
     16      RenderSVGText {text} at (240,80) size 133x26 contains 1 chunk(s)
     17        RenderSVGInlineText {#text} at (0,-21) size 133x26
     18          chunk 1 text run 1 at (240.00,80.00) startOffset 0 endOffset 5 width 53.36: "Batik"
    1919      RenderSVGText {text} at (240,100) size 194x11 contains 1 chunk(s)
    2020        RenderSVGInlineText {#text} at (0,-9) size 194x11
    2121          chunk 1 text run 1 at (240.00,100.00) startOffset 0 endOffset 41 width 194.00: "<text x=\"240\" y=\"80\" letter-spacing=\"20\">"
    22       RenderSVGText {text} at (50,140) size 92x28 contains 5 chunk(s)
    23         RenderSVGInlineText {#text} at (0,-22) size 92x28
    24           chunk 1 text run 1 at (50.00,140.00) startOffset 0 endOffset 1 width 16.00: "B"
    25           chunk 2 text run 1 at (70.00,140.00) startOffset 1 endOffset 2 width 11.00: "a"
    26           chunk 3 text run 1 at (90.00,140.00) startOffset 2 endOffset 3 width 7.00: "t"
    27           chunk 4 text run 1 at (110.00,140.00) startOffset 3 endOffset 4 width 7.00: "i"
     22      RenderSVGText {text} at (50,140) size 92x26 contains 5 chunk(s)
     23        RenderSVGInlineText {#text} at (0,-21) size 92x26
     24          chunk 1 text run 1 at (50.00,140.00) startOffset 0 endOffset 1 width 16.01: "B"
     25          chunk 2 text run 1 at (70.00,140.00) startOffset 1 endOffset 2 width 13.35: "a"
     26          chunk 3 text run 1 at (90.00,140.00) startOffset 2 endOffset 3 width 6.67: "t"
     27          chunk 4 text run 1 at (110.00,140.00) startOffset 3 endOffset 4 width 5.33: "i"
    2828          chunk 5 text run 1 at (130.00,140.00) startOffset 4 endOffset 5 width 12.00: "k"
    2929      RenderSVGText {text} at (50,160) size 175x11 contains 1 chunk(s)
    3030        RenderSVGInlineText {#text} at (0,-9) size 175x11
    3131          chunk 1 text run 1 at (50.00,160.00) startOffset 0 endOffset 35 width 175.00: "<text x=\"50 70 90 110 130\" y=\"140\">"
    32       RenderSVGText {text} at (240,140) size 133x28 contains 1 chunk(s)
    33         RenderSVGInlineText {#text} at (0,-22) size 133x28
    34           chunk 1 text run 1 at (240.00,140.00) startOffset 0 endOffset 5 width 53.00: "Batik"
     32      RenderSVGText {text} at (240,140) size 133x26 contains 1 chunk(s)
     33        RenderSVGInlineText {#text} at (0,-21) size 133x26
     34          chunk 1 text run 1 at (240.00,140.00) startOffset 0 endOffset 5 width 53.36: "Batik"
    3535      RenderSVGText {text} at (240,160) size 175x11 contains 1 chunk(s)
    3636        RenderSVGInlineText {#text} at (0,-9) size 175x11
    3737          chunk 1 text run 1 at (240.00,160.00) startOffset 0 endOffset 35 width 175.00: "<text dx=\"240 20 20 20 20\" y=\"140\">"
    38       RenderSVGText {text} at (50,200) size 53x28 contains 1 chunk(s)
    39         RenderSVGTSpan {tspan} at (0,0) size 53x28
    40           RenderSVGInlineText {#text} at (0,-22) size 53x28
    41             chunk 1 text run 1 at (50.00,200.00) startOffset 0 endOffset 5 width 53.00: "Batik"
     38      RenderSVGText {text} at (50,200) size 53x26 contains 1 chunk(s)
     39        RenderSVGTSpan {tspan} at (0,0) size 53x26
     40          RenderSVGInlineText {#text} at (0,-21) size 53x26
     41            chunk 1 text run 1 at (50.00,200.00) startOffset 0 endOffset 5 width 53.36: "Batik"
    4242      RenderSVGText {text} at (50,220) size 112x11 contains 1 chunk(s)
    4343        RenderSVGInlineText {#text} at (0,-9) size 112x11
    4444          chunk 1 text run 1 at (50.00,220.00) startOffset 0 endOffset 22 width 112.00: "<tspan x=\"50\" y=\"200\">"
    45       RenderSVGText {text} at (240,200) size 133x28 contains 1 chunk(s)
    46         RenderSVGTSpan {tspan} at (0,0) size 133x28
    47           RenderSVGInlineText {#text} at (0,-22) size 133x28
    48             chunk 1 text run 1 at (240.00,200.00) startOffset 0 endOffset 5 width 53.00: "Batik"
     45      RenderSVGText {text} at (240,200) size 133x26 contains 1 chunk(s)
     46        RenderSVGTSpan {tspan} at (0,0) size 133x26
     47          RenderSVGInlineText {#text} at (0,-21) size 133x26
     48            chunk 1 text run 1 at (240.00,200.00) startOffset 0 endOffset 5 width 53.36: "Batik"
    4949      RenderSVGText {text} at (240,220) size 209x11 contains 1 chunk(s)
    5050        RenderSVGTSpan {tspan} at (0,0) size 209x11
    5151          RenderSVGInlineText {#text} at (0,-9) size 209x11
    5252            chunk 1 text run 1 at (240.00,220.00) startOffset 0 endOffset 43 width 209.00: "<tspan x=\"240\" y=\"200\" letter-spacing=\"20\">"
    53       RenderSVGText {text} at (50,260) size 92x28 contains 5 chunk(s)
    54         RenderSVGTSpan {tspan} at (0,0) size 92x28
    55           RenderSVGInlineText {#text} at (0,-22) size 92x28
    56             chunk 1 text run 1 at (50.00,260.00) startOffset 0 endOffset 1 width 16.00: "B"
    57             chunk 2 text run 1 at (70.00,260.00) startOffset 1 endOffset 2 width 11.00: "a"
    58             chunk 3 text run 1 at (90.00,260.00) startOffset 2 endOffset 3 width 7.00: "t"
    59             chunk 4 text run 1 at (110.00,260.00) startOffset 3 endOffset 4 width 7.00: "i"
     53      RenderSVGText {text} at (50,260) size 92x26 contains 5 chunk(s)
     54        RenderSVGTSpan {tspan} at (0,0) size 92x26
     55          RenderSVGInlineText {#text} at (0,-21) size 92x26
     56            chunk 1 text run 1 at (50.00,260.00) startOffset 0 endOffset 1 width 16.01: "B"
     57            chunk 2 text run 1 at (70.00,260.00) startOffset 1 endOffset 2 width 13.35: "a"
     58            chunk 3 text run 1 at (90.00,260.00) startOffset 2 endOffset 3 width 6.67: "t"
     59            chunk 4 text run 1 at (110.00,260.00) startOffset 3 endOffset 4 width 5.33: "i"
    6060            chunk 5 text run 1 at (130.00,260.00) startOffset 4 endOffset 5 width 12.00: "k"
    6161      RenderSVGText {text} at (50,280) size 184x11 contains 1 chunk(s)
    6262        RenderSVGInlineText {#text} at (0,-9) size 184x11
    6363          chunk 1 text run 1 at (50.00,280.00) startOffset 0 endOffset 36 width 184.00: "<tspan x=\"50 70 90 110 130\" y=\"260\">"
    64       RenderSVGText {text} at (240,260) size 133x28 contains 1 chunk(s)
    65         RenderSVGTSpan {tspan} at (0,0) size 133x28
    66           RenderSVGInlineText {#text} at (0,-22) size 133x28
    67             chunk 1 text run 1 at (240.00,260.00) startOffset 0 endOffset 5 width 53.00: "Batik"
     64      RenderSVGText {text} at (240,260) size 133x26 contains 1 chunk(s)
     65        RenderSVGTSpan {tspan} at (0,0) size 133x26
     66          RenderSVGInlineText {#text} at (0,-21) size 133x26
     67            chunk 1 text run 1 at (240.00,260.00) startOffset 0 endOffset 5 width 53.36: "Batik"
    6868      RenderSVGText {text} at (240,280) size 184x11 contains 1 chunk(s)
    6969        RenderSVGInlineText {#text} at (0,-9) size 184x11
    7070          chunk 1 text run 1 at (240.00,280.00) startOffset 0 endOffset 36 width 184.00: "<tspan dx=\"240 20 20 20 20\" y=\"260\">"
    71       RenderSVGText {text} at (50,320) size 92x28 contains 5 chunk(s)
    72         RenderSVGTSpan {tspan} at (0,0) size 92x28
    73           RenderSVGInlineText {#text} at (0,-22) size 92x28
    74             chunk 1 text run 1 at (50.00,320.00) startOffset 0 endOffset 1 width 16.00: "B"
    75             chunk 2 text run 1 at (70.00,320.00) startOffset 1 endOffset 2 width 11.00: "a"
    76             chunk 3 text run 1 at (90.00,320.00) startOffset 2 endOffset 3 width 7.00: "t"
    77             chunk 4 text run 1 at (110.00,320.00) startOffset 3 endOffset 4 width 7.00: "i"
     71      RenderSVGText {text} at (50,320) size 92x26 contains 5 chunk(s)
     72        RenderSVGTSpan {tspan} at (0,0) size 92x26
     73          RenderSVGInlineText {#text} at (0,-21) size 92x26
     74            chunk 1 text run 1 at (50.00,320.00) startOffset 0 endOffset 1 width 16.01: "B"
     75            chunk 2 text run 1 at (70.00,320.00) startOffset 1 endOffset 2 width 13.35: "a"
     76            chunk 3 text run 1 at (90.00,320.00) startOffset 2 endOffset 3 width 6.67: "t"
     77            chunk 4 text run 1 at (110.00,320.00) startOffset 3 endOffset 4 width 5.33: "i"
    7878            chunk 5 text run 1 at (130.00,320.00) startOffset 4 endOffset 5 width 12.00: "k"
    7979      RenderSVGText {text} at (50,340) size 170x22 contains 2 chunk(s)
     
    8383          RenderSVGInlineText {#text} at (33,2) size 137x11
    8484            chunk 2 text run 1 at (83.00,351.00) startOffset 0 endOffset 27 width 137.00: "dx=\"0 10 20 30 40\" y=\"320\">"
    85       RenderSVGText {text} at (240,320) size 133x28 contains 1 chunk(s)
    86         RenderSVGTSpan {tspan} at (0,0) size 133x28
    87           RenderSVGInlineText {#text} at (0,-22) size 133x28
    88             chunk 1 text run 1 at (240.00,320.00) startOffset 0 endOffset 5 width 53.00: "Batik"
     85      RenderSVGText {text} at (240,320) size 133x26 contains 1 chunk(s)
     86        RenderSVGTSpan {tspan} at (0,0) size 133x26
     87          RenderSVGInlineText {#text} at (0,-21) size 133x26
     88            chunk 1 text run 1 at (240.00,320.00) startOffset 0 endOffset 5 width 53.36: "Batik"
    8989      RenderSVGText {text} at (240,340) size 191x22 contains 2 chunk(s)
    9090        RenderSVGInlineText {#text} at (0,-9) size 169x11
  • trunk/LayoutTests/platform/mac/svg/batik/text/textProperties-expected.checksum

    r28483 r29246  
    1 6c21a6781c6372037dbb34959d2426c9
     1d6c408c5b9e2d4bcaea3c243f772728b
  • trunk/LayoutTests/platform/mac/svg/batik/text/textStyles-expected.checksum

    r26602 r29246  
    1 9f787c86f02fa2edb499dc78b6bf720b
     17dff527d9846ceef7c922693ba1f1489
  • trunk/LayoutTests/platform/mac/svg/batik/text/xmlSpace-expected.checksum

    r26602 r29246  
    1 19be43352ab163f9b963e5d812fee4de
     18ad6f95e4899bbccded204f5ebc76ae3
  • trunk/LayoutTests/platform/mac/svg/custom/focus-ring-expected.checksum

    r29244 r29246  
    1 8f866a660fd820c5989b1defcacc2db7
     15adae7c51bc08be19fcaa605be82bc9b
  • trunk/LayoutTests/platform/mac/svg/custom/font-face-simple-expected.checksum

    r29012 r29246  
    1 6960fd15370d0ff0aaf299d684972228
     14e1fa149e2a3bfc94ec252d6437e558f
  • trunk/LayoutTests/platform/mac/svg/custom/font-face-simple-expected.txt

    r29012 r29246  
    22  RenderView at (0,0) size 800x600
    33layer at (0,0) size 800x600
    4   RenderSVGRoot {svg} at (10,34) size 676x245
     4  RenderSVGRoot {svg} at (10,34) size 676x235
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    66    RenderSVGText {text} at (10,113) size 676x100 contains 1 chunk(s)
    77      RenderSVGInlineText {#text} at (0,-79) size 676x100
    88        chunk 1 text run 1 at (10.00,113.39) startOffset 0 endOffset 13 width 676.00: "CSS font-face"
    9     RenderSVGText {text} at (10,226) size 567x135 contains 1 chunk(s)
    10       RenderSVGInlineText {#text} at (0,-82) size 567x135
    11         chunk 1 text run 1 at (10.00,226.77) startOffset 0 endOffset 13 width 567.00: "SVG font-face"
     9    RenderSVGText {text} at (10,226) size 676x101 contains 1 chunk(s)
     10      RenderSVGInlineText {#text} at (0,-79) size 676x101
     11        chunk 1 text run 1 at (10.00,226.77) startOffset 0 endOffset 13 width 676.00: "SVG font-face"
    1212    RenderSVGText {text} at (40,264) size 257x19 contains 1 chunk(s)
    1313      RenderSVGInlineText {#text} at (0,-14) size 257x19
  • trunk/LayoutTests/platform/mac/svg/custom/linking-a-03-b-preserveAspectRatio-expected.checksum

    r26602 r29246  
    1 64e2645a1f6e6f326bc589afe1f16a1e
     1c17fe71fa2e90144fa2eb35a28bea549
  • trunk/LayoutTests/platform/mac/svg/custom/linking-a-03-b-transform-expected.checksum

    r26602 r29246  
    1 64e2645a1f6e6f326bc589afe1f16a1e
     1c17fe71fa2e90144fa2eb35a28bea549
  • trunk/LayoutTests/platform/mac/svg/custom/linking-a-03-b-viewBox-expected.checksum

    r26602 r29246  
    1 cd253f68a4e593db54ab37e645ec8a80
     11c54a16dd9650d68af3266187c5d50ae
  • trunk/LayoutTests/platform/mac/svg/custom/linking-a-03-b-viewTarget-expected.checksum

    r26602 r29246  
    1 64e2645a1f6e6f326bc589afe1f16a1e
     1c17fe71fa2e90144fa2eb35a28bea549
  • trunk/LayoutTests/platform/mac/svg/custom/linking-a-03-b-zoomAndPan-expected.checksum

    r26602 r29246  
    1 64e2645a1f6e6f326bc589afe1f16a1e
     1c17fe71fa2e90144fa2eb35a28bea549
  • trunk/LayoutTests/platform/mac/svg/custom/pattern-rotate-expected.checksum

    r26602 r29246  
    1 3308b5fe856bde91b2f1e917dcacf5f2
     1078fc32197b9eca5a648067d8e24d882
  • trunk/LayoutTests/platform/mac/svg/custom/pointer-events-path-expected.checksum

    r27850 r29246  
    1 cec195305500ac8266587255d763f170
     13b0a724494fe2e75e24c856bd8dfc849
  • trunk/LayoutTests/platform/mac/svg/custom/pointer-events-text-expected.checksum

    r27850 r29246  
    1 84c6f9de996b6a9da600f075d2c3176c
     18672d8f5cb651f9af5dcbd4c9ac555c9
  • trunk/LayoutTests/platform/mac/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.checksum

    r27850 r29246  
    1 19e70a36e5c698a3ec94207119e12063
     1b249e8e43731df5562665a7c53a80cab
  • trunk/LayoutTests/platform/mac/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.txt

    r26599 r29246  
    5959                          RenderView at (0,0) size 480x360
    6060                        layer at (0,0) size 480x360
    61                           RenderSVGRoot {svg} at (0.50,-32.40) size 487.30x391.90
    62                             RenderSVGContainer {g} at (35.10,-32.40) size 452.70x347.40
     61                          RenderSVGRoot {svg} at (0.50,0.50) size 479x359
     62                            RenderSVGContainer {g} at (35.10,10.80) size 428.40x304.20
    6363                              RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    64                               RenderSVGContainer {g} at (35.10,-32.40) size 452.70x347.40 [transform={m=((1.80,0.00)(0.00,1.80)) t=(0.00,0.00)}]
     64                              RenderSVGContainer {g} at (35.10,10.80) size 428.40x304.20 [transform={m=((1.80,0.00)(0.00,1.80)) t=(0.00,0.00)}]
    6565                                RenderPath {rect} at (36,18) size 414x279 [fill={[type=SOLID] [color=#C0C0C0]}] [data="M20.00,10.00L250.00,10.00L250.00,165.00L20.00,165.00"]
    6666                                RenderPath {line} at (58.50,18) size 27x297 [stroke={[type=SOLID] [color=#FFFFFF] [stroke width=15.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M40.00,10.00L40.00,175.00"]
     
    7373                                RenderPath {line} at (436.50,18) size 27x297 [stroke={[type=SOLID] [color=#FFFFFF] [stroke width=15.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M250.00,10.00L250.00,175.00"]
    7474                                RenderPath {rect} at (35.10,17.10) size 415.80x280.80 [stroke={[type=SOLID] [color=#000000]}] [data="M20.00,10.00L250.00,10.00L250.00,165.00L20.00,165.00"]
    75                                 RenderSVGContainer {g} at (54,-32.40) size 433.80x311.40 [opacity=0.50]
    76                                   RenderSVGText {text} at (30,90) size 241x138 contains 1 chunk(s)
    77                                     RenderSVGInlineText {#text} at (0,-108) size 241x138
    78                                       chunk 1 text run 1 at (30.00,90.00) startOffset 0 endOffset 3 width 241.00: "SVG"
     75                                RenderSVGContainer {g} at (54,10.80) size 381.60x268.20 [opacity=0.50]
     76                                  RenderSVGText {text} at (30,90) size 132x120 contains 1 chunk(s)
     77                                    RenderSVGInlineText {#text} at (0,-84) size 132x120
     78                                      chunk 1 text run 1 at (30.00,90.00) startOffset 0 endOffset 3 width 132.36: "SVG"
    7979                                  RenderPath {rect} at (126,99) size 234x126 [fill={[type=SOLID] [color=#820032]}] [data="M70.00,55.00L200.00,55.00L200.00,125.00L70.00,125.00"]
    8080                                  RenderImage {image} at (0,0) size 80x80
  • trunk/LayoutTests/platform/mac/svg/custom/text-hit-test-expected.checksum

    r27850 r29246  
    1 6d9db018835b1a92a3c1ebba6328365f
     186763c3c748e72e1f6adb5697b713cbc
  • trunk/LayoutTests/platform/mac/svg/text/text-align-01-b-expected.checksum

    r26602 r29246  
    1 283b931f04ff0a96725c8caf780c62f1
     12ef193b2906c88ff484354a03122a9d1
  • trunk/LayoutTests/platform/mac/svg/text/text-align-02-b-expected.checksum

    r26602 r29246  
    1 28330832abcf6c9d1e4d2683a8648a79
     1708e4618592ff8e046e3bc006e17e3b0
  • trunk/LayoutTests/platform/mac/svg/text/text-align-05-b-expected.checksum

    r26602 r29246  
    1 6b7cfd4df06ff6169f935716d502dced
     116110add408554d1b166e98a32f1c798
  • trunk/LayoutTests/platform/mac/svg/text/text-align-06-b-expected.checksum

    r26602 r29246  
    1 47f823ae9277df7c5b3e31ca8ed3875b
     13294ad9f5f2607f5946f0a8c7ac98f7c
  • trunk/LayoutTests/platform/mac/svg/text/text-altglyph-01-b-expected.checksum

    r29244 r29246  
    1 6b91b002ca541a81bf8c012031ad0a9c
     1b1937e38977f2e9e89a236f106e915d3
  • trunk/LayoutTests/platform/mac/svg/text/text-altglyph-01-b-expected.txt

    r29244 r29246  
    33layer at (0,0) size 800x600
    44  RenderSVGRoot {svg} at (0.83,0.83) size 798.33x598.33
    5     RenderSVGContainer {g} at (8.33,23.33) size 775x460
     5    RenderSVGContainer {g} at (8.33,23.33) size 772.78x452.78
    66      RenderSVGText {text} at (5,50) size 403x44 contains 1 chunk(s)
    77        RenderSVGInlineText {#text} at (0,-36) size 403x44
     
    1111          chunk 1 text run 1 at (5.00,90.00) startOffset 0 endOffset 32 width 463.00: "and many-to-many chars to glyphs"
    1212      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    13       RenderSVGContainer {g} at (75,308.33) size 708.33x175
     13      RenderSVGContainer {g} at (82.22,315.56) size 698.89x160.56
    1414        RenderSVGText {text}
    15         RenderSVGText {text} at (50,270) size 43x69 contains 1 chunk(s)
    16           RenderSVGInlineText {#text} at (0,-54) size 43x69
    17             chunk 1 text run 1 at (50.00,270.00) startOffset 0 endOffset 1 width 43.00: "D"
    18         RenderSVGText {text} at (280,270) size 185x69 contains 1 chunk(s)
    19           RenderSVGInlineText {#text} at (0,-54) size 185x69
    20             chunk 1 text run 1 at (280.00,270.00) startOffset 0 endOffset 5 width 185.00: "SASSY"
     15        RenderSVGText {text} at (50,270) size 38x75 contains 1 chunk(s)
     16          RenderSVGInlineText {#text} at (0,-60) size 38x75
     17            chunk 1 text run 1 at (50.00,270.00) startOffset 0 endOffset 1 width 37.50: "D"
     18        RenderSVGText {text} at (280,270) size 188x75 contains 1 chunk(s)
     19          RenderSVGInlineText {#text} at (0,-60) size 188x75
     20            chunk 1 text run 1 at (280.00,270.00) startOffset 0 endOffset 5 width 157.50: "SASSY"
    2121    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
    2222      RenderSVGInlineText {#text} at (0,-36) size 264x46
  • trunk/LayoutTests/platform/mac/svg/text/text-fonts-01-t-expected.checksum

    r26602 r29246  
    1 b5b8213e3c552a4ed1c71901f2cdf4a6
     11fd259547562e05f98fa567b44840c82
  • trunk/LayoutTests/platform/mac/svg/text/text-intro-05-t-expected.checksum

    r26602 r29246  
    1 84d64d0c0aa99b5e4c61248314600bd7
     10972ddc749a479264ab159921c9aca7a
  • trunk/LayoutTests/platform/mac/svg/text/text-text-04-t-expected.checksum

    r29244 r29246  
    1 bc77c6e4da484f0485dea643a4bc84bf
     1f4dc5baeaa0b5afb6a916782ebfb12cc
  • trunk/LayoutTests/platform/mac/svg/text/text-text-04-t-expected.txt

    r29244 r29246  
    44  RenderSVGRoot {svg} at (0.83,0.83) size 798.33x598.33
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    6     RenderSVGContainer {g} at (60,36.67) size 696.67x480
    7       RenderSVGContainer {g} at (60.00,36.67) size 238.33x38.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,40.00)}]
     6    RenderSVGContainer {g} at (60,33.33) size 696.67x483.33
     7      RenderSVGContainer {g} at (60.00,33.33) size 256.67x41.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,40.00)}]
    88        RenderSVGText {text} at (-94,0) size 65x18 contains 1 chunk(s)
    99          RenderSVGInlineText {#text} at (0,-14) size 65x18
    1010            chunk 1 (end anchor) text run 1 at (-94.00,0.00) startOffset 0 endOffset 9 width 64.00: "Reference"
    11         RenderSVGContainer {g} at (210.00,36.67) size 88.33x38.33
     11        RenderSVGContainer {g} at (210.00,33.33) size 106.67x41.67
    1212          RenderSVGContainer {use} at (210.00,60.00) size 13.33x13.33
    1313            RenderSVGContainer {g} at (210.00,60.00) size 13.33x13.33
     
    2222            RenderSVGContainer {g} at (285,60.00) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(45.00,0.00)}]
    2323              RenderPath {rect} at (285,60.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    24           RenderSVGText {text} at (0,0) size 40x23 contains 1 chunk(s)
    25             RenderSVGInlineText {#text} at (0,-18) size 40x23
    26               chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 4 width 40.00: "1234"
     24          RenderSVGText {text} at (0,0) size 60x25 contains 1 chunk(s)
     25            RenderSVGInlineText {#text} at (0,-20) size 60x25
     26              chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 4 width 60.00: "1234"
    2727      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    2828        RenderPath {rect} at (-4,-4) size 8x8 [fill={[type=SOLID] [color=#000000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    29       RenderSVGContainer {g} at (121.67,103.33) size 245x38.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,80.00)}]
     29      RenderSVGContainer {g} at (121.67,100.00) size 253.33x41.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,80.00)}]
    3030        RenderSVGText {text} at (-57,0) size 28x18 contains 1 chunk(s)
    3131          RenderSVGInlineText {#text} at (0,-14) size 28x18
     
    4646          RenderSVGContainer {g} at (343.33,126.67) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(80.00,0.00)}]
    4747            RenderPath {rect} at (343.33,126.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    48         RenderSVGText {text} at (20,0) size 70x23 contains 4 chunk(s)
    49           RenderSVGInlineText {#text} at (0,-18) size 70x23
    50             chunk 1 text run 1 at (20.00,0.00) startOffset 0 endOffset 1 width 10.00: "1"
    51             chunk 2 text run 1 at (40.00,0.00) startOffset 1 endOffset 2 width 10.00: "2"
    52             chunk 3 text run 1 at (60.00,0.00) startOffset 2 endOffset 3 width 10.00: "3"
    53             chunk 4 text run 1 at (80.00,0.00) startOffset 3 endOffset 4 width 10.00: "4"
    54       RenderSVGContainer {g} at (93.33,170) size 296.67x38.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,120.00)}]
     48        RenderSVGText {text} at (20,0) size 75x25 contains 4 chunk(s)
     49          RenderSVGInlineText {#text} at (0,-20) size 75x25
     50            chunk 1 text run 1 at (20.00,0.00) startOffset 0 endOffset 1 width 15.00: "1"
     51            chunk 2 text run 1 at (40.00,0.00) startOffset 1 endOffset 2 width 15.00: "2"
     52            chunk 3 text run 1 at (60.00,0.00) startOffset 2 endOffset 3 width 15.00: "3"
     53            chunk 4 text run 1 at (80.00,0.00) startOffset 3 endOffset 4 width 15.00: "4"
     54      RenderSVGContainer {g} at (93.33,166.67) size 296.67x41.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,120.00)}]
    5555        RenderSVGText {text} at (-74,0) size 45x18 contains 1 chunk(s)
    5656          RenderSVGInlineText {#text} at (0,-14) size 45x18
     
    7474          RenderSVGContainer {g} at (376.67,193.33) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,0.00)}]
    7575            RenderPath {rect} at (376.67,193.33) size 13.33x13.33 [fill={[type=SOLID] [color=#FF0000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    76         RenderSVGText {text} at (20,0) size 70x23 contains 4 chunk(s)
    77           RenderSVGInlineText {#text} at (0,-18) size 70x23
    78             chunk 1 text run 1 at (20.00,0.00) startOffset 0 endOffset 1 width 10.00: "1"
    79             chunk 2 text run 1 at (40.00,0.00) startOffset 1 endOffset 2 width 10.00: "2"
    80             chunk 3 text run 1 at (60.00,0.00) startOffset 2 endOffset 3 width 10.00: "3"
    81             chunk 4 text run 1 at (80.00,0.00) startOffset 3 endOffset 4 width 10.00: "4"
    82       RenderSVGContainer {g} at (86.67,236.67) size 263.33x38.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,160.00)}]
     76        RenderSVGText {text} at (20,0) size 75x25 contains 4 chunk(s)
     77          RenderSVGInlineText {#text} at (0,-20) size 75x25
     78            chunk 1 text run 1 at (20.00,0.00) startOffset 0 endOffset 1 width 15.00: "1"
     79            chunk 2 text run 1 at (40.00,0.00) startOffset 1 endOffset 2 width 15.00: "2"
     80            chunk 3 text run 1 at (60.00,0.00) startOffset 2 endOffset 3 width 15.00: "3"
     81            chunk 4 text run 1 at (80.00,0.00) startOffset 3 endOffset 4 width 15.00: "4"
     82      RenderSVGContainer {g} at (86.67,233.33) size 280x41.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,160.00)}]
    8383        RenderSVGText {text} at (-78,0) size 49x18 contains 1 chunk(s)
    8484          RenderSVGInlineText {#text} at (0,-14) size 49x18
     
    9999          RenderSVGContainer {g} at (335,260) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(75.00,0.00)}]
    100100            RenderPath {rect} at (335,260) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    101         RenderSVGText {text} at (20,0) size 60x23 contains 3 chunk(s)
    102           RenderSVGInlineText {#text} at (0,-18) size 60x23
    103             chunk 1 text run 1 at (20.00,0.00) startOffset 0 endOffset 1 width 10.00: "1"
    104             chunk 2 text run 1 at (40.00,0.00) startOffset 1 endOffset 2 width 10.00: "2"
    105             chunk 3 text run 1 at (60.00,0.00) startOffset 2 endOffset 4 width 20.00: "34"
    106       RenderSVGContainer {g} at (121.67,286.67) size 176.67x71.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,200.00)}]
     101        RenderSVGText {text} at (20,0) size 70x25 contains 3 chunk(s)
     102          RenderSVGInlineText {#text} at (0,-20) size 70x25
     103            chunk 1 text run 1 at (20.00,0.00) startOffset 0 endOffset 1 width 15.00: "1"
     104            chunk 2 text run 1 at (40.00,0.00) startOffset 1 endOffset 2 width 15.00: "2"
     105            chunk 3 text run 1 at (60.00,0.00) startOffset 2 endOffset 4 width 30.00: "34"
     106      RenderSVGContainer {g} at (121.67,283.33) size 195x75 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,200.00)}]
    107107        RenderSVGText {text} at (-57,0) size 28x18 contains 1 chunk(s)
    108108          RenderSVGInlineText {#text} at (0,-14) size 28x18
     
    120120          RenderSVGContainer {g} at (285,343.33) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(45.00,10.00)}]
    121121            RenderPath {rect} at (285,343.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    122         RenderSVGText {text} at (0,-10) size 40x43 contains 1 chunk(s)
    123           RenderSVGInlineText {#text} at (0,-18) size 40x43
    124             chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 40.00: "1234"
    125       RenderSVGContainer {g} at (93.33,370) size 205x71.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,250.00)}]
     122        RenderSVGText {text} at (0,-10) size 60x45 contains 1 chunk(s)
     123          RenderSVGInlineText {#text} at (0,-20) size 60x45
     124            chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 60.00: "1234"
     125      RenderSVGContainer {g} at (93.33,366.67) size 223.33x75 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,250.00)}]
    126126        RenderSVGText {text} at (-74,0) size 45x18 contains 1 chunk(s)
    127127          RenderSVGInlineText {#text} at (0,-14) size 45x18
     
    139139          RenderSVGContainer {g} at (285,426.67) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(45.00,10.00)}]
    140140            RenderPath {rect} at (285,426.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    141         RenderSVGText {text} at (0,-10) size 40x43 contains 1 chunk(s)
    142           RenderSVGInlineText {#text} at (0,-18) size 40x43
    143             chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 40.00: "1234"
    144       RenderSVGContainer {g} at (86.67,453.33) size 211.67x63.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,300.00)}]
     141        RenderSVGText {text} at (0,-10) size 60x45 contains 1 chunk(s)
     142          RenderSVGInlineText {#text} at (0,-20) size 60x45
     143            chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 60.00: "1234"
     144      RenderSVGContainer {g} at (86.67,450) size 230x66.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,300.00)}]
    145145        RenderSVGText {text} at (-78,0) size 49x18 contains 1 chunk(s)
    146146          RenderSVGInlineText {#text} at (0,-14) size 49x18
     
    158158          RenderSVGContainer {g} at (285,501.67) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(45.00,5.00)}]
    159159            RenderPath {rect} at (285,501.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    160         RenderSVGText {text} at (0,-10) size 40x38 contains 1 chunk(s)
    161           RenderSVGInlineText {#text} at (0,-18) size 40x38
    162             chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 40.00: "1234"
    163       RenderSVGContainer {g} at (401.67,86.67) size 355x338.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,0.00)}]
    164         RenderSVGContainer {g} at (468.33,86.67) size 265x71.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,80.00)}]
     160        RenderSVGText {text} at (0,-10) size 60x40 contains 1 chunk(s)
     161          RenderSVGInlineText {#text} at (0,-20) size 60x40
     162            chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 60.00: "1234"
     163      RenderSVGContainer {g} at (401.67,83.33) size 355x341.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,0.00)}]
     164        RenderSVGContainer {g} at (468.33,83.33) size 273.33x75 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,80.00)}]
    165165          RenderSVGText {text} at (-69,0) size 40x18 contains 1 chunk(s)
    166166            RenderSVGInlineText {#text} at (0,-14) size 40x18
     
    181181            RenderSVGContainer {g} at (710.00,143.33) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(80.00,10.00)}]
    182182              RenderPath {rect} at (710.00,143.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    183           RenderSVGText {text} at (20,-10) size 70x43 contains 4 chunk(s)
    184             RenderSVGInlineText {#text} at (0,-18) size 70x43
    185               chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 10.00: "1"
    186               chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 10.00: "2"
    187               chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 3 width 10.00: "3"
    188               chunk 4 text run 1 at (80.00,10.00) startOffset 3 endOffset 4 width 10.00: "4"
    189         RenderSVGContainer {g} at (440.00,153.33) size 316.67x86.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,120.00)}]
     183          RenderSVGText {text} at (20,-10) size 75x45 contains 4 chunk(s)
     184            RenderSVGInlineText {#text} at (0,-20) size 75x45
     185              chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     186              chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     187              chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 3 width 15.00: "3"
     188              chunk 4 text run 1 at (80.00,10.00) startOffset 3 endOffset 4 width 15.00: "4"
     189        RenderSVGContainer {g} at (440.00,150) size 316.67x90 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,120.00)}]
    190190          RenderSVGText {text} at (-86,0) size 57x18 contains 1 chunk(s)
    191191            RenderSVGInlineText {#text} at (0,-14) size 57x18
     
    209209            RenderSVGContainer {g} at (743.33,226.67) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,20.00)}]
    210210              RenderPath {rect} at (743.33,226.67) size 13.33x13.33 [fill={[type=SOLID] [color=#FF0000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    211           RenderSVGText {text} at (20,-10) size 70x43 contains 4 chunk(s)
    212             RenderSVGInlineText {#text} at (0,-18) size 70x43
    213               chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 10.00: "1"
    214               chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 10.00: "2"
    215               chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 3 width 10.00: "3"
    216               chunk 4 text run 1 at (80.00,10.00) startOffset 3 endOffset 4 width 10.00: "4"
    217         RenderSVGContainer {g} at (433.33,220.00) size 283.33x63.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,160.00)}]
     211          RenderSVGText {text} at (20,-10) size 75x45 contains 4 chunk(s)
     212            RenderSVGInlineText {#text} at (0,-20) size 75x45
     213              chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     214              chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     215              chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 3 width 15.00: "3"
     216              chunk 4 text run 1 at (80.00,10.00) startOffset 3 endOffset 4 width 15.00: "4"
     217        RenderSVGContainer {g} at (433.33,216.67) size 300x66.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,160.00)}]
    218218          RenderSVGText {text} at (-90,0) size 61x18 contains 1 chunk(s)
    219219            RenderSVGInlineText {#text} at (0,-14) size 61x18
     
    234234            RenderSVGContainer {g} at (701.67,268.33) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(75.00,5.00)}]
    235235              RenderPath {rect} at (701.67,268.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    236           RenderSVGText {text} at (20,-10) size 60x38 contains 3 chunk(s)
    237             RenderSVGInlineText {#text} at (0,-18) size 60x38
    238               chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 10.00: "1"
    239               chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 10.00: "2"
    240               chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 4 width 20.00: "34"
    241         RenderSVGContainer {g} at (401.67,286.67) size 331.67x63.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,200.00)}]
     236          RenderSVGText {text} at (20,-10) size 70x40 contains 3 chunk(s)
     237            RenderSVGInlineText {#text} at (0,-20) size 70x40
     238              chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     239              chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     240              chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 4 width 30.00: "34"
     241        RenderSVGContainer {g} at (401.67,283.33) size 340x66.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,200.00)}]
    242242          RenderSVGText {text} at (-109,0) size 80x18 contains 1 chunk(s)
    243243            RenderSVGInlineText {#text} at (0,-14) size 80x18
     
    258258            RenderSVGContainer {g} at (710.00,335) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(80.00,5.00)}]
    259259              RenderPath {rect} at (710.00,335) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    260           RenderSVGText {text} at (20,-10) size 70x38 contains 4 chunk(s)
    261             RenderSVGInlineText {#text} at (0,-18) size 70x38
    262               chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 10.00: "1"
    263               chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 10.00: "2"
    264               chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 3 width 10.00: "3"
    265               chunk 4 text run 1 at (80.00,5.00) startOffset 3 endOffset 4 width 10.00: "4"
    266         RenderSVGContainer {g} at (401.67,353.33) size 317.53x71.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,240.00)}]
     260          RenderSVGText {text} at (20,-10) size 75x40 contains 4 chunk(s)
     261            RenderSVGInlineText {#text} at (0,-20) size 75x40
     262              chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     263              chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     264              chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 3 width 15.00: "3"
     265              chunk 4 text run 1 at (80.00,5.00) startOffset 3 endOffset 4 width 15.00: "4"
     266        RenderSVGContainer {g} at (401.67,350) size 331.67x75 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,240.00)}]
    267267          RenderSVGText {text} at (-109,0) size 80x18 contains 1 chunk(s)
    268268            RenderSVGInlineText {#text} at (0,-14) size 80x18
     
    283283            RenderSVGContainer {g} at (705.87,410) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(77.52,10.00)}]
    284284              RenderPath {rect} at (705.87,410) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    285           RenderSVGText {text} at (20,-10) size 60x43 contains 3 chunk(s)
    286             RenderSVGInlineText {#text} at (0,-18) size 60x43
    287               chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 10.00: "1"
    288               chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 10.00: "2"
    289               chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 4 width 20.00: "34"
     285          RenderSVGText {text} at (20,-10) size 70x45 contains 3 chunk(s)
     286            RenderSVGInlineText {#text} at (0,-20) size 70x45
     287              chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     288              chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     289              chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 4 width 30.00: "34"
    290290    RenderSVGText {text} at (10,340) size 284x46 contains 1 chunk(s)
    291291      RenderSVGInlineText {#text} at (0,-36) size 284x46
  • trunk/LayoutTests/platform/mac/svg/text/text-text-05-t-expected.checksum

    r29244 r29246  
    1 bda0b687bae6d38bff09df4f05f17c4a
     1bcc1bc7338bdb740ec3a9859440073f0
  • trunk/LayoutTests/platform/mac/svg/text/text-text-05-t-expected.txt

    r29244 r29246  
    3737          RenderSVGInlineText {#text} at (0,-14) size 44x18
    3838            chunk 1 text run 1 at (0.00,270.00) startOffset 0 endOffset 7 width 44.00: "2.x 2.y"
    39       RenderSVGContainer {g} at (191.67,15.00) size 183.33x535 [transform={m=((1.00,0.00)(0.00,1.00)) t=(150.00,40.00)}]
     39      RenderSVGContainer {g} at (191.67,15.00) size 233.33x535 [transform={m=((1.00,0.00)(0.00,1.00)) t=(150.00,40.00)}]
    4040        RenderSVGText {text} at (-36,-17) size 71x19 contains 1 chunk(s)
    4141          RenderSVGInlineText {#text} at (1,-14) size 71x19
     
    4545            chunk 1 (middle anchor) text run 1 at (-13.00,-3.00) startOffset 0 endOffset 5 width 26.00: "start"
    4646        RenderPath {line} at (249.17,83.33) size 1.67x466.67 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,10.00L0.00,290.00"]
    47         RenderSVGContainer {g} at (243.33,91.67) size 131.67x423.33
     47        RenderSVGContainer {g} at (243.33,91.67) size 181.67x423.33
    4848          RenderSVGContainer {use} at (243.33,91.67) size 13.33x31.67
    4949            RenderSVGContainer {g} at (243.33,91.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,30.00)}]
     
    5151                RenderPath {line} at (249.17,91.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    5252                RenderPath {rect} at (243.33,110) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    53           RenderSVGText {text} at (0,30) size 20x13 contains 1 chunk(s)
    54             RenderSVGInlineText {#text} at (0,-10) size 20x13
    55               chunk 1 text run 1 at (0.00,30.00) startOffset 0 endOffset 4 width 20.00: "1234"
     53          RenderSVGText {text} at (0,30) size 60x11 contains 1 chunk(s)
     54            RenderSVGInlineText {#text} at (0,-9) size 60x11
     55              chunk 1 text run 1 at (0.00,30.00) startOffset 0 endOffset 4 width 60.00: "1234"
    5656          RenderSVGContainer {use} at (260,141.67) size 13.33x31.67
    5757            RenderSVGContainer {g} at (260,141.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,60.00)}]
     
    7474                RenderPath {line} at (315.83,141.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    7575                RenderPath {rect} at (310,160.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    76           RenderSVGText {text} at (10,60) size 35x13 contains 4 chunk(s)
    77             RenderSVGInlineText {#text} at (0,-10) size 35x13
    78               chunk 1 text run 1 at (10.00,60.00) startOffset 0 endOffset 1 width 5.00: "1"
    79               chunk 2 text run 1 at (20.00,60.00) startOffset 1 endOffset 2 width 5.00: "2"
    80               chunk 3 text run 1 at (30.00,60.00) startOffset 2 endOffset 3 width 5.00: "3"
    81               chunk 4 text run 1 at (40.00,60.00) startOffset 3 endOffset 4 width 5.00: "4"
     76          RenderSVGText {text} at (10,60) size 45x11 contains 4 chunk(s)
     77            RenderSVGInlineText {#text} at (0,-9) size 45x11
     78              chunk 1 text run 1 at (10.00,60.00) startOffset 0 endOffset 1 width 15.00: "1"
     79              chunk 2 text run 1 at (20.00,60.00) startOffset 1 endOffset 2 width 15.00: "2"
     80              chunk 3 text run 1 at (30.00,60.00) startOffset 2 endOffset 3 width 15.00: "3"
     81              chunk 4 text run 1 at (40.00,60.00) startOffset 3 endOffset 4 width 15.00: "4"
    8282          RenderSVGContainer {use} at (260,191.67) size 13.33x31.67
    8383            RenderSVGContainer {g} at (260,191.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,90.00)}]
     
    9090                RenderPath {line} at (349.17,191.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    9191                RenderPath {rect} at (343.33,210.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    92           RenderSVGText {text} at (10,90) size 65x13 contains 2 chunk(s)
    93             RenderSVGInlineText {#text} at (0,-10) size 65x13
    94               chunk 1 text run 1 at (10.00,90.00) startOffset 0 endOffset 1 width 5.00: "1"
    95               chunk 2 text run 1 at (60.00,90.00) startOffset 1 endOffset 4 width 15.00: "234"
    96           RenderSVGContainer {g} at (243.33,225.00) size 88.33x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,120.00)}]
     92          RenderSVGText {text} at (10,90) size 95x11 contains 2 chunk(s)
     93            RenderSVGInlineText {#text} at (0,-9) size 95x11
     94              chunk 1 text run 1 at (10.00,90.00) startOffset 0 endOffset 1 width 15.00: "1"
     95              chunk 2 text run 1 at (60.00,90.00) startOffset 1 endOffset 4 width 45.00: "234"
     96          RenderSVGContainer {g} at (243.33,225.00) size 106.67x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,120.00)}]
    9797            RenderSVGContainer {use} at (243.33,225.00) size 13.33x31.67
    9898              RenderSVGContainer {g} at (243.33,225.00) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
     
    115115                  RenderPath {line} at (324.17,258.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    116116                  RenderPath {rect} at (318.33,276.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    117             RenderSVGText {text} at (0,-10) size 20x33 contains 1 chunk(s)
    118               RenderSVGInlineText {#text} at (0,-10) size 20x33
    119                 chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 20.00: "1234"
    120           RenderSVGContainer {g} at (260,275) size 65x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,150.00)}]
     117            RenderSVGText {text} at (0,-10) size 60x31 contains 1 chunk(s)
     118              RenderSVGInlineText {#text} at (0,-9) size 60x31
     119                chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 60.00: "1234"
     120          RenderSVGContainer {g} at (260,275) size 81.67x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,150.00)}]
    121121            RenderSVGContainer {use} at (260,275) size 13.33x31.67
    122122              RenderSVGContainer {g} at (260,275) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
     
    139139                  RenderPath {line} at (315.83,308.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    140140                  RenderPath {rect} at (310,326.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    141             RenderSVGText {text} at (10,-10) size 35x33 contains 4 chunk(s)
    142               RenderSVGInlineText {#text} at (0,-10) size 35x33
    143                 chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    144                 chunk 2 text run 1 at (20.00,-5.00) startOffset 1 endOffset 2 width 5.00: "2"
    145                 chunk 3 text run 1 at (30.00,5.00) startOffset 2 endOffset 3 width 5.00: "3"
    146                 chunk 4 text run 1 at (40.00,10.00) startOffset 3 endOffset 4 width 5.00: "4"
    147           RenderSVGContainer {g} at (260,325) size 80x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,180.00)}]
     141            RenderSVGText {text} at (10,-10) size 45x31 contains 4 chunk(s)
     142              RenderSVGInlineText {#text} at (0,-9) size 45x31
     143                chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     144                chunk 2 text run 1 at (20.00,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     145                chunk 3 text run 1 at (30.00,5.00) startOffset 2 endOffset 3 width 15.00: "3"
     146                chunk 4 text run 1 at (40.00,10.00) startOffset 3 endOffset 4 width 15.00: "4"
     147          RenderSVGContainer {g} at (260,325) size 98.33x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,180.00)}]
    148148            RenderSVGContainer {use} at (260,325) size 13.33x31.67
    149149              RenderSVGContainer {g} at (260,325) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
     
    166166                  RenderPath {line} at (332.50,358.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    167167                  RenderPath {rect} at (326.67,376.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    168             RenderSVGText {text} at (10,-10) size 25x33 contains 2 chunk(s)
    169               RenderSVGInlineText {#text} at (0,-10) size 25x33
    170                 chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    171                 chunk 2 text run 1 at (20.00,-5.00) startOffset 1 endOffset 4 width 15.00: "234"
    172           RenderSVGContainer {g} at (243.33,375) size 40x56.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,210.00)}]
     168            RenderSVGText {text} at (10,-10) size 55x31 contains 2 chunk(s)
     169              RenderSVGInlineText {#text} at (0,-9) size 55x31
     170                chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     171                chunk 2 text run 1 at (20.00,-5.00) startOffset 1 endOffset 4 width 45.00: "234"
     172          RenderSVGContainer {g} at (243.33,375) size 106.67x56.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,210.00)}]
    173173            RenderSVGContainer {use} at (243.33,375) size 13.33x31.67
    174174              RenderSVGContainer {g} at (243.33,375) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
     
    181181                  RenderPath {line} at (274.17,400) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    182182                  RenderPath {rect} at (268.33,418.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    183             RenderSVGText {text} at (0,-10) size 20x28 contains 1 chunk(s)
    184               RenderSVGInlineText {#text} at (0,-10) size 20x28
    185                 chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 20.00: "1234"
    186           RenderSVGContainer {g} at (260,425) size 65x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,240.00)}]
     183            RenderSVGText {text} at (0,-10) size 60x26 contains 1 chunk(s)
     184              RenderSVGInlineText {#text} at (0,-9) size 60x26
     185                chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 60.00: "1234"
     186          RenderSVGContainer {g} at (260,425) size 81.67x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,240.00)}]
    187187            RenderSVGContainer {use} at (260,425) size 13.33x31.67
    188188              RenderSVGContainer {g} at (260,425) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
     
    205205                  RenderPath {line} at (315.83,433.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    206206                  RenderPath {rect} at (310,451.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    207             RenderSVGText {text} at (10,-10) size 35x19 contains 4 chunk(s)
    208               RenderSVGInlineText {#text} at (0,-10) size 35x19
    209                 chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    210                 chunk 2 text run 1 at (20.00,-5.00) startOffset 1 endOffset 2 width 5.00: "2"
    211                 chunk 3 text run 1 at (30.00,-5.00) startOffset 2 endOffset 3 width 5.00: "3"
    212                 chunk 4 text run 1 at (40.00,-5.00) startOffset 3 endOffset 4 width 5.00: "4"
    213           RenderSVGContainer {g} at (260,475.00) size 115x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,270.00)}]
     207            RenderSVGText {text} at (10,-10) size 45x17 contains 4 chunk(s)
     208              RenderSVGInlineText {#text} at (0,-9) size 45x17
     209                chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     210                chunk 2 text run 1 at (20.00,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     211                chunk 3 text run 1 at (30.00,-5.00) startOffset 2 endOffset 3 width 15.00: "3"
     212                chunk 4 text run 1 at (40.00,-5.00) startOffset 3 endOffset 4 width 15.00: "4"
     213          RenderSVGContainer {g} at (260,475.00) size 165x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,270.00)}]
    214214            RenderSVGContainer {use} at (260,475.00) size 13.33x31.67
    215215              RenderSVGContainer {g} at (260,475.00) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
     
    222222                  RenderPath {line} at (349.17,483.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    223223                  RenderPath {rect} at (343.33,501.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    224             RenderSVGText {text} at (10,-10) size 65x19 contains 2 chunk(s)
    225               RenderSVGInlineText {#text} at (0,-10) size 65x19
    226                 chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    227                 chunk 2 text run 1 at (60.00,-5.00) startOffset 1 endOffset 4 width 15.00: "234"
    228       RenderSVGContainer {g} at (358.33,15.00) size 171.67x535 [transform={m=((1.00,0.00)(0.00,1.00)) t=(250.00,40.00)}]
     224            RenderSVGText {text} at (10,-10) size 95x17 contains 2 chunk(s)
     225              RenderSVGInlineText {#text} at (0,-9) size 95x17
     226                chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     227                chunk 2 text run 1 at (60.00,-5.00) startOffset 1 endOffset 4 width 45.00: "234"
     228      RenderSVGContainer {g} at (358.33,15.00) size 196.67x535 [transform={m=((1.00,0.00)(0.00,1.00)) t=(250.00,40.00)}]
    229229        RenderSVGText {text} at (-36,-17) size 71x19 contains 1 chunk(s)
    230230          RenderSVGInlineText {#text} at (1,-14) size 71x19
     
    234234            chunk 1 (middle anchor) text run 1 at (-21.50,-3.00) startOffset 0 endOffset 6 width 43.00: "middle"
    235235        RenderPath {line} at (415.83,83.33) size 1.67x466.67 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,10.00L0.00,290.00"]
    236         RenderSVGContainer {use} at (400,91.67) size 130x423.33
    237           RenderSVGContainer {g} at (400,91.67) size 130x423.33
    238             RenderSVGContainer {g} at (400,91.67) size 130x423.33
     236        RenderSVGContainer {use} at (366.67,91.67) size 188.33x423.33
     237          RenderSVGContainer {g} at (366.67,91.67) size 188.33x423.33
     238            RenderSVGContainer {g} at (366.67,91.67) size 188.33x423.33
    239239              RenderSVGContainer {g} at (410,91.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,30.00)}]
    240240                RenderSVGContainer {g} at (410,91.67) size 13.33x31.67
    241241                  RenderPath {line} at (415.83,91.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    242242                  RenderPath {rect} at (410,110) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    243               RenderSVGText {text} at (-10,30) size 20x13 contains 1 chunk(s)
    244                 RenderSVGInlineText {#text} at (0,-10) size 20x13
    245                   chunk 1 (middle anchor) text run 1 at (-10.00,30.00) startOffset 0 endOffset 4 width 20.00: "1234"
     243              RenderSVGText {text} at (-30,30) size 60x11 contains 1 chunk(s)
     244                RenderSVGInlineText {#text} at (0,-9) size 60x11
     245                  chunk 1 (middle anchor) text run 1 at (-30.00,30.00) startOffset 0 endOffset 4 width 60.00: "1234"
    246246              RenderSVGContainer {g} at (426.67,141.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,60.00)}]
    247247                RenderSVGContainer {g} at (426.67,141.67) size 13.33x31.67
     
    260260                  RenderPath {line} at (482.50,141.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    261261                  RenderPath {rect} at (476.67,160.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    262               RenderSVGText {text} at (7,60) size 36x13 contains 4 chunk(s)
    263                 RenderSVGInlineText {#text} at (0,-10) size 36x13
    264                   chunk 1 (middle anchor) text run 1 at (7.50,60.00) startOffset 0 endOffset 1 width 5.00: "1"
    265                   chunk 2 (middle anchor) text run 1 at (17.50,60.00) startOffset 1 endOffset 2 width 5.00: "2"
    266                   chunk 3 (middle anchor) text run 1 at (27.50,60.00) startOffset 2 endOffset 3 width 5.00: "3"
    267                   chunk 4 (middle anchor) text run 1 at (37.50,60.00) startOffset 3 endOffset 4 width 5.00: "4"
     262              RenderSVGText {text} at (2,60) size 46x11 contains 4 chunk(s)
     263                RenderSVGInlineText {#text} at (0,-9) size 46x11
     264                  chunk 1 (middle anchor) text run 1 at (2.50,60.00) startOffset 0 endOffset 1 width 15.00: "1"
     265                  chunk 2 (middle anchor) text run 1 at (12.50,60.00) startOffset 1 endOffset 2 width 15.00: "2"
     266                  chunk 3 (middle anchor) text run 1 at (22.50,60.00) startOffset 2 endOffset 3 width 15.00: "3"
     267                  chunk 4 (middle anchor) text run 1 at (32.50,60.00) startOffset 3 endOffset 4 width 15.00: "4"
    268268              RenderSVGContainer {g} at (426.67,191.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,90.00)}]
    269269                RenderSVGContainer {g} at (426.67,191.67) size 13.33x31.67
     
    274274                  RenderPath {line} at (515.83,191.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    275275                  RenderPath {rect} at (510.00,210.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    276               RenderSVGText {text} at (7,90) size 61x13 contains 2 chunk(s)
    277                 RenderSVGInlineText {#text} at (0,-10) size 61x13
    278                   chunk 1 (middle anchor) text run 1 at (7.50,90.00) startOffset 0 endOffset 1 width 5.00: "1"
    279                   chunk 2 (middle anchor) text run 1 at (52.50,90.00) startOffset 1 endOffset 4 width 15.00: "234"
    280               RenderSVGContainer {g} at (400,225.00) size 98.33x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,120.00)}]
     276              RenderSVGText {text} at (2,90) size 81x11 contains 2 chunk(s)
     277                RenderSVGInlineText {#text} at (0,-9) size 81x11
     278                  chunk 1 (middle anchor) text run 1 at (2.50,90.00) startOffset 0 endOffset 1 width 15.00: "1"
     279                  chunk 2 (middle anchor) text run 1 at (37.50,90.00) startOffset 1 endOffset 4 width 45.00: "234"
     280              RenderSVGContainer {g} at (366.67,225.00) size 131.67x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,120.00)}]
    281281                RenderSVGContainer {g} at (410,225.00) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
    282282                  RenderSVGContainer {g} at (410,225.00) size 13.33x31.67
     
    295295                    RenderPath {line} at (490.83,258.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    296296                    RenderPath {rect} at (485,276.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    297                 RenderSVGText {text} at (-10,-10) size 20x33 contains 1 chunk(s)
    298                   RenderSVGInlineText {#text} at (0,-10) size 20x33
    299                     chunk 1 (middle anchor) text run 1 at (-10.00,-10.00) startOffset 0 endOffset 4 width 20.00: "1234"
    300               RenderSVGContainer {g} at (426.67,275) size 63.33x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,150.00)}]
     297                RenderSVGText {text} at (-30,-10) size 60x31 contains 1 chunk(s)
     298                  RenderSVGInlineText {#text} at (0,-9) size 60x31
     299                    chunk 1 (middle anchor) text run 1 at (-30.00,-10.00) startOffset 0 endOffset 4 width 60.00: "1234"
     300              RenderSVGContainer {g} at (420,275) size 76.67x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,150.00)}]
    301301                RenderSVGContainer {g} at (426.67,275) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
    302302                  RenderSVGContainer {g} at (426.67,275) size 13.33x31.67
     
    315315                    RenderPath {line} at (482.50,308.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    316316                    RenderPath {rect} at (476.67,326.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    317                 RenderSVGText {text} at (7,-10) size 36x33 contains 4 chunk(s)
    318                   RenderSVGInlineText {#text} at (0,-10) size 36x33
    319                     chunk 1 (middle anchor) text run 1 at (7.50,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    320                     chunk 2 (middle anchor) text run 1 at (17.50,-5.00) startOffset 1 endOffset 2 width 5.00: "2"
    321                     chunk 3 (middle anchor) text run 1 at (27.50,5.00) startOffset 2 endOffset 3 width 5.00: "3"
    322                     chunk 4 (middle anchor) text run 1 at (37.50,10.00) startOffset 3 endOffset 4 width 5.00: "4"
    323               RenderSVGContainer {g} at (426.67,325) size 80x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,180.00)}]
     317                RenderSVGText {text} at (2,-10) size 46x31 contains 4 chunk(s)
     318                  RenderSVGInlineText {#text} at (0,-9) size 46x31
     319                    chunk 1 (middle anchor) text run 1 at (2.50,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     320                    chunk 2 (middle anchor) text run 1 at (12.50,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     321                    chunk 3 (middle anchor) text run 1 at (22.50,5.00) startOffset 2 endOffset 3 width 15.00: "3"
     322                    chunk 4 (middle anchor) text run 1 at (32.50,10.00) startOffset 3 endOffset 4 width 15.00: "4"
     323              RenderSVGContainer {g} at (413.33,325) size 93.33x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,180.00)}]
    324324                RenderSVGContainer {g} at (426.67,325) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
    325325                  RenderSVGContainer {g} at (426.67,325) size 13.33x31.67
     
    338338                    RenderPath {line} at (499.17,358.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    339339                    RenderPath {rect} at (493.33,376.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    340                 RenderSVGText {text} at (7,-10) size 21x33 contains 2 chunk(s)
    341                   RenderSVGInlineText {#text} at (0,-10) size 21x33
    342                     chunk 1 (middle anchor) text run 1 at (7.50,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    343                     chunk 2 (middle anchor) text run 1 at (12.50,-5.00) startOffset 1 endOffset 4 width 15.00: "234"
    344               RenderSVGContainer {g} at (400,375) size 48.33x56.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,210.00)}]
     340                RenderSVGText {text} at (-3,-10) size 45x31 contains 2 chunk(s)
     341                  RenderSVGInlineText {#text} at (1,-9) size 45x31
     342                    chunk 1 (middle anchor) text run 1 at (2.50,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     343                    chunk 2 (middle anchor) text run 1 at (-2.50,-5.00) startOffset 1 endOffset 4 width 45.00: "234"
     344              RenderSVGContainer {g} at (366.67,375) size 100x56.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,210.00)}]
    345345                RenderSVGContainer {g} at (410,375) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
    346346                  RenderSVGContainer {g} at (410,375) size 13.33x31.67
     
    351351                    RenderPath {line} at (440.83,400) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    352352                    RenderPath {rect} at (435,418.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    353                 RenderSVGText {text} at (-10,-10) size 20x28 contains 1 chunk(s)
    354                   RenderSVGInlineText {#text} at (0,-10) size 20x28
    355                     chunk 1 (middle anchor) text run 1 at (-10.00,-10.00) startOffset 0 endOffset 4 width 20.00: "1234"
    356               RenderSVGContainer {g} at (426.67,425) size 63.33x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,240.00)}]
     353                RenderSVGText {text} at (-30,-10) size 60x26 contains 1 chunk(s)
     354                  RenderSVGInlineText {#text} at (0,-9) size 60x26
     355                    chunk 1 (middle anchor) text run 1 at (-30.00,-10.00) startOffset 0 endOffset 4 width 60.00: "1234"
     356              RenderSVGContainer {g} at (420,425) size 76.67x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,240.00)}]
    357357                RenderSVGContainer {g} at (426.67,425) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
    358358                  RenderSVGContainer {g} at (426.67,425) size 13.33x31.67
     
    371371                    RenderPath {line} at (482.50,433.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    372372                    RenderPath {rect} at (476.67,451.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    373                 RenderSVGText {text} at (7,-10) size 36x19 contains 4 chunk(s)
    374                   RenderSVGInlineText {#text} at (0,-10) size 36x19
    375                     chunk 1 (middle anchor) text run 1 at (7.50,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    376                     chunk 2 (middle anchor) text run 1 at (17.50,-5.00) startOffset 1 endOffset 2 width 5.00: "2"
    377                     chunk 3 (middle anchor) text run 1 at (27.50,-5.00) startOffset 2 endOffset 3 width 5.00: "3"
    378                     chunk 4 (middle anchor) text run 1 at (37.50,-5.00) startOffset 3 endOffset 4 width 5.00: "4"
    379               RenderSVGContainer {g} at (426.67,475.00) size 103.33x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,270.00)}]
     373                RenderSVGText {text} at (2,-10) size 46x17 contains 4 chunk(s)
     374                  RenderSVGInlineText {#text} at (0,-9) size 46x17
     375                    chunk 1 (middle anchor) text run 1 at (2.50,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     376                    chunk 2 (middle anchor) text run 1 at (12.50,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     377                    chunk 3 (middle anchor) text run 1 at (22.50,-5.00) startOffset 2 endOffset 3 width 15.00: "3"
     378                    chunk 4 (middle anchor) text run 1 at (32.50,-5.00) startOffset 3 endOffset 4 width 15.00: "4"
     379              RenderSVGContainer {g} at (420,475.00) size 135x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,270.00)}]
    380380                RenderSVGContainer {g} at (426.67,475.00) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
    381381                  RenderSVGContainer {g} at (426.67,475.00) size 13.33x31.67
     
    386386                    RenderPath {line} at (515.83,483.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    387387                    RenderPath {rect} at (510.00,501.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    388                 RenderSVGText {text} at (7,-10) size 61x19 contains 2 chunk(s)
    389                   RenderSVGInlineText {#text} at (0,-10) size 61x19
    390                     chunk 1 (middle anchor) text run 1 at (7.50,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    391                     chunk 2 (middle anchor) text run 1 at (52.50,-5.00) startOffset 1 endOffset 4 width 15.00: "234"
    392       RenderSVGContainer {g} at (525,15.00) size 165x535 [transform={m=((1.00,0.00)(0.00,1.00)) t=(350.00,40.00)}]
     388                RenderSVGText {text} at (2,-10) size 81x17 contains 2 chunk(s)
     389                  RenderSVGInlineText {#text} at (0,-9) size 81x17
     390                    chunk 1 (middle anchor) text run 1 at (2.50,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     391                    chunk 2 (middle anchor) text run 1 at (37.50,-5.00) startOffset 1 endOffset 4 width 45.00: "234"
     392      RenderSVGContainer {g} at (483.33,15.00) size 206.67x535 [transform={m=((1.00,0.00)(0.00,1.00)) t=(350.00,40.00)}]
    393393        RenderSVGText {text} at (-36,-17) size 71x19 contains 1 chunk(s)
    394394          RenderSVGInlineText {#text} at (1,-14) size 71x19
     
    398398            chunk 1 (middle anchor) text run 1 at (-11.50,-3.00) startOffset 0 endOffset 3 width 23.00: "end"
    399399        RenderPath {line} at (582.50,83.33) size 1.67x466.67 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,10.00L0.00,290.00"]
    400         RenderSVGContainer {use} at (550,91.67) size 140x423.33
    401           RenderSVGContainer {g} at (550,91.67) size 140x423.33
    402             RenderSVGContainer {g} at (550,91.67) size 140x423.33
     400        RenderSVGContainer {use} at (483.33,91.67) size 206.67x423.33
     401          RenderSVGContainer {g} at (483.33,91.67) size 206.67x423.33
     402            RenderSVGContainer {g} at (483.33,91.67) size 206.67x423.33
    403403              RenderSVGContainer {g} at (576.67,91.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,30.00)}]
    404404                RenderSVGContainer {g} at (576.67,91.67) size 13.33x31.67
    405405                  RenderPath {line} at (582.50,91.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    406406                  RenderPath {rect} at (576.67,110) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    407               RenderSVGText {text} at (-20,30) size 20x13 contains 1 chunk(s)
    408                 RenderSVGInlineText {#text} at (0,-10) size 20x13
    409                   chunk 1 (end anchor) text run 1 at (-20.00,30.00) startOffset 0 endOffset 4 width 20.00: "1234"
     407              RenderSVGText {text} at (-60,30) size 60x11 contains 1 chunk(s)
     408                RenderSVGInlineText {#text} at (0,-9) size 60x11
     409                  chunk 1 (end anchor) text run 1 at (-60.00,30.00) startOffset 0 endOffset 4 width 60.00: "1234"
    410410              RenderSVGContainer {g} at (593.33,141.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,60.00)}]
    411411                RenderSVGContainer {g} at (593.33,141.67) size 13.33x31.67
     
    424424                  RenderPath {line} at (649.17,141.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    425425                  RenderPath {rect} at (643.33,160.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    426               RenderSVGText {text} at (5,60) size 35x13 contains 4 chunk(s)
    427                 RenderSVGInlineText {#text} at (0,-10) size 35x13
    428                   chunk 1 (end anchor) text run 1 at (5.00,60.00) startOffset 0 endOffset 1 width 5.00: "1"
    429                   chunk 2 (end anchor) text run 1 at (15.00,60.00) startOffset 1 endOffset 2 width 5.00: "2"
    430                   chunk 3 (end anchor) text run 1 at (25.00,60.00) startOffset 2 endOffset 3 width 5.00: "3"
    431                   chunk 4 (end anchor) text run 1 at (35.00,60.00) startOffset 3 endOffset 4 width 5.00: "4"
     426              RenderSVGText {text} at (-5,60) size 45x11 contains 4 chunk(s)
     427                RenderSVGInlineText {#text} at (0,-9) size 45x11
     428                  chunk 1 (end anchor) text run 1 at (-5.00,60.00) startOffset 0 endOffset 1 width 15.00: "1"
     429                  chunk 2 (end anchor) text run 1 at (5.00,60.00) startOffset 1 endOffset 2 width 15.00: "2"
     430                  chunk 3 (end anchor) text run 1 at (15.00,60.00) startOffset 2 endOffset 3 width 15.00: "3"
     431                  chunk 4 (end anchor) text run 1 at (25.00,60.00) startOffset 3 endOffset 4 width 15.00: "4"
    432432              RenderSVGContainer {g} at (593.33,191.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,90.00)}]
    433433                RenderSVGContainer {g} at (593.33,191.67) size 13.33x31.67
     
    438438                  RenderPath {line} at (682.50,191.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    439439                  RenderPath {rect} at (676.67,210.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    440               RenderSVGText {text} at (5,90) size 55x13 contains 2 chunk(s)
    441                 RenderSVGInlineText {#text} at (0,-10) size 55x13
    442                   chunk 1 (end anchor) text run 1 at (5.00,90.00) startOffset 0 endOffset 1 width 5.00: "1"
    443                   chunk 2 (end anchor) text run 1 at (45.00,90.00) startOffset 1 endOffset 4 width 15.00: "234"
    444               RenderSVGContainer {g} at (550,225.00) size 115x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,120.00)}]
     440              RenderSVGText {text} at (-5,90) size 65x11 contains 2 chunk(s)
     441                RenderSVGInlineText {#text} at (0,-9) size 65x11
     442                  chunk 1 (end anchor) text run 1 at (-5.00,90.00) startOffset 0 endOffset 1 width 15.00: "1"
     443                  chunk 2 (end anchor) text run 1 at (15.00,90.00) startOffset 1 endOffset 4 width 45.00: "234"
     444              RenderSVGContainer {g} at (483.33,225.00) size 181.67x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,120.00)}]
    445445                RenderSVGContainer {g} at (576.67,225.00) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
    446446                  RenderSVGContainer {g} at (576.67,225.00) size 13.33x31.67
     
    459459                    RenderPath {line} at (657.50,258.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    460460                    RenderPath {rect} at (651.67,276.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    461                 RenderSVGText {text} at (-20,-10) size 20x33 contains 1 chunk(s)
    462                   RenderSVGInlineText {#text} at (0,-10) size 20x33
    463                     chunk 1 (end anchor) text run 1 at (-20.00,-10.00) startOffset 0 endOffset 4 width 20.00: "1234"
    464               RenderSVGContainer {g} at (591.67,275) size 65x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,150.00)}]
     461                RenderSVGText {text} at (-60,-10) size 60x31 contains 1 chunk(s)
     462                  RenderSVGInlineText {#text} at (0,-9) size 60x31
     463                    chunk 1 (end anchor) text run 1 at (-60.00,-10.00) startOffset 0 endOffset 4 width 60.00: "1234"
     464              RenderSVGContainer {g} at (575,275) size 81.67x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,150.00)}]
    465465                RenderSVGContainer {g} at (593.33,275) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
    466466                  RenderSVGContainer {g} at (593.33,275) size 13.33x31.67
     
    479479                    RenderPath {line} at (649.17,308.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    480480                    RenderPath {rect} at (643.33,326.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    481                 RenderSVGText {text} at (5,-10) size 35x33 contains 4 chunk(s)
    482                   RenderSVGInlineText {#text} at (0,-10) size 35x33
    483                     chunk 1 (end anchor) text run 1 at (5.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    484                     chunk 2 (end anchor) text run 1 at (15.00,-5.00) startOffset 1 endOffset 2 width 5.00: "2"
    485                     chunk 3 (end anchor) text run 1 at (25.00,5.00) startOffset 2 endOffset 3 width 5.00: "3"
    486                     chunk 4 (end anchor) text run 1 at (35.00,10.00) startOffset 3 endOffset 4 width 5.00: "4"
    487               RenderSVGContainer {g} at (591.67,325) size 81.67x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,180.00)}]
     481                RenderSVGText {text} at (-5,-10) size 45x31 contains 4 chunk(s)
     482                  RenderSVGInlineText {#text} at (0,-9) size 45x31
     483                    chunk 1 (end anchor) text run 1 at (-5.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     484                    chunk 2 (end anchor) text run 1 at (5.00,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     485                    chunk 3 (end anchor) text run 1 at (15.00,5.00) startOffset 2 endOffset 3 width 15.00: "3"
     486                    chunk 4 (end anchor) text run 1 at (25.00,10.00) startOffset 3 endOffset 4 width 15.00: "4"
     487              RenderSVGContainer {g} at (541.67,325) size 131.67x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,180.00)}]
    488488                RenderSVGContainer {g} at (593.33,325) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
    489489                  RenderSVGContainer {g} at (593.33,325) size 13.33x31.67
     
    502502                    RenderPath {line} at (665.83,358.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    503503                    RenderPath {rect} at (660.00,376.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    504                 RenderSVGText {text} at (5,-10) size 15x33 contains 2 chunk(s)
    505                   RenderSVGInlineText {#text} at (0,-10) size 15x33
    506                     chunk 1 (end anchor) text run 1 at (5.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    507                     chunk 2 (end anchor) text run 1 at (5.00,-5.00) startOffset 1 endOffset 4 width 15.00: "234"
    508               RenderSVGContainer {g} at (550,375) size 65x56.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,210.00)}]
     504                RenderSVGText {text} at (-25,-10) size 45x31 contains 2 chunk(s)
     505                  RenderSVGInlineText {#text} at (0,-9) size 45x31
     506                    chunk 1 (end anchor) text run 1 at (-5.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     507                    chunk 2 (end anchor) text run 1 at (-25.00,-5.00) startOffset 1 endOffset 4 width 45.00: "234"
     508              RenderSVGContainer {g} at (483.33,375) size 131.67x56.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,210.00)}]
    509509                RenderSVGContainer {g} at (576.67,375) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
    510510                  RenderSVGContainer {g} at (576.67,375) size 13.33x31.67
     
    515515                    RenderPath {line} at (607.50,400) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    516516                    RenderPath {rect} at (601.67,418.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    517                 RenderSVGText {text} at (-20,-10) size 20x28 contains 1 chunk(s)
    518                   RenderSVGInlineText {#text} at (0,-10) size 20x28
    519                     chunk 1 (end anchor) text run 1 at (-20.00,-10.00) startOffset 0 endOffset 4 width 20.00: "1234"
    520               RenderSVGContainer {g} at (591.67,425) size 65x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,240.00)}]
     517                RenderSVGText {text} at (-60,-10) size 60x26 contains 1 chunk(s)
     518                  RenderSVGInlineText {#text} at (0,-9) size 60x26
     519                    chunk 1 (end anchor) text run 1 at (-60.00,-10.00) startOffset 0 endOffset 4 width 60.00: "1234"
     520              RenderSVGContainer {g} at (575,425) size 81.67x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,240.00)}]
    521521                RenderSVGContainer {g} at (593.33,425) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
    522522                  RenderSVGContainer {g} at (593.33,425) size 13.33x31.67
     
    535535                    RenderPath {line} at (649.17,433.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    536536                    RenderPath {rect} at (643.33,451.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    537                 RenderSVGText {text} at (5,-10) size 35x19 contains 4 chunk(s)
    538                   RenderSVGInlineText {#text} at (0,-10) size 35x19
    539                     chunk 1 (end anchor) text run 1 at (5.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    540                     chunk 2 (end anchor) text run 1 at (15.00,-5.00) startOffset 1 endOffset 2 width 5.00: "2"
    541                     chunk 3 (end anchor) text run 1 at (25.00,-5.00) startOffset 2 endOffset 3 width 5.00: "3"
    542                     chunk 4 (end anchor) text run 1 at (35.00,-5.00) startOffset 3 endOffset 4 width 5.00: "4"
    543               RenderSVGContainer {g} at (591.67,475.00) size 98.33x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,270.00)}]
     537                RenderSVGText {text} at (-5,-10) size 45x17 contains 4 chunk(s)
     538                  RenderSVGInlineText {#text} at (0,-9) size 45x17
     539                    chunk 1 (end anchor) text run 1 at (-5.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     540                    chunk 2 (end anchor) text run 1 at (5.00,-5.00) startOffset 1 endOffset 2 width 15.00: "2"
     541                    chunk 3 (end anchor) text run 1 at (15.00,-5.00) startOffset 2 endOffset 3 width 15.00: "3"
     542                    chunk 4 (end anchor) text run 1 at (25.00,-5.00) startOffset 3 endOffset 4 width 15.00: "4"
     543              RenderSVGContainer {g} at (575,475.00) size 115x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,270.00)}]
    544544                RenderSVGContainer {g} at (593.33,475.00) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
    545545                  RenderSVGContainer {g} at (593.33,475.00) size 13.33x31.67
     
    550550                    RenderPath {line} at (682.50,483.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    551551                    RenderPath {rect} at (676.67,501.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    552                 RenderSVGText {text} at (5,-10) size 55x19 contains 2 chunk(s)
    553                   RenderSVGInlineText {#text} at (0,-10) size 55x19
    554                     chunk 1 (end anchor) text run 1 at (5.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
    555                     chunk 2 (end anchor) text run 1 at (45.00,-5.00) startOffset 1 endOffset 4 width 15.00: "234"
     552                RenderSVGText {text} at (-5,-10) size 65x17 contains 2 chunk(s)
     553                  RenderSVGInlineText {#text} at (0,-9) size 65x17
     554                    chunk 1 (end anchor) text run 1 at (-5.00,-10.00) startOffset 0 endOffset 1 width 15.00: "1"
     555                    chunk 2 (end anchor) text run 1 at (15.00,-5.00) startOffset 1 endOffset 4 width 45.00: "234"
    556556    RenderSVGText {text} at (10,350) size 264x46 contains 1 chunk(s)
    557557      RenderSVGInlineText {#text} at (0,-36) size 264x46
  • trunk/LayoutTests/platform/mac/svg/text/text-text-06-t-expected.checksum

    r29244 r29246  
    1 7a5c5914500e5aa5dec2b046749eae0d
     166bb255bb77facb1b7c236a3a98c1d82
  • trunk/LayoutTests/platform/mac/svg/text/text-text-06-t-expected.txt

    r29244 r29246  
    5151                RenderPath {line} at (415.83,91.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    5252                RenderPath {rect} at (410,110) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    53           RenderSVGText {text} at (10,0) size 173x13 contains 6 chunk(s)
    54             RenderSVGInlineText {#text} at (0,-10) size 173x13
     53          RenderSVGText {text} at (10,0) size 173x11 contains 6 chunk(s)
     54            RenderSVGInlineText {#text} at (0,-9) size 173x11
    5555              chunk 1 text run 1 at (10.00,0.00) startOffset 0 endOffset 1 width 3.00: "f"
    5656              chunk 2 text run 1 at (180.00,0.00) startOffset 1 endOffset 2 width 3.00: "i"
    57               chunk 3 text run 1 at (40.00,0.00) startOffset 2 endOffset 3 width 5.00: "1"
    58               chunk 4 text run 1 at (70.00,0.00) startOffset 3 endOffset 4 width 5.00: "2"
    59               chunk 5 text run 1 at (100.00,0.00) startOffset 4 endOffset 5 width 5.00: "3"
    60               chunk 6 text run 1 at (130.00,0.00) startOffset 5 endOffset 6 width 5.00: "4"
    61         RenderSVGContainer {g} at (193.33,141.67) size 113.33x131.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,80.00)}]
     57              chunk 3 text run 1 at (40.00,0.00) startOffset 2 endOffset 3 width 15.00: "1"
     58              chunk 4 text run 1 at (70.00,0.00) startOffset 3 endOffset 4 width 15.00: "2"
     59              chunk 5 text run 1 at (100.00,0.00) startOffset 4 endOffset 5 width 15.00: "3"
     60              chunk 6 text run 1 at (130.00,0.00) startOffset 5 endOffset 6 width 15.00: "4"
     61        RenderSVGContainer {g} at (193.33,141.67) size 116.67x131.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,80.00)}]
    6262          RenderSVGContainer {use} at (193.33,141.67) size 13.33x31.67
    6363            RenderSVGContainer {g} at (193.33,141.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
     
    9090                RenderPath {line} at (299.17,208.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    9191                RenderPath {rect} at (293.33,226.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    92           RenderSVGText {text} at (0,-10) size 26x73 contains 1 chunk(s)
    93             RenderSVGInlineText {#text} at (0,-10) size 26x73
    94               chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 6 width 26.00: "fi1234"
     92          RenderSVGText {text} at (0,-10) size 66x71 contains 1 chunk(s)
     93            RenderSVGInlineText {#text} at (0,-9) size 66x71
     94              chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 6 width 75.00: "fi1234"
    9595        RenderSVGContainer {g} at (210,308.33) size 296.67x131.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,180.00)}]
    9696          RenderSVGContainer {use} at (210,308.33) size 13.33x31.67
     
    124124                RenderPath {line} at (415.83,375) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
    125125                RenderPath {rect} at (410,393.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
    126           RenderSVGText {text} at (10,-10) size 173x73 contains 6 chunk(s)
    127             RenderSVGInlineText {#text} at (0,-10) size 173x73
     126          RenderSVGText {text} at (10,-10) size 173x71 contains 6 chunk(s)
     127            RenderSVGInlineText {#text} at (0,-9) size 173x71
    128128              chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 3.00: "f"
    129129              chunk 2 text run 1 at (180.00,50.00) startOffset 1 endOffset 2 width 3.00: "i"
    130               chunk 3 text run 1 at (40.00,0.00) startOffset 2 endOffset 3 width 5.00: "1"
    131               chunk 4 text run 1 at (70.00,10.00) startOffset 3 endOffset 4 width 5.00: "2"
    132               chunk 5 text run 1 at (100.00,20.00) startOffset 4 endOffset 5 width 5.00: "3"
    133               chunk 6 text run 1 at (130.00,30.00) startOffset 5 endOffset 6 width 5.00: "4"
     130              chunk 3 text run 1 at (40.00,0.00) startOffset 2 endOffset 3 width 15.00: "1"
     131              chunk 4 text run 1 at (70.00,10.00) startOffset 3 endOffset 4 width 15.00: "2"
     132              chunk 5 text run 1 at (100.00,20.00) startOffset 4 endOffset 5 width 15.00: "3"
     133              chunk 6 text run 1 at (130.00,30.00) startOffset 5 endOffset 6 width 15.00: "4"
    134134    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
    135135      RenderSVGInlineText {#text} at (0,-36) size 264x46
  • trunk/LayoutTests/platform/mac/svg/text/text-text-07-t-expected.checksum

    r26602 r29246  
    1 554c0c205a4090e1e8a7e8ab1af28717
     1c6a2f6b109bcbfdec6b4d4aa7753b2aa
  • trunk/LayoutTests/platform/mac/svg/text/text-tselect-01-b-expected.checksum

    r26602 r29246  
    1 5190ee900df298d0e0e185892469fcad
     1ebaf04a1d54dc318ce0160dd289103c0
  • trunk/LayoutTests/svg/dom/font-face-elements-expected.txt

    r28568 r29246  
    44
    55
    6 FAIL font-face in http://www.w3.org/2000/svg is NOT JS object SVGFontFaceElement, rather: [object SVGElement]
    7 FAIL font-face-name in http://www.w3.org/2000/svg is NOT JS object SVGFontFaceNameElement, rather: [object SVGElement]
    8 FAIL font-face-format in http://www.w3.org/2000/svg is NOT JS object SVGFontFaceFormatElement, rather: [object SVGElement]
    9 FAIL font-face-src in http://www.w3.org/2000/svg is NOT JS object SVGFontFaceSrcElement, rather: [object SVGElement]
    10 FAIL font-face-uri in http://www.w3.org/2000/svg is NOT JS object SVGFontFaceUriElement, rather: [object SVGElement]
    11 FAIL definition-src in http://www.w3.org/2000/svg is NOT JS object SVGDefinitionSrcElement, rather: [object SVGElement]
     6PASS font-face in http://www.w3.org/2000/svg is JS object SVGFontFaceElement
     7PASS font-face-name in http://www.w3.org/2000/svg is JS object SVGFontFaceNameElement
     8PASS font-face-format in http://www.w3.org/2000/svg is JS object SVGFontFaceFormatElement
     9PASS font-face-src in http://www.w3.org/2000/svg is JS object SVGFontFaceSrcElement
     10PASS font-face-uri in http://www.w3.org/2000/svg is JS object SVGFontFaceUriElement
     11PASS definition-src in http://www.w3.org/2000/svg is JS object SVGDefinitionSrcElement
    1212PASS successfullyParsed is true
    1313
  • trunk/WebCore/ChangeLog

    r29241 r29246  
     12008-01-06  Nikolas Zimmermann  <zimmermann@kde.org>
     2
     3        Reviewed by Oliver. Parts reviewed by Eric, David Hyatt & Dan & Alexey.
     4        Fixes: http://bugs.webkit.org/show_bug.cgi?id=15741 (REGRESSION: svg/W3C-SVG-1.1/fonts-elem-03-b.svg shows worse behavior on TOT)
     5
     6        Display SVG Fonts, fill svg/SVGFont.cpp with life by adding all needed code to
     7        measure & render glyphs contained in SVG Fonts, including ligature lookup support.
     8
     9        Implement floatWidth/selectionRectForText for SVG Fonts, fixing text selection.
     10
     11        Support horiz-origin-x/y, horiz-adv-x, vert-adv-y, vert-origin-x/y & arabic-form.
     12        Implement simple algorithm to determine the arabic forms for a string (initial, isolated, medial, terminal).
     13
     14        Removed drawGlyphsWithSVGFont - create a new function drawTextWithSVGFont instead.
     15        This doesn't involve creating/using a 'GlyphBuffer' object anymore, which is not
     16        required for SVG Fonts anyway (we already know all our offsets/advances/etc..)
     17
     18        Don't call it from drawSimpleText anymore, but directly in drawText - as Dan suggested.
     19
     20        <glyph> elements now register themselves in the SVGFontElement's glyph cache.
     21        (insertedIntoDocument / removedFromDocument take care of this)
     22
     23        The cache is built once now, and is kept updated - it's not rebuild anymore
     24        on painting (!) - which was a crude hack for testing.
     25
     26        W3C testcase which include SVG Fonts:
     27        svg/W3C-SVG-1.1/animate-elem-03-t.svg (Fixed, of course not the anim itself, but it's SVG Fonts usage)
     28        svg/W3C-SVG-1.1/animate-elem-24-t.svg (Ditto)
     29        svg/W3C-SVG-1.1/animate-elem-36-t.svg (Ditto)
     30        svg/W3C-SVG-1.1/animate-elem-40-t.svg (Ditto)
     31        svg/W3C-SVG-1.1/fonts-kern-01-t.svg (missing <vkern>/<hkern> support)
     32        svg/W3C-SVG-1.1/fonts-desc-02-t.svg (Fixed, tests CSS font matching based on font-variant attribute)
     33        svg/W3C-SVG-1.1/fonts-elem-01-t.svg (Fixed, basic SVG font test)
     34        svg/W3C-SVG-1.1/fonts-elem-02-t.svg (Fixed, accuracy test for embedded SVG font)
     35        svg/W3C-SVG-1.1/fonts-elem-05-t.svg (Fixed, checks horiz-origin-x support, note: W3C reference image is wrong)
     36        svg/W3C-SVG-1.1/fonts-elem-06-t.svg (Fixed, checks horiz-adv-x support)
     37        svg/W3C-SVG-1.1/fonts-glyph-02-t.svg (Fixed, checks arabic-form support)
     38        svg/W3C-SVG-1.1/fonts-glyph-03-t.svg (Fixed, checks glyph matching based on xml:lang)
     39        svg/W3C-SVG-1.1/masking-mask-01-b.svg (Fixed, SVG Fonts & masking)
     40        svg/W3C-SVG-1.1/pservers-grad-08-b.svg (Fixed, SVG Fonts & gradient on fill/stroke)
     41        svg/W3C-SVG-1.1/render-elems-06-t.svg (Fixed, simple 'fill' property test)
     42        svg/W3C-SVG-1.1/render-elems-07-t.svg (Fixed, simple 'stroke' property test - shows SVG Font interprets stroke-width in glyph coordinate system, as demanded by spec)
     43        svg/W3C-SVG-1.1/render-elems-08-t.svg (Fixed, simple 'fill' & 'stroke' property test)
     44        svg/W3C-SVG-1.1/render-groups-01-b.svg (missing <vkern>/<hkern> support)
     45        svg/W3C-SVG-1.1/render-groups-03-t.svg (Ditto)
     46        svg/W3C-SVG-1.1/text-altglyph-01-b.svg (no <altGlyph> support yet)
     47        svg/W3C-SVG-1.1/text-text-04-t.svg (Fixed, absolute placing of characters pixel perfect now)
     48        svg/W3C-SVG-1.1/text-text-05-t.svg (FIXME: problem with text-anchor)
     49        svg/W3C-SVG-1.1/text-text-06-t.svg (highlights problem with ligatures & absolute positioned characters)
     50
     51        Questionable testcases:
     52        svg/W3C-SVG-1.1/fonts-glyph-04-t.svg (tests that glyph selection is done in the order in the definition of the font element.)
     53        I am not sure why this behaviour is desired, no comment given in spec - doesn't make much sense to me, ignoring it for now.
     54
     55        Several other batik testcases fixed, which use SVG Fonts in combination with gradients & filters.
     56
     57        * css/CSSFontSelector.cpp:
     58        (WebCore::CSSFontSelector::addFontFaceRule):
     59        (WebCore::CSSFontSelector::getFontData):
     60        * platform/graphics/Font.cpp:
     61        (WebCore::Font::lineSpacing):
     62        (WebCore::Font::xHeight):
     63        (WebCore::Font::canUseGlyphCache):
     64        (WebCore::Font::drawGlyphBuffer):
     65        (WebCore::Font::drawText):
     66        (WebCore::Font::floatWidth):
     67        (WebCore::Font::selectionRectForText):
     68        * platform/graphics/Font.h:
     69        (WebCore::TextRun::TextRun):
     70        (WebCore::TextRun::activePaintServer):
     71        (WebCore::TextRun::setActivePaintServer):
     72        * platform/graphics/FontData.cpp:
     73        (WebCore::FontData::lineSpacing):
     74        (WebCore::FontData::lineGap):
     75        (WebCore::FontData::xHeight):
     76        * platform/graphics/FontData.h:
     77        * platform/graphics/win/FontWin.cpp:
     78        (WebCore::Font::drawGlyphs):
     79        * rendering/RenderSVGText.cpp:
     80        (WebCore::RenderSVGText::relativeBBox):
     81        * rendering/SVGInlineTextBox.cpp:
     82        (WebCore::SVGInlineTextBox::paintCharacters):
     83        * rendering/SVGInlineTextBox.h:
     84        * rendering/SVGRootInlineBox.cpp:
     85        (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
     86        * svg/SVGFont.cpp:
     87        (WebCore::):
     88        (WebCore::processArabicFormDetection):
     89        (WebCore::charactersWithArabicForm):
     90        (WebCore::isCompatibleArabicForm):
     91        (WebCore::isCompatibleGlyph):
     92        (WebCore::svgFontAndFontFaceElementForFontData):
     93        (WebCore::SVGTextRunWalker::SVGTextRunWalker):
     94        (WebCore::SVGTextRunWalker::walk):
     95        (WebCore::floatWidthUsingSVGFontCallback):
     96        (WebCore::floatWidthMissingGlyphCallback):
     97        (WebCore::floatWidthOfSubStringUsingSVGFont):
     98        (WebCore::Font::floatWidthUsingSVGFont):
     99        (WebCore::drawTextUsingSVGFontCallback):
     100        (WebCore::drawTextMissingGlyphCallback):
     101        (WebCore::Font::drawTextUsingSVGFont):
     102        (WebCore::Font::selectionRectForTextUsingSVGFont):
     103        * svg/SVGFontElement.cpp:
     104        (WebCore::SVGFontElement::SVGFontElement):
     105        (WebCore::SVGFontElement::addGlyphToCache):
     106        (WebCore::SVGFontElement::removeGlyphFromCache):
     107        (WebCore::SVGFontElement::firstMissingGlyphElement):
     108        (WebCore::SVGFontElement::glyphIdentifiersForString):
     109        * svg/SVGFontElement.h:
     110        (WebCore::SVGFontElement::maximumHashKeyLength):
     111        * svg/SVGFontFaceElement.cpp:
     112        (WebCore::SVGFontFaceElement::createFontData):
     113        (WebCore::SVGFontFaceElement::rebuildFontFace):
     114        (WebCore::SVGFontFaceElement::associatedFontElement):
     115        * svg/SVGFontFaceElement.h:
     116        * svg/SVGGlyphElement.cpp:
     117        (WebCore::SVGGlyphElement::insertedIntoDocument):
     118        (WebCore::SVGGlyphElement::removedFromDocument):
     119        (WebCore::parseArabicForm):
     120        (WebCore::SVGGlyphElement::inheritUnspecifiedAttributes):
     121        (WebCore::SVGGlyphElement::buildGlyphIdentifier):
     122        * svg/SVGGlyphElement.h:
     123        (WebCore::SVGGlyphIdentifier::):
     124        (WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
     125        (WebCore::SVGGlyphIdentifier::inheritedValue):
     126        (WebCore::SVGGlyphIdentifier::operator==):
     127        (WebCore::SVGGlyphElement::~SVGGlyphElement):
     128
    11292008-01-07  David Hyatt  <hyatt@apple.com>
    2130
  • trunk/WebCore/css/CSSFontSelector.cpp

    r29012 r29246  
    4444#include "FontFamilyValue.h"
    4545#include "Frame.h"
     46#include "NodeList.h"
    4647#include "RenderObject.h"
    4748#include "Settings.h"
    48 
    49 #if ENABLE(SVG_FONTS)
    50 #include "NodeList.h"
    5149#include "SVGCSSFontFace.h"
    5250#include "SVGFontFaceElement.h"
    5351#include "SVGNames.h"
    54 #endif
    5552
    5653namespace WebCore {
     
    104101    // Create a FontDescription for this font and set up bold/italic info properly.
    105102    FontDescription fontDescription;
    106     RefPtr<CSSValue> fontWeight = style->getPropertyCSSValue(CSS_PROP_FONT_WEIGHT);
    107     RefPtr<CSSValue> fontStyle = style->getPropertyCSSValue(CSS_PROP_FONT_STYLE);
    108     fontDescription.setItalic(fontStyle.get() && static_cast<CSSPrimitiveValue*>(fontStyle.get())->getIdent() != CSS_VAL_NORMAL);
    109     if (fontWeight) {
     103
     104    if (RefPtr<CSSValue> fontStyle = style->getPropertyCSSValue(CSS_PROP_FONT_STYLE))
     105        fontDescription.setItalic(static_cast<CSSPrimitiveValue*>(fontStyle.get())->getIdent() != CSS_VAL_NORMAL);
     106
     107    if (RefPtr<CSSValue> fontWeight = style->getPropertyCSSValue(CSS_PROP_FONT_WEIGHT)) {
    110108        // FIXME: Need to support weights for real, since we're effectively limiting the number of supported weights to two.
    111109        // This behavior could also result in the "last kinda bold variant" described winning even if it isn't the best match for bold.
     
    123121    }
    124122
     123    if (RefPtr<CSSValue> fontVariant = style->getPropertyCSSValue(CSS_PROP_FONT_VARIANT))
     124        fontDescription.setSmallCaps(static_cast<CSSPrimitiveValue*>(fontVariant.get())->getIdent() == CSS_VAL_SMALL_CAPS);
     125
    125126    // Each item in the src property's list is a single CSSFontFaceSource. Put them all into a CSSFontFace.
    126127    CSSFontFace* fontFace = 0;
     
    139140        CSSFontFaceSrcValue* item = static_cast<CSSFontFaceSrcValue*>(srcList->item(i));
    140141        CSSFontFaceSource* source = 0;
    141 
    142 #if ENABLE(SVG_FONTS)
    143         // SVG Fonts support (internal fonts, living within the document)
    144         svgFontFaceElement = item->svgFontFaceElement();
    145         if (svgFontFaceElement)
    146             break;
    147 #endif
    148142
    149143        if (!item->isLocal()) {
     
    154148            }
    155149        } else {
     150            String family = item->resource();
     151
     152#if ENABLE(SVG_FONTS)
     153            // SVG Fonts support (internal fonts, living within the document)
     154            svgFontFaceElement = item->svgFontFaceElement();
     155            if (svgFontFaceElement) {
     156                source = new CSSFontFaceSource(family);
     157                foundLocal = true;
     158            }
     159#endif
     160
    156161            // Test the validity of the local font now.  We don't want to include this font if it does not exist
    157162            // on the system.  If it *does* exist on the system, then we don't need to look any further.
    158             String family = item->resource();
    159             if (FontCache::fontExists(fontDescription, family)) {
     163            if (FontCache::fontExists(fontDescription, family) && !foundLocal) {
    160164                source = new CSSFontFaceSource(family);
    161165                foundLocal = true;
     
    163167        }
    164168
    165         if (!fontFace)
    166             fontFace = new CSSFontFace(this);
     169        if (!fontFace) {
     170#if ENABLE(SVG_FONTS)
     171            if (svgFontFaceElement)
     172                fontFace = new SVGCSSFontFace(this, svgFontFaceElement);
     173            else
     174#endif
     175                fontFace = new CSSFontFace(this);
     176        }
    167177
    168178        if (source)
    169179            fontFace->addSource(source);
    170        
     180
    171181        // We can just break if we see a local font that is valid.
    172182        if (foundLocal)
     
    174184    }
    175185
    176 #if ENABLE(SVG_FONTS)
    177     ASSERT(fontFace || svgFontFaceElement);
    178 #else
    179186    ASSERT(fontFace);
    180 #endif
    181187
    182188    if (fontFace && !fontFace->isValid()) {
     
    221227
    222228#if ENABLE(SVG_FONTS)
    223         if (svgFontFaceElement) {
    224             ASSERT(svgFontFaceElement->fontFamily() == familyName);
    225             fontFace = new SVGCSSFontFace(this, svgFontFaceElement);
    226         }
     229        // SVG allows several <font> elements with the same font-family, differing only
     230        // in ie. font-variant. Be sure to pick up the right one - in getFontData below.
     231        if (svgFontFaceElement && fontDescription.smallCaps())
     232            familyName += "-webkit-svg-small-caps";
    227233#endif
    228234
     
    251257
    252258    String family = familyName.domString().lower();
    253    
     259
     260#if ENABLE(SVG_FONTS)
     261    RefPtr<CSSFontFace> face;
     262
     263    if (fontDescription.smallCaps()) {
     264        String testFamily = family + "-webkit-svg-small-caps";
     265        face = m_fonts.get(hashForFont(testFamily, bold, italic));
     266    } else
     267        face = m_fonts.get(hashForFont(family, bold, italic));
     268#else
    254269    RefPtr<CSSFontFace> face = m_fonts.get(hashForFont(family, bold, italic));
     270#endif
     271
    255272    // If we don't find a face, and if bold/italic are set, we should try other variants.
    256273    // Bold/italic should try bold first, then italic, then normal (on the assumption that we are better at synthesizing italic than we are
     
    274291        }
    275292    }
    276    
     293
     294#if ENABLE(SVG_FONTS)
     295    // If no face was found, and if we're a SVG Font we may have hit following case:
     296    // <font-face> specified font-weight and/or font-style to be ie. bold and italic.
     297    // And the font-family requested is non-bold & non-italic. For SVG Fonts we still
     298    // have to return the defined font, and not fallback to the system default.
     299    if (!face && !bold)
     300        face = m_fonts.get(hashForFont(family, true, italic));
     301
     302    if (!face && !italic)
     303        face = m_fonts.get(hashForFont(family, bold, true));
     304
     305    if (!face && !bold && !italic)
     306        face = m_fonts.get(hashForFont(family, true, true));
     307#endif
     308
    277309    // If no face was found, then return 0 and let the OS come up with its best match for the name.
    278310    if (!face) {
  • trunk/WebCore/platform/graphics/Font.cpp

    r29012 r29246  
    518518int Font::lineSpacing() const
    519519{
    520     return primaryFont()->lineSpacing();
     520    return primaryFont()->lineSpacing(size());
    521521}
    522522
    523523float Font::xHeight() const
    524524{
    525     return primaryFont()->xHeight();
     525    return primaryFont()->xHeight(size());
    526526}
    527527
     
    549549bool Font::canUseGlyphCache(const TextRun& run) const
    550550{
    551 #if ENABLE(SVG_FONTS)
    552     // SVG fonts don't support any caching for now, we pretend it here to assure SVG
    553     // font drawing always ends up in the 'simple code path', when SVG fonts are used.
    554     if (primaryFont() && primaryFont()->isSVGFont())
    555         return true;
    556 #endif
    557 
    558551    switch (codePath) {
    559552        case Auto:
     
    662655        FloatSize nextOffset = glyphBuffer.offsetAt(nextGlyph);
    663656        if (nextFontData != fontData || nextOffset != offset) {
    664 #if ENABLE(SVG_FONTS)
    665             if (fontData->isSVGFont())
    666                 drawGlyphsWithSVGFont(context, run.referencingRenderObject(), fontData, glyphBuffer, lastFrom, nextGlyph - lastFrom, startPoint);
    667             else
    668 #endif
    669657            drawGlyphs(context, fontData, glyphBuffer, lastFrom, nextGlyph - lastFrom, startPoint);
    670658
     
    678666    }
    679667
    680 #if ENABLE(SVG_FONTS)
    681     if (fontData->isSVGFont())
    682         drawGlyphsWithSVGFont(context, run.referencingRenderObject(), fontData, glyphBuffer, lastFrom, nextGlyph - lastFrom, startPoint);
    683     else
    684 #endif
    685668    drawGlyphs(context, fontData, glyphBuffer, lastFrom, nextGlyph - lastFrom, startPoint);
    686669}
     
    693676   
    694677    to = (to == -1 ? run.length() : to);
     678
     679#if ENABLE(SVG_FONTS)
     680    if (primaryFont()->isSVGFont()) {
     681        drawTextUsingSVGFont(context, run, point, from, to);
     682        return;
     683    }
     684#endif
     685
    695686    if (canUseGlyphCache(run))
    696687        drawSimpleText(context, run, point, from, to);
     
    701692float Font::floatWidth(const TextRun& run) const
    702693{
     694#if ENABLE(SVG_FONTS)
     695    if (primaryFont()->isSVGFont())
     696        return floatWidthUsingSVGFont(run);
     697#endif
     698
    703699    if (canUseGlyphCache(run))
    704700        return floatWidthForSimpleText(run, 0);
     
    715711FloatRect Font::selectionRectForText(const TextRun& run, const IntPoint& point, int h, int from, int to) const
    716712{
     713#if ENABLE(SVG_FONTS)
     714    if (primaryFont()->isSVGFont())
     715        return selectionRectForTextUsingSVGFont(run, point, h, from, to);
     716#endif
     717
    717718    to = (to == -1 ? run.length() : to);
    718719    if (canUseGlyphCache(run))
  • trunk/WebCore/platform/graphics/Font.h

    r29012 r29246  
    4848class IntPoint;
    4949class RenderObject;
     50class SVGPaintServer;
    5051
    5152struct GlyphData;
     
    6768#if ENABLE(SVG_FONTS)
    6869        , m_referencingRenderObject(0)
     70        , m_activePaintServer(0)
    6971#endif
    7072    {
     
    8587#if ENABLE(SVG_FONTS)
    8688        , m_referencingRenderObject(0)
     89        , m_activePaintServer(0)
    8790#endif
    8891    {
     
    115118    RenderObject* referencingRenderObject() const { return m_referencingRenderObject; }
    116119    void setReferencingRenderObject(RenderObject* object) { m_referencingRenderObject = object; }
     120
     121    SVGPaintServer* activePaintServer() const { return m_activePaintServer; }
     122    void setActivePaintServer(SVGPaintServer* object) { m_activePaintServer = object; }
    117123#endif
    118124
     
    132138#if ENABLE(SVG_FONTS)
    133139    RenderObject* m_referencingRenderObject;
     140    SVGPaintServer* m_activePaintServer;
    134141#endif
    135142};
     
    215222    bool canUseGlyphCache(const TextRun&) const;
    216223    void drawSimpleText(GraphicsContext*, const TextRun&, const FloatPoint&, int from, int to) const;
     224#if ENABLE(SVG_FONTS)
     225    void drawTextUsingSVGFont(GraphicsContext*, const TextRun&, const FloatPoint&, int from, int to) const;
     226    float floatWidthUsingSVGFont(const TextRun&) const;
     227    FloatRect selectionRectForTextUsingSVGFont(const TextRun&, const IntPoint&, int h, int from, int to) const;
     228#endif
    217229    void drawGlyphs(GraphicsContext*, const FontData*, const GlyphBuffer&, int from, int to, const FloatPoint&) const;
    218 #if ENABLE(SVG_FONTS)
    219     void drawGlyphsWithSVGFont(GraphicsContext*, RenderObject*, const FontData*, const GlyphBuffer&, int from, int to, const FloatPoint&) const;
    220 #endif
    221230    void drawGlyphBuffer(GraphicsContext*, const GlyphBuffer&, const TextRun&, const FloatPoint&) const;
    222231    void drawComplexText(GraphicsContext*, const TextRun&, const FloatPoint&, int from, int to) const;
  • trunk/WebCore/platform/graphics/FontData.cpp

    r29029 r29246  
    137137}
    138138
     139int FontData::lineSpacing(float fontSize) const
     140{
     141#if ENABLE(SVG_FONTS)
     142    if (m_svgFontData)
     143        return (int) ceilf(SVGFontData::convertEmUnitToPixel(fontSize, m_unitsPerEm, m_lineSpacing));
     144#endif
     145
     146    return m_lineSpacing;
     147}
     148
     149int FontData::lineGap(float fontSize) const
     150{
     151#if ENABLE(SVG_FONTS)
     152    if (m_svgFontData)
     153        return SVGFontData::convertEmUnitToPixel(fontSize, m_unitsPerEm, m_lineGap);
     154#endif
     155
     156    return m_lineGap;
     157}
     158
     159float FontData::xHeight(float fontSize) const
     160{
     161#if ENABLE(SVG_FONTS)
     162    if (m_svgFontData)
     163        return SVGFontData::convertEmUnitToPixel(fontSize, m_unitsPerEm, m_xHeight);
     164#endif
     165
     166    return m_xHeight;
     167}
     168
    139169float FontData::widthForGlyph(Glyph glyph) const
    140170{
  • trunk/WebCore/platform/graphics/FontData.h

    r29029 r29246  
    8383    int ascent(float fontSize) const;
    8484    int descent(float fontSize) const;
    85     int lineSpacing() const { return m_lineSpacing; }
    86     int lineGap() const { return m_lineGap; }
    87     float xHeight() const { return m_xHeight; }
     85    int lineSpacing(float fontSize) const;
     86    int lineGap(float fontSize) const;
     87    float xHeight(float fontSize) const;
    8888    unsigned unitsPerEm() const { return m_unitsPerEm; }
    8989
  • trunk/WebCore/platform/graphics/win/FontWin.cpp

    r29025 r29246  
    6262
    6363        // We put slop into this rect, since glyphs can overflow the ascent/descent bounds and the left/right edges.
    64         IntRect textRect(point.x() - font->lineGap(), point.y() - font->ascent(size()) - font->lineGap(), totalWidth + 2 * font->lineGap(), font->lineSpacing());
     64        int lineGap = font->lineGap(size());
     65        IntRect textRect(point.x() - lineGap, point.y() - font->ascent(size()) - lineGap, totalWidth + 2 * lineGap, font->lineSpacing(size()));
    6566        HDC hdc = graphicsContext->getWindowsContext(textRect);
    6667        SelectObject(hdc, font->m_font.hfont());
  • trunk/WebCore/rendering/RenderSVGText.cpp

    r28568 r29246  
    3030
    3131#include "FloatConversion.h"
     32#include "FontData.h"
    3233#include "GraphicsContext.h"
    3334#include "PointerEventsHitRules.h"
     
    189190
    190191    // SVG needs to include the strokeWidth(), not the textStrokeWidth().
    191     if (includeStroke && style()->svgStyle()->hasStroke())
    192         repaintRect.inflate(SVGRenderStyle::cssPrimitiveToLength(this, style()->svgStyle()->strokeWidth(), 0.0f));
     192    if (includeStroke && style()->svgStyle()->hasStroke()) {
     193        float strokeWidth = SVGRenderStyle::cssPrimitiveToLength(this, style()->svgStyle()->strokeWidth(), 0.0f);
     194
     195#if ENABLE(SVG_FONTS)
     196        const Font& font = style()->font();
     197        if (font.primaryFont()->isSVGFont()) {
     198            float scale = SVGFontData::convertEmUnitToPixel(font.size(), font.unitsPerEm(), 1.0f);
     199
     200            if (scale != 0.0f)
     201                strokeWidth /= scale;
     202        }
     203#endif
     204
     205        repaintRect.inflate(strokeWidth);
     206    }
    193207
    194208    repaintRect.move(xPos(), yPos());
  • trunk/WebCore/rendering/SVGInlineTextBox.cpp

    r29012 r29246  
    322322}
    323323
    324 void SVGInlineTextBox::paintCharacters(RenderObject::PaintInfo& paintInfo, int tx, int ty, const SVGChar& svgChar, const UChar* chars, int length)
     324void SVGInlineTextBox::paintCharacters(RenderObject::PaintInfo& paintInfo, int tx, int ty, const SVGChar& svgChar, const UChar* chars, int length, SVGPaintServer* activePaintServer)
    325325{
    326326    if (object()->style()->visibility() != VISIBLE || paintInfo.phase == PaintPhaseOutline)
     
    388388    IntPoint origin((int) svgChar.x, (int) svgChar.y);
    389389    TextRun run = svgTextRunForInlineTextBox(chars, length, styleToUse, this, svgChar.x);
     390
     391#if ENABLE(SVG_FONTS)
     392    // SVG Fonts need access to the paint server used to draw the current text chunk.
     393    // They need to be able to call renderPath() on a SVGPaintServer object.
     394    run.setActivePaintServer(activePaintServer);
     395#endif
    390396
    391397    paintInfo.context->drawText(run, origin);
  • trunk/WebCore/rendering/SVGInlineTextBox.h

    r27848 r29246  
    4848
    4949        // SVGs custom paint text method
    50         void paintCharacters(RenderObject::PaintInfo&, int tx, int ty, const SVGChar&, const UChar* chars, int length);
     50        void paintCharacters(RenderObject::PaintInfo&, int tx, int ty, const SVGChar&, const UChar* chars, int length, SVGPaintServer*);
    5151
    5252        // SVGs custom paint selection method
  • trunk/WebCore/rendering/SVGRootInlineBox.cpp

    r29012 r29246  
    531531
    532532            // Paint text
    533             textBox->paintCharacters(m_paintInfo, m_tx, m_ty, *it, stringStart, stringLength);
     533            SVGPaintServer* activePaintServer = m_fillPaintServer;
     534            if (!activePaintServer)
     535                activePaintServer = m_strokePaintServer;
     536
     537            ASSERT(activePaintServer);
     538            textBox->paintCharacters(m_paintInfo, m_tx, m_ty, *it, stringStart, stringLength, activePaintServer);
    534539
    535540            // Paint decorations, that have to be drawn afterwards
  • trunk/WebCore/svg/SVGFont.cpp

    r29031 r29246  
    3131#include "SVGFontFaceElement.h"
    3232#include "SVGPaintServer.h"
     33#include "XMLNames.h"
     34
     35using namespace WTF::Unicode;
    3336
    3437namespace WebCore {
     
    3942}
    4043
    41 void Font::drawGlyphsWithSVGFont(GraphicsContext* context, RenderObject* renderObject,
    42                                  const FontData* fontData, const GlyphBuffer& glyphBuffer,
    43                                  int from, int to, const FloatPoint& point) const
    44 {
    45     ASSERT(renderObject);
    46 
     44// Helper functions to determine the arabic character forms (initial, medial, terminal, isolated)
     45enum ArabicCharShapingMode {
     46    SNone = 0,
     47    SRight = 1,
     48    SDual = 2
     49};
     50
     51static const ArabicCharShapingMode s_arabicCharShapingMode[222] = {
     52    SRight, SRight, SRight, SRight, SDual , SRight, SDual , SRight, SDual , SDual , SDual , SDual , SDual , SRight,                 /* 0x0622 - 0x062F */
     53    SRight, SRight, SRight, SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SNone , SNone , SNone , SNone , SNone , /* 0x0630 - 0x063F */
     54    SNone , SDual , SDual , SDual , SDual , SDual , SDual , SRight, SDual , SDual , SNone , SNone , SNone , SNone , SNone , SNone , /* 0x0640 - 0x064F */
     55    SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , /* 0x0650 - 0x065F */
     56    SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , /* 0x0660 - 0x066F */
     57    SNone , SRight, SRight, SRight, SNone , SRight, SRight, SRight, SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , /* 0x0670 - 0x067F */
     58    SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SRight, SRight, SRight, SRight, SRight, SRight, SRight, SRight, /* 0x0680 - 0x068F */
     59    SRight, SRight, SRight, SRight, SRight, SRight, SRight, SRight, SRight, SRight, SDual , SDual , SDual , SDual , SDual , SDual , /* 0x0690 - 0x069F */
     60    SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , /* 0x06A0 - 0x06AF */
     61    SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , /* 0x06B0 - 0x06BF */
     62    SRight, SDual , SRight, SRight, SRight, SRight, SRight, SRight, SRight, SRight, SRight, SRight, SDual , SRight, SDual , SRight, /* 0x06C0 - 0x06CF */
     63    SDual , SDual , SRight, SRight, SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , /* 0x06D0 - 0x06DF */
     64    SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , /* 0x06E0 - 0x06EF */
     65    SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SDual , SDual , SDual , SNone , SNone , SNone   /* 0x06F0 - 0x06FF */
     66};
     67
     68static inline SVGGlyphIdentifier::ArabicForm processArabicFormDetection(const UChar& curChar, bool& lastCharShapesRight, SVGGlyphIdentifier::ArabicForm* prevForm)
     69{
     70    SVGGlyphIdentifier::ArabicForm curForm;
     71
     72    ArabicCharShapingMode shapingMode = SNone;
     73    if (curChar >= 0x0622 && curChar <= 0x06FF)
     74        shapingMode = s_arabicCharShapingMode[curChar - 0x0622];
     75
     76    // Use a simple state machine to identify the actual arabic form
     77    // It depends on the order of the arabic form enum:
     78    // enum ArabicForm { None = 0, Isolated, Terminal, Initial, Medial };
     79
     80    if (lastCharShapesRight && shapingMode == SDual) {
     81        if (prevForm) {
     82            int correctedForm = (int) *prevForm + 1;
     83            ASSERT(correctedForm >= SVGGlyphIdentifier::None && correctedForm <= SVGGlyphIdentifier::Medial);
     84            *prevForm = static_cast<SVGGlyphIdentifier::ArabicForm>(correctedForm);
     85        }
     86
     87        curForm = SVGGlyphIdentifier::Initial;
     88    } else
     89        curForm = shapingMode == SNone ? SVGGlyphIdentifier::None : SVGGlyphIdentifier::Isolated;
     90
     91    lastCharShapesRight = shapingMode != SNone;
     92    return curForm;
     93}
     94
     95static Vector<SVGGlyphIdentifier::ArabicForm> charactersWithArabicForm(const String& input, bool rtl)
     96{
     97    Vector<SVGGlyphIdentifier::ArabicForm> forms;
     98    unsigned int length = input.length();
     99
     100    bool containsArabic = false;
     101    for (unsigned int i = 0; i < length; ++i) {
     102        if (isArabicChar(input[i])) {
     103            containsArabic = true;
     104            break;
     105        }
     106    }
     107
     108    if (!containsArabic)
     109        return forms;
     110
     111    bool lastCharShapesRight = false;
     112
     113    // Start identifying arabic forms
     114    if (rtl)
     115        for (int i = length - 1; i >= 0; --i)
     116            forms.prepend(processArabicFormDetection(input[i], lastCharShapesRight, forms.isEmpty() ? 0 : &forms.first()));
     117    else
     118        for (unsigned int i = 0; i < length; ++i)
     119            forms.append(processArabicFormDetection(input[i], lastCharShapesRight, forms.isEmpty() ? 0 : &forms.last()));
     120
     121    return forms;
     122}
     123
     124static inline bool isCompatibleArabicForm(const SVGGlyphIdentifier& identifier, const Vector<SVGGlyphIdentifier::ArabicForm>& chars, unsigned int startPosition, unsigned int endPosition)
     125{
     126    if (chars.isEmpty())
     127        return true;
     128
     129    Vector<SVGGlyphIdentifier::ArabicForm>::const_iterator it = chars.begin() + startPosition;
     130    Vector<SVGGlyphIdentifier::ArabicForm>::const_iterator end = chars.begin() + endPosition;
     131
     132    ASSERT(end <= chars.end());
     133    for (; it != end; ++it) {
     134        if ((*it) != identifier.arabicForm && (*it) != SVGGlyphIdentifier::None)
     135            return false;
     136    }
     137
     138    return true;
     139}
     140
     141static inline bool isCompatibleGlyph(const SVGGlyphIdentifier& identifier, bool isVerticalText, const String& language,
     142                                     const Vector<SVGGlyphIdentifier::ArabicForm>& chars, unsigned int startPosition, unsigned int endPosition)
     143{
     144    bool valid = true;
     145
     146    // Check wheter orientation if glyph fits within the request
     147    switch (identifier.orientation) {
     148    case SVGGlyphIdentifier::Vertical:
     149        valid = isVerticalText;
     150        break;
     151    case SVGGlyphIdentifier::Horizontal:
     152        valid = !isVerticalText;
     153        break;
     154    case SVGGlyphIdentifier::Both:
     155        break;
     156    }
     157
     158    if (!valid)
     159        return false;
     160
     161    // Check wheter languages are compatible
     162    if (!language.isEmpty() && !identifier.languages.isEmpty()) {
     163        // Split subcode from language, if existant.
     164        String languagePrefix;
     165
     166        int subCodeSeparator = language.find('-');
     167        if (subCodeSeparator != -1)
     168            languagePrefix = language.left(subCodeSeparator);
     169
     170        Vector<String>::const_iterator it = identifier.languages.begin();
     171        Vector<String>::const_iterator end = identifier.languages.end();
     172
     173        bool found = false;
     174        for (; it != end; ++it) {
     175            String cur = (*it);
     176
     177            if (cur == language || cur == languagePrefix) {
     178                found = true;
     179                break;
     180            }
     181        }
     182
     183        if (!found)
     184            return false;
     185    }
     186
     187    // Check wheter arabic form is compatible
     188    return isCompatibleArabicForm(identifier, chars, startPosition, endPosition);
     189}
     190
     191static inline SVGFontData* svgFontAndFontFaceElementForFontData(const FontData* fontData, SVGFontFaceElement*& fontFace, SVGFontElement*& font)
     192{
    47193    ASSERT(!fontData->isCustomFont());
    48194    ASSERT(fontData->isSVGFont());
     
    51197    ASSERT(svgFontData);
    52198
    53     SVGFontFaceElement* fontFace = svgFontData->fontFaceElement.get();
     199    fontFace = svgFontData->fontFaceElement.get();
    54200    ASSERT(fontFace);
    55201
    56     RenderStyle* style = renderObject->style();
    57     ASSERT(style);
    58 
    59     // TODO: This is ridiculous. Glyphs shouldn't be collected when painted. The problem is
    60     // that we need to cache 'Glyph' instead of 'String' in the GlyphHashMap, to obtain
    61     // a set of 'Glyph's from a 'String' we need the local function glyphDataForCharacter.
    62     // Somehow the design needs to be changed. Not yet sure how, needs discussion.
    63     if (fontFace->parentNode() && fontFace->parentNode()->hasTagName(SVGNames::fontTag))
    64         static_cast<SVGFontElement*>(fontFace->parentNode())->collectGlyphs(*this);
    65 
    66     float fontSize = size();
    67     unsigned unitsPerEm = fontFace->unitsPerEm();
    68     bool isVerticalText = isVerticalWritingMode(style->svgStyle());
    69     float scale = SVGFontData::convertEmUnitToPixel(fontSize, unitsPerEm, 1.0f);
    70 
    71     SVGPaintServer* fillPaintServer = SVGPaintServer::fillPaintServer(style, renderObject);
    72     SVGPaintServer* strokePaintServer = SVGPaintServer::strokePaintServer(style, renderObject);
    73 
    74     FloatPoint startPoint = point;
    75 
     202    font = fontFace->associatedFontElement();
     203    return svgFontData;
     204}
     205
     206// Helper class to walk a text run. Lookup a SVGGlyphIdentifier for each character
     207// - also respecting possibly defined ligatures - and invoke a callback for each found glyph.
     208template<typename SVGTextRunData>
     209struct SVGTextRunWalker {
     210    typedef bool (*SVGTextRunWalkerCallback)(const SVGGlyphIdentifier&, SVGTextRunData&);
     211    typedef void (*SVGTextRunWalkerMissingGlyphCallback)(const TextRun&, unsigned int, SVGTextRunData&);
     212
     213    SVGTextRunWalker(SVGFontData* fontData, SVGFontElement* fontElement, SVGTextRunData& data,
     214                     SVGTextRunWalkerCallback callback, SVGTextRunWalkerMissingGlyphCallback missingGlyphCallback)
     215        : m_fontData(fontData)
     216        , m_fontElement(fontElement)
     217        , m_walkerData(data)
     218        , m_walkerCallback(callback)
     219        , m_walkerMissingGlyphCallback(missingGlyphCallback)
     220    {
     221    }
     222
     223    void walk(const TextRun& run, bool isVerticalText, const String& language, int from, int to)
     224    {
     225        // Should hold true for SVG text, otherwhise sth. is wrong
     226        ASSERT(to - from == run.length());
     227
     228        int maximumHashKeyLength = m_fontElement->maximumHashKeyLength();
     229        ASSERT(maximumHashKeyLength >= 0);
     230
     231        Vector<SVGGlyphIdentifier::ArabicForm> chars(charactersWithArabicForm(String(run.data(from), run.length()), run.rtl()));
     232
     233        SVGGlyphIdentifier identifier;
     234        bool foundGlyph = false;
     235        int characterLookupRange;
     236
     237        for (int i = from; i < to; ++i) {
     238            // If characterLookupRange is > 0, then the font defined ligatures (length of unicode property value > 1).
     239            // We have to check wheter the current character & the next character define a ligature. This needs to be
     240            // extended to the n-th next character (where n is 'characterLookupRange'), to check for any possible ligature.
     241            characterLookupRange = maximumHashKeyLength + i >= to ? to - i : maximumHashKeyLength;
     242
     243            while (characterLookupRange > 0 && !foundGlyph) {
     244                String lookupString(run.data(run.rtl() ? run.length() - (i + characterLookupRange) : i), characterLookupRange);
     245
     246                Vector<SVGGlyphIdentifier> glyphs = m_fontElement->glyphIdentifiersForString(lookupString);
     247                Vector<SVGGlyphIdentifier>::iterator it = glyphs.begin();
     248                Vector<SVGGlyphIdentifier>::iterator end = glyphs.end();
     249
     250                for (; it != end; ++it) {
     251                    identifier = *it;
     252
     253                    unsigned int startPosition = run.rtl() ? run.length() - (i + lookupString.length()) : i;
     254                    unsigned int endPosition = startPosition + lookupString.length();
     255
     256                    if (identifier.isValid && isCompatibleGlyph(identifier, isVerticalText, language, chars, startPosition, endPosition)) {
     257                        ASSERT(characterLookupRange > 0);
     258                        i += characterLookupRange - 1;
     259
     260                        foundGlyph = true;
     261                        SVGGlyphElement::inheritUnspecifiedAttributes(identifier, m_fontData);
     262                        break;
     263                    }
     264                }
     265
     266                characterLookupRange--;
     267            }
     268
     269            if (!foundGlyph) {
     270                (*m_walkerMissingGlyphCallback)(run, i, m_walkerData);
     271                continue;
     272            }
     273
     274            if (!(*m_walkerCallback)(identifier, m_walkerData))
     275                break;
     276
     277            foundGlyph = false;
     278        }
     279    }
     280
     281private:
     282    SVGFontData* m_fontData;
     283    SVGFontElement* m_fontElement;
     284    SVGTextRunData& m_walkerData;
     285    SVGTextRunWalkerCallback m_walkerCallback;
     286    SVGTextRunWalkerMissingGlyphCallback m_walkerMissingGlyphCallback;
     287};
     288
     289// Callback & data structures to compute the width of text using SVG Fonts
     290struct SVGTextRunWalkerMeasuredLengthData {
     291    int at;
     292    int from;
     293    int to;
     294
     295    float length;
     296    float fontSize;
     297    unsigned unitsPerEm;
     298    const Font* font;
     299};
     300
     301bool floatWidthUsingSVGFontCallback(const SVGGlyphIdentifier& identifier, SVGTextRunWalkerMeasuredLengthData& data)
     302{
     303    if (data.at >= data.from && data.at < data.to)
     304        data.length += SVGFontData::convertEmUnitToPixel(data.fontSize, data.unitsPerEm, identifier.horizontalAdvanceX);
     305
     306    data.at++;
     307    return data.at < data.to;
     308}
     309
     310void floatWidthMissingGlyphCallback(const TextRun& run, unsigned int position, SVGTextRunWalkerMeasuredLengthData& data)
     311{
     312    // Construct a copy of the current SVG Font that in is use. Disable the SVG Font functionality
     313    // in that copy of the Font object, so drawText/floatWidth end up in the "simple" code paths.
     314    FontData* fontData = const_cast<FontData*>(data.font->primaryFont());
     315    SVGFontData* svgFontData = fontData->m_svgFontData.release();
     316
     317    // Handle system font fallback
     318    TextRun subRun(run);
     319    subRun.setText(subRun.data(position), 1);
     320
     321    data.length += data.font->floatWidth(subRun);
     322
     323    // Switch back to SVG Font code path
     324    fontData->m_svgFontData.set(svgFontData);
     325}
     326
     327static float floatWidthOfSubStringUsingSVGFont(const Font* font, const TextRun& run, int from, int to)
     328{
     329    int newFrom = to > from ? from : to;
     330    int newTo = to > from ? to : from;
     331
     332    from = newFrom;
     333    to = newTo;
     334
     335    SVGFontElement* fontElement = 0;
     336    SVGFontFaceElement* fontFaceElement = 0;
     337
     338    if (SVGFontData* fontData = svgFontAndFontFaceElementForFontData(font->primaryFont(), fontFaceElement, fontElement)) {
     339        if (!fontElement)
     340            return 0.0f;
     341
     342        SVGTextRunWalkerMeasuredLengthData data;
     343
     344        data.font = font;
     345        data.at = from;
     346        data.from = from;
     347        data.to = to;
     348        data.length = 0.0f;
     349        data.fontSize = font->size();
     350        data.unitsPerEm = fontFaceElement->unitsPerEm();
     351
     352        if (RenderObject* renderObject = run.referencingRenderObject()) {
     353            bool isVerticalText = isVerticalWritingMode(renderObject->style()->svgStyle());
     354
     355            String language;
     356            if (renderObject->element())
     357                language = static_cast<Element*>(renderObject->element())->getAttribute(XMLNames::langAttr);
     358
     359            SVGTextRunWalker<SVGTextRunWalkerMeasuredLengthData> runWalker(fontData, fontElement, data, floatWidthUsingSVGFontCallback, floatWidthMissingGlyphCallback);
     360            runWalker.walk(run, isVerticalText, language, 0, run.length());
     361        }
     362
     363        return data.length;
     364    }
     365
     366    return 0.0f;
     367}
     368
     369float Font::floatWidthUsingSVGFont(const TextRun& run) const
     370{
     371    return floatWidthOfSubStringUsingSVGFont(this, run, 0, run.length());
     372}
     373
     374// Callback & data structures to draw text using SVG Fonts
     375struct SVGTextRunWalkerDrawTextData {
     376    float fontSize;
     377    float scale;
     378    unsigned unitsPerEm;
     379    bool isVerticalText;
     380
     381    float xStartOffset;
     382    FloatPoint currentPoint;
    76383    FloatPoint glyphOrigin;
    77     if (!isVerticalText) {
    78         glyphOrigin.setX(SVGFontData::convertEmUnitToPixel(fontSize, unitsPerEm, svgFontData->horizontalOriginX));
    79         glyphOrigin.setY(SVGFontData::convertEmUnitToPixel(fontSize, unitsPerEm, svgFontData->horizontalOriginY));
    80     }
    81 
    82     for (int i = from; i < to; ++i) {
    83         SVGGlyphIdentifier identifier = fontFace->glyphIdentifierForGlyphCode(glyphBuffer.glyphAt(i));
    84 
    85         // TODO: Support arbitary SVG content as glyph (currently limited to <glyph d="..."> situations)
    86         if (!identifier.pathData.isEmpty()) {
    87             if (isVerticalText) {
    88                 glyphOrigin.setX(SVGFontData::convertEmUnitToPixel(fontSize, unitsPerEm, identifier.verticalOriginX));
    89                 glyphOrigin.setY(SVGFontData::convertEmUnitToPixel(fontSize, unitsPerEm, identifier.verticalOriginY));
    90             }
    91 
    92             context->save();
    93             context->translate(startPoint.x() + glyphOrigin.x(), startPoint.y() + glyphOrigin.y());
    94             context->scale(FloatSize(scale, -scale));
    95 
    96             context->beginPath();
    97 
    98             if (fillPaintServer) {
    99                 context->addPath(identifier.pathData);
    100                 fillPaintServer->draw(context, renderObject, ApplyToFillTargetType);
    101             }
    102 
    103             if (strokePaintServer) {
    104                 context->addPath(identifier.pathData);
    105                 strokePaintServer->draw(context, renderObject, ApplyToStrokeTargetType);
    106             }
    107 
    108             context->restore();
    109 
    110             if (isVerticalText)
    111                 startPoint.move(0, SVGFontData::convertEmUnitToPixel(fontSize, unitsPerEm, identifier.verticalAdvanceY));
    112             else
    113                 startPoint.move(SVGFontData::convertEmUnitToPixel(fontSize, unitsPerEm, identifier.horizontalAdvanceX), 0);
    114         }
    115     }
     384
     385    GraphicsContext* context;
     386    RenderObject* renderObject;
     387
     388    SVGPaintServer* activePaintServer;
     389};
     390
     391bool drawTextUsingSVGFontCallback(const SVGGlyphIdentifier& identifier, SVGTextRunWalkerDrawTextData& data)
     392{
     393    // TODO: Support arbitary SVG content as glyph (currently limited to <glyph d="..."> situations)
     394    if (!identifier.pathData.isEmpty()) {
     395        data.context->save();
     396
     397        if (data.isVerticalText) {
     398            data.glyphOrigin.setX(SVGFontData::convertEmUnitToPixel(data.fontSize, data.unitsPerEm, identifier.verticalOriginX));
     399            data.glyphOrigin.setY(SVGFontData::convertEmUnitToPixel(data.fontSize, data.unitsPerEm, identifier.verticalOriginY));
     400        }
     401
     402        data.context->translate(data.xStartOffset + data.currentPoint.x() + data.glyphOrigin.x(), data.currentPoint.y() + data.glyphOrigin.y());
     403        data.context->scale(FloatSize(data.scale, -data.scale));
     404
     405        data.context->beginPath();
     406        data.context->addPath(identifier.pathData);
     407
     408        SVGPaintTargetType targetType = data.context->textDrawingMode() == cTextStroke ? ApplyToStrokeTargetType : ApplyToFillTargetType;
     409        if (data.activePaintServer->setup(data.context, data.renderObject, targetType)) {
     410            // Spec: Any properties specified on a text elements which represents a length, such as the
     411            // 'stroke-width' property, might produce surprising results since the length value will be
     412            // processed in the coordinate system of the glyph. (TODO: What other lengths? miter-limit? dash-offset?)
     413            if (targetType == ApplyToStrokeTargetType && data.scale != 0.0f)
     414                data.context->setStrokeThickness(data.context->strokeThickness() / data.scale);
     415
     416            data.activePaintServer->renderPath(data.context, data.renderObject, targetType);
     417            data.activePaintServer->teardown(data.context, data.renderObject, targetType);
     418        }
     419
     420        data.context->restore();
     421    }
     422
     423    if (data.isVerticalText)
     424        data.currentPoint.move(0.0f, SVGFontData::convertEmUnitToPixel(data.fontSize, data.unitsPerEm, identifier.verticalAdvanceY));
     425    else
     426        data.currentPoint.move(SVGFontData::convertEmUnitToPixel(data.fontSize, data.unitsPerEm, identifier.horizontalAdvanceX), 0.0f);
     427
     428    return true;
     429}
     430
     431void drawTextMissingGlyphCallback(const TextRun& run, unsigned int position, SVGTextRunWalkerDrawTextData& data)
     432{
     433    // Construct a copy of the current SVG Font that in is use. Disable the SVG Font functionality
     434    // in that copy of the Font object, so drawText/floatWidth end up in the "simple" code paths.
     435    const Font& font = data.context->font();
     436
     437    FontData* fontData = const_cast<FontData*>(font.primaryFont());
     438    SVGFontData* svgFontData = fontData->m_svgFontData.release();
     439
     440    // Handle system font fallback
     441    TextRun subRun(run);
     442    subRun.setText(subRun.data(position), 1);
     443
     444    font.drawText(data.context, subRun, data.currentPoint);
     445
     446    if (data.isVerticalText)
     447        data.currentPoint.move(0.0f, data.context->font().floatWidth(subRun));
     448    else
     449        data.currentPoint.move(data.context->font().floatWidth(subRun), 0.0f);
     450
     451    // Switch back to SVG Font code path
     452    fontData->m_svgFontData.set(svgFontData);
     453}
     454
     455void Font::drawTextUsingSVGFont(GraphicsContext* context, const TextRun& run,
     456                                const FloatPoint& point, int from, int to) const
     457{
     458    SVGFontElement* fontElement = 0;
     459    SVGFontFaceElement* fontFaceElement = 0;
     460
     461    if (SVGFontData* fontData = svgFontAndFontFaceElementForFontData(primaryFont(), fontFaceElement, fontElement)) {
     462        if (!fontElement)
     463            return;
     464
     465        SVGTextRunWalkerDrawTextData data;
     466
     467        data.renderObject = run.referencingRenderObject();
     468        ASSERT(data.renderObject);
     469
     470        data.activePaintServer = run.activePaintServer();
     471        ASSERT(data.activePaintServer);
     472
     473        data.fontSize = size();
     474        data.unitsPerEm = fontFaceElement->unitsPerEm();
     475        data.scale = SVGFontData::convertEmUnitToPixel(data.fontSize, data.unitsPerEm, 1.0f);
     476        data.isVerticalText = isVerticalWritingMode(data.renderObject->style()->svgStyle());   
     477        data.xStartOffset = floatWidthOfSubStringUsingSVGFont(this, run, run.rtl() ? to : 0, run.rtl() ? run.length() : from);
     478        data.currentPoint = point;
     479        data.glyphOrigin = FloatPoint();
     480        data.context = context;
     481
     482        String language;
     483        if (data.renderObject->element())
     484            language = static_cast<Element*>(data.renderObject->element())->getAttribute(XMLNames::langAttr);
     485
     486        if (!data.isVerticalText) {
     487            data.glyphOrigin.setX(SVGFontData::convertEmUnitToPixel(data.fontSize, data.unitsPerEm, fontData->horizontalOriginX));
     488            data.glyphOrigin.setY(SVGFontData::convertEmUnitToPixel(data.fontSize, data.unitsPerEm, fontData->horizontalOriginY));
     489        }
     490   
     491        SVGTextRunWalker<SVGTextRunWalkerDrawTextData> runWalker(fontData, fontElement, data, drawTextUsingSVGFontCallback, drawTextMissingGlyphCallback);
     492        runWalker.walk(run, data.isVerticalText, language, from, to);
     493    }
     494}
     495
     496FloatRect Font::selectionRectForTextUsingSVGFont(const TextRun& run, const IntPoint& point, int height, int from, int to) const
     497{
     498    return FloatRect(point.x() + floatWidthOfSubStringUsingSVGFont(this, run, run.rtl() ? to : 0, run.rtl() ? run.length() : from),
     499                     point.y(), floatWidthOfSubStringUsingSVGFont(this, run, from, to), height);
    116500}
    117501
  • trunk/WebCore/svg/SVGFontElement.cpp

    r29029 r29246  
    3838SVGFontElement::SVGFontElement(const QualifiedName& tagName, Document* doc)
    3939    : SVGStyledElement(tagName, doc)
     40    , m_maximumHashKeyLength(0)
    4041{
    4142}
     
    4546}
    4647
    47 void SVGFontElement::collectGlyphs(const Font& font)
     48void SVGFontElement::addGlyphToCache(SVGGlyphElement* glyphElement)
    4849{
    49     m_glyphMap.clear();
     50    ASSERT(glyphElement);
    5051
    51     Vector<SVGGlyphElement*> glyphElements;
    52     SVGMissingGlyphElement* missingGlyphElement = 0;
     52    String glyphString = glyphElement->getAttribute(unicodeAttr);
     53    if (glyphString.isEmpty()) // No unicode property, means that glyph will be used in <altGlyph> situations!
     54        return;
    5355
    54     for (Node* child = lastChild(); child; child = child->previousSibling()) {
    55         if (child->hasTagName(glyphTag))
    56             glyphElements.append(static_cast<SVGGlyphElement*>(child));
    57         else if (child->hasTagName(missing_glyphTag))
    58             missingGlyphElement = static_cast<SVGMissingGlyphElement*>(child);
    59     }
     56    SVGGlyphIdentifier identifier = glyphElement->buildGlyphIdentifier();
     57    identifier.isValid = true;
    6058
    61     Vector<SVGGlyphElement*>::iterator it = glyphElements.begin();
    62     Vector<SVGGlyphElement*>::iterator end = glyphElements.end();
     59    if (glyphString.length() > m_maximumHashKeyLength)
     60        m_maximumHashKeyLength = glyphString.length();
    6361
    64     SVGFontData* svgFontData = 0;
     62    GlyphHashMap::iterator glyphsIt = m_glyphMap.find(glyphString);
     63    if (glyphsIt == m_glyphMap.end()) {
     64        Vector<SVGGlyphIdentifier> glyphs;
     65        glyphs.append(identifier);
    6566
    66 #if !PLATFORM(QT)
    67     // Why doesn't Qt have primaryFont()? The Qt guys will see an assertion, if buildGlyphIdentifier() is called :(
    68     const FontData* fontData = font.primaryFont();
    69     ASSERT(fontData);
    70 
    71     svgFontData = fontData->svgFontData();
    72 #endif
    73 
    74     String glyphString;
    75     SVGGlyphIdentifier identifier;
    76 
    77     for (; it != end; ++it) {
    78         identifier = (*it)->buildGlyphIdentifier(svgFontData);
    79         glyphString = (*it)->getAttribute(unicodeAttr);
    80 
    81         // TODO: To support glyph strings consisting of more than one character (ie. 'ffl' ligatures)
    82         // we need another hashing scheme. Glyph <-> SVGGlyphIdentifier is not enough.
    83 
    84         // TODO: We skip glyphs with empty paths, this is not correct if the <glyph> has no d="" but children!
    85        
    86         if (glyphString.length() != 1 || identifier.pathData.isEmpty())
    87             continue;
    88 
    89         const GlyphData& glyphData = font.glyphDataForCharacter(glyphString[0], false /* TODO: no rtl, is this correct in all cases? */);
    90         m_glyphMap.add(glyphData.glyph, identifier);
     67        m_glyphMap.add(glyphString, glyphs);
     68    } else {
     69        Vector<SVGGlyphIdentifier>& glyphs = (*glyphsIt).second;
     70        glyphs.append(identifier);
    9171    }
    9272}
    9373
    94 SVGGlyphIdentifier SVGFontElement::glyphIdentifierForGlyphCode(const Glyph& code) const
     74void SVGFontElement::removeGlyphFromCache(SVGGlyphElement* glyphElement)
    9575{
    96     GlyphHashMap& hashMap = const_cast<SVGFontElement*>(this)->m_glyphMap;
     76    ASSERT(glyphElement);
    9777
    98     GlyphHashMap::iterator it = hashMap.find(code);
    99     if (it == hashMap.end())
    100         return SVGGlyphIdentifier();
     78    String glyphString = glyphElement->getAttribute(unicodeAttr);
     79    if (glyphString.isEmpty()) // No unicode property, means that glyph will be used in <altGlyph> situations!
     80        return;
    10181
    102     return it->second;
     82    GlyphHashMap::iterator glyphsIt = m_glyphMap.find(glyphString);
     83    ASSERT(glyphsIt != m_glyphMap.end());
     84
     85    Vector<SVGGlyphIdentifier>& glyphs = (*glyphsIt).second;
     86
     87    if (glyphs.size() == 1)
     88        m_glyphMap.remove(glyphString);
     89    else {
     90        SVGGlyphIdentifier identifier = glyphElement->buildGlyphIdentifier();
     91        identifier.isValid = true;
     92
     93        Vector<SVGGlyphIdentifier>::iterator it = glyphs.begin();
     94        Vector<SVGGlyphIdentifier>::iterator end = glyphs.end();
     95
     96        unsigned int position = 0;
     97        for (; it != end; ++it) {
     98            if ((*it) == identifier)
     99                break;
     100
     101            position++;
     102        }
     103
     104        ASSERT(position < glyphs.size());
     105        glyphs.remove(position);
     106    }
     107
     108    // If we remove a glyph from cache, whose unicode property length is equal to
     109    // m_maximumHashKeyLength then we need to recalculate the hash key length, because there
     110    // is either no more glyph with that length, or there are still more glyphs with the maximum length.
     111    if (glyphString.length() == m_maximumHashKeyLength) {
     112        m_maximumHashKeyLength = 0;
     113
     114        GlyphHashMap::iterator it = m_glyphMap.begin();
     115        GlyphHashMap::iterator end = m_glyphMap.end();
     116
     117        for (; it != end; ++it) {
     118            if ((*it).first.length() > m_maximumHashKeyLength)
     119                m_maximumHashKeyLength = (*it).first.length();
     120        }
     121    }
     122}
     123
     124SVGMissingGlyphElement* SVGFontElement::firstMissingGlyphElement() const
     125{
     126    for (Node* child = firstChild(); child; child = child->nextSibling()) {
     127        if (child->hasTagName(missing_glyphTag))
     128            return static_cast<SVGMissingGlyphElement*>(child);
     129    }
     130
     131    return 0;
     132}
     133
     134const Vector<SVGGlyphIdentifier>& SVGFontElement::glyphIdentifiersForString(const String& string) const
     135{
     136    GlyphHashMap::const_iterator it = m_glyphMap.find(string);
     137    if (it == m_glyphMap.end()) {
     138        static Vector<SVGGlyphIdentifier> s_emptyGlyphList;
     139        return s_emptyGlyphList;
     140    }
     141
     142    return (*it).second;
    103143}
    104144
  • trunk/WebCore/svg/SVGFontElement.h

    r29026 r29246  
    2323
    2424#if ENABLE(SVG_FONTS)
    25 #include "SVGStyledElement.h"
    26 
    27 #include "GlyphBuffer.h"
    2825#include "SVGExternalResourcesRequired.h"
    2926#include "SVGGlyphElement.h"
     27#include "SVGStyledElement.h"
    3028
    3129namespace WebCore {
    3230
    33     class Font;
    34 
    35     struct GlyphHash {
    36         static unsigned hash(const Glyph& glyph) {
    37             return StringImpl::computeHash((::UChar*) &glyph, sizeof(Glyph) / sizeof(::UChar));
    38         }
    39 
    40         static bool equal(const Glyph& a, const Glyph& b) { return a == b; }
    41         static const bool safeToCompareToEmptyOrDeleted = false;
    42     };
    43 
    44     struct GlyphHashTraits : WTF::GenericHashTraits<Glyph> {
    45         static TraitType deletedValue() { return USHRT_MAX; }
    46     };
    47 
    48     typedef HashMap<Glyph, SVGGlyphIdentifier, GlyphHash, GlyphHashTraits> GlyphHashMap;
    49 
     31    class SVGMissingGlyphElement;   
    5032    class SVGFontElement : public SVGStyledElement
    5133                         , public SVGExternalResourcesRequired {
     
    5739        virtual const SVGElement* contextElement() const { return this; }
    5840
    59         void collectGlyphs(const Font&);
    60         SVGGlyphIdentifier glyphIdentifierForGlyphCode(const Glyph&) const;
     41        void addGlyphToCache(SVGGlyphElement*);
     42        void removeGlyphFromCache(SVGGlyphElement*);
     43
     44        const Vector<SVGGlyphIdentifier>& glyphIdentifiersForString(const String&) const;
     45
     46        // Returns the longest hash key length (the 'unicode' property value with the
     47        // highest amount of characters) - ie. for <glyph unicode="ffl"/> it will return 3.
     48        unsigned int maximumHashKeyLength() const { return m_maximumHashKeyLength; }
     49
     50        SVGMissingGlyphElement* firstMissingGlyphElement() const;
    6151
    6252    private:
    63         // Map between 'unicode' property of <glyph> and a SVGGlyphIdentifier
     53        typedef HashMap<String, Vector<SVGGlyphIdentifier> > GlyphHashMap;
    6454        GlyphHashMap m_glyphMap;
     55
     56        unsigned int m_maximumHashKeyLength;
    6557    };
    6658
  • trunk/WebCore/svg/SVGFontFaceElement.cpp

    r29026 r29246  
    3030#include "CSSStyleSelector.h"
    3131#include "CSSStyleSheet.h"
     32#include "CSSValueKeywords.h"
    3233#include "CSSValueList.h"
    3334#include "FontCache.h"
     
    3536#include "FontPlatformData.h"
    3637#include "SVGDefinitionSrcElement.h"
    37 #include "SVGNames.h"
    3838#include "SVGFontElement.h"
    3939#include "SVGFontFaceSrcElement.h"
    4040#include "SVGGlyphElement.h"
     41#include "SVGNames.h"
    4142
    4243namespace WebCore {
     
    154155    SVGFontElement* fontElement = static_cast<SVGFontElement*>(parentNode());
    155156
    156     // Use default fallback platform data - it's not needed anyway...
    157157    FontPlatformData* cachedPlatformData = FontCache::getLastResortFallbackFont(fontDescription);
    158158    if (!cachedPlatformData)
     
    221221    else if (fontElement->hasAttribute(vert_origin_yAttr))
    222222        fontData->m_ascent = fontData->m_unitsPerEm - static_cast<int>(ceilf(fontElement->getAttribute(vert_origin_yAttr).toFloat()));
    223     else {
    224         // TODO: Batik actually computes the ascent, based on the glyph dimensions of the glyphs contained in the font.
    225         // We may choose the same solution (even if the spec doesn't give a hint), as some W3C SVG 1.1 testcases depend on that.
    226         fontData->m_ascent = 0;
    227     }
     223    else // Match Batik's default value.
     224        fontData->m_ascent = fontData->m_unitsPerEm * 0.8;
    228225
    229226    // Spec: Same syntax and semantics as the 'descent' descriptor within an @font-face rule. The maximum
    230227    // unaccented depth of the font within the font coordinate system. If the attribute is not specified,
    231228    // the effect is as if the attribute were set to the vert-origin-y value for the corresponding font.
    232     if (hasAttribute(descentAttr))
     229    if (hasAttribute(descentAttr)) {
    233230        fontData->m_descent = static_cast<int>(ceilf(getAttribute(descentAttr).toFloat()));
    234     else if (fontElement->hasAttribute(vert_origin_yAttr))
     231
     232        // Some testcases use a negative descent value, where a positive was meant to be used :(
     233        if (fontData->m_descent < 0)
     234            fontData->m_descent = -fontData->m_descent;
     235    } else if (fontElement->hasAttribute(vert_origin_yAttr))
    235236        fontData->m_descent = static_cast<int>(ceilf(fontElement->getAttribute(vert_origin_yAttr).toFloat()));
    236     else {
    237         // TODO: Batik actually computes the descent, based on the glyph dimensions of the glyphs contained in the font.
    238         // We may choose the same solution (even if the spec doesn't give a hint), as some W3C SVG 1.1 testcases depend on that.
    239         fontData->m_descent = 0;
    240     }
     237    else // Match Batik's default value.
     238        fontData->m_descent = fontData->m_unitsPerEm * 0.2;
    241239
    242240    return fontData.release();
     
    253251        RefPtr<CSSValueList> list = new CSSValueList;
    254252
    255         RefPtr<CSSFontFaceSrcValue> src = new CSSFontFaceSrcValue(StringImpl::empty(), false);
     253        RefPtr<CSSFontFaceSrcValue> src = new CSSFontFaceSrcValue(StringImpl::empty(), true /* isLocal */);
    256254        src->setSVGFontFaceElement(this);
    257255        list->append(src);
     
    305303}
    306304
    307 SVGGlyphIdentifier SVGFontFaceElement::glyphIdentifierForGlyphCode(const Glyph& code) const
    308 {
    309     // We only expect to have this method called by a parent font element
    310     ASSERT(parentNode());
    311     ASSERT(parentNode()->hasTagName(fontTag));
    312 
    313     SVGFontElement* fontElement = static_cast<SVGFontElement*>(parentNode());
    314     return fontElement->glyphIdentifierForGlyphCode(code);
     305SVGFontElement* SVGFontFaceElement::associatedFontElement() const
     306{
     307    if (Node* parent = parentNode()) {
     308        if (parent->hasTagName(fontTag))
     309            return static_cast<SVGFontElement*>(parent);
     310        else if (parent->hasTagName(defsTag)) {
     311            // TODO: Support external SVG fonts!
     312            return 0;
     313        }
     314    }
     315
     316    return 0;
    315317}
    316318
  • trunk/WebCore/svg/SVGFontFaceElement.h

    r29012 r29246  
    2424#if ENABLE(SVG_FONTS)
    2525#include "SVGElement.h"
    26 #include "GlyphBuffer.h"
    2726
    2827namespace WebCore {
     
    3231    class FontData;
    3332    class FontDescription;
    34     struct SVGGlyphIdentifier;
     33    class SVGFontElement;
    3534
    3635    class SVGFontFaceElement : public SVGElement {
     
    5049        FontData* createFontData(const FontDescription&) const;
    5150
    52         SVGGlyphIdentifier glyphIdentifierForGlyphCode(const Glyph&) const;
     51        // If our parent element is <font>, it will be returned. (this is the case for a SVG Font described in the same document)
     52        // Otherwhise it will return the <font> element that is referenced by the first valid <font-face-src> element.
     53        SVGFontElement* associatedFontElement() const;
    5354
    5455    private:
  • trunk/WebCore/svg/SVGGlyphElement.cpp

    r29029 r29246  
    2525
    2626#include "FontData.h"
     27#include "SVGFontElement.h"
     28#include "SVGFontFaceElement.h"
    2729#include "SVGNames.h"
    2830#include "SVGParserUtilities.h"
     
    3840}
    3941
     42SVGGlyphElement::~SVGGlyphElement()
     43{
     44}
     45
     46void SVGGlyphElement::insertedIntoDocument()
     47{
     48    Node* fontNode = parentNode();
     49    if (fontNode && fontNode->hasTagName(fontTag)) {
     50        if (SVGFontElement* element = static_cast<SVGFontElement*>(fontNode))
     51            element->addGlyphToCache(this);
     52    }
     53}
     54
     55void SVGGlyphElement::removedFromDocument()
     56{
     57    Node* fontNode = parentNode();
     58    if (fontNode && fontNode->hasTagName(fontTag)) {
     59        if (SVGFontElement* element = static_cast<SVGFontElement*>(fontNode))
     60            element->removeGlyphFromCache(this);
     61    }
     62}
     63
    4064static inline SVGGlyphIdentifier::ArabicForm parseArabicForm(const AtomicString& value)
    4165{
     
    4670    else if (value == "isolated")
    4771        return SVGGlyphIdentifier::Isolated;
     72    else if (value == "initial")
     73        return SVGGlyphIdentifier::Initial;
    4874
    49     return SVGGlyphIdentifier::Initial;
     75    return SVGGlyphIdentifier::None;
    5076}
    5177
     
    6894}
    6995
    70 SVGGlyphIdentifier SVGGlyphElement::buildGlyphIdentifier(SVGFontData* svgFontData) const
     96void SVGGlyphElement::inheritUnspecifiedAttributes(SVGGlyphIdentifier& identifier, SVGFontData* svgFontData)
    7197{
    72     ASSERT(svgFontData);
     98    if (identifier.horizontalAdvanceX == SVGGlyphIdentifier::inheritedValue())
     99        identifier.horizontalAdvanceX = svgFontData->horizontalAdvanceX;
    73100
     101    if (identifier.verticalOriginX == SVGGlyphIdentifier::inheritedValue())
     102        identifier.verticalOriginX = svgFontData->verticalOriginX;
     103
     104    if (identifier.verticalOriginY == SVGGlyphIdentifier::inheritedValue())
     105        identifier.verticalOriginY = svgFontData->verticalOriginY;
     106
     107    if (identifier.verticalAdvanceY == SVGGlyphIdentifier::inheritedValue())
     108        identifier.verticalAdvanceY = svgFontData->verticalAdvanceY;
     109}
     110
     111SVGGlyphIdentifier SVGGlyphElement::buildGlyphIdentifier() const
     112{
    74113    SVGGlyphIdentifier identifier;
    75114    identifier.glyphName = getAttribute(glyph_nameAttr);
     
    77116    identifier.arabicForm = parseArabicForm(getAttribute(arabic_formAttr));
    78117    identifier.pathData = parsePathData(getAttribute(dAttr));
    79     identifier.languages = parseDelimitedString(getAttribute(XMLNames::langAttr), ',');
     118
     119    String language = getAttribute(XMLNames::langAttr);
     120    if (language.isEmpty()) // SVG defines a non-xml prefixed "lang" propert for <glyph> it seems.
     121        language = getAttribute("lang");
     122
     123    identifier.languages = parseDelimitedString(language, ',');
    80124
    81125    // Spec: The horizontal advance after rendering the glyph in horizontal orientation.
     
    86130        identifier.horizontalAdvanceX = getAttribute(horiz_adv_xAttr).toFloat();
    87131    else
    88         identifier.horizontalAdvanceX = svgFontData->horizontalAdvanceX;
     132        identifier.horizontalAdvanceX = SVGGlyphIdentifier::inheritedValue();
    89133
    90134    // Spec: The X-coordinate in the font coordinate system of the origin of the glyph to be
     
    94138        identifier.verticalOriginX = getAttribute(vert_origin_xAttr).toFloat();
    95139    else
    96         identifier.verticalOriginX = svgFontData->verticalOriginX;
     140        identifier.verticalOriginX = SVGGlyphIdentifier::inheritedValue();
    97141
    98142    // Spec: The Y-coordinate in the font coordinate system of the origin of a glyph to be
     
    102146        identifier.verticalOriginY = getAttribute(vert_origin_yAttr).toFloat();
    103147    else
    104         identifier.verticalOriginY = svgFontData->verticalOriginY;
     148        identifier.verticalOriginY = SVGGlyphIdentifier::inheritedValue();
    105149
    106150    // Spec: The vertical advance after rendering a glyph in vertical orientation.
     
    110154        identifier.verticalAdvanceY = getAttribute(vert_adv_yAttr).toFloat();
    111155    else
    112         identifier.verticalAdvanceY = svgFontData->verticalAdvanceY;
     156        identifier.verticalAdvanceY = SVGGlyphIdentifier::inheritedValue();
    113157
    114158    return identifier;
  • trunk/WebCore/svg/SVGGlyphElement.h

    r29029 r29246  
    2525#include "SVGStyledElement.h"
    2626
     27#include <limits>
    2728#include "Path.h"
    2829
     
    3334    // Describe a SVG <glyph> element
    3435    struct SVGGlyphIdentifier {
    35         enum Orientation { Vertical, Horizontal, Both };
    36         enum ArabicForm { Initial, Medial, Terminal, Isolated };
     36        enum Orientation {
     37            Vertical,
     38            Horizontal,
     39            Both
     40        };
     41
     42        // SVG Font depends on exactly this order.
     43        enum ArabicForm {
     44            None = 0,
     45            Isolated,
     46            Terminal,
     47            Initial,
     48            Medial
     49        };
    3750
    3851        SVGGlyphIdentifier()
    39             : orientation(Both)
    40             , arabicForm(Initial)
     52            : isValid(false)
     53            , orientation(Both)
     54            , arabicForm(None)
    4155            , horizontalAdvanceX(0.0f)
    4256            , verticalOriginX(0.0f)
     
    4660        }
    4761
    48         // 'glyph-name' property
     62        // Used to mark our float properties as "to be inherited from SVGFontData"
     63        static float inheritedValue()
     64        {
     65            static float s_inheritedValue = std::numeric_limits<float>::infinity();
     66            return s_inheritedValue;
     67        }
     68
     69        bool operator==(const SVGGlyphIdentifier& other) const
     70        {
     71            return isValid == other.isValid &&
     72                   orientation == other.orientation &&
     73                   arabicForm == other.arabicForm &&
     74                   glyphName == other.glyphName &&
     75                   horizontalAdvanceX == other.horizontalAdvanceX &&
     76                   verticalOriginX == other.verticalOriginX &&
     77                   verticalOriginY == other.verticalOriginY &&
     78                   verticalAdvanceY == other.verticalAdvanceY &&
     79                   pathData.debugString() == other.pathData.debugString() &&
     80                   languages == other.languages;
     81        }
     82
     83        bool isValid : 1;
     84
     85        Orientation orientation : 2;
     86        ArabicForm arabicForm : 3;
    4987        String glyphName;
    5088
    51         // 'orientation' property
    52         Orientation orientation;
    53 
    54         // 'arabic-form' property
    55         ArabicForm arabicForm;
    56 
    57         // 'horiz-adv-x' property
    5889        float horizontalAdvanceX;
    59 
    60         // 'vert-origin-x' property
    6190        float verticalOriginX;
    62 
    63         // 'vert-origin-y' property
    6491        float verticalOriginY;
    65 
    66         // 'vert-adv-y' property
    6792        float verticalAdvanceY;
    6893
    69         // 'd' property
    7094        Path pathData;
    71 
    72         // 'lang' property
    7395        Vector<String> languages;
    7496    };
     
    7799    public:
    78100        SVGGlyphElement(const QualifiedName&, Document*);
     101        virtual ~SVGGlyphElement();
     102
     103        virtual void insertedIntoDocument();
     104        virtual void removedFromDocument();
    79105
    80106        virtual bool rendererIsNeeded(RenderStyle*) { return false; }
    81107
    82         SVGGlyphIdentifier buildGlyphIdentifier(SVGFontData*) const;
     108        SVGGlyphIdentifier buildGlyphIdentifier() const;
     109        static void inheritUnspecifiedAttributes(SVGGlyphIdentifier&, SVGFontData*);
    83110    };
    84111
  • trunk/WebKitTools/ChangeLog

    r29235 r29246  
     12008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
     2
     3        Reviewed by Oliver.
     4
     5        Enable SVG Fonts support by default.
     6
     7        * Scripts/build-webkit:
     8
    192008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
    210
  • trunk/WebKitTools/Scripts/build-webkit

    r28945 r29246  
    4545my $svgFiltersSupport = $svgExperimentalSupport;
    4646my $svgUseSupport = 1;
    47 my $svgFontsSupport = $svgExperimentalSupport;
     47my $svgFontsSupport = 1;
    4848my $svgAsImageSupport = 1;
    4949my $xpathSupport = 1;
Note: See TracChangeset for help on using the changeset viewer.