Changeset 254657 in webkit


Ignore:
Timestamp:
Jan 15, 2020 5:40:16 PM (4 years ago)
Author:
commit-queue@webkit.org
Message:

[SVG2]: Implement support for the 'pathLength' attribute
https://bugs.webkit.org/show_bug.cgi?id=72401

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-01-15
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/svg/types/scripted/SVGGeometryElement.isPointInStroke-01-expected.txt:

Source/WebCore:

The spec link is:

https://svgwg.org/svg2-draft/paths.html#PathLengthAttribute

The 'pathLength' attribute affects the calculations for text on a path,
stroke dash offset and stroke dash array. 'pathLength' has no effect on
percentage lengths.

Tests: svg/custom/stroke-dash-array-pathLength.svg

  • rendering/svg/RenderSVGTextPath.cpp:

(WebCore::RenderSVGTextPath::targetElement const):
A helper function which returns the target element. Notice target element
can't be used in this context unless it is a SVGGeometryElement. See
pathFromGraphicsElement().

(WebCore::RenderSVGTextPath::layoutPath const):
Use the new function targetElement().

(WebCore::RenderSVGTextPath::startOffset const):
In SVGTextLayoutEngine::beginTextPathLayout(), we used to check whether
startOffset is in the range [0, 1] to treat it as a percentage or not.
This is of course wrong especially when using with 'pathLength'. So we
need to return the SVGLengthValue to make the decision correctly.

  • rendering/svg/RenderSVGTextPath.h:
  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::applyStrokeStyleToContext):
Apply 'pathLength' to the shape 'stroke-dashoffset' and 'stroke-dasharray'
properties.

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeStyle):
Add the 'pathLength' property to the shape stroke property.

  • rendering/svg/SVGTextLayoutEngine.cpp:

(WebCore::SVGTextLayoutEngine::beginTextPathLayout):
Apply 'pathLength' to the text path 'start-offset' property.

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/svg/shapes/line-dasharray-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-001-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-002-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt:

'pathLength' is now included in the DRT of the stroke. Other tests will
need to be rebaselined.

  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/paths-dom-01-f-manual-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-percentage-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/line-dasharray-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-001-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-002-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/text/reftests/textpath-shape-001-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/import/paths-dom-01-f-manual-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-percentage-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/shapes/line-dasharray-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-001-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-002-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/text/reftests/textpath-shape-001-expected.txt:

'pathLength' is now included in the DRT of the stroke. These tests were
rendering incorrectly. With this patch, the rendering matches the rendering
of other browsers.

  • platform/wpe/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/shapes/line-dasharray-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-001-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-002-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt:

'pathLength' is now included in the DRT of the stroke. Other tests will
need to be rebaselined.

  • svg/custom/stroke-dash-array-pathLength-expected.svg: Added.
  • svg/custom/stroke-dash-array-pathLength.svg: Added.
Location:
trunk
Files:
2 added
42 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r254653 r254657  
     12020-01-15  Said Abou-Hallawa  <sabouhallawa@apple.com>
     2
     3        [SVG2]: Implement support for the 'pathLength' attribute
     4        https://bugs.webkit.org/show_bug.cgi?id=72401
     5
     6        Reviewed by Simon Fraser.
     7
     8        * TestExpectations:
     9
     10        * platform/gtk/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt:
     11        * platform/gtk/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt:
     12        * platform/gtk/imported/w3c/web-platform-tests/svg/shapes/line-dasharray-expected.txt:
     13        * platform/gtk/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-001-expected.txt:
     14        * platform/gtk/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-002-expected.txt:
     15        * platform/gtk/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt:
     16        'pathLength' is now included in the DRT of the stroke. Other tests will
     17        need to be rebaselined.
     18
     19        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/paths-dom-01-f-manual-expected.txt:
     20        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt:
     21        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt:
     22        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-expected.txt:
     23        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-percentage-expected.txt:
     24        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/line-dasharray-expected.txt:
     25        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-001-expected.txt:
     26        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-002-expected.txt:
     27        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt:
     28        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/text/reftests/textpath-shape-001-expected.txt:
     29        * platform/mac/imported/w3c/web-platform-tests/svg/import/paths-dom-01-f-manual-expected.txt:
     30        * platform/mac/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt:
     31        * platform/mac/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt:
     32        * platform/mac/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-expected.txt:
     33        * platform/mac/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-percentage-expected.txt:
     34        * platform/mac/imported/w3c/web-platform-tests/svg/shapes/line-dasharray-expected.txt:
     35        * platform/mac/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-001-expected.txt:
     36        * platform/mac/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-002-expected.txt:
     37        * platform/mac/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt:
     38        * platform/mac/imported/w3c/web-platform-tests/svg/text/reftests/textpath-shape-001-expected.txt:
     39        'pathLength' is now included in the DRT of the stroke. These tests were
     40        rendering incorrectly. With this patch, the rendering matches the rendering
     41        of other browsers.
     42
     43        * platform/wpe/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt:
     44        * platform/wpe/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt:
     45        * platform/wpe/imported/w3c/web-platform-tests/svg/shapes/line-dasharray-expected.txt:
     46        * platform/wpe/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-001-expected.txt:
     47        * platform/wpe/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-002-expected.txt:
     48        * platform/wpe/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt:
     49        'pathLength' is now included in the DRT of the stroke. Other tests will
     50        need to be rebaselined.
     51
     52        * svg/custom/stroke-dash-array-pathLength-expected.svg: Added.
     53        * svg/custom/stroke-dash-array-pathLength.svg: Added.
     54
    1552020-01-15  Caitlin Potter <caitp@igalia.com>
    256
  • trunk/LayoutTests/TestExpectations

    r254441 r254657  
    15731573webkit.org/b/32177 imported/mozilla/svg/as-image/background-image-rect-2.html [ ImageOnlyFailure ]
    15741574webkit.org/b/32177 imported/mozilla/svg/text-white-space-01.svg [ ImageOnlyFailure ]
    1575 webkit.org/b/72401 imported/mozilla/svg/pathLength-01.svg [ ImageOnlyFailure ]
    15761575webkit.org/b/112032 imported/mozilla/svg/text-layout-01.svg [ ImageOnlyFailure ]
    15771576webkit.org/b/139107 imported/mozilla/svg/clip-02a.svg [ ImageOnlyFailure ]
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r254561 r254657  
     12020-01-15  Said Abou-Hallawa  <sabouhallawa@apple.com>
     2
     3        [SVG2]: Implement support for the 'pathLength' attribute
     4        https://bugs.webkit.org/show_bug.cgi?id=72401
     5
     6        Reviewed by Simon Fraser.
     7
     8        * web-platform-tests/svg/types/scripted/SVGGeometryElement.isPointInStroke-01-expected.txt:
     9
    1102020-01-15  Oriol Brufau  <obrufau@igalia.com>
    211
  • trunk/LayoutTests/imported/w3c/web-platform-tests/svg/types/scripted/SVGGeometryElement.isPointInStroke-01-expected.txt

    r251777 r254657  
    88PASS SVGGeometryElement.prototype.isPointInStroke, 'stroke-linejoin'.
    99PASS SVGGeometryElement.prototype.isPointInStroke, 'stroke-linecap'.
    10 FAIL SVGGeometryElement.prototype.isPointInStroke, 'pathLength'. assert_false: expected false got true
     10PASS SVGGeometryElement.prototype.isPointInStroke, 'pathLength'.
    1111FAIL SVGGeometryElement.prototype.isPointInStroke, 'vector-effect'. assert_false: expected false got true
    1212PASS SVGGeometryElement.prototype.isPointInStroke, 'visibility' and 'pointer-events' have no effect.
  • trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt

    r250598 r254657  
    44  RenderSVGRoot {svg} at (49,24) size 209x132
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    6       RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     6      RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    77    RenderSVGContainer {g} at (50,24) size 208x32
    88      RenderSVGContainer {use} at (50,49) size 200x2
    9         RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     9        RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    1010      RenderSVGText {text} at (50,24) size 208x32 contains 1 chunk(s)
    1111        RenderSVGTextPath {textPath} at (0,0) size 208x32
     
    2929    RenderSVGContainer {g} at (50,99) size 200x2 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,50.00)}]
    3030      RenderSVGContainer {use} at (50,99) size 200x2
    31         RenderSVGPath {path} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     31        RenderSVGPath {path} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    3232      RenderSVGText {text} at (0,0) size 0x0 contains 1 chunk(s)
    3333        RenderSVGTextPath {textPath} at (0,0) size 0x0
     
    3636    RenderSVGContainer {g} at (49,124) size 208x32 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,100.00)}]
    3737      RenderSVGContainer {use} at (50,149) size 200x2
    38         RenderSVGPath {path} at (50,149) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     38        RenderSVGPath {path} at (50,149) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    3939      RenderSVGText {text} at (49,24) size 208x32 contains 1 chunk(s)
    4040        RenderSVGTextPath {textPath} at (0,0) size 208x32
  • trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt

    r250598 r254657  
    44  RenderSVGRoot {svg} at (49,24) size 209x132
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    6       RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     6      RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    77    RenderSVGContainer {g} at (50,24) size 208x32
    88      RenderSVGContainer {use} at (50,49) size 200x2
    9         RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     9        RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    1010      RenderSVGText {text} at (50,24) size 208x32 contains 1 chunk(s)
    1111        RenderSVGTextPath {textPath} at (0,0) size 208x32
     
    2929    RenderSVGContainer {g} at (50,74) size 200x32 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,50.00)}]
    3030      RenderSVGContainer {use} at (50,99) size 200x2
    31         RenderSVGPath {path} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     31        RenderSVGPath {path} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    3232      RenderSVGText {text} at (150,24) size 95x32 contains 1 chunk(s)
    3333        RenderSVGTextPath {textPath} at (0,0) size 95x32
     
    4343    RenderSVGContainer {g} at (49,124) size 209x32 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,100.00)}]
    4444      RenderSVGContainer {use} at (50,149) size 200x2
    45         RenderSVGPath {path} at (50,149) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     45        RenderSVGPath {path} at (50,149) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    4646      RenderSVGText {text} at (49,24) size 209x32 contains 1 chunk(s)
    4747        RenderSVGTextPath {textPath} at (0,0) size 208x32
  • trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/svg/shapes/line-dasharray-expected.txt

    r250598 r254657  
    22  RenderView at (0,0) size 800x600
    33layer at (0,0) size 300x200
    4   RenderSVGRoot {svg} at (50,99) size 199x2
    5     RenderSVGPath {line} at (50,99) size 199x2 [stroke={[type=SOLID] [color=#0000FF] [dash array={3.00, 1.00}]}] [fill={[type=SOLID] [color=#000000]}] [x1=50.00] [y1=100.00] [x2=250.00] [y2=100.00]
     4  RenderSVGRoot {svg} at (50,99) size 200x2
     5    RenderSVGPath {line} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#0000FF] [dash array={3.00, 1.00}] [path length=25.00]}] [fill={[type=SOLID] [color=#000000]}] [x1=50.00] [y1=100.00] [x2=250.00] [y2=100.00]
  • trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-001-expected.txt

    r250598 r254657  
    66    RenderSVGContainer {g} at (29,229) size 742x342
    77      RenderSVGRect {rect} at (29,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={50.00}]}] [x=20.00] [y=140.00] [width=200.00] [height=200.00]
    8       RenderSVGRect {rect} at (429,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={0.25}]}] [x=260.00] [y=140.00] [width=200.00] [height=200.00]
     8      RenderSVGRect {rect} at (429,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={0.25}] [path length=4.00]}] [x=260.00] [y=140.00] [width=200.00] [height=200.00]
  • trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-002-expected.txt

    r250598 r254657  
    66    RenderSVGContainer {g} at (29,229) size 742x342
    77      RenderSVGEllipse {circle} at (29,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={39.27}]}] [cx=120.00] [cy=240.00] [r=100.00]
    8       RenderSVGEllipse {circle} at (429,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={0.25}]}] [cx=360.00] [cy=240.00] [r=100.00]
     8      RenderSVGEllipse {circle} at (429,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={0.25}] [path length=4.00]}] [cx=360.00] [cy=240.00] [r=100.00]
  • trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt

    r250598 r254657  
    66    RenderSVGContainer {g} at (0,0) size 768x568
    77      RenderSVGEllipse {circle} at (32,232) size 336x336 [stroke={[type=SOLID] [color=#000000]}] [cx=120.00] [cy=240.00] [r=100.00]
    8       RenderSVGEllipse {circle} at (432,232) size 336x336 [stroke={[type=SOLID] [color=#000000]}] [cx=360.00] [cy=240.00] [r=100.00]
     8      RenderSVGEllipse {circle} at (432,232) size 336x336 [stroke={[type=SOLID] [color=#000000] [path length=4.00]}] [cx=360.00] [cy=240.00] [r=100.00]
    99      RenderSVGText {text} at (0,0) size 0x0 contains 1 chunk(s)
    1010        RenderSVGTextPath {textPath} at (0,0) size 0x0
  • trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/paths-dom-01-f-manual-expected.txt

    r250276 r254657  
    5656        RenderSVGContainer {use} at (500,133) size 167x84
    5757          RenderSVGPath {path} at (500,133) size 167x84 [fill={[type=SOLID] [color=#008000]}] [data="M 300 80 L 400 80 L 400 130 L 300 130 L 300 80"]
    58         RenderSVGText {text} at (311,66) size 103x78 contains 1 chunk(s)
    59           RenderSVGTextPath {textPath} at (0,0) size 102x77
    60             RenderSVGInlineText {#text} at (0,0) size 102x77
    61               chunk 1 text run 1 at (354.31,80.00) startOffset 0 endOffset 1 width 8.61: "T"
    62               chunk 1 text run 2 at (362.53,80.00) startOffset 1 endOffset 2 width 7.84: "h"
    63               chunk 1 text run 3 at (370.38,80.00) startOffset 2 endOffset 3 width 7.84: "e"
    64               chunk 1 text run 4 at (376.26,80.00) startOffset 3 endOffset 4 width 3.92: " "
    65               chunk 1 text run 5 at (380.17,80.00) startOffset 4 endOffset 5 width 3.92: "t"
    66               chunk 1 text run 6 at (386.05,80.00) startOffset 5 endOffset 6 width 7.84: "e"
    67               chunk 1 text run 7 at (393.50,80.00) startOffset 6 endOffset 7 width 7.05: "x"
    68               chunk 1 text run 8 at (398.98,80.00) startOffset 7 endOffset 8 width 3.92: "t"
    69               chunk 1 text run 9 at (400.00,82.90) startOffset 8 endOffset 9 width 3.92: " "
    70               chunk 1 text run 10 at (400.00,88.78) startOffset 9 endOffset 10 width 7.84: "g"
    71               chunk 1 text run 11 at (400.00,96.62) startOffset 10 endOffset 11 width 7.84: "o"
    72               chunk 1 text run 12 at (400.00,104.46) startOffset 11 endOffset 12 width 7.84: "e"
    73               chunk 1 text run 13 at (400.00,111.91) startOffset 12 endOffset 13 width 7.05: "s"
    74               chunk 1 text run 14 at (400.00,117.39) startOffset 13 endOffset 14 width 3.92: " "
    75               chunk 1 text run 15 at (400.00,123.27) startOffset 14 endOffset 15 width 7.84: "a"
    76               chunk 1 text run 16 at (400.00,129.54) startOffset 15 endOffset 16 width 4.70: "r"
    77               chunk 1 text run 17 at (394.19,130.00) startOffset 16 endOffset 17 width 7.84: "o"
    78               chunk 1 text run 18 at (386.35,130.00) startOffset 17 endOffset 18 width 7.84: "u"
    79               chunk 1 text run 19 at (378.51,130.00) startOffset 18 endOffset 19 width 7.84: "n"
    80               chunk 1 text run 20 at (370.67,130.00) startOffset 19 endOffset 20 width 7.84: "d"
    81               chunk 1 text run 21 at (364.79,130.00) startOffset 20 endOffset 21 width 3.92: " "
    82               chunk 1 text run 22 at (360.87,130.00) startOffset 21 endOffset 22 width 3.92: "t"
    83               chunk 1 text run 23 at (354.99,130.00) startOffset 22 endOffset 23 width 7.84: "h"
    84               chunk 1 text run 24 at (347.15,130.00) startOffset 23 endOffset 24 width 7.84: "e"
    85               chunk 1 text run 25 at (341.27,130.00) startOffset 24 endOffset 25 width 3.92: " "
    86               chunk 1 text run 26 at (336.96,130.00) startOffset 25 endOffset 26 width 4.70: "r"
    87               chunk 1 text run 27 at (330.69,130.00) startOffset 26 endOffset 27 width 7.84: "e"
    88               chunk 1 text run 28 at (323.25,130.00) startOffset 27 endOffset 28 width 7.05: "c"
    89               chunk 1 text run 29 at (317.76,130.00) startOffset 28 endOffset 29 width 3.92: "t"
    90               chunk 1 text run 30 at (313.85,130.00) startOffset 29 endOffset 30 width 3.92: "."
     58        RenderSVGText {text} at (286,81) size 114x63 contains 1 chunk(s)
     59          RenderSVGTextPath {textPath} at (0,0) size 114x63
     60            RenderSVGInlineText {#text} at (0,0) size 114x63
     61              chunk 1 text run 1 at (395.69,130.00) startOffset 0 endOffset 1 width 8.61: "T"
     62              chunk 1 text run 2 at (387.47,130.00) startOffset 1 endOffset 2 width 7.84: "h"
     63              chunk 1 text run 3 at (379.62,130.00) startOffset 2 endOffset 3 width 7.84: "e"
     64              chunk 1 text run 4 at (373.74,130.00) startOffset 3 endOffset 4 width 3.92: " "
     65              chunk 1 text run 5 at (369.83,130.00) startOffset 4 endOffset 5 width 3.92: "t"
     66              chunk 1 text run 6 at (363.95,130.00) startOffset 5 endOffset 6 width 7.84: "e"
     67              chunk 1 text run 7 at (356.50,130.00) startOffset 6 endOffset 7 width 7.05: "x"
     68              chunk 1 text run 8 at (351.02,130.00) startOffset 7 endOffset 8 width 3.92: "t"
     69              chunk 1 text run 9 at (347.10,130.00) startOffset 8 endOffset 9 width 3.92: " "
     70              chunk 1 text run 10 at (341.22,130.00) startOffset 9 endOffset 10 width 7.84: "g"
     71              chunk 1 text run 11 at (333.38,130.00) startOffset 10 endOffset 11 width 7.84: "o"
     72              chunk 1 text run 12 at (325.54,130.00) startOffset 11 endOffset 12 width 7.84: "e"
     73              chunk 1 text run 13 at (318.09,130.00) startOffset 12 endOffset 13 width 7.05: "s"
     74              chunk 1 text run 14 at (312.61,130.00) startOffset 13 endOffset 14 width 3.92: " "
     75              chunk 1 text run 15 at (306.73,130.00) startOffset 14 endOffset 15 width 7.84: "a"
     76              chunk 1 text run 16 at (300.46,130.00) startOffset 15 endOffset 16 width 4.70: "r"
     77              chunk 1 text run 17 at (300.00,124.19) startOffset 16 endOffset 17 width 7.84: "o"
     78              chunk 1 text run 18 at (300.00,116.35) startOffset 17 endOffset 18 width 7.84: "u"
     79              chunk 1 text run 19 at (300.00,108.51) startOffset 18 endOffset 19 width 7.84: "n"
     80              chunk 1 text run 20 at (300.00,100.67) startOffset 19 endOffset 20 width 7.84: "d"
     81              chunk 1 text run 21 at (300.00,94.79) startOffset 20 endOffset 21 width 3.92: " "
     82              chunk 1 text run 22 at (300.00,90.87) startOffset 21 endOffset 22 width 3.92: "t"
     83              chunk 1 text run 23 at (300.00,84.99) startOffset 22 endOffset 23 width 7.84: "h"
    9184          RenderSVGInlineText {#text} at (0,0) size 0x0
    9285        RenderSVGContainer {g} at (16,260) size 582x229 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
  • trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt

    r250276 r254657  
    22  RenderView at (0,0) size 800x600
    33layer at (0,0) size 300x200
    4   RenderSVGRoot {svg} at (49,23) size 207x134
     4  RenderSVGRoot {svg} at (43,23) size 213x134
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    6       RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     6      RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    77    RenderSVGContainer {g} at (50,23) size 206x34
    88      RenderSVGContainer {use} at (50,49) size 200x2
    9         RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     9        RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    1010      RenderSVGText {text} at (50,23) size 206x34 contains 1 chunk(s)
    1111        RenderSVGTextPath {textPath} at (0,0) size 206x33
     
    2727            chunk 1 text run 15 at (247.65,50.00) startOffset 14 endOffset 15 width 15.57: "n"
    2828        RenderSVGInlineText {#text} at (0,0) size 0x0
    29     RenderSVGContainer {g} at (50,99) size 200x2 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,50.00)}]
     29    RenderSVGContainer {g} at (50,73) size 200x34 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,50.00)}]
    3030      RenderSVGContainer {use} at (50,99) size 200x2
    31         RenderSVGPath {path} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
    32       RenderSVGText {text} at (0,0) size 0x0 contains 1 chunk(s)
    33         RenderSVGTextPath {textPath} at (0,0) size 0x0
    34           RenderSVGInlineText {#text} at (0,0) size 0x0
     31        RenderSVGPath {path} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
     32      RenderSVGText {text} at (150,23) size 94x34 contains 1 chunk(s)
     33        RenderSVGTextPath {textPath} at (0,0) size 94x33
     34          RenderSVGInlineText {#text} at (0,0) size 94x33
     35            chunk 1 text run 1 at (158.55,50.00) startOffset 0 endOffset 1 width 17.10: "T"
     36            chunk 1 text run 2 at (174.89,50.00) startOffset 1 endOffset 2 width 15.57: "h"
     37            chunk 1 text run 3 at (190.46,50.00) startOffset 2 endOffset 3 width 15.57: "e"
     38            chunk 1 text run 4 at (202.14,50.00) startOffset 3 endOffset 4 width 7.78: " "
     39            chunk 1 text run 5 at (213.81,50.00) startOffset 4 endOffset 5 width 15.57: "q"
     40            chunk 1 text run 6 at (229.39,50.00) startOffset 5 endOffset 6 width 15.57: "u"
     41            chunk 1 text run 7 at (240.28,50.00) startOffset 6 endOffset 7 width 6.22: "i"
    3542        RenderSVGInlineText {#text} at (0,0) size 0x0
    36     RenderSVGContainer {g} at (49,123) size 206x34 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,100.00)}]
     43    RenderSVGContainer {g} at (43,123) size 207x34 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,100.00)}]
    3744      RenderSVGContainer {use} at (50,149) size 200x2
    38         RenderSVGPath {path} at (50,149) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
    39       RenderSVGText {text} at (49,23) size 206x34 contains 1 chunk(s)
    40         RenderSVGTextPath {textPath} at (0,0) size 206x33
    41           RenderSVGInlineText {#text} at (0,0) size 206x33
    42             chunk 1 text run 1 at (57.55,50.00) startOffset 0 endOffset 1 width 17.10: "T"
    43             chunk 1 text run 2 at (73.89,50.00) startOffset 1 endOffset 2 width 15.57: "h"
    44             chunk 1 text run 3 at (89.46,50.00) startOffset 2 endOffset 3 width 15.57: "e"
    45             chunk 1 text run 4 at (101.14,50.00) startOffset 3 endOffset 4 width 7.78: " "
    46             chunk 1 text run 5 at (112.81,50.00) startOffset 4 endOffset 5 width 15.57: "q"
    47             chunk 1 text run 6 at (128.39,50.00) startOffset 5 endOffset 6 width 15.57: "u"
    48             chunk 1 text run 7 at (139.28,50.00) startOffset 6 endOffset 7 width 6.22: "i"
    49             chunk 1 text run 8 at (149.39,50.00) startOffset 7 endOffset 8 width 14.00: "c"
    50             chunk 1 text run 9 at (163.39,50.00) startOffset 8 endOffset 9 width 14.00: "k"
    51             chunk 1 text run 10 at (174.28,50.00) startOffset 9 endOffset 10 width 7.78: " "
    52             chunk 1 text run 11 at (185.96,50.00) startOffset 10 endOffset 11 width 15.57: "b"
    53             chunk 1 text run 12 at (198.41,50.00) startOffset 11 endOffset 12 width 9.32: "r"
    54             chunk 1 text run 13 at (210.85,50.00) startOffset 12 endOffset 13 width 15.57: "o"
    55             chunk 1 text run 14 at (228.75,50.00) startOffset 13 endOffset 14 width 20.22: "w"
    56             chunk 1 text run 15 at (246.65,50.00) startOffset 14 endOffset 15 width 15.57: "n"
     45        RenderSVGPath {path} at (50,149) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
     46      RenderSVGText {text} at (43,23) size 158x34 contains 1 chunk(s)
     47        RenderSVGTextPath {textPath} at (0,0) size 158x33
     48          RenderSVGInlineText {#text} at (0,0) size 158x33
     49            chunk 1 text run 1 at (50.39,50.00) startOffset 7 endOffset 8 width 14.00: "c"
     50            chunk 1 text run 2 at (64.39,50.00) startOffset 8 endOffset 9 width 14.00: "k"
     51            chunk 1 text run 3 at (75.28,50.00) startOffset 9 endOffset 10 width 7.78: " "
     52            chunk 1 text run 4 at (86.96,50.00) startOffset 10 endOffset 11 width 15.57: "b"
     53            chunk 1 text run 5 at (99.41,50.00) startOffset 11 endOffset 12 width 9.32: "r"
     54            chunk 1 text run 6 at (111.85,50.00) startOffset 12 endOffset 13 width 15.57: "o"
     55            chunk 1 text run 7 at (129.75,50.00) startOffset 13 endOffset 14 width 20.22: "w"
     56            chunk 1 text run 8 at (147.65,50.00) startOffset 14 endOffset 15 width 15.57: "n"
     57            chunk 1 text run 9 at (159.32,50.00) startOffset 15 endOffset 16 width 7.78: " "
     58            chunk 1 text run 10 at (167.10,50.00) startOffset 16 endOffset 17 width 7.78: "f"
     59            chunk 1 text run 11 at (178.78,50.00) startOffset 17 endOffset 18 width 15.57: "o"
     60            chunk 1 text run 12 at (193.56,50.00) startOffset 18 endOffset 19 width 14.00: "x"
    5761        RenderSVGInlineText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt

    r250276 r254657  
    22  RenderView at (0,0) size 800x600
    33layer at (0,0) size 300x200
    4   RenderSVGRoot {svg} at (49,23) size 207x134
     4  RenderSVGRoot {svg} at (43,23) size 213x134
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    6       RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     6      RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    77    RenderSVGContainer {g} at (50,23) size 206x34
    88      RenderSVGContainer {use} at (50,49) size 200x2
    9         RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     9        RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    1010      RenderSVGText {text} at (50,23) size 206x34 contains 1 chunk(s)
    1111        RenderSVGTextPath {textPath} at (0,0) size 206x33
     
    2929    RenderSVGContainer {g} at (50,73) size 200x34 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,50.00)}]
    3030      RenderSVGContainer {use} at (50,99) size 200x2
    31         RenderSVGPath {path} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     31        RenderSVGPath {path} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    3232      RenderSVGText {text} at (150,23) size 94x34 contains 1 chunk(s)
    3333        RenderSVGTextPath {textPath} at (0,0) size 94x33
     
    4141            chunk 1 text run 7 at (240.28,50.00) startOffset 6 endOffset 7 width 6.22: "i"
    4242        RenderSVGInlineText {#text} at (0,0) size 0x0
    43     RenderSVGContainer {g} at (49,123) size 206x34 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,100.00)}]
     43    RenderSVGContainer {g} at (43,123) size 207x34 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,100.00)}]
    4444      RenderSVGContainer {use} at (50,149) size 200x2
    45         RenderSVGPath {path} at (50,149) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
    46       RenderSVGText {text} at (49,23) size 206x34 contains 1 chunk(s)
    47         RenderSVGTextPath {textPath} at (0,0) size 206x33
    48           RenderSVGInlineText {#text} at (0,0) size 206x33
    49             chunk 1 text run 1 at (58.05,50.00) startOffset 0 endOffset 1 width 17.10: "T"
    50             chunk 1 text run 2 at (74.39,50.00) startOffset 1 endOffset 2 width 15.57: "h"
    51             chunk 1 text run 3 at (89.96,50.00) startOffset 2 endOffset 3 width 15.57: "e"
    52             chunk 1 text run 4 at (101.64,50.00) startOffset 3 endOffset 4 width 7.78: " "
    53             chunk 1 text run 5 at (113.31,50.00) startOffset 4 endOffset 5 width 15.57: "q"
    54             chunk 1 text run 6 at (128.89,50.00) startOffset 5 endOffset 6 width 15.57: "u"
    55             chunk 1 text run 7 at (139.78,50.00) startOffset 6 endOffset 7 width 6.22: "i"
    56             chunk 1 text run 8 at (149.89,50.00) startOffset 7 endOffset 8 width 14.00: "c"
    57             chunk 1 text run 9 at (163.89,50.00) startOffset 8 endOffset 9 width 14.00: "k"
    58             chunk 1 text run 10 at (174.78,50.00) startOffset 9 endOffset 10 width 7.78: " "
    59             chunk 1 text run 11 at (186.46,50.00) startOffset 10 endOffset 11 width 15.57: "b"
    60             chunk 1 text run 12 at (198.91,50.00) startOffset 11 endOffset 12 width 9.32: "r"
    61             chunk 1 text run 13 at (211.35,50.00) startOffset 12 endOffset 13 width 15.57: "o"
    62             chunk 1 text run 14 at (229.25,50.00) startOffset 13 endOffset 14 width 20.22: "w"
    63             chunk 1 text run 15 at (247.15,50.00) startOffset 14 endOffset 15 width 15.57: "n"
     45        RenderSVGPath {path} at (50,149) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
     46      RenderSVGText {text} at (43,23) size 158x34 contains 1 chunk(s)
     47        RenderSVGTextPath {textPath} at (0,0) size 158x33
     48          RenderSVGInlineText {#text} at (0,0) size 158x33
     49            chunk 1 text run 1 at (50.39,50.00) startOffset 7 endOffset 8 width 14.00: "c"
     50            chunk 1 text run 2 at (64.39,50.00) startOffset 8 endOffset 9 width 14.00: "k"
     51            chunk 1 text run 3 at (75.28,50.00) startOffset 9 endOffset 10 width 7.78: " "
     52            chunk 1 text run 4 at (86.96,50.00) startOffset 10 endOffset 11 width 15.57: "b"
     53            chunk 1 text run 5 at (99.41,50.00) startOffset 11 endOffset 12 width 9.32: "r"
     54            chunk 1 text run 6 at (111.85,50.00) startOffset 12 endOffset 13 width 15.57: "o"
     55            chunk 1 text run 7 at (129.75,50.00) startOffset 13 endOffset 14 width 20.22: "w"
     56            chunk 1 text run 8 at (147.65,50.00) startOffset 14 endOffset 15 width 15.57: "n"
     57            chunk 1 text run 9 at (159.32,50.00) startOffset 15 endOffset 16 width 7.78: " "
     58            chunk 1 text run 10 at (167.10,50.00) startOffset 16 endOffset 17 width 7.78: "f"
     59            chunk 1 text run 11 at (178.78,50.00) startOffset 17 endOffset 18 width 15.57: "o"
     60            chunk 1 text run 12 at (193.56,50.00) startOffset 18 endOffset 19 width 14.00: "x"
    6461        RenderSVGInlineText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-expected.txt

    r250276 r254657  
    22  RenderView at (0,0) size 800x600
    33layer at (0,0) size 300x200
    4   RenderSVGRoot {svg} at (49,23) size 207x134
     4  RenderSVGRoot {svg} at (49,23) size 208x134
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    66      RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     
    2727            chunk 1 text run 15 at (247.65,50.00) startOffset 14 endOffset 15 width 15.57: "n"
    2828        RenderSVGInlineText {#text} at (0,0) size 0x0
    29     RenderSVGContainer {g} at (50,99) size 200x2 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,50.00)}]
     29    RenderSVGContainer {g} at (50,73) size 207x34 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,50.00)}]
    3030      RenderSVGContainer {use} at (50,99) size 200x2
    3131        RenderSVGPath {path} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
    32       RenderSVGText {text} at (0,0) size 0x0 contains 1 chunk(s)
    33         RenderSVGTextPath {textPath} at (0,0) size 0x0
    34           RenderSVGInlineText {#text} at (0,0) size 0x0
     32      RenderSVGText {text} at (51,23) size 206x34 contains 1 chunk(s)
     33        RenderSVGTextPath {textPath} at (0,0) size 206x33
     34          RenderSVGInlineText {#text} at (0,0) size 206x33
     35            chunk 1 text run 1 at (59.55,50.00) startOffset 0 endOffset 1 width 17.10: "T"
     36            chunk 1 text run 2 at (75.89,50.00) startOffset 1 endOffset 2 width 15.57: "h"
     37            chunk 1 text run 3 at (91.46,50.00) startOffset 2 endOffset 3 width 15.57: "e"
     38            chunk 1 text run 4 at (103.14,50.00) startOffset 3 endOffset 4 width 7.78: " "
     39            chunk 1 text run 5 at (114.81,50.00) startOffset 4 endOffset 5 width 15.57: "q"
     40            chunk 1 text run 6 at (130.39,50.00) startOffset 5 endOffset 6 width 15.57: "u"
     41            chunk 1 text run 7 at (141.28,50.00) startOffset 6 endOffset 7 width 6.22: "i"
     42            chunk 1 text run 8 at (151.39,50.00) startOffset 7 endOffset 8 width 14.00: "c"
     43            chunk 1 text run 9 at (165.39,50.00) startOffset 8 endOffset 9 width 14.00: "k"
     44            chunk 1 text run 10 at (176.28,50.00) startOffset 9 endOffset 10 width 7.78: " "
     45            chunk 1 text run 11 at (187.96,50.00) startOffset 10 endOffset 11 width 15.57: "b"
     46            chunk 1 text run 12 at (200.41,50.00) startOffset 11 endOffset 12 width 9.32: "r"
     47            chunk 1 text run 13 at (212.85,50.00) startOffset 12 endOffset 13 width 15.57: "o"
     48            chunk 1 text run 14 at (230.75,50.00) startOffset 13 endOffset 14 width 20.22: "w"
     49            chunk 1 text run 15 at (248.65,50.00) startOffset 14 endOffset 15 width 15.57: "n"
    3550        RenderSVGInlineText {#text} at (0,0) size 0x0
    3651    RenderSVGContainer {g} at (49,123) size 206x34 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,100.00)}]
  • trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-percentage-expected.txt

    r250276 r254657  
    22  RenderView at (0,0) size 800x600
    33layer at (0,0) size 300x200
    4   RenderSVGRoot {svg} at (49,23) size 207x134
     4  RenderSVGRoot {svg} at (43,23) size 213x134
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    66      RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     
    4141            chunk 1 text run 7 at (240.28,50.00) startOffset 6 endOffset 7 width 6.22: "i"
    4242        RenderSVGInlineText {#text} at (0,0) size 0x0
    43     RenderSVGContainer {g} at (49,123) size 206x34 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,100.00)}]
     43    RenderSVGContainer {g} at (43,123) size 207x34 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,100.00)}]
    4444      RenderSVGContainer {use} at (50,149) size 200x2
    4545        RenderSVGPath {path} at (50,149) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
    46       RenderSVGText {text} at (49,23) size 206x34 contains 1 chunk(s)
    47         RenderSVGTextPath {textPath} at (0,0) size 206x33
    48           RenderSVGInlineText {#text} at (0,0) size 206x33
    49             chunk 1 text run 1 at (58.05,50.00) startOffset 0 endOffset 1 width 17.10: "T"
    50             chunk 1 text run 2 at (74.39,50.00) startOffset 1 endOffset 2 width 15.57: "h"
    51             chunk 1 text run 3 at (89.96,50.00) startOffset 2 endOffset 3 width 15.57: "e"
    52             chunk 1 text run 4 at (101.64,50.00) startOffset 3 endOffset 4 width 7.78: " "
    53             chunk 1 text run 5 at (113.31,50.00) startOffset 4 endOffset 5 width 15.57: "q"
    54             chunk 1 text run 6 at (128.89,50.00) startOffset 5 endOffset 6 width 15.57: "u"
    55             chunk 1 text run 7 at (139.78,50.00) startOffset 6 endOffset 7 width 6.22: "i"
    56             chunk 1 text run 8 at (149.89,50.00) startOffset 7 endOffset 8 width 14.00: "c"
    57             chunk 1 text run 9 at (163.89,50.00) startOffset 8 endOffset 9 width 14.00: "k"
    58             chunk 1 text run 10 at (174.78,50.00) startOffset 9 endOffset 10 width 7.78: " "
    59             chunk 1 text run 11 at (186.46,50.00) startOffset 10 endOffset 11 width 15.57: "b"
    60             chunk 1 text run 12 at (198.91,50.00) startOffset 11 endOffset 12 width 9.32: "r"
    61             chunk 1 text run 13 at (211.35,50.00) startOffset 12 endOffset 13 width 15.57: "o"
    62             chunk 1 text run 14 at (229.25,50.00) startOffset 13 endOffset 14 width 20.22: "w"
    63             chunk 1 text run 15 at (247.15,50.00) startOffset 14 endOffset 15 width 15.57: "n"
     46      RenderSVGText {text} at (43,23) size 158x34 contains 1 chunk(s)
     47        RenderSVGTextPath {textPath} at (0,0) size 158x33
     48          RenderSVGInlineText {#text} at (0,0) size 158x33
     49            chunk 1 text run 1 at (50.39,50.00) startOffset 7 endOffset 8 width 14.00: "c"
     50            chunk 1 text run 2 at (64.39,50.00) startOffset 8 endOffset 9 width 14.00: "k"
     51            chunk 1 text run 3 at (75.28,50.00) startOffset 9 endOffset 10 width 7.78: " "
     52            chunk 1 text run 4 at (86.96,50.00) startOffset 10 endOffset 11 width 15.57: "b"
     53            chunk 1 text run 5 at (99.41,50.00) startOffset 11 endOffset 12 width 9.32: "r"
     54            chunk 1 text run 6 at (111.85,50.00) startOffset 12 endOffset 13 width 15.57: "o"
     55            chunk 1 text run 7 at (129.75,50.00) startOffset 13 endOffset 14 width 20.22: "w"
     56            chunk 1 text run 8 at (147.65,50.00) startOffset 14 endOffset 15 width 15.57: "n"
     57            chunk 1 text run 9 at (159.32,50.00) startOffset 15 endOffset 16 width 7.78: " "
     58            chunk 1 text run 10 at (167.10,50.00) startOffset 16 endOffset 17 width 7.78: "f"
     59            chunk 1 text run 11 at (178.78,50.00) startOffset 17 endOffset 18 width 15.57: "o"
     60            chunk 1 text run 12 at (193.56,50.00) startOffset 18 endOffset 19 width 14.00: "x"
    6461        RenderSVGInlineText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/line-dasharray-expected.txt

    r250276 r254657  
    22  RenderView at (0,0) size 800x600
    33layer at (0,0) size 300x200
    4   RenderSVGRoot {svg} at (50,99) size 199x2
    5     RenderSVGPath {line} at (50,99) size 199x2 [stroke={[type=SOLID] [color=#0000FF] [dash array={3.00, 1.00}]}] [fill={[type=SOLID] [color=#000000]}] [x1=50.00] [y1=100.00] [x2=250.00] [y2=100.00]
     4  RenderSVGRoot {svg} at (50,99) size 200x2
     5    RenderSVGPath {line} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#0000FF] [dash array={3.00, 1.00}] [path length=25.00]}] [fill={[type=SOLID] [color=#000000]}] [x1=50.00] [y1=100.00] [x2=250.00] [y2=100.00]
  • trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-001-expected.txt

    r250276 r254657  
    66    RenderSVGContainer {g} at (29,229) size 742x342
    77      RenderSVGRect {rect} at (29,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={50.00}]}] [x=20.00] [y=140.00] [width=200.00] [height=200.00]
    8       RenderSVGRect {rect} at (429,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={0.25}]}] [x=260.00] [y=140.00] [width=200.00] [height=200.00]
     8      RenderSVGRect {rect} at (429,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={0.25}] [path length=4.00]}] [x=260.00] [y=140.00] [width=200.00] [height=200.00]
  • trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-002-expected.txt

    r250276 r254657  
    66    RenderSVGContainer {g} at (29,229) size 742x342
    77      RenderSVGEllipse {circle} at (29,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={39.27}]}] [cx=120.00] [cy=240.00] [r=100.00]
    8       RenderSVGEllipse {circle} at (429,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={0.25}]}] [cx=360.00] [cy=240.00] [r=100.00]
     8      RenderSVGEllipse {circle} at (429,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={0.25}] [path length=4.00]}] [cx=360.00] [cy=240.00] [r=100.00]
  • trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt

    r250276 r254657  
    22  RenderView at (0,0) size 800x600
    33layer at (0,0) size 800x600
    4   RenderSVGRoot {svg} at (0,0) size 768x568
     4  RenderSVGRoot {svg} at (12,193) size 776x375
    55    RenderSVGContainer {g} at (0,0) size 0x0
    6     RenderSVGContainer {g} at (0,0) size 768x568
     6    RenderSVGContainer {g} at (12,193) size 776x375
    77      RenderSVGEllipse {circle} at (32,232) size 336x336 [stroke={[type=SOLID] [color=#000000]}] [cx=120.00] [cy=240.00] [r=100.00]
    8       RenderSVGEllipse {circle} at (432,232) size 336x336 [stroke={[type=SOLID] [color=#000000]}] [cx=360.00] [cy=240.00] [r=100.00]
    9       RenderSVGText {text} at (0,0) size 0x0 contains 1 chunk(s)
    10         RenderSVGTextPath {textPath} at (0,0) size 0x0
    11           RenderSVGInlineText {#text} at (0,0) size 0x0
    12       RenderSVGText {text} at (0,0) size 0x0 contains 1 chunk(s)
    13         RenderSVGTextPath {textPath} at (0,0) size 0x0
    14           RenderSVGInlineText {#text} at (0,0) size 0x0
     8      RenderSVGEllipse {circle} at (432,232) size 336x336 [stroke={[type=SOLID] [color=#000000] [path length=4.00]}] [cx=360.00] [cy=240.00] [r=100.00]
     9      RenderSVGText {text} at (8,117) size 224x86 contains 1 chunk(s)
     10        RenderSVGTextPath {textPath} at (0,0) size 224x86
     11          RenderSVGInlineText {#text} at (0,0) size 224x86
     12            chunk 1 (middle anchor) text run 1 at (32.33,191.87) startOffset 0 endOffset 1 width 16.01: "S"
     13            chunk 1 (middle anchor) text run 2 at (40.32,179.57) startOffset 1 endOffset 2 width 13.35: "o"
     14            chunk 1 (middle anchor) text run 3 at (51.45,167.19) startOffset 2 endOffset 3 width 19.99: "m"
     15            chunk 1 (middle anchor) text run 4 at (64.48,156.82) startOffset 3 endOffset 4 width 13.35: "e"
     16            chunk 1 (middle anchor) text run 5 at (73.06,151.68) startOffset 4 endOffset 5 width 6.67: " "
     17            chunk 1 (middle anchor) text run 6 at (79.05,148.74) startOffset 5 endOffset 6 width 6.67: "t"
     18            chunk 1 (middle anchor) text run 7 at (88.37,145.11) startOffset 6 endOffset 7 width 13.35: "e"
     19            chunk 1 (middle anchor) text run 8 at (100.61,141.88) startOffset 7 endOffset 8 width 12.00: "x"
     20            chunk 1 (middle anchor) text run 9 at (109.84,140.51) startOffset 8 endOffset 9 width 6.67: "t"
     21            chunk 1 (middle anchor) text run 10 at (116.49,140.06) startOffset 9 endOffset 10 width 6.67: " "
     22            chunk 1 (middle anchor) text run 11 at (126.50,140.21) startOffset 10 endOffset 11 width 13.35: "o"
     23            chunk 1 (middle anchor) text run 12 at (139.72,141.94) startOffset 11 endOffset 12 width 13.35: "n"
     24            chunk 1 (middle anchor) text run 13 at (149.42,144.40) startOffset 12 endOffset 13 width 6.67: " "
     25            chunk 1 (middle anchor) text run 14 at (158.82,147.81) startOffset 13 endOffset 14 width 13.35: "a"
     26            chunk 1 (middle anchor) text run 15 at (167.83,152.16) startOffset 14 endOffset 15 width 6.67: " "
     27            chunk 1 (middle anchor) text run 16 at (175.80,157.01) startOffset 15 endOffset 16 width 12.00: "c"
     28            chunk 1 (middle anchor) text run 17 at (182.77,162.15) startOffset 16 endOffset 17 width 5.33: "i"
     29            chunk 1 (middle anchor) text run 18 at (187.81,166.51) startOffset 17 endOffset 18 width 7.99: "r"
     30            chunk 1 (middle anchor) text run 19 at (194.81,173.64) startOffset 18 endOffset 19 width 12.00: "c"
     31            chunk 1 (middle anchor) text run 20 at (200.28,180.36) startOffset 19 endOffset 20 width 5.33: "l"
     32            chunk 1 (middle anchor) text run 21 at (205.50,188.10) startOffset 20 endOffset 21 width 13.35: "e"
     33            chunk 1 (middle anchor) text run 22 at (210.26,196.90) startOffset 21 endOffset 22 width 6.67: "!"
     34      RenderSVGText {text} at (248,117) size 224x86 contains 1 chunk(s)
     35        RenderSVGTextPath {textPath} at (0,0) size 224x85
     36          RenderSVGInlineText {#text} at (0,0) size 224x85
     37            chunk 1 (middle anchor) text run 1 at (272.09,192.30) startOffset 0 endOffset 1 width 16.01: "S"
     38            chunk 1 (middle anchor) text run 2 at (280.02,179.96) startOffset 1 endOffset 2 width 13.35: "o"
     39            chunk 1 (middle anchor) text run 3 at (291.09,167.53) startOffset 2 endOffset 3 width 19.99: "m"
     40            chunk 1 (middle anchor) text run 4 at (304.07,157.09) startOffset 3 endOffset 4 width 13.35: "e"
     41            chunk 1 (middle anchor) text run 5 at (312.62,151.91) startOffset 4 endOffset 5 width 6.67: " "
     42            chunk 1 (middle anchor) text run 6 at (318.60,148.95) startOffset 5 endOffset 6 width 6.67: "t"
     43            chunk 1 (middle anchor) text run 7 at (327.90,145.26) startOffset 6 endOffset 7 width 13.35: "e"
     44            chunk 1 (middle anchor) text run 8 at (340.13,141.98) startOffset 7 endOffset 8 width 12.00: "x"
     45            chunk 1 (middle anchor) text run 9 at (349.35,140.56) startOffset 8 endOffset 9 width 6.67: "t"
     46            chunk 1 (middle anchor) text run 10 at (356.00,140.08) startOffset 9 endOffset 10 width 6.67: " "
     47            chunk 1 (middle anchor) text run 11 at (366.00,140.18) startOffset 10 endOffset 11 width 13.35: "o"
     48            chunk 1 (middle anchor) text run 12 at (379.23,141.85) startOffset 11 endOffset 12 width 13.35: "n"
     49            chunk 1 (middle anchor) text run 13 at (388.95,144.25) startOffset 12 endOffset 13 width 6.67: " "
     50            chunk 1 (middle anchor) text run 14 at (398.36,147.62) startOffset 13 endOffset 14 width 13.35: "a"
     51            chunk 1 (middle anchor) text run 15 at (407.40,151.92) startOffset 14 endOffset 15 width 6.67: " "
     52            chunk 1 (middle anchor) text run 16 at (415.39,156.73) startOffset 15 endOffset 16 width 12.00: "c"
     53            chunk 1 (middle anchor) text run 17 at (422.39,161.84) startOffset 16 endOffset 17 width 5.33: "i"
     54            chunk 1 (middle anchor) text run 18 at (427.45,166.17) startOffset 17 endOffset 18 width 7.99: "r"
     55            chunk 1 (middle anchor) text run 19 at (434.48,173.27) startOffset 18 endOffset 19 width 12.00: "c"
     56            chunk 1 (middle anchor) text run 20 at (439.98,179.96) startOffset 19 endOffset 20 width 5.33: "l"
     57            chunk 1 (middle anchor) text run 21 at (445.24,187.68) startOffset 20 endOffset 21 width 13.35: "e"
     58            chunk 1 (middle anchor) text run 22 at (450.05,196.45) startOffset 21 endOffset 22 width 6.67: "!"
  • trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/svg/text/reftests/textpath-shape-001-expected.txt

    r250276 r254657  
    22  RenderView at (0,0) size 800x600
    33layer at (0,0) size 800x600
    4   RenderSVGRoot {svg} at (149,249) size 502x169
     4  RenderSVGRoot {svg} at (121,221) size 558x225
    55    RenderSVGContainer {g} at (0,0) size 0x0
    66    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    77      RenderSVGRect {rect} at (150,250) size 167x167 [fill={[type=SOLID] [color=#000000]}] [x=90.00] [y=150.00] [width=100.00] [height=100.00]
    88      RenderSVGEllipse {circle} at (483,250) size 167x167 [fill={[type=SOLID] [color=#000000]}] [cx=340.00] [cy=200.00] [r=50.00]
    9     RenderSVGContainer {g} at (149,249) size 502x169
     9    RenderSVGContainer {g} at (121,221) size 558x225
    1010      RenderSVGContainer {use} at (149,249) size 169x169
    1111        RenderSVGRect {rect} at (149,249) size 169x169 [stroke={[type=SOLID] [color=#ADD8E6]}] [x=90.00] [y=150.00] [width=100.00] [height=100.00]
    12       RenderSVGText {text} at (0,0) size 0x0 contains 1 chunk(s)
    13         RenderSVGTextPath {textPath} at (0,0) size 0x0
    14           RenderSVGInlineText {#text} at (0,0) size 0x0
     12      RenderSVGText {text} at (72,132) size 136x136 contains 1 chunk(s)
     13        RenderSVGTextPath {textPath} at (0,0) size 135x135
     14          RenderSVGInlineText {#text} at (0,0) size 135x135
     15            chunk 1 text run 1 at (115.01,150.00) startOffset 0 endOffset 1 width 10.01: "L"
     16            chunk 1 text run 2 at (125.02,150.00) startOffset 1 endOffset 2 width 10.01: "o"
     17            chunk 1 text run 3 at (133.02,150.00) startOffset 2 endOffset 3 width 5.99: "r"
     18            chunk 1 text run 4 at (141.02,150.00) startOffset 3 endOffset 4 width 10.01: "e"
     19            chunk 1 text run 5 at (153.52,150.00) startOffset 4 endOffset 5 width 14.99: "m"
     20            chunk 1 text run 6 at (163.52,150.00) startOffset 5 endOffset 6 width 5.00: " "
     21            chunk 1 text run 7 at (168.02,150.00) startOffset 6 endOffset 7 width 4.00: "i"
     22            chunk 1 text run 8 at (174.97,150.62) startOffset 7 endOffset 8 width 10.01: "p"
     23            chunk 1 text run 9 at (183.28,155.05) startOffset 8 endOffset 9 width 9.00: "s"
     24            chunk 1 text run 10 at (188.66,162.78) startOffset 9 endOffset 10 width 10.01: "u"
     25            chunk 1 text run 11 at (190.00,175.12) startOffset 10 endOffset 11 width 14.99: "m"
     26            chunk 1 text run 12 at (190.00,185.12) startOffset 11 endOffset 12 width 5.00: " "
     27            chunk 1 text run 13 at (190.00,192.62) startOffset 12 endOffset 13 width 10.01: "d"
     28            chunk 1 text run 14 at (190.00,202.63) startOffset 13 endOffset 14 width 10.01: "o"
     29            chunk 1 text run 15 at (190.00,209.64) startOffset 14 endOffset 15 width 4.00: "l"
     30            chunk 1 text run 16 at (190.00,216.64) startOffset 15 endOffset 16 width 10.01: "o"
     31            chunk 1 text run 17 at (190.00,224.64) startOffset 16 endOffset 17 width 5.99: "r"
     32            chunk 1 text run 18 at (190.00,230.14) startOffset 17 endOffset 18 width 5.00: " "
     33            chunk 1 text run 19 at (188.74,236.99) startOffset 18 endOffset 19 width 9.00: "s"
     34            chunk 1 text run 20 at (185.53,242.61) startOffset 19 endOffset 20 width 4.00: "i"
     35            chunk 1 text run 21 at (182.32,245.75) startOffset 20 endOffset 21 width 5.00: "t"
     36            chunk 1 text run 22 at (178.04,248.32) startOffset 21 endOffset 22 width 5.00: " "
     37            chunk 1 text run 23 at (170.77,249.99) startOffset 22 endOffset 23 width 10.01: "a"
     38            chunk 1 text run 24 at (158.27,250.00) startOffset 23 endOffset 24 width 14.99: "m"
     39            chunk 1 text run 25 at (145.77,250.00) startOffset 24 endOffset 25 width 10.01: "e"
     40            chunk 1 text run 26 at (138.26,250.00) startOffset 25 endOffset 26 width 5.00: "t"
     41            chunk 1 text run 27 at (133.26,250.00) startOffset 26 endOffset 27 width 5.00: ","
     42            chunk 1 text run 28 at (128.26,250.00) startOffset 27 endOffset 28 width 5.00: " "
     43            chunk 1 text run 29 at (121.26,250.00) startOffset 28 endOffset 29 width 9.00: "c"
     44            chunk 1 text run 30 at (111.75,250.00) startOffset 29 endOffset 30 width 10.01: "o"
     45            chunk 1 text run 31 at (101.97,248.32) startOffset 30 endOffset 31 width 10.01: "n"
     46            chunk 1 text run 32 at (94.48,242.62) startOffset 31 endOffset 32 width 9.00: "s"
     47            chunk 1 text run 33 at (90.43,234.12) startOffset 32 endOffset 33 width 10.01: "e"
     48            chunk 1 text run 34 at (90.00,224.65) startOffset 33 endOffset 34 width 9.00: "c"
     49            chunk 1 text run 35 at (90.00,217.65) startOffset 34 endOffset 35 width 5.00: "t"
     50            chunk 1 text run 36 at (90.00,210.14) startOffset 35 endOffset 36 width 10.01: "e"
     51            chunk 1 text run 37 at (90.00,202.63) startOffset 36 endOffset 37 width 5.00: "t"
     52            chunk 1 text run 38 at (90.00,195.13) startOffset 37 endOffset 38 width 10.01: "u"
     53            chunk 1 text run 39 at (90.00,187.13) startOffset 38 endOffset 39 width 5.99: "r"
     54            chunk 1 text run 40 at (90.00,181.63) startOffset 39 endOffset 40 width 5.00: " "
     55            chunk 1 text run 41 at (90.00,174.12) startOffset 40 endOffset 41 width 10.01: "a"
     56            chunk 1 text run 42 at (90.86,164.20) startOffset 41 endOffset 42 width 10.01: "d"
     57            chunk 1 text run 43 at (94.01,157.98) startOffset 42 endOffset 43 width 4.00: "i"
     58            chunk 1 text run 44 at (99.11,153.23) startOffset 43 endOffset 44 width 10.01: "p"
     59            chunk 1 text run 45 at (105.52,150.50) startOffset 44 endOffset 45 width 4.00: "i"
    1560        RenderSVGInlineText {#text} at (0,0) size 0x0
    1661      RenderSVGContainer {use} at (482,249) size 169x169
    1762        RenderSVGEllipse {circle} at (482,249) size 169x169 [stroke={[type=SOLID] [color=#ADD8E6]}] [cx=340.00] [cy=200.00] [r=50.00]
    18       RenderSVGText {text} at (0,0) size 0x0 contains 1 chunk(s)
    19         RenderSVGTextPath {textPath} at (0,0) size 0x0
    20           RenderSVGInlineText {#text} at (0,0) size 0x0
     63      RenderSVGText {text} at (272,132) size 136x136 contains 1 chunk(s)
     64        RenderSVGTextPath {textPath} at (0,0) size 135x135
     65          RenderSVGInlineText {#text} at (0,0) size 135x135
     66            chunk 1 text run 1 at (389.75,205.00) startOffset 0 endOffset 1 width 10.01: "L"
     67            chunk 1 text run 2 at (387.77,214.79) startOffset 1 endOffset 2 width 10.01: "o"
     68            chunk 1 text run 3 at (384.81,222.22) startOffset 2 endOffset 3 width 5.99: "r"
     69            chunk 1 text run 4 at (380.69,229.07) startOffset 3 endOffset 4 width 10.01: "e"
     70            chunk 1 text run 5 at (372.23,238.23) startOffset 4 endOffset 5 width 14.99: "m"
     71            chunk 1 text run 6 at (364.00,243.87) startOffset 5 endOffset 6 width 5.00: " "
     72            chunk 1 text run 7 at (359.96,245.86) startOffset 6 endOffset 7 width 4.00: "i"
     73            chunk 1 text run 8 at (353.36,248.19) startOffset 7 endOffset 8 width 10.01: "p"
     74            chunk 1 text run 9 at (344.02,249.84) startOffset 8 endOffset 9 width 9.00: "s"
     75            chunk 1 text run 10 at (334.53,249.70) startOffset 9 endOffset 10 width 10.01: "u"
     76            chunk 1 text run 11 at (322.40,246.81) startOffset 10 endOffset 11 width 14.99: "m"
     77            chunk 1 text run 12 at (313.45,242.38) startOffset 11 endOffset 12 width 5.00: " "
     78            chunk 1 text run 13 at (307.42,237.93) startOffset 12 endOffset 13 width 10.01: "d"
     79            chunk 1 text run 14 at (300.53,230.69) startOffset 13 endOffset 14 width 10.01: "o"
     80            chunk 1 text run 15 at (296.62,224.88) startOffset 14 endOffset 15 width 4.00: "l"
     81            chunk 1 text run 16 at (293.57,218.58) startOffset 15 endOffset 16 width 10.01: "o"
     82            chunk 1 text run 17 at (291.20,210.95) startOffset 16 endOffset 17 width 5.99: "r"
     83            chunk 1 text run 18 at (290.30,205.53) startOffset 17 endOffset 18 width 5.00: " "
     84            chunk 1 text run 19 at (290.02,198.54) startOffset 18 endOffset 19 width 9.00: "s"
     85            chunk 1 text run 20 at (290.63,192.07) startOffset 19 endOffset 20 width 4.00: "i"
     86            chunk 1 text run 21 at (291.53,187.67) startOffset 20 endOffset 21 width 5.00: "t"
     87            chunk 1 text run 22 at (293.00,182.89) startOffset 21 endOffset 22 width 5.00: " "
     88            chunk 1 text run 23 at (296.10,176.06) startOffset 22 endOffset 23 width 10.01: "a"
     89            chunk 1 text run 24 at (303.39,165.94) startOffset 23 endOffset 24 width 14.99: "m"
     90            chunk 1 text run 25 at (312.95,157.94) startOffset 24 endOffset 25 width 10.01: "e"
     91            chunk 1 text run 26 at (319.54,154.36) startOffset 25 endOffset 26 width 5.00: "t"
     92            chunk 1 text run 27 at (324.20,152.55) startOffset 26 endOffset 27 width 5.00: ","
     93            chunk 1 text run 28 at (329.02,151.21) startOffset 27 endOffset 28 width 5.00: " "
     94            chunk 1 text run 29 at (335.93,150.16) startOffset 28 endOffset 29 width 9.00: "c"
     95            chunk 1 text run 30 at (345.42,150.29) startOffset 29 endOffset 30 width 10.01: "o"
     96            chunk 1 text run 31 at (355.20,152.35) startOffset 30 endOffset 31 width 10.01: "n"
     97            chunk 1 text run 32 at (363.93,156.09) startOffset 31 endOffset 32 width 9.00: "s"
     98            chunk 1 text run 33 at (371.79,161.41) startOffset 32 endOffset 33 width 10.01: "e"
     99            chunk 1 text run 34 at (378.51,168.11) startOffset 33 endOffset 34 width 9.00: "c"
     100            chunk 1 text run 35 at (382.59,173.79) startOffset 34 endOffset 35 width 5.00: "t"
     101            chunk 1 text run 36 at (386.03,180.45) startOffset 35 endOffset 36 width 10.01: "e"
     102            chunk 1 text run 37 at (388.44,187.55) startOffset 36 endOffset 37 width 5.00: "t"
     103            chunk 1 text run 38 at (389.75,194.94) startOffset 37 endOffset 38 width 10.01: "u"
    21104        RenderSVGInlineText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/import/paths-dom-01-f-manual-expected.txt

    r250276 r254657  
    5656        RenderSVGContainer {use} at (500,133) size 167x84
    5757          RenderSVGPath {path} at (500,133) size 167x84 [fill={[type=SOLID] [color=#008000]}] [data="M 300 80 L 400 80 L 400 130 L 300 130 L 300 80"]
    58         RenderSVGText {text} at (315,67) size 98x76 contains 1 chunk(s)
    59           RenderSVGTextPath {textPath} at (0,0) size 97x75
    60             RenderSVGInlineText {#text} at (0,0) size 97x75
    61               chunk 1 text run 1 at (354.21,80.00) startOffset 0 endOffset 1 width 8.43: "T"
    62               chunk 1 text run 2 at (362.27,80.00) startOffset 1 endOffset 2 width 7.67: "h"
    63               chunk 1 text run 3 at (369.94,80.00) startOffset 2 endOffset 3 width 7.67: "e"
    64               chunk 1 text run 4 at (375.70,80.00) startOffset 3 endOffset 4 width 3.83: " "
    65               chunk 1 text run 5 at (379.53,80.00) startOffset 4 endOffset 5 width 3.83: "t"
    66               chunk 1 text run 6 at (385.29,80.00) startOffset 5 endOffset 6 width 7.67: "e"
    67               chunk 1 text run 7 at (392.57,80.00) startOffset 6 endOffset 7 width 6.90: "x"
    68               chunk 1 text run 8 at (397.94,80.00) startOffset 7 endOffset 8 width 3.83: "t"
    69               chunk 1 text run 9 at (400.00,81.77) startOffset 8 endOffset 9 width 3.83: " "
    70               chunk 1 text run 10 at (400.00,87.53) startOffset 9 endOffset 10 width 7.67: "g"
    71               chunk 1 text run 11 at (400.00,95.20) startOffset 10 endOffset 11 width 7.67: "o"
    72               chunk 1 text run 12 at (400.00,102.88) startOffset 11 endOffset 12 width 7.67: "e"
    73               chunk 1 text run 13 at (400.00,110.17) startOffset 12 endOffset 13 width 6.90: "s"
    74               chunk 1 text run 14 at (400.00,115.53) startOffset 13 endOffset 14 width 3.83: " "
    75               chunk 1 text run 15 at (400.00,121.29) startOffset 14 endOffset 15 width 7.67: "a"
    76               chunk 1 text run 16 at (400.00,127.42) startOffset 15 endOffset 16 width 4.60: "r"
    77               chunk 1 text run 17 at (396.44,130.00) startOffset 16 endOffset 17 width 7.67: "o"
    78               chunk 1 text run 18 at (388.77,130.00) startOffset 17 endOffset 18 width 7.67: "u"
    79               chunk 1 text run 19 at (381.09,130.00) startOffset 18 endOffset 19 width 7.67: "n"
    80               chunk 1 text run 20 at (373.42,130.00) startOffset 19 endOffset 20 width 7.67: "d"
    81               chunk 1 text run 21 at (367.66,130.00) startOffset 20 endOffset 21 width 3.83: " "
    82               chunk 1 text run 22 at (363.83,130.00) startOffset 21 endOffset 22 width 3.83: "t"
    83               chunk 1 text run 23 at (358.08,130.00) startOffset 22 endOffset 23 width 7.67: "h"
    84               chunk 1 text run 24 at (350.40,130.00) startOffset 23 endOffset 24 width 7.67: "e"
    85               chunk 1 text run 25 at (344.65,130.00) startOffset 24 endOffset 25 width 3.83: " "
    86               chunk 1 text run 26 at (340.43,130.00) startOffset 25 endOffset 26 width 4.60: "r"
    87               chunk 1 text run 27 at (334.30,130.00) startOffset 26 endOffset 27 width 7.67: "e"
    88               chunk 1 text run 28 at (327.01,130.00) startOffset 27 endOffset 28 width 6.90: "c"
    89               chunk 1 text run 29 at (321.64,130.00) startOffset 28 endOffset 29 width 3.83: "t"
    90               chunk 1 text run 30 at (317.81,130.00) startOffset 29 endOffset 30 width 3.83: "."
     58        RenderSVGText {text} at (287,76) size 113x67 contains 1 chunk(s)
     59          RenderSVGTextPath {textPath} at (0,0) size 113x66
     60            RenderSVGInlineText {#text} at (0,0) size 113x66
     61              chunk 1 text run 1 at (395.79,130.00) startOffset 0 endOffset 1 width 8.43: "T"
     62              chunk 1 text run 2 at (387.73,130.00) startOffset 1 endOffset 2 width 7.67: "h"
     63              chunk 1 text run 3 at (380.06,130.00) startOffset 2 endOffset 3 width 7.67: "e"
     64              chunk 1 text run 4 at (374.30,130.00) startOffset 3 endOffset 4 width 3.83: " "
     65              chunk 1 text run 5 at (370.47,130.00) startOffset 4 endOffset 5 width 3.83: "t"
     66              chunk 1 text run 6 at (364.72,130.00) startOffset 5 endOffset 6 width 7.67: "e"
     67              chunk 1 text run 7 at (357.43,130.00) startOffset 6 endOffset 7 width 6.90: "x"
     68              chunk 1 text run 8 at (352.06,130.00) startOffset 7 endOffset 8 width 3.83: "t"
     69              chunk 1 text run 9 at (348.23,130.00) startOffset 8 endOffset 9 width 3.83: " "
     70              chunk 1 text run 10 at (342.47,130.00) startOffset 9 endOffset 10 width 7.67: "g"
     71              chunk 1 text run 11 at (334.80,130.00) startOffset 10 endOffset 11 width 7.67: "o"
     72              chunk 1 text run 12 at (327.12,130.00) startOffset 11 endOffset 12 width 7.67: "e"
     73              chunk 1 text run 13 at (319.83,130.00) startOffset 12 endOffset 13 width 6.90: "s"
     74              chunk 1 text run 14 at (314.47,130.00) startOffset 13 endOffset 14 width 3.83: " "
     75              chunk 1 text run 15 at (308.71,130.00) startOffset 14 endOffset 15 width 7.67: "a"
     76              chunk 1 text run 16 at (302.58,130.00) startOffset 15 endOffset 16 width 4.60: "r"
     77              chunk 1 text run 17 at (300.00,126.44) startOffset 16 endOffset 17 width 7.67: "o"
     78              chunk 1 text run 18 at (300.00,118.77) startOffset 17 endOffset 18 width 7.67: "u"
     79              chunk 1 text run 19 at (300.00,111.09) startOffset 18 endOffset 19 width 7.67: "n"
     80              chunk 1 text run 20 at (300.00,103.42) startOffset 19 endOffset 20 width 7.67: "d"
     81              chunk 1 text run 21 at (300.00,97.66) startOffset 20 endOffset 21 width 3.83: " "
     82              chunk 1 text run 22 at (300.00,93.83) startOffset 21 endOffset 22 width 3.83: "t"
     83              chunk 1 text run 23 at (300.00,88.08) startOffset 22 endOffset 23 width 7.67: "h"
     84              chunk 1 text run 24 at (300.00,80.40) startOffset 23 endOffset 24 width 7.67: "e"
    9185          RenderSVGInlineText {#text} at (0,0) size 0x0
    9286        RenderSVGContainer {g} at (16,262) size 580x227 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
  • trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt

    r250276 r254657  
    22  RenderView at (0,0) size 800x600
    33layer at (0,0) size 300x200
    4   RenderSVGRoot {svg} at (49,24) size 207x133
     4  RenderSVGRoot {svg} at (43,24) size 213x133
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    6       RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     6      RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    77    RenderSVGContainer {g} at (50,24) size 206x33
    88      RenderSVGContainer {use} at (50,49) size 200x2
    9         RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     9        RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    1010      RenderSVGText {text} at (50,24) size 206x33 contains 1 chunk(s)
    1111        RenderSVGTextPath {textPath} at (0,0) size 206x32
     
    2727            chunk 1 text run 15 at (247.65,50.00) startOffset 14 endOffset 15 width 15.57: "n"
    2828        RenderSVGInlineText {#text} at (0,0) size 0x0
    29     RenderSVGContainer {g} at (50,99) size 200x2 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,50.00)}]
     29    RenderSVGContainer {g} at (50,74) size 200x33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,50.00)}]
    3030      RenderSVGContainer {use} at (50,99) size 200x2
    31         RenderSVGPath {path} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
    32       RenderSVGText {text} at (0,0) size 0x0 contains 1 chunk(s)
    33         RenderSVGTextPath {textPath} at (0,0) size 0x0
    34           RenderSVGInlineText {#text} at (0,0) size 0x0
     31        RenderSVGPath {path} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
     32      RenderSVGText {text} at (150,24) size 94x33 contains 1 chunk(s)
     33        RenderSVGTextPath {textPath} at (0,0) size 94x32
     34          RenderSVGInlineText {#text} at (0,0) size 94x32
     35            chunk 1 text run 1 at (158.55,50.00) startOffset 0 endOffset 1 width 17.10: "T"
     36            chunk 1 text run 2 at (174.89,50.00) startOffset 1 endOffset 2 width 15.57: "h"
     37            chunk 1 text run 3 at (190.46,50.00) startOffset 2 endOffset 3 width 15.57: "e"
     38            chunk 1 text run 4 at (202.14,50.00) startOffset 3 endOffset 4 width 7.78: " "
     39            chunk 1 text run 5 at (213.81,50.00) startOffset 4 endOffset 5 width 15.57: "q"
     40            chunk 1 text run 6 at (229.39,50.00) startOffset 5 endOffset 6 width 15.57: "u"
     41            chunk 1 text run 7 at (240.28,50.00) startOffset 6 endOffset 7 width 6.22: "i"
    3542        RenderSVGInlineText {#text} at (0,0) size 0x0
    36     RenderSVGContainer {g} at (49,124) size 206x33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,100.00)}]
     43    RenderSVGContainer {g} at (43,124) size 207x33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,100.00)}]
    3744      RenderSVGContainer {use} at (50,149) size 200x2
    38         RenderSVGPath {path} at (50,149) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
    39       RenderSVGText {text} at (49,24) size 206x33 contains 1 chunk(s)
    40         RenderSVGTextPath {textPath} at (0,0) size 206x32
    41           RenderSVGInlineText {#text} at (0,0) size 206x32
    42             chunk 1 text run 1 at (57.55,50.00) startOffset 0 endOffset 1 width 17.10: "T"
    43             chunk 1 text run 2 at (73.89,50.00) startOffset 1 endOffset 2 width 15.57: "h"
    44             chunk 1 text run 3 at (89.46,50.00) startOffset 2 endOffset 3 width 15.57: "e"
    45             chunk 1 text run 4 at (101.14,50.00) startOffset 3 endOffset 4 width 7.78: " "
    46             chunk 1 text run 5 at (112.81,50.00) startOffset 4 endOffset 5 width 15.57: "q"
    47             chunk 1 text run 6 at (128.39,50.00) startOffset 5 endOffset 6 width 15.57: "u"
    48             chunk 1 text run 7 at (139.28,50.00) startOffset 6 endOffset 7 width 6.22: "i"
    49             chunk 1 text run 8 at (149.39,50.00) startOffset 7 endOffset 8 width 14.00: "c"
    50             chunk 1 text run 9 at (163.39,50.00) startOffset 8 endOffset 9 width 14.00: "k"
    51             chunk 1 text run 10 at (174.28,50.00) startOffset 9 endOffset 10 width 7.78: " "
    52             chunk 1 text run 11 at (185.96,50.00) startOffset 10 endOffset 11 width 15.57: "b"
    53             chunk 1 text run 12 at (198.41,50.00) startOffset 11 endOffset 12 width 9.32: "r"
    54             chunk 1 text run 13 at (210.85,50.00) startOffset 12 endOffset 13 width 15.57: "o"
    55             chunk 1 text run 14 at (228.75,50.00) startOffset 13 endOffset 14 width 20.22: "w"
    56             chunk 1 text run 15 at (246.65,50.00) startOffset 14 endOffset 15 width 15.57: "n"
     45        RenderSVGPath {path} at (50,149) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
     46      RenderSVGText {text} at (43,24) size 158x33 contains 1 chunk(s)
     47        RenderSVGTextPath {textPath} at (0,0) size 158x32
     48          RenderSVGInlineText {#text} at (0,0) size 158x32
     49            chunk 1 text run 1 at (50.39,50.00) startOffset 7 endOffset 8 width 14.00: "c"
     50            chunk 1 text run 2 at (64.39,50.00) startOffset 8 endOffset 9 width 14.00: "k"
     51            chunk 1 text run 3 at (75.28,50.00) startOffset 9 endOffset 10 width 7.78: " "
     52            chunk 1 text run 4 at (86.96,50.00) startOffset 10 endOffset 11 width 15.57: "b"
     53            chunk 1 text run 5 at (99.41,50.00) startOffset 11 endOffset 12 width 9.32: "r"
     54            chunk 1 text run 6 at (111.85,50.00) startOffset 12 endOffset 13 width 15.57: "o"
     55            chunk 1 text run 7 at (129.75,50.00) startOffset 13 endOffset 14 width 20.22: "w"
     56            chunk 1 text run 8 at (147.65,50.00) startOffset 14 endOffset 15 width 15.57: "n"
     57            chunk 1 text run 9 at (159.32,50.00) startOffset 15 endOffset 16 width 7.78: " "
     58            chunk 1 text run 10 at (167.10,50.00) startOffset 16 endOffset 17 width 7.78: "f"
     59            chunk 1 text run 11 at (178.78,50.00) startOffset 17 endOffset 18 width 15.57: "o"
     60            chunk 1 text run 12 at (193.56,50.00) startOffset 18 endOffset 19 width 14.00: "x"
    5761        RenderSVGInlineText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt

    r250276 r254657  
    22  RenderView at (0,0) size 800x600
    33layer at (0,0) size 300x200
    4   RenderSVGRoot {svg} at (49,24) size 207x133
     4  RenderSVGRoot {svg} at (43,24) size 213x133
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    6       RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     6      RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    77    RenderSVGContainer {g} at (50,24) size 206x33
    88      RenderSVGContainer {use} at (50,49) size 200x2
    9         RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     9        RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    1010      RenderSVGText {text} at (50,24) size 206x33 contains 1 chunk(s)
    1111        RenderSVGTextPath {textPath} at (0,0) size 206x32
     
    2929    RenderSVGContainer {g} at (50,74) size 200x33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,50.00)}]
    3030      RenderSVGContainer {use} at (50,99) size 200x2
    31         RenderSVGPath {path} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     31        RenderSVGPath {path} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    3232      RenderSVGText {text} at (150,24) size 94x33 contains 1 chunk(s)
    3333        RenderSVGTextPath {textPath} at (0,0) size 94x32
     
    4141            chunk 1 text run 7 at (240.28,50.00) startOffset 6 endOffset 7 width 6.22: "i"
    4242        RenderSVGInlineText {#text} at (0,0) size 0x0
    43     RenderSVGContainer {g} at (49,124) size 206x33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,100.00)}]
     43    RenderSVGContainer {g} at (43,124) size 207x33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,100.00)}]
    4444      RenderSVGContainer {use} at (50,149) size 200x2
    45         RenderSVGPath {path} at (50,149) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
    46       RenderSVGText {text} at (49,24) size 206x33 contains 1 chunk(s)
    47         RenderSVGTextPath {textPath} at (0,0) size 206x32
    48           RenderSVGInlineText {#text} at (0,0) size 206x32
    49             chunk 1 text run 1 at (58.05,50.00) startOffset 0 endOffset 1 width 17.10: "T"
    50             chunk 1 text run 2 at (74.39,50.00) startOffset 1 endOffset 2 width 15.57: "h"
    51             chunk 1 text run 3 at (89.96,50.00) startOffset 2 endOffset 3 width 15.57: "e"
    52             chunk 1 text run 4 at (101.64,50.00) startOffset 3 endOffset 4 width 7.78: " "
    53             chunk 1 text run 5 at (113.31,50.00) startOffset 4 endOffset 5 width 15.57: "q"
    54             chunk 1 text run 6 at (128.89,50.00) startOffset 5 endOffset 6 width 15.57: "u"
    55             chunk 1 text run 7 at (139.78,50.00) startOffset 6 endOffset 7 width 6.22: "i"
    56             chunk 1 text run 8 at (149.89,50.00) startOffset 7 endOffset 8 width 14.00: "c"
    57             chunk 1 text run 9 at (163.89,50.00) startOffset 8 endOffset 9 width 14.00: "k"
    58             chunk 1 text run 10 at (174.78,50.00) startOffset 9 endOffset 10 width 7.78: " "
    59             chunk 1 text run 11 at (186.46,50.00) startOffset 10 endOffset 11 width 15.57: "b"
    60             chunk 1 text run 12 at (198.91,50.00) startOffset 11 endOffset 12 width 9.32: "r"
    61             chunk 1 text run 13 at (211.35,50.00) startOffset 12 endOffset 13 width 15.57: "o"
    62             chunk 1 text run 14 at (229.25,50.00) startOffset 13 endOffset 14 width 20.22: "w"
    63             chunk 1 text run 15 at (247.15,50.00) startOffset 14 endOffset 15 width 15.57: "n"
     45        RenderSVGPath {path} at (50,149) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
     46      RenderSVGText {text} at (43,24) size 158x33 contains 1 chunk(s)
     47        RenderSVGTextPath {textPath} at (0,0) size 158x32
     48          RenderSVGInlineText {#text} at (0,0) size 158x32
     49            chunk 1 text run 1 at (50.39,50.00) startOffset 7 endOffset 8 width 14.00: "c"
     50            chunk 1 text run 2 at (64.39,50.00) startOffset 8 endOffset 9 width 14.00: "k"
     51            chunk 1 text run 3 at (75.28,50.00) startOffset 9 endOffset 10 width 7.78: " "
     52            chunk 1 text run 4 at (86.96,50.00) startOffset 10 endOffset 11 width 15.57: "b"
     53            chunk 1 text run 5 at (99.41,50.00) startOffset 11 endOffset 12 width 9.32: "r"
     54            chunk 1 text run 6 at (111.85,50.00) startOffset 12 endOffset 13 width 15.57: "o"
     55            chunk 1 text run 7 at (129.75,50.00) startOffset 13 endOffset 14 width 20.22: "w"
     56            chunk 1 text run 8 at (147.65,50.00) startOffset 14 endOffset 15 width 15.57: "n"
     57            chunk 1 text run 9 at (159.32,50.00) startOffset 15 endOffset 16 width 7.78: " "
     58            chunk 1 text run 10 at (167.10,50.00) startOffset 16 endOffset 17 width 7.78: "f"
     59            chunk 1 text run 11 at (178.78,50.00) startOffset 17 endOffset 18 width 15.57: "o"
     60            chunk 1 text run 12 at (193.56,50.00) startOffset 18 endOffset 19 width 14.00: "x"
    6461        RenderSVGInlineText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-expected.txt

    r250276 r254657  
    22  RenderView at (0,0) size 800x600
    33layer at (0,0) size 300x200
    4   RenderSVGRoot {svg} at (49,24) size 207x133
     4  RenderSVGRoot {svg} at (49,24) size 208x133
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    66      RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     
    2727            chunk 1 text run 15 at (247.65,50.00) startOffset 14 endOffset 15 width 15.57: "n"
    2828        RenderSVGInlineText {#text} at (0,0) size 0x0
    29     RenderSVGContainer {g} at (50,99) size 200x2 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,50.00)}]
     29    RenderSVGContainer {g} at (50,74) size 207x33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,50.00)}]
    3030      RenderSVGContainer {use} at (50,99) size 200x2
    3131        RenderSVGPath {path} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
    32       RenderSVGText {text} at (0,0) size 0x0 contains 1 chunk(s)
    33         RenderSVGTextPath {textPath} at (0,0) size 0x0
    34           RenderSVGInlineText {#text} at (0,0) size 0x0
     32      RenderSVGText {text} at (51,24) size 206x33 contains 1 chunk(s)
     33        RenderSVGTextPath {textPath} at (0,0) size 206x32
     34          RenderSVGInlineText {#text} at (0,0) size 206x32
     35            chunk 1 text run 1 at (59.55,50.00) startOffset 0 endOffset 1 width 17.10: "T"
     36            chunk 1 text run 2 at (75.89,50.00) startOffset 1 endOffset 2 width 15.57: "h"
     37            chunk 1 text run 3 at (91.46,50.00) startOffset 2 endOffset 3 width 15.57: "e"
     38            chunk 1 text run 4 at (103.14,50.00) startOffset 3 endOffset 4 width 7.78: " "
     39            chunk 1 text run 5 at (114.81,50.00) startOffset 4 endOffset 5 width 15.57: "q"
     40            chunk 1 text run 6 at (130.39,50.00) startOffset 5 endOffset 6 width 15.57: "u"
     41            chunk 1 text run 7 at (141.28,50.00) startOffset 6 endOffset 7 width 6.22: "i"
     42            chunk 1 text run 8 at (151.39,50.00) startOffset 7 endOffset 8 width 14.00: "c"
     43            chunk 1 text run 9 at (165.39,50.00) startOffset 8 endOffset 9 width 14.00: "k"
     44            chunk 1 text run 10 at (176.28,50.00) startOffset 9 endOffset 10 width 7.78: " "
     45            chunk 1 text run 11 at (187.96,50.00) startOffset 10 endOffset 11 width 15.57: "b"
     46            chunk 1 text run 12 at (200.41,50.00) startOffset 11 endOffset 12 width 9.32: "r"
     47            chunk 1 text run 13 at (212.85,50.00) startOffset 12 endOffset 13 width 15.57: "o"
     48            chunk 1 text run 14 at (230.75,50.00) startOffset 13 endOffset 14 width 20.22: "w"
     49            chunk 1 text run 15 at (248.65,50.00) startOffset 14 endOffset 15 width 15.57: "n"
    3550        RenderSVGInlineText {#text} at (0,0) size 0x0
    3651    RenderSVGContainer {g} at (49,124) size 206x33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,100.00)}]
  • trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-percentage-expected.txt

    r250276 r254657  
    22  RenderView at (0,0) size 800x600
    33layer at (0,0) size 300x200
    4   RenderSVGRoot {svg} at (49,24) size 207x133
     4  RenderSVGRoot {svg} at (43,24) size 213x133
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    66      RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     
    4141            chunk 1 text run 7 at (240.28,50.00) startOffset 6 endOffset 7 width 6.22: "i"
    4242        RenderSVGInlineText {#text} at (0,0) size 0x0
    43     RenderSVGContainer {g} at (49,124) size 206x33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,100.00)}]
     43    RenderSVGContainer {g} at (43,124) size 207x33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,100.00)}]
    4444      RenderSVGContainer {use} at (50,149) size 200x2
    4545        RenderSVGPath {path} at (50,149) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
    46       RenderSVGText {text} at (49,24) size 206x33 contains 1 chunk(s)
    47         RenderSVGTextPath {textPath} at (0,0) size 206x32
    48           RenderSVGInlineText {#text} at (0,0) size 206x32
    49             chunk 1 text run 1 at (58.05,50.00) startOffset 0 endOffset 1 width 17.10: "T"
    50             chunk 1 text run 2 at (74.39,50.00) startOffset 1 endOffset 2 width 15.57: "h"
    51             chunk 1 text run 3 at (89.96,50.00) startOffset 2 endOffset 3 width 15.57: "e"
    52             chunk 1 text run 4 at (101.64,50.00) startOffset 3 endOffset 4 width 7.78: " "
    53             chunk 1 text run 5 at (113.31,50.00) startOffset 4 endOffset 5 width 15.57: "q"
    54             chunk 1 text run 6 at (128.89,50.00) startOffset 5 endOffset 6 width 15.57: "u"
    55             chunk 1 text run 7 at (139.78,50.00) startOffset 6 endOffset 7 width 6.22: "i"
    56             chunk 1 text run 8 at (149.89,50.00) startOffset 7 endOffset 8 width 14.00: "c"
    57             chunk 1 text run 9 at (163.89,50.00) startOffset 8 endOffset 9 width 14.00: "k"
    58             chunk 1 text run 10 at (174.78,50.00) startOffset 9 endOffset 10 width 7.78: " "
    59             chunk 1 text run 11 at (186.46,50.00) startOffset 10 endOffset 11 width 15.57: "b"
    60             chunk 1 text run 12 at (198.91,50.00) startOffset 11 endOffset 12 width 9.32: "r"
    61             chunk 1 text run 13 at (211.35,50.00) startOffset 12 endOffset 13 width 15.57: "o"
    62             chunk 1 text run 14 at (229.25,50.00) startOffset 13 endOffset 14 width 20.22: "w"
    63             chunk 1 text run 15 at (247.15,50.00) startOffset 14 endOffset 15 width 15.57: "n"
     46      RenderSVGText {text} at (43,24) size 158x33 contains 1 chunk(s)
     47        RenderSVGTextPath {textPath} at (0,0) size 158x32
     48          RenderSVGInlineText {#text} at (0,0) size 158x32
     49            chunk 1 text run 1 at (50.39,50.00) startOffset 7 endOffset 8 width 14.00: "c"
     50            chunk 1 text run 2 at (64.39,50.00) startOffset 8 endOffset 9 width 14.00: "k"
     51            chunk 1 text run 3 at (75.28,50.00) startOffset 9 endOffset 10 width 7.78: " "
     52            chunk 1 text run 4 at (86.96,50.00) startOffset 10 endOffset 11 width 15.57: "b"
     53            chunk 1 text run 5 at (99.41,50.00) startOffset 11 endOffset 12 width 9.32: "r"
     54            chunk 1 text run 6 at (111.85,50.00) startOffset 12 endOffset 13 width 15.57: "o"
     55            chunk 1 text run 7 at (129.75,50.00) startOffset 13 endOffset 14 width 20.22: "w"
     56            chunk 1 text run 8 at (147.65,50.00) startOffset 14 endOffset 15 width 15.57: "n"
     57            chunk 1 text run 9 at (159.32,50.00) startOffset 15 endOffset 16 width 7.78: " "
     58            chunk 1 text run 10 at (167.10,50.00) startOffset 16 endOffset 17 width 7.78: "f"
     59            chunk 1 text run 11 at (178.78,50.00) startOffset 17 endOffset 18 width 15.57: "o"
     60            chunk 1 text run 12 at (193.56,50.00) startOffset 18 endOffset 19 width 14.00: "x"
    6461        RenderSVGInlineText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/shapes/line-dasharray-expected.txt

    r250276 r254657  
    22  RenderView at (0,0) size 800x600
    33layer at (0,0) size 300x200
    4   RenderSVGRoot {svg} at (50,99) size 199x2
    5     RenderSVGPath {line} at (50,99) size 199x2 [stroke={[type=SOLID] [color=#0000FF] [dash array={3.00, 1.00}]}] [fill={[type=SOLID] [color=#000000]}] [x1=50.00] [y1=100.00] [x2=250.00] [y2=100.00]
     4  RenderSVGRoot {svg} at (50,99) size 200x2
     5    RenderSVGPath {line} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#0000FF] [dash array={3.00, 1.00}] [path length=25.00]}] [fill={[type=SOLID] [color=#000000]}] [x1=50.00] [y1=100.00] [x2=250.00] [y2=100.00]
  • trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-001-expected.txt

    r250276 r254657  
    66    RenderSVGContainer {g} at (29,229) size 742x342
    77      RenderSVGRect {rect} at (29,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={50.00}]}] [x=20.00] [y=140.00] [width=200.00] [height=200.00]
    8       RenderSVGRect {rect} at (429,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={0.25}]}] [x=260.00] [y=140.00] [width=200.00] [height=200.00]
     8      RenderSVGRect {rect} at (429,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={0.25}] [path length=4.00]}] [x=260.00] [y=140.00] [width=200.00] [height=200.00]
  • trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-002-expected.txt

    r250276 r254657  
    66    RenderSVGContainer {g} at (29,229) size 742x342
    77      RenderSVGEllipse {circle} at (29,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={39.27}]}] [cx=120.00] [cy=240.00] [r=100.00]
    8       RenderSVGEllipse {circle} at (429,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={0.25}]}] [cx=360.00] [cy=240.00] [r=100.00]
     8      RenderSVGEllipse {circle} at (429,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={0.25}] [path length=4.00]}] [cx=360.00] [cy=240.00] [r=100.00]
  • trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt

    r250276 r254657  
    22  RenderView at (0,0) size 800x600
    33layer at (0,0) size 800x600
    4   RenderSVGRoot {svg} at (0,0) size 768x568
     4  RenderSVGRoot {svg} at (13,194) size 775x374
    55    RenderSVGContainer {g} at (0,0) size 0x0
    6     RenderSVGContainer {g} at (0,0) size 768x568
     6    RenderSVGContainer {g} at (13,194) size 775x374
    77      RenderSVGEllipse {circle} at (32,232) size 336x336 [stroke={[type=SOLID] [color=#000000]}] [cx=120.00] [cy=240.00] [r=100.00]
    8       RenderSVGEllipse {circle} at (432,232) size 336x336 [stroke={[type=SOLID] [color=#000000]}] [cx=360.00] [cy=240.00] [r=100.00]
    9       RenderSVGText {text} at (0,0) size 0x0 contains 1 chunk(s)
    10         RenderSVGTextPath {textPath} at (0,0) size 0x0
    11           RenderSVGInlineText {#text} at (0,0) size 0x0
    12       RenderSVGText {text} at (0,0) size 0x0 contains 1 chunk(s)
    13         RenderSVGTextPath {textPath} at (0,0) size 0x0
    14           RenderSVGInlineText {#text} at (0,0) size 0x0
     8      RenderSVGEllipse {circle} at (432,232) size 336x336 [stroke={[type=SOLID] [color=#000000] [path length=4.00]}] [cx=360.00] [cy=240.00] [r=100.00]
     9      RenderSVGText {text} at (9,117) size 223x86 contains 1 chunk(s)
     10        RenderSVGTextPath {textPath} at (0,0) size 223x85
     11          RenderSVGInlineText {#text} at (0,0) size 223x85
     12            chunk 1 (middle anchor) text run 1 at (32.33,191.87) startOffset 0 endOffset 1 width 16.01: "S"
     13            chunk 1 (middle anchor) text run 2 at (40.32,179.57) startOffset 1 endOffset 2 width 13.35: "o"
     14            chunk 1 (middle anchor) text run 3 at (51.45,167.19) startOffset 2 endOffset 3 width 19.99: "m"
     15            chunk 1 (middle anchor) text run 4 at (64.48,156.82) startOffset 3 endOffset 4 width 13.35: "e"
     16            chunk 1 (middle anchor) text run 5 at (73.06,151.68) startOffset 4 endOffset 5 width 6.67: " "
     17            chunk 1 (middle anchor) text run 6 at (79.05,148.74) startOffset 5 endOffset 6 width 6.67: "t"
     18            chunk 1 (middle anchor) text run 7 at (88.37,145.11) startOffset 6 endOffset 7 width 13.35: "e"
     19            chunk 1 (middle anchor) text run 8 at (100.61,141.88) startOffset 7 endOffset 8 width 12.00: "x"
     20            chunk 1 (middle anchor) text run 9 at (109.84,140.51) startOffset 8 endOffset 9 width 6.67: "t"
     21            chunk 1 (middle anchor) text run 10 at (116.49,140.06) startOffset 9 endOffset 10 width 6.67: " "
     22            chunk 1 (middle anchor) text run 11 at (126.50,140.21) startOffset 10 endOffset 11 width 13.35: "o"
     23            chunk 1 (middle anchor) text run 12 at (139.72,141.94) startOffset 11 endOffset 12 width 13.35: "n"
     24            chunk 1 (middle anchor) text run 13 at (149.42,144.40) startOffset 12 endOffset 13 width 6.67: " "
     25            chunk 1 (middle anchor) text run 14 at (158.82,147.81) startOffset 13 endOffset 14 width 13.35: "a"
     26            chunk 1 (middle anchor) text run 15 at (167.83,152.16) startOffset 14 endOffset 15 width 6.67: " "
     27            chunk 1 (middle anchor) text run 16 at (175.80,157.01) startOffset 15 endOffset 16 width 12.00: "c"
     28            chunk 1 (middle anchor) text run 17 at (182.77,162.15) startOffset 16 endOffset 17 width 5.33: "i"
     29            chunk 1 (middle anchor) text run 18 at (187.81,166.51) startOffset 17 endOffset 18 width 7.99: "r"
     30            chunk 1 (middle anchor) text run 19 at (194.81,173.64) startOffset 18 endOffset 19 width 12.00: "c"
     31            chunk 1 (middle anchor) text run 20 at (200.28,180.36) startOffset 19 endOffset 20 width 5.33: "l"
     32            chunk 1 (middle anchor) text run 21 at (205.50,188.10) startOffset 20 endOffset 21 width 13.35: "e"
     33            chunk 1 (middle anchor) text run 22 at (210.26,196.90) startOffset 21 endOffset 22 width 6.67: "!"
     34      RenderSVGText {text} at (248,117) size 224x85 contains 1 chunk(s)
     35        RenderSVGTextPath {textPath} at (0,0) size 223x85
     36          RenderSVGInlineText {#text} at (0,0) size 223x85
     37            chunk 1 (middle anchor) text run 1 at (272.09,192.30) startOffset 0 endOffset 1 width 16.01: "S"
     38            chunk 1 (middle anchor) text run 2 at (280.02,179.96) startOffset 1 endOffset 2 width 13.35: "o"
     39            chunk 1 (middle anchor) text run 3 at (291.09,167.53) startOffset 2 endOffset 3 width 19.99: "m"
     40            chunk 1 (middle anchor) text run 4 at (304.07,157.09) startOffset 3 endOffset 4 width 13.35: "e"
     41            chunk 1 (middle anchor) text run 5 at (312.62,151.91) startOffset 4 endOffset 5 width 6.67: " "
     42            chunk 1 (middle anchor) text run 6 at (318.60,148.95) startOffset 5 endOffset 6 width 6.67: "t"
     43            chunk 1 (middle anchor) text run 7 at (327.90,145.26) startOffset 6 endOffset 7 width 13.35: "e"
     44            chunk 1 (middle anchor) text run 8 at (340.13,141.98) startOffset 7 endOffset 8 width 12.00: "x"
     45            chunk 1 (middle anchor) text run 9 at (349.35,140.56) startOffset 8 endOffset 9 width 6.67: "t"
     46            chunk 1 (middle anchor) text run 10 at (356.00,140.08) startOffset 9 endOffset 10 width 6.67: " "
     47            chunk 1 (middle anchor) text run 11 at (366.00,140.18) startOffset 10 endOffset 11 width 13.35: "o"
     48            chunk 1 (middle anchor) text run 12 at (379.23,141.85) startOffset 11 endOffset 12 width 13.35: "n"
     49            chunk 1 (middle anchor) text run 13 at (388.95,144.25) startOffset 12 endOffset 13 width 6.67: " "
     50            chunk 1 (middle anchor) text run 14 at (398.36,147.62) startOffset 13 endOffset 14 width 13.35: "a"
     51            chunk 1 (middle anchor) text run 15 at (407.40,151.92) startOffset 14 endOffset 15 width 6.67: " "
     52            chunk 1 (middle anchor) text run 16 at (415.39,156.73) startOffset 15 endOffset 16 width 12.00: "c"
     53            chunk 1 (middle anchor) text run 17 at (422.39,161.84) startOffset 16 endOffset 17 width 5.33: "i"
     54            chunk 1 (middle anchor) text run 18 at (427.45,166.17) startOffset 17 endOffset 18 width 7.99: "r"
     55            chunk 1 (middle anchor) text run 19 at (434.48,173.27) startOffset 18 endOffset 19 width 12.00: "c"
     56            chunk 1 (middle anchor) text run 20 at (439.98,179.96) startOffset 19 endOffset 20 width 5.33: "l"
     57            chunk 1 (middle anchor) text run 21 at (445.24,187.68) startOffset 20 endOffset 21 width 13.35: "e"
     58            chunk 1 (middle anchor) text run 22 at (450.05,196.45) startOffset 21 endOffset 22 width 6.67: "!"
  • trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/text/reftests/textpath-shape-001-expected.txt

    r250276 r254657  
    22  RenderView at (0,0) size 800x600
    33layer at (0,0) size 800x600
    4   RenderSVGRoot {svg} at (149,249) size 502x169
     4  RenderSVGRoot {svg} at (121,221) size 558x225
    55    RenderSVGContainer {g} at (0,0) size 0x0
    66    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    77      RenderSVGRect {rect} at (150,250) size 167x167 [fill={[type=SOLID] [color=#000000]}] [x=90.00] [y=150.00] [width=100.00] [height=100.00]
    88      RenderSVGEllipse {circle} at (483,250) size 167x167 [fill={[type=SOLID] [color=#000000]}] [cx=340.00] [cy=200.00] [r=50.00]
    9     RenderSVGContainer {g} at (149,249) size 502x169
     9    RenderSVGContainer {g} at (121,221) size 558x225
    1010      RenderSVGContainer {use} at (149,249) size 169x169
    1111        RenderSVGRect {rect} at (149,249) size 169x169 [stroke={[type=SOLID] [color=#ADD8E6]}] [x=90.00] [y=150.00] [width=100.00] [height=100.00]
    12       RenderSVGText {text} at (0,0) size 0x0 contains 1 chunk(s)
    13         RenderSVGTextPath {textPath} at (0,0) size 0x0
    14           RenderSVGInlineText {#text} at (0,0) size 0x0
     12      RenderSVGText {text} at (72,133) size 135x134 contains 1 chunk(s)
     13        RenderSVGTextPath {textPath} at (0,0) size 134x134
     14          RenderSVGInlineText {#text} at (0,0) size 134x134
     15            chunk 1 text run 1 at (115.01,150.00) startOffset 0 endOffset 1 width 10.01: "L"
     16            chunk 1 text run 2 at (125.02,150.00) startOffset 1 endOffset 2 width 10.01: "o"
     17            chunk 1 text run 3 at (133.02,150.00) startOffset 2 endOffset 3 width 5.99: "r"
     18            chunk 1 text run 4 at (141.02,150.00) startOffset 3 endOffset 4 width 10.01: "e"
     19            chunk 1 text run 5 at (153.52,150.00) startOffset 4 endOffset 5 width 14.99: "m"
     20            chunk 1 text run 6 at (163.52,150.00) startOffset 5 endOffset 6 width 5.00: " "
     21            chunk 1 text run 7 at (168.02,150.00) startOffset 6 endOffset 7 width 4.00: "i"
     22            chunk 1 text run 8 at (174.97,150.62) startOffset 7 endOffset 8 width 10.01: "p"
     23            chunk 1 text run 9 at (183.28,155.05) startOffset 8 endOffset 9 width 9.00: "s"
     24            chunk 1 text run 10 at (188.66,162.78) startOffset 9 endOffset 10 width 10.01: "u"
     25            chunk 1 text run 11 at (190.00,175.12) startOffset 10 endOffset 11 width 14.99: "m"
     26            chunk 1 text run 12 at (190.00,185.12) startOffset 11 endOffset 12 width 5.00: " "
     27            chunk 1 text run 13 at (190.00,192.62) startOffset 12 endOffset 13 width 10.01: "d"
     28            chunk 1 text run 14 at (190.00,202.63) startOffset 13 endOffset 14 width 10.01: "o"
     29            chunk 1 text run 15 at (190.00,209.64) startOffset 14 endOffset 15 width 4.00: "l"
     30            chunk 1 text run 16 at (190.00,216.64) startOffset 15 endOffset 16 width 10.01: "o"
     31            chunk 1 text run 17 at (190.00,224.64) startOffset 16 endOffset 17 width 5.99: "r"
     32            chunk 1 text run 18 at (190.00,230.14) startOffset 17 endOffset 18 width 5.00: " "
     33            chunk 1 text run 19 at (188.74,236.99) startOffset 18 endOffset 19 width 9.00: "s"
     34            chunk 1 text run 20 at (185.53,242.61) startOffset 19 endOffset 20 width 4.00: "i"
     35            chunk 1 text run 21 at (182.32,245.75) startOffset 20 endOffset 21 width 5.00: "t"
     36            chunk 1 text run 22 at (178.04,248.32) startOffset 21 endOffset 22 width 5.00: " "
     37            chunk 1 text run 23 at (170.77,249.99) startOffset 22 endOffset 23 width 10.01: "a"
     38            chunk 1 text run 24 at (158.27,250.00) startOffset 23 endOffset 24 width 14.99: "m"
     39            chunk 1 text run 25 at (145.77,250.00) startOffset 24 endOffset 25 width 10.01: "e"
     40            chunk 1 text run 26 at (138.26,250.00) startOffset 25 endOffset 26 width 5.00: "t"
     41            chunk 1 text run 27 at (133.26,250.00) startOffset 26 endOffset 27 width 5.00: ","
     42            chunk 1 text run 28 at (128.26,250.00) startOffset 27 endOffset 28 width 5.00: " "
     43            chunk 1 text run 29 at (121.26,250.00) startOffset 28 endOffset 29 width 9.00: "c"
     44            chunk 1 text run 30 at (111.75,250.00) startOffset 29 endOffset 30 width 10.01: "o"
     45            chunk 1 text run 31 at (101.97,248.32) startOffset 30 endOffset 31 width 10.01: "n"
     46            chunk 1 text run 32 at (94.48,242.62) startOffset 31 endOffset 32 width 9.00: "s"
     47            chunk 1 text run 33 at (90.43,234.12) startOffset 32 endOffset 33 width 10.01: "e"
     48            chunk 1 text run 34 at (90.00,224.65) startOffset 33 endOffset 34 width 9.00: "c"
     49            chunk 1 text run 35 at (90.00,217.65) startOffset 34 endOffset 35 width 5.00: "t"
     50            chunk 1 text run 36 at (90.00,210.14) startOffset 35 endOffset 36 width 10.01: "e"
     51            chunk 1 text run 37 at (90.00,202.63) startOffset 36 endOffset 37 width 5.00: "t"
     52            chunk 1 text run 38 at (90.00,195.13) startOffset 37 endOffset 38 width 10.01: "u"
     53            chunk 1 text run 39 at (90.00,187.13) startOffset 38 endOffset 39 width 5.99: "r"
     54            chunk 1 text run 40 at (90.00,181.63) startOffset 39 endOffset 40 width 5.00: " "
     55            chunk 1 text run 41 at (90.00,174.12) startOffset 40 endOffset 41 width 10.01: "a"
     56            chunk 1 text run 42 at (90.86,164.20) startOffset 41 endOffset 42 width 10.01: "d"
     57            chunk 1 text run 43 at (94.01,157.98) startOffset 42 endOffset 43 width 4.00: "i"
     58            chunk 1 text run 44 at (99.11,153.23) startOffset 43 endOffset 44 width 10.01: "p"
     59            chunk 1 text run 45 at (105.52,150.50) startOffset 44 endOffset 45 width 4.00: "i"
    1560        RenderSVGInlineText {#text} at (0,0) size 0x0
    1661      RenderSVGContainer {use} at (482,249) size 169x169
    1762        RenderSVGEllipse {circle} at (482,249) size 169x169 [stroke={[type=SOLID] [color=#ADD8E6]}] [cx=340.00] [cy=200.00] [r=50.00]
    18       RenderSVGText {text} at (0,0) size 0x0 contains 1 chunk(s)
    19         RenderSVGTextPath {textPath} at (0,0) size 0x0
    20           RenderSVGInlineText {#text} at (0,0) size 0x0
     63      RenderSVGText {text} at (273,132) size 134x136 contains 1 chunk(s)
     64        RenderSVGTextPath {textPath} at (0,0) size 134x135
     65          RenderSVGInlineText {#text} at (0,0) size 134x135
     66            chunk 1 text run 1 at (389.75,205.00) startOffset 0 endOffset 1 width 10.01: "L"
     67            chunk 1 text run 2 at (387.77,214.79) startOffset 1 endOffset 2 width 10.01: "o"
     68            chunk 1 text run 3 at (384.81,222.22) startOffset 2 endOffset 3 width 5.99: "r"
     69            chunk 1 text run 4 at (380.69,229.07) startOffset 3 endOffset 4 width 10.01: "e"
     70            chunk 1 text run 5 at (372.23,238.23) startOffset 4 endOffset 5 width 14.99: "m"
     71            chunk 1 text run 6 at (364.00,243.87) startOffset 5 endOffset 6 width 5.00: " "
     72            chunk 1 text run 7 at (359.96,245.86) startOffset 6 endOffset 7 width 4.00: "i"
     73            chunk 1 text run 8 at (353.36,248.19) startOffset 7 endOffset 8 width 10.01: "p"
     74            chunk 1 text run 9 at (344.02,249.84) startOffset 8 endOffset 9 width 9.00: "s"
     75            chunk 1 text run 10 at (334.53,249.70) startOffset 9 endOffset 10 width 10.01: "u"
     76            chunk 1 text run 11 at (322.40,246.81) startOffset 10 endOffset 11 width 14.99: "m"
     77            chunk 1 text run 12 at (313.45,242.38) startOffset 11 endOffset 12 width 5.00: " "
     78            chunk 1 text run 13 at (307.42,237.93) startOffset 12 endOffset 13 width 10.01: "d"
     79            chunk 1 text run 14 at (300.53,230.69) startOffset 13 endOffset 14 width 10.01: "o"
     80            chunk 1 text run 15 at (296.62,224.88) startOffset 14 endOffset 15 width 4.00: "l"
     81            chunk 1 text run 16 at (293.57,218.58) startOffset 15 endOffset 16 width 10.01: "o"
     82            chunk 1 text run 17 at (291.20,210.95) startOffset 16 endOffset 17 width 5.99: "r"
     83            chunk 1 text run 18 at (290.30,205.53) startOffset 17 endOffset 18 width 5.00: " "
     84            chunk 1 text run 19 at (290.02,198.54) startOffset 18 endOffset 19 width 9.00: "s"
     85            chunk 1 text run 20 at (290.63,192.07) startOffset 19 endOffset 20 width 4.00: "i"
     86            chunk 1 text run 21 at (291.53,187.67) startOffset 20 endOffset 21 width 5.00: "t"
     87            chunk 1 text run 22 at (293.00,182.89) startOffset 21 endOffset 22 width 5.00: " "
     88            chunk 1 text run 23 at (296.10,176.06) startOffset 22 endOffset 23 width 10.01: "a"
     89            chunk 1 text run 24 at (303.39,165.94) startOffset 23 endOffset 24 width 14.99: "m"
     90            chunk 1 text run 25 at (312.95,157.94) startOffset 24 endOffset 25 width 10.01: "e"
     91            chunk 1 text run 26 at (319.54,154.36) startOffset 25 endOffset 26 width 5.00: "t"
     92            chunk 1 text run 27 at (324.20,152.55) startOffset 26 endOffset 27 width 5.00: ","
     93            chunk 1 text run 28 at (329.02,151.21) startOffset 27 endOffset 28 width 5.00: " "
     94            chunk 1 text run 29 at (335.93,150.16) startOffset 28 endOffset 29 width 9.00: "c"
     95            chunk 1 text run 30 at (345.42,150.29) startOffset 29 endOffset 30 width 10.01: "o"
     96            chunk 1 text run 31 at (355.20,152.35) startOffset 30 endOffset 31 width 10.01: "n"
     97            chunk 1 text run 32 at (363.93,156.09) startOffset 31 endOffset 32 width 9.00: "s"
     98            chunk 1 text run 33 at (371.79,161.41) startOffset 32 endOffset 33 width 10.01: "e"
     99            chunk 1 text run 34 at (378.51,168.11) startOffset 33 endOffset 34 width 9.00: "c"
     100            chunk 1 text run 35 at (382.59,173.79) startOffset 34 endOffset 35 width 5.00: "t"
     101            chunk 1 text run 36 at (386.03,180.45) startOffset 35 endOffset 36 width 10.01: "e"
     102            chunk 1 text run 37 at (388.44,187.55) startOffset 36 endOffset 37 width 5.00: "t"
     103            chunk 1 text run 38 at (389.75,194.94) startOffset 37 endOffset 38 width 10.01: "u"
    21104        RenderSVGInlineText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/wpe/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt

    r250606 r254657  
    44  RenderSVGRoot {svg} at (49,24) size 209x132
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    6       RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     6      RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    77    RenderSVGContainer {g} at (50,24) size 208x32
    88      RenderSVGContainer {use} at (50,49) size 200x2
    9         RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     9        RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    1010      RenderSVGText {text} at (50,24) size 208x32 contains 1 chunk(s)
    1111        RenderSVGTextPath {textPath} at (0,0) size 208x32
     
    2929    RenderSVGContainer {g} at (50,99) size 200x2 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,50.00)}]
    3030      RenderSVGContainer {use} at (50,99) size 200x2
    31         RenderSVGPath {path} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     31        RenderSVGPath {path} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    3232      RenderSVGText {text} at (0,0) size 0x0 contains 1 chunk(s)
    3333        RenderSVGTextPath {textPath} at (0,0) size 0x0
     
    3636    RenderSVGContainer {g} at (49,124) size 208x32 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,100.00)}]
    3737      RenderSVGContainer {use} at (50,149) size 200x2
    38         RenderSVGPath {path} at (50,149) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     38        RenderSVGPath {path} at (50,149) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    3939      RenderSVGText {text} at (49,24) size 208x32 contains 1 chunk(s)
    4040        RenderSVGTextPath {textPath} at (0,0) size 208x32
  • trunk/LayoutTests/platform/wpe/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt

    r250606 r254657  
    44  RenderSVGRoot {svg} at (49,24) size 209x132
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    6       RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     6      RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    77    RenderSVGContainer {g} at (50,24) size 208x32
    88      RenderSVGContainer {use} at (50,49) size 200x2
    9         RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     9        RenderSVGPath {path} at (50,49) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    1010      RenderSVGText {text} at (50,24) size 208x32 contains 1 chunk(s)
    1111        RenderSVGTextPath {textPath} at (0,0) size 208x32
     
    2929    RenderSVGContainer {g} at (50,74) size 200x32 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,50.00)}]
    3030      RenderSVGContainer {use} at (50,99) size 200x2
    31         RenderSVGPath {path} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     31        RenderSVGPath {path} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    3232      RenderSVGText {text} at (150,24) size 95x32 contains 1 chunk(s)
    3333        RenderSVGTextPath {textPath} at (0,0) size 95x32
     
    4343    RenderSVGContainer {g} at (49,124) size 209x32 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,100.00)}]
    4444      RenderSVGContainer {use} at (50,149) size 200x2
    45         RenderSVGPath {path} at (50,149) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6]}] [data="M 50 50 L 250 50"]
     45        RenderSVGPath {path} at (50,149) size 200x2 [stroke={[type=SOLID] [color=#ADD8E6] [path length=2.00]}] [data="M 50 50 L 250 50"]
    4646      RenderSVGText {text} at (49,24) size 209x32 contains 1 chunk(s)
    4747        RenderSVGTextPath {textPath} at (0,0) size 208x32
  • trunk/LayoutTests/platform/wpe/imported/w3c/web-platform-tests/svg/shapes/line-dasharray-expected.txt

    r250606 r254657  
    22  RenderView at (0,0) size 800x600
    33layer at (0,0) size 300x200
    4   RenderSVGRoot {svg} at (50,99) size 199x2
    5     RenderSVGPath {line} at (50,99) size 199x2 [stroke={[type=SOLID] [color=#0000FF] [dash array={3.00, 1.00}]}] [fill={[type=SOLID] [color=#000000]}] [x1=50.00] [y1=100.00] [x2=250.00] [y2=100.00]
     4  RenderSVGRoot {svg} at (50,99) size 200x2
     5    RenderSVGPath {line} at (50,99) size 200x2 [stroke={[type=SOLID] [color=#0000FF] [dash array={3.00, 1.00}] [path length=25.00]}] [fill={[type=SOLID] [color=#000000]}] [x1=50.00] [y1=100.00] [x2=250.00] [y2=100.00]
  • trunk/LayoutTests/platform/wpe/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-001-expected.txt

    r250606 r254657  
    66    RenderSVGContainer {g} at (29,229) size 742x342
    77      RenderSVGRect {rect} at (29,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={50.00}]}] [x=20.00] [y=140.00] [width=200.00] [height=200.00]
    8       RenderSVGRect {rect} at (429,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={0.25}]}] [x=260.00] [y=140.00] [width=200.00] [height=200.00]
     8      RenderSVGRect {rect} at (429,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={0.25}] [path length=4.00]}] [x=260.00] [y=140.00] [width=200.00] [height=200.00]
  • trunk/LayoutTests/platform/wpe/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-002-expected.txt

    r250606 r254657  
    66    RenderSVGContainer {g} at (29,229) size 742x342
    77      RenderSVGEllipse {circle} at (29,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={39.27}]}] [cx=120.00] [cy=240.00] [r=100.00]
    8       RenderSVGEllipse {circle} at (429,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={0.25}]}] [cx=360.00] [cy=240.00] [r=100.00]
     8      RenderSVGEllipse {circle} at (429,229) size 342x342 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00] [dash array={0.25}] [path length=4.00]}] [cx=360.00] [cy=240.00] [r=100.00]
  • trunk/LayoutTests/platform/wpe/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt

    r250606 r254657  
    66    RenderSVGContainer {g} at (0,0) size 768x568
    77      RenderSVGEllipse {circle} at (32,232) size 336x336 [stroke={[type=SOLID] [color=#000000]}] [cx=120.00] [cy=240.00] [r=100.00]
    8       RenderSVGEllipse {circle} at (432,232) size 336x336 [stroke={[type=SOLID] [color=#000000]}] [cx=360.00] [cy=240.00] [r=100.00]
     8      RenderSVGEllipse {circle} at (432,232) size 336x336 [stroke={[type=SOLID] [color=#000000] [path length=4.00]}] [cx=360.00] [cy=240.00] [r=100.00]
    99      RenderSVGText {text} at (0,0) size 0x0 contains 1 chunk(s)
    1010        RenderSVGTextPath {textPath} at (0,0) size 0x0
  • trunk/Source/WebCore/ChangeLog

    r254652 r254657  
     12020-01-15  Said Abou-Hallawa  <sabouhallawa@apple.com>
     2
     3        [SVG2]: Implement support for the 'pathLength' attribute
     4        https://bugs.webkit.org/show_bug.cgi?id=72401
     5
     6        Reviewed by Simon Fraser.
     7
     8        The spec link is:
     9            https://svgwg.org/svg2-draft/paths.html#PathLengthAttribute
     10
     11        The 'pathLength' attribute affects the calculations for text on a path,
     12        stroke dash offset and stroke dash array. 'pathLength' has no effect on
     13        percentage lengths.
     14
     15        Tests: svg/custom/stroke-dash-array-pathLength.svg
     16
     17        * rendering/svg/RenderSVGTextPath.cpp:
     18        (WebCore::RenderSVGTextPath::targetElement const):
     19        A helper function which returns the target element. Notice target element
     20        can't be used in this context unless it is a SVGGeometryElement. See
     21        pathFromGraphicsElement().
     22
     23        (WebCore::RenderSVGTextPath::layoutPath const):
     24        Use the new function targetElement().
     25
     26        (WebCore::RenderSVGTextPath::startOffset const):
     27        In SVGTextLayoutEngine::beginTextPathLayout(), we used to check whether
     28        startOffset is in the range [0, 1] to treat it as a percentage or not.
     29        This is of course wrong especially when using with 'pathLength'. So we
     30        need to return the SVGLengthValue to make the decision correctly.
     31
     32        * rendering/svg/RenderSVGTextPath.h:
     33
     34        * rendering/svg/SVGRenderSupport.cpp:
     35        (WebCore::SVGRenderSupport::applyStrokeStyleToContext):
     36        Apply 'pathLength' to the shape 'stroke-dashoffset' and 'stroke-dasharray'
     37        properties.
     38
     39        * rendering/svg/SVGRenderTreeAsText.cpp:
     40        (WebCore::writeStyle):
     41        Add the 'pathLength' property to the shape stroke property.
     42
     43        * rendering/svg/SVGTextLayoutEngine.cpp:
     44        (WebCore::SVGTextLayoutEngine::beginTextPathLayout):
     45        Apply 'pathLength' to the text path 'start-offset' property.
     46
    1472020-01-15  Chris Dumez  <cdumez@apple.com>
    248
  • trunk/Source/WebCore/rendering/svg/RenderSVGTextPath.cpp

    r238524 r254657  
    2323#include "FloatQuad.h"
    2424#include "RenderBlock.h"
     25#include "SVGGeometryElement.h"
    2526#include "SVGInlineTextBox.h"
    2627#include "SVGNames.h"
     
    4546}
    4647
     48SVGGeometryElement* RenderSVGTextPath::targetElement() const
     49{
     50    auto target = SVGURIReference::targetElementFromIRIString(textPathElement().href(), textPathElement().treeScope());
     51    if (!is<SVGGeometryElement>(target.element))
     52        return nullptr;
     53
     54    return downcast<SVGGeometryElement>(target.element.get());
     55}
     56
    4757Path RenderSVGTextPath::layoutPath() const
    4858{
    49     auto target = SVGURIReference::targetElementFromIRIString(textPathElement().href(), textPathElement().treeScope());
    50     if (!is<SVGPathElement>(target.element))
     59    auto element = targetElement();
     60    if (!is<SVGGeometryElement>(element))
    5161        return Path();
    5262
    53     SVGPathElement& pathElement = downcast<SVGPathElement>(*target.element);
    54 
    55     Path path = pathFromGraphicsElement(&pathElement);
     63    Path path = pathFromGraphicsElement(element);
    5664
    5765    // Spec:  The transform attribute on the referenced 'path' element represents a
     
    6068    // system due to a possible transform attribute on the current 'text' element.
    6169    // http://www.w3.org/TR/SVG/text.html#TextPathElement
    62     path.transform(pathElement.animatedLocalTransform());
     70    path.transform(element->animatedLocalTransform());
    6371    return path;
    6472}
    6573
    66 float RenderSVGTextPath::startOffset() const
     74const SVGLengthValue& RenderSVGTextPath::startOffset() const
    6775{
    68     return textPathElement().startOffset().valueAsPercentage();
     76    return textPathElement().startOffset();
    6977}
    7078
  • trunk/Source/WebCore/rendering/svg/RenderSVGTextPath.h

    r224537 r254657  
    2525namespace WebCore {
    2626
     27class SVGGeometryElement;
     28
    2729class RenderSVGTextPath final : public RenderSVGInline {
    2830    WTF_MAKE_ISO_ALLOCATED(RenderSVGTextPath);
     
    3133
    3234    SVGTextPathElement& textPathElement() const;
     35    SVGGeometryElement* targetElement() const;
    3336
    3437    Path layoutPath() const;
    35     float startOffset() const;
     38    const SVGLengthValue& startOffset() const;
    3639    bool exactAlignment() const;
    3740    bool stretchMethod() const;
  • trunk/Source/WebCore/rendering/svg/SVGRenderSupport.cpp

    r254458 r254657  
    424424{
    425425    ASSERT(context);
    426     ASSERT(renderer.element());
    427     ASSERT(renderer.element()->isSVGElement());
     426   
     427    Element* element = renderer.element();
     428    if (!is<SVGElement>(element)) {
     429        ASSERT_NOT_REACHED();
     430        return;
     431    }
    428432
    429433    const SVGRenderStyle& svgStyle = style.svgStyle();
     
    443447        dashArray.reserveInitialCapacity(dashes.size());
    444448        bool canSetLineDash = false;
    445 
     449        float scaleFactor = 1;
     450
     451        if (is<SVGGeometryElement>(element)) {
     452            ASSERT(renderer.isSVGShape());
     453            // FIXME: A value of zero is valid. Need to differentiate this case from being unspecified.
     454            if (float pathLength = downcast<SVGGeometryElement>(element)->pathLength())
     455                scaleFactor = downcast<RenderSVGShape>(renderer).getTotalLength() / pathLength;
     456        }
     457       
    446458        for (auto& dash : dashes) {
    447             dashArray.uncheckedAppend(dash.value(lengthContext));
     459            dashArray.uncheckedAppend(dash.value(lengthContext) * scaleFactor);
    448460            if (dashArray.last() > 0)
    449461                canSetLineDash = true;
     
    451463
    452464        if (canSetLineDash)
    453             context->setLineDash(dashArray, lengthContext.valueForLength(svgStyle.strokeDashOffset()));
     465            context->setLineDash(dashArray, lengthContext.valueForLength(svgStyle.strokeDashOffset()) * scaleFactor);
    454466        else
    455467            context->setStrokeStyle(SolidStroke);
  • trunk/Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp

    r251776 r254657  
    202202            if (!dashArray.isEmpty())
    203203                writeNameValuePair(ts, "dash array", dashArray);
     204
     205            if (is<SVGGeometryElement>(shape.graphicsElement())) {
     206                double pathLength = downcast<SVGGeometryElement>(shape.graphicsElement()).pathLength();
     207                writeIfNotDefault(ts, "path length", pathLength, 0.0);
     208            }
    204209
    205210            ts << "}]";
  • trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp

    r252563 r254657  
    2424#include "RenderSVGTextPath.h"
    2525#include "SVGElement.h"
     26#include "SVGGeometryElement.h"
    2627#include "SVGInlineTextBox.h"
    2728#include "SVGLengthContext.h"
     
    171172        return;
    172173
    173     m_textPathStartOffset = textPath.startOffset();
     174    const auto& startOffset = textPath.startOffset();
    174175    m_textPathLength = m_textPath.length();
    175     if (m_textPathStartOffset > 0 && m_textPathStartOffset <= 1)
    176         m_textPathStartOffset *= m_textPathLength;
     176   
     177    if (textPath.startOffset().lengthType() == SVGLengthType::Percentage)
     178        m_textPathStartOffset = startOffset.valueAsPercentage() * m_textPathLength;
     179    else {
     180        m_textPathStartOffset = startOffset.valueInSpecifiedUnits();
     181        if (auto* tragetElement = textPath.targetElement()) {
     182            // FIXME: A value of zero is valid. Need to differentiate this case from being unspecified.
     183            if (float pathLength = tragetElement->pathLength())
     184                m_textPathStartOffset *= m_textPathLength / pathLength;
     185        }
     186    }
    177187
    178188    lineLayout.m_chunkLayoutBuilder.buildTextChunks(lineLayout.m_lineLayoutBoxes);
Note: See TracChangeset for help on using the changeset viewer.