Changeset 52633 in webkit
- Timestamp:
- Dec 29, 2009 2:08:30 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 6 deleted
- 37 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r52630 r52633 1 2009-12-29 Eric Seidel <eric@webkit.org> 2 3 No review, rolling out r52630. 4 https://bugs.webkit.org/show_bug.cgi?id=33012 5 http://trac.webkit.org/changeset/52630 6 7 This caused 2 layout test failures, and 2 layout test crashes on Leopard bots. 8 9 * platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt: 10 * platform/mac/svg/W3C-SVG-1.1/painting-marker-03-f-expected.txt: 11 * platform/mac/svg/custom/circular-marker-reference-1-expected.txt: 12 * platform/mac/svg/custom/circular-marker-reference-2-expected.txt: 13 * platform/mac/svg/custom/circular-marker-reference-3-expected.txt: 14 * platform/mac/svg/custom/circular-marker-reference-4-expected.txt: 15 * platform/mac/svg/custom/js-late-marker-and-object-creation-expected.txt: 16 * platform/mac/svg/custom/js-late-marker-creation-expected.txt: 17 * platform/mac/svg/custom/marker-changes-expected.checksum: 18 * platform/mac/svg/custom/marker-changes-expected.png: 19 * platform/mac/svg/custom/marker-changes-expected.txt: 20 * platform/mac/svg/custom/marker-child-changes-expected.checksum: 21 * platform/mac/svg/custom/marker-child-changes-expected.png: 22 * platform/mac/svg/custom/marker-child-changes-expected.txt: 23 * platform/mac/svg/custom/marker-default-width-height-expected.txt: 24 * platform/mac/svg/custom/marker-overflow-clip-expected.txt: 25 * platform/mac/svg/custom/marker-referencePoint-expected.checksum: Removed. 26 * platform/mac/svg/custom/marker-referencePoint-expected.png: Removed. 27 * platform/mac/svg/custom/marker-referencePoint-expected.txt: Removed. 28 * platform/mac/svg/custom/marker-viewBox-changes-expected.checksum: 29 * platform/mac/svg/custom/marker-viewBox-changes-expected.png: 30 * platform/mac/svg/custom/marker-viewBox-changes-expected.txt: 31 * platform/mac/svg/custom/non-circular-marker-reference-expected.txt: 32 * platform/mac/svg/custom/shapes-supporting-markers-expected.txt: 33 * svg/custom/marker-referencePoint.svg: Removed. 34 1 35 2009-12-29 Nikolas Zimmermann <nzimmermann@rim.com> 2 36 -
trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt
r52630 r52633 8 8 RenderView at (0,0) size 480x360 9 9 layer at (0,0) size 480x360 10 RenderSVGRoot {svg} at (- 4,-4) size 483.50x363.5011 RenderSVGContainer {g} at (- 4,-4) size 455.20x27610 RenderSVGRoot {svg} at (-0.80,-0.80) size 480.30x360.30 11 RenderSVGContainer {g} at (-0.80,-0.80) size 452x272.80 12 12 RenderSVGHiddenContainer {defs} at (0,0) size 0x0 13 13 RenderSVGText {text} at (125,30) size 184x16 contains 1 chunk(s) … … 20 20 RenderSVGInlineText {#text} at (0,-9) size 54x11 21 21 chunk 1 text run 1 at (100.00,140.00) startOffset 0 endOffset 13 width 54.00: "Fill Property" 22 RenderPath {path} at ( 0,0) size 80x110 [fill={[type=SOLID] [color=#000000]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M30.00,60.00 L80.00,60.00 L80.00,110.00 Z"]22 RenderPath {path} at (30,60) size 50x50 [fill={[type=SOLID] [color=#000000]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M30.00,60.00 L80.00,60.00 L80.00,110.00 Z"] 23 23 RenderSVGContainer {g} at (142,52) size 66x66 [transform={m=((1.00,0.00)(0.00,1.00)) t=(120.00,0.00)}] 24 24 RenderPath {path} at (150,60) size 50x50 [fill={[type=SOLID] [color=#000000]}] [data="M30.00,60.00 L80.00,60.00 L80.00,110.00 Z"] … … 35 35 RenderSVGContainer {g} at (192,102) size 16x16 [transform={m=((0.20,0.00)(0.00,0.20)) t=(0.00,0.00)}] 36 36 RenderPath {rect} at (192,102) size 16x16 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L10.00,0.00 L10.00,10.00 L0.00,10.00 Z"] 37 RenderSVGContainer {g} at (- 2,-2) size 451.60x14437 RenderSVGContainer {g} at (-0.40,-0.40) size 450x142.40 38 38 RenderSVGViewportContainer {marker} at (-0.40,-0.40) size 4.80x4.80 39 39 RenderPath {rect} at (-0.40,-0.40) size 4.80x4.80 [stroke={[type=SOLID] [color=#000000] [stroke width=4.00]}] [data="M0.00,0.00 L20.00,0.00 L20.00,20.00 L0.00,20.00 Z"] … … 41 41 RenderSVGInlineText {#text} at (0,-9) size 72x11 42 42 chunk 1 text run 1 at (340.00,140.00) startOffset 0 endOffset 15 width 72.00: "Stroke Property" 43 RenderPath {path} at ( -2,-2) size 324x116.83 [stroke={[type=SOLID] [color=#000000] [stroke width=4.00]}] [start marker=marker2] [middle marker=marker2] [end marker=marker2] [data="M270.00,60.00 L320.00,60.00 L320.00,110.00 Z"]43 RenderPath {path} at (265.17,58) size 56.83x56.83 [stroke={[type=SOLID] [color=#000000] [stroke width=4.00]}] [start marker=marker2] [middle marker=marker2] [end marker=marker2] [data="M270.00,60.00 L320.00,60.00 L320.00,110.00 Z"] 44 44 RenderSVGContainer {g} at (380.40,50.40) size 69.20x69.20 [transform={m=((1.00,0.00)(0.00,1.00)) t=(120.00,0.00)}] 45 45 RenderPath {path} at (385.17,58) size 56.83x56.83 [stroke={[type=SOLID] [color=#000000] [stroke width=4.00]}] [data="M270.00,60.00 L320.00,60.00 L320.00,110.00 Z"] … … 61 61 RenderSVGViewportContainer {marker} at (-0.80,-0.80) size 5.60x5.60 62 62 RenderPath {rect} at (-0.80,-0.80) size 5.60x5.60 [stroke={[type=SOLID] [color=#0000FF] [stroke width=4.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L10.00,0.00 L10.00,10.00 L0.00,10.00 Z"] 63 RenderSVGContainer {g} at ( -4,-4) size 215.20x27663 RenderSVGContainer {g} at (25.17,178.80) size 186.03x93.20 64 64 RenderSVGText {text} at (90,270) size 77x11 contains 1 chunk(s) 65 65 RenderSVGInlineText {#text} at (0,-9) size 77x11 66 66 chunk 1 text run 1 at (90.00,270.00) startOffset 0 endOffset 16 width 77.00: "Mixed Properties" 67 RenderPath {path} at ( -4,-4) size 86x248.83 [stroke={[type=SOLID] [color=#800080] [stroke width=4.00]}] [fill={[type=SOLID] [color=#FF0000]}] [start marker=marker3] [middle marker=marker3] [end marker=marker3] [data="M30.00,190.00 L80.00,190.00 L80.00,240.00 Z"]67 RenderPath {path} at (25.17,188) size 56.83x56.83 [stroke={[type=SOLID] [color=#800080] [stroke width=4.00]}] [fill={[type=SOLID] [color=#FF0000]}] [start marker=marker3] [middle marker=marker3] [end marker=marker3] [data="M30.00,190.00 L80.00,190.00 L80.00,240.00 Z"] 68 68 RenderSVGContainer {g} at (138.80,178.80) size 72.40x72.40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(120.00,0.00)}] 69 69 RenderPath {path} at (145.17,188) size 56.83x56.83 [stroke={[type=SOLID] [color=#800080] [stroke width=4.00]}] [fill={[type=SOLID] [color=#FF0000]}] [data="M30.00,190.00 L80.00,190.00 L80.00,240.00 Z"] … … 81 81 RenderSVGContainer {g} at (188.80,228.80) size 22.40x22.40 [transform={m=((0.20,0.00)(0.00,0.20)) t=(0.00,0.00)}] 82 82 RenderPath {rect} at (188.80,228.80) size 22.40x22.40 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L20.00,0.00 L20.00,20.00 L0.00,20.00 Z"] 83 RenderSVGContainer {g} at ( -2,-2) size 453.20x27483 RenderSVGContainer {g} at (265.17,178.80) size 186.03x93.20 84 84 RenderSVGText {text} at (340,270) size 77x11 contains 1 chunk(s) 85 85 RenderSVGInlineText {#text} at (0,-9) size 77x11 86 86 chunk 1 text run 1 at (340.00,270.00) startOffset 0 endOffset 16 width 77.00: "Mixed Properties" 87 RenderPath {path} at ( -2,-2) size 324x246.83 [stroke={[type=SOLID] [color=#800080] [stroke width=4.00]}] [fill={[type=SOLID] [color=#FF0000]}] [start marker=marker4] [middle marker=marker4] [end marker=marker4] [data="M270.00,190.00 L320.00,190.00 L320.00,240.00 Z"]87 RenderPath {path} at (265.17,188) size 56.83x56.83 [stroke={[type=SOLID] [color=#800080] [stroke width=4.00]}] [fill={[type=SOLID] [color=#FF0000]}] [start marker=marker4] [middle marker=marker4] [end marker=marker4] [data="M270.00,190.00 L320.00,190.00 L320.00,240.00 Z"] 88 88 RenderSVGContainer {g} at (378.80,178.80) size 72.40x72.40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(120.00,0.00)}] 89 89 RenderPath {path} at (385.17,188) size 56.83x56.83 [stroke={[type=SOLID] [color=#800080] [stroke width=4.00]}] [fill={[type=SOLID] [color=#FF0000]}] [data="M270.00,190.00 L320.00,190.00 L320.00,240.00 Z"] -
trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/painting-marker-03-f-expected.txt
r52630 r52633 16 16 RenderSVGInlineText {#text} at (0,-18) size 140x23 17 17 chunk 1 (middle anchor) text run 1 at (170.00,70.00) startOffset 0 endOffset 17 width 140.00: "'marker' property" 18 RenderSVGContainer {g} at (5 0,20) size 370.33x140.50[transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,20.00)}] [start marker=marker1] [middle marker=marker1] [end marker=marker1]19 RenderPath {path} at (5 0,20) size 100x140.50[stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M10.00,60.00 C63.33,60.00,90.00,86.67,90.00,140.00 C36.67,140.00,10.00,113.33,10.00,60.00 Z M10.00,140.00 C10.00,86.67,36.67,60.00,90.00,60.00 C90.00,113.33,63.33,140.00,10.00,140.00 Z M50.00,70.00 L80.00,100.00 L50.00,130.00 L20.00,100.00 Z"]20 RenderPath {polygon} at ( 50,20) size 180.50x140.12[stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M100.00,60.00 L120.00,140.00 L140.00,60.00 L160.00,140.00 L180.00,60.00 L180.00,100.00 L100.00,100.00 Z"]21 RenderPath {polyline} at ( 50,20) size 270.50x140.12[stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M190.00,60.00 L210.00,140.00 L230.00,60.00 L250.00,140.00 L270.00,60.00 L270.00,100.00 L190.00,100.00"]22 RenderPath {line} at ( 50,20) size 370.33x140.37[stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M280.00,60.00 L370.00,140.00"]23 RenderPath {line} at ( 50,20) size 370.33x140.37[stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M370.00,60.00 L280.00,140.00"]18 RenderSVGContainer {g} at (59.50,79.50) size 360.83x81 [transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,20.00)}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] 19 RenderPath {path} at (59.50,79.50) size 81x81 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M10.00,60.00 C63.33,60.00,90.00,86.67,90.00,140.00 C36.67,140.00,10.00,113.33,10.00,60.00 Z M10.00,140.00 C10.00,86.67,36.67,60.00,90.00,60.00 C90.00,113.33,63.33,140.00,10.00,140.00 Z M50.00,70.00 L80.00,100.00 L50.00,130.00 L20.00,100.00 Z"] 20 RenderPath {polygon} at (149.50,79.88) size 81x80.24 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M100.00,60.00 L120.00,140.00 L140.00,60.00 L160.00,140.00 L180.00,60.00 L180.00,100.00 L100.00,100.00 Z"] 21 RenderPath {polyline} at (239.51,79.88) size 80.99x80.24 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M190.00,60.00 L210.00,140.00 L230.00,60.00 L250.00,140.00 L270.00,60.00 L270.00,100.00 L190.00,100.00"] 22 RenderPath {line} at (329.67,79.63) size 90.66x80.75 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M280.00,60.00 L370.00,140.00"] 23 RenderPath {line} at (329.67,79.63) size 90.66x80.75 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M370.00,60.00 L280.00,140.00"] 24 24 RenderSVGText {text} at (27,200) size 426x23 contains 1 chunk(s) 25 25 RenderSVGInlineText {#text} at (0,-18) size 426x23 26 26 chunk 1 (middle anchor) text run 1 at (27.00,200.00) startOffset 0 endOffset 53 width 426.00: "'marker-start', 'marker-mid' & 'marker-end' attribute" 27 RenderSVGContainer {g} at (5 0,150) size 370.33x140.50[transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,150.00)}] [start marker=marker1] [middle marker=marker1] [end marker=marker1]28 RenderPath {path} at (5 0,150) size 100x140.50[stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M10.00,60.00 C63.33,60.00,90.00,86.67,90.00,140.00 C36.67,140.00,10.00,113.33,10.00,60.00 Z M10.00,140.00 C10.00,86.67,36.67,60.00,90.00,60.00 C90.00,113.33,63.33,140.00,10.00,140.00 Z M50.00,70.00 L80.00,100.00 L50.00,130.00 L20.00,100.00 Z"]29 RenderPath {polygon} at ( 50,150) size 180.50x140.12[stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M100.00,60.00 L120.00,140.00 L140.00,60.00 L160.00,140.00 L180.00,60.00 L180.00,100.00 L100.00,100.00 Z"]30 RenderPath {polyline} at ( 50,150) size 270.50x140.12[stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M190.00,60.00 L210.00,140.00 L230.00,60.00 L250.00,140.00 L270.00,60.00 L270.00,100.00 L190.00,100.00"]31 RenderPath {line} at ( 50,150) size 370.33x140.37[stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M280.00,60.00 L370.00,140.00"]32 RenderPath {line} at ( 50,150) size 370.33x140.37[stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M370.00,60.00 L280.00,140.00"]27 RenderSVGContainer {g} at (59.50,209.50) size 360.83x81 [transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,150.00)}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] 28 RenderPath {path} at (59.50,209.50) size 81x81 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M10.00,60.00 C63.33,60.00,90.00,86.67,90.00,140.00 C36.67,140.00,10.00,113.33,10.00,60.00 Z M10.00,140.00 C10.00,86.67,36.67,60.00,90.00,60.00 C90.00,113.33,63.33,140.00,10.00,140.00 Z M50.00,70.00 L80.00,100.00 L50.00,130.00 L20.00,100.00 Z"] 29 RenderPath {polygon} at (149.50,209.88) size 81x80.24 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M100.00,60.00 L120.00,140.00 L140.00,60.00 L160.00,140.00 L180.00,60.00 L180.00,100.00 L100.00,100.00 Z"] 30 RenderPath {polyline} at (239.51,209.88) size 80.99x80.24 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M190.00,60.00 L210.00,140.00 L230.00,60.00 L250.00,140.00 L270.00,60.00 L270.00,100.00 L190.00,100.00"] 31 RenderPath {line} at (329.67,209.63) size 90.66x80.75 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M280.00,60.00 L370.00,140.00"] 32 RenderPath {line} at (329.67,209.63) size 90.66x80.75 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M370.00,60.00 L280.00,140.00"] 33 33 RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s) 34 34 RenderSVGInlineText {#text} at (0,-36) size 264x46 -
trunk/LayoutTests/platform/mac/svg/custom/circular-marker-reference-1-expected.txt
r52630 r52633 3 3 RenderView at (0,0) size 800x600 4 4 layer at (0,0) size 800x600 5 RenderSVGRoot {svg} at (235, 225) size 330x1505 RenderSVGRoot {svg} at (235,345) size 330x30 6 6 RenderSVGHiddenContainer {defs} at (0,0) size 0x0 7 7 RenderSVGViewportContainer {marker} at (-2.06,-0.94) size 4.12x0.38 8 8 RenderPath {path} at (-2.06,-0.94) size 4.12x0.38 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,-2.00 L0.00,-2.00 L5.00,-2.00"] 9 RenderPath {path} at (235, 225) size 330x150 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"]9 RenderPath {path} at (235,345) size 330x30 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"] -
trunk/LayoutTests/platform/mac/svg/custom/circular-marker-reference-2-expected.txt
r52630 r52633 3 3 RenderView at (0,0) size 800x600 4 4 layer at (0,0) size 800x600 5 RenderSVGRoot {svg} at (235,225) size 3 89.99x299.99[start marker=mark] [middle marker=mark] [end marker=mark]5 RenderSVGRoot {svg} at (235,225) size 330x150 [start marker=mark] [middle marker=mark] [end marker=mark] 6 6 RenderSVGHiddenContainer {defs} at (0,0) size 0x0 [start marker=mark] [middle marker=mark] [end marker=mark] 7 7 RenderSVGViewportContainer {marker} at (0.19,0.19) size 2.62x2.62 [start marker=mark] [middle marker=mark] [end marker=mark] 8 8 RenderPath {circle} at (0.19,0.19) size 2.62x2.62 [stroke={[type=SOLID] [color=#FF0000] [line cap=ROUND]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M7.00,4.00 L6.99,4.19 L6.98,4.38 L6.95,4.56 L6.91,4.75 L6.85,4.93 L6.79,5.10 L6.71,5.28 L6.63,5.45 L6.53,5.61 L6.43,5.76 L6.31,5.91 L6.19,6.05 L6.05,6.19 L5.91,6.31 L5.76,6.43 L5.61,6.53 L5.45,6.63 L5.28,6.71 L5.10,6.79 L4.93,6.85 L4.75,6.91 L4.56,6.95 L4.38,6.98 L4.19,6.99 L4.00,7.00 L3.81,6.99 L3.62,6.98 L3.44,6.95 L3.25,6.91 L3.07,6.85 L2.90,6.79 L2.72,6.71 L2.55,6.63 L2.39,6.53 L2.24,6.43 L2.09,6.31 L1.95,6.19 L1.81,6.05 L1.69,5.91 L1.57,5.76 L1.47,5.61 L1.37,5.45 L1.29,5.28 L1.21,5.10 L1.15,4.93 L1.09,4.75 L1.05,4.56 L1.02,4.38 L1.01,4.19 L1.00,4.00 L1.01,3.81 L1.02,3.62 L1.05,3.44 L1.09,3.25 L1.15,3.07 L1.21,2.90 L1.29,2.72 L1.37,2.55 L1.47,2.39 L1.57,2.24 L1.69,2.09 L1.81,1.95 L1.95,1.81 L2.09,1.69 L2.24,1.57 L2.39,1.47 L2.55,1.37 L2.72,1.29 L2.90,1.21 L3.07,1.15 L3.25,1.09 L3.44,1.05 L3.62,1.02 L3.81,1.01 L4.00,1.00 L4.19,1.01 L4.38,1.02 L4.56,1.05 L4.75,1.09 L4.93,1.15 L5.10,1.21 L5.28,1.29 L5.45,1.37 L5.61,1.47 L5.76,1.57 L5.91,1.69 L6.05,1.81 L6.19,1.95 L6.31,2.09 L6.43,2.24 L6.53,2.39 L6.63,2.55 L6.71,2.72 L6.79,2.90 L6.85,3.07 L6.91,3.25 L6.95,3.44 L6.98,3.62 L6.99,3.81 Z"] 9 RenderPath {path} at (235,225) size 3 89.99x299.99[stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,-2.00 L0.00,-2.00 L5.00,-2.00"]10 RenderPath {path} at (235,3 15.01) size 389.99x209.99[stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"]9 RenderPath {path} at (235,225) size 330x30 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,-2.00 L0.00,-2.00 L5.00,-2.00"] 10 RenderPath {path} at (235,345) size 330x30 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"] -
trunk/LayoutTests/platform/mac/svg/custom/circular-marker-reference-3-expected.txt
r52630 r52633 3 3 RenderView at (0,0) size 800x600 4 4 layer at (0,0) size 800x600 5 RenderSVGRoot {svg} at (235, 225) size 330x150 [start marker=mark] [middle marker=mark] [end marker=mark]5 RenderSVGRoot {svg} at (235,345) size 330x30 [start marker=mark] [middle marker=mark] [end marker=mark] 6 6 RenderSVGHiddenContainer {defs} at (0,0) size 0x0 [start marker=mark] [middle marker=mark] [end marker=mark] 7 7 RenderSVGViewportContainer {marker} at (-2.06,-0.94) size 4.12x0.38 [start marker=mark] [middle marker=mark] [end marker=mark] 8 8 RenderPath {path} at (-2.06,-0.94) size 4.12x0.38 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,-2.00 L0.00,-2.00 L5.00,-2.00"] 9 RenderPath {path} at (235, 225) size 330x150 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"]9 RenderPath {path} at (235,345) size 330x30 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"] -
trunk/LayoutTests/platform/mac/svg/custom/circular-marker-reference-4-expected.txt
r52630 r52633 4 4 RenderView at (0,0) size 800x600 5 5 layer at (0,0) size 800x600 6 RenderSVGRoot {svg} at (235,2 25) size 330x1507 RenderSVGViewportContainer {marker} at (338.12,271.88) size 123.75x 56.258 RenderPath {path} at (338.12,271.88) size 123.75x 56.25 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark2] [middle marker=mark2] [end marker=mark2] [data="M-5.00,-2.00 L0.00,-2.00 L5.00,-2.00"]9 RenderSVGViewportContainer {marker} at (338.12, 271.88) size 123.75x56.2510 RenderPath {path} at (338.12, 271.88) size 123.75x56.25 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark1] [middle marker=mark1] [end marker=mark1] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"]11 RenderPath {path} at (235, 225) size 330x150 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark1] [middle marker=mark1] [end marker=mark1] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"]6 RenderSVGRoot {svg} at (235,271.88) size 330x103.12 7 RenderSVGViewportContainer {marker} at (338.12,271.88) size 123.75x11.25 8 RenderPath {path} at (338.12,271.88) size 123.75x11.25 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark2] [middle marker=mark2] [end marker=mark2] [data="M-5.00,-2.00 L0.00,-2.00 L5.00,-2.00"] 9 RenderSVGViewportContainer {marker} at (338.12,316.88) size 123.75x11.25 10 RenderPath {path} at (338.12,316.88) size 123.75x11.25 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark1] [middle marker=mark1] [end marker=mark1] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"] 11 RenderPath {path} at (235,345) size 330x30 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark1] [middle marker=mark1] [end marker=mark1] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"] -
trunk/LayoutTests/platform/mac/svg/custom/js-late-marker-and-object-creation-expected.txt
r52630 r52633 5 5 RenderView at (0,0) size 800x600 6 6 layer at (0,0) size 800x600 7 RenderSVGRoot {svg} at ( 0,0) size 306.67x308.337 RenderSVGRoot {svg} at (216.67,218.33) size 90.00x90 8 8 RenderSVGHiddenContainer {defs} at (0,0) size 0x0 9 9 RenderSVGViewportContainer {marker} at (0,0) size 2x2 … … 13 13 RenderSVGViewportContainer {marker} at (0,0) size 2x2 14 14 RenderPath {circle} at (0,0) size 2x2 [fill={[type=SOLID] [color=#008000]}] [data="M10.00,5.00 L9.99,5.31 L9.96,5.63 L9.91,5.94 L9.84,6.24 L9.76,6.55 L9.65,6.84 L9.52,7.13 L9.38,7.41 L9.22,7.68 L9.05,7.94 L8.85,8.19 L8.64,8.42 L8.42,8.64 L8.19,8.85 L7.94,9.05 L7.68,9.22 L7.41,9.38 L7.13,9.52 L6.84,9.65 L6.55,9.76 L6.24,9.84 L5.94,9.91 L5.63,9.96 L5.31,9.99 L5.00,10.00 L4.69,9.99 L4.37,9.96 L4.06,9.91 L3.76,9.84 L3.45,9.76 L3.16,9.65 L2.87,9.52 L2.59,9.38 L2.32,9.22 L2.06,9.05 L1.81,8.85 L1.58,8.64 L1.36,8.42 L1.15,8.19 L0.95,7.94 L0.78,7.68 L0.62,7.41 L0.48,7.13 L0.35,6.84 L0.24,6.55 L0.16,6.24 L0.09,5.94 L0.04,5.63 L0.01,5.31 L0.00,5.00 L0.01,4.69 L0.04,4.37 L0.09,4.06 L0.16,3.76 L0.24,3.45 L0.35,3.16 L0.48,2.87 L0.62,2.59 L0.78,2.32 L0.95,2.06 L1.15,1.81 L1.36,1.58 L1.58,1.36 L1.81,1.15 L2.06,0.95 L2.32,0.78 L2.59,0.62 L2.87,0.48 L3.16,0.35 L3.45,0.24 L3.76,0.16 L4.06,0.09 L4.37,0.04 L4.69,0.01 L5.00,0.00 L5.31,0.01 L5.63,0.04 L5.94,0.09 L6.24,0.16 L6.55,0.24 L6.84,0.35 L7.13,0.48 L7.41,0.62 L7.68,0.78 L7.94,0.95 L8.19,1.15 L8.42,1.36 L8.64,1.58 L8.85,1.81 L9.05,2.06 L9.22,2.32 L9.38,2.59 L9.52,2.87 L9.65,3.16 L9.76,3.45 L9.84,3.76 L9.91,4.06 L9.96,4.37 L9.99,4.69 Z"] 15 RenderSVGContainer {g} at ( 0,0) size 306.67x308.3316 RenderPath {path} at ( 0,0) size 306.67x308.33[stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=markerStart] [middle marker=markerMiddle] [end marker=markerEnd] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"]15 RenderSVGContainer {g} at (216.67,218.33) size 90.00x90 16 RenderPath {path} at (216.67,218.33) size 90.00x90 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=markerStart] [middle marker=markerMiddle] [end marker=markerEnd] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"] -
trunk/LayoutTests/platform/mac/svg/custom/js-late-marker-creation-expected.txt
r52630 r52633 5 5 RenderView at (0,0) size 800x600 6 6 layer at (0,0) size 800x600 7 RenderSVGRoot {svg} at ( 0,0) size 306.67x308.337 RenderSVGRoot {svg} at (216.67,218.33) size 90.00x90 8 8 RenderSVGHiddenContainer {defs} at (0,0) size 0x0 9 9 RenderSVGViewportContainer {marker} at (0,0) size 2x2 … … 13 13 RenderSVGViewportContainer {marker} at (0,0) size 2x2 14 14 RenderPath {circle} at (0,0) size 2x2 [fill={[type=SOLID] [color=#008000]}] [data="M10.00,5.00 L9.99,5.31 L9.96,5.63 L9.91,5.94 L9.84,6.24 L9.76,6.55 L9.65,6.84 L9.52,7.13 L9.38,7.41 L9.22,7.68 L9.05,7.94 L8.85,8.19 L8.64,8.42 L8.42,8.64 L8.19,8.85 L7.94,9.05 L7.68,9.22 L7.41,9.38 L7.13,9.52 L6.84,9.65 L6.55,9.76 L6.24,9.84 L5.94,9.91 L5.63,9.96 L5.31,9.99 L5.00,10.00 L4.69,9.99 L4.37,9.96 L4.06,9.91 L3.76,9.84 L3.45,9.76 L3.16,9.65 L2.87,9.52 L2.59,9.38 L2.32,9.22 L2.06,9.05 L1.81,8.85 L1.58,8.64 L1.36,8.42 L1.15,8.19 L0.95,7.94 L0.78,7.68 L0.62,7.41 L0.48,7.13 L0.35,6.84 L0.24,6.55 L0.16,6.24 L0.09,5.94 L0.04,5.63 L0.01,5.31 L0.00,5.00 L0.01,4.69 L0.04,4.37 L0.09,4.06 L0.16,3.76 L0.24,3.45 L0.35,3.16 L0.48,2.87 L0.62,2.59 L0.78,2.32 L0.95,2.06 L1.15,1.81 L1.36,1.58 L1.58,1.36 L1.81,1.15 L2.06,0.95 L2.32,0.78 L2.59,0.62 L2.87,0.48 L3.16,0.35 L3.45,0.24 L3.76,0.16 L4.06,0.09 L4.37,0.04 L4.69,0.01 L5.00,0.00 L5.31,0.01 L5.63,0.04 L5.94,0.09 L6.24,0.16 L6.55,0.24 L6.84,0.35 L7.13,0.48 L7.41,0.62 L7.68,0.78 L7.94,0.95 L8.19,1.15 L8.42,1.36 L8.64,1.58 L8.85,1.81 L9.05,2.06 L9.22,2.32 L9.38,2.59 L9.52,2.87 L9.65,3.16 L9.76,3.45 L9.84,3.76 L9.91,4.06 L9.96,4.37 L9.99,4.69 Z"] 15 RenderSVGContainer {g} at ( 0,0) size 306.67x308.3316 RenderPath {path} at ( 0,0) size 306.67x308.33[stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=markerStart] [middle marker=markerMiddle] [end marker=markerEnd] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"]15 RenderSVGContainer {g} at (216.67,218.33) size 90.00x90 16 RenderPath {path} at (216.67,218.33) size 90.00x90 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=markerStart] [middle marker=markerMiddle] [end marker=markerEnd] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"] -
trunk/LayoutTests/platform/mac/svg/custom/marker-changes-expected.checksum
r52630 r52633 1 fbb0a4464cb404cec2fa22a55477ff2e 1 cb9c6ae0d0cd0a862ab1a47be6272684 -
trunk/LayoutTests/platform/mac/svg/custom/marker-changes-expected.txt
r52630 r52633 5 5 RenderView at (0,0) size 800x600 6 6 layer at (0,0) size 800x600 7 RenderSVGRoot {svg} at ( 0,0) size 184x1857 RenderSVGRoot {svg} at (130,131) size 54x54 8 8 RenderSVGHiddenContainer {defs} at (0,0) size 0x0 9 9 RenderSVGViewportContainer {marker} at (0,0) size 2x2 … … 13 13 RenderSVGViewportContainer {marker} at (0,0) size 2x2 14 14 RenderPath {path} at (0,0) size 2x2 [fill={[type=SOLID] [color=#0000FF]}] [data="M5.00,0.00 L10.00,10.00 L0.00,10.00 Z"] 15 RenderSVGContainer {g} at ( 0,0) size 184x18516 RenderPath {path} at ( 0,0) size 184x185[stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=markerStart] [middle marker=markerMiddle] [end marker=markerEnd] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"]15 RenderSVGContainer {g} at (130,131) size 54x54 16 RenderPath {path} at (130,131) size 54x54 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=markerStart] [middle marker=markerMiddle] [end marker=markerEnd] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"] -
trunk/LayoutTests/platform/mac/svg/custom/marker-child-changes-expected.checksum
r52630 r52633 1 f bb0a4464cb404cec2fa22a55477ff2e1 f99aed7b122ebf0155573231013d80d7 -
trunk/LayoutTests/platform/mac/svg/custom/marker-child-changes-expected.txt
r52630 r52633 5 5 RenderView at (0,0) size 800x600 6 6 layer at (0,0) size 800x600 7 RenderSVGRoot {svg} at ( 0,0) size 184x1857 RenderSVGRoot {svg} at (130,131) size 54x54 8 8 RenderSVGHiddenContainer {defs} at (0,0) size 0x0 9 9 RenderSVGViewportContainer {marker} at (0,0) size 2x2 … … 13 13 RenderSVGViewportContainer {marker} at (0,0) size 2x2 14 14 RenderPath {path} at (0,0) size 2x2 [fill={[type=SOLID] [color=#0000FF]}] [data="M5.00,0.00 L10.00,10.00 L0.00,10.00 Z"] 15 RenderSVGContainer {g} at ( 0,0) size 184x18516 RenderPath {path} at ( 0,0) size 184x185[stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=markerStart] [middle marker=markerMiddle] [end marker=markerEnd] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"]15 RenderSVGContainer {g} at (130,131) size 54x54 16 RenderPath {path} at (130,131) size 54x54 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=markerStart] [middle marker=markerMiddle] [end marker=markerEnd] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"] -
trunk/LayoutTests/platform/mac/svg/custom/marker-default-width-height-expected.txt
r52630 r52633 25 25 RenderSVGViewportContainer {marker} at (0,0) size 5x5 26 26 RenderPath {rect} at (0,0) size 5x5 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L10.00,0.00 L10.00,10.00 L0.00,10.00 Z"] 27 RenderPath {path} at ( 0,0) size 300x283.33 [start marker=marker1] [middle marker=marker2] [end marker=marker3] [data="M130.00,120.00 L180.00,120.00 L180.00,170.00"]27 RenderPath {path} at (216.67,200) size 83.33x83.33 [start marker=marker1] [middle marker=marker2] [end marker=marker3] [data="M130.00,120.00 L180.00,120.00 L180.00,170.00"] -
trunk/LayoutTests/platform/mac/svg/custom/marker-overflow-clip-expected.txt
r52630 r52633 3 3 RenderView at (0,0) size 800x600 4 4 layer at (0,0) size 800x600 5 RenderSVGRoot {svg} at (-50,-50) size 378x 2005 RenderSVGRoot {svg} at (-50,-50) size 378x300 6 6 RenderSVGViewportContainer {marker} at (-25,-25) size 100x100 7 7 RenderPath {rect} at (-25,-25) size 100x100 [fill={[type=SOLID] [color=#FF0000]}] [data="M-50.00,-50.00 L150.00,-50.00 L150.00,150.00 L-50.00,150.00 Z"] 8 8 RenderPath {rect} at (0,0) size 50x50 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"] 9 9 RenderPath {rect} at (0,0) size 25x25 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L25.00,0.00 L25.00,25.00 L0.00,25.00 Z"] 10 RenderPath {path} at (-50,-50) size 200x200 [start marker=marker] [data="M100.00,100.00 L100.00,100.00"]10 RenderPath {path} at (-50,-50) size 300x300 [start marker=marker] [data="M100.00,100.00 L100.00,100.00"] 11 11 RenderSVGText {text} at (30,20) size 298x18 contains 1 chunk(s) 12 12 RenderSVGInlineText {#text} at (0,-14) size 298x18 -
trunk/LayoutTests/platform/mac/svg/custom/marker-viewBox-changes-expected.checksum
r52630 r52633 1 fbb0a4464cb404cec2fa22a55477ff2e 1 112d6156ec1070f8934e12652f26239a -
trunk/LayoutTests/platform/mac/svg/custom/marker-viewBox-changes-expected.txt
r52630 r52633 5 5 RenderView at (0,0) size 800x600 6 6 layer at (0,0) size 800x600 7 RenderSVGRoot {svg} at ( 0,0) size 184x1857 RenderSVGRoot {svg} at (130,131) size 54x54 8 8 RenderSVGHiddenContainer {defs} at (0,0) size 0x0 9 9 RenderSVGViewportContainer {marker} at (0,0) size 2x2 … … 13 13 RenderSVGViewportContainer {marker} at (0,0) size 2x2 14 14 RenderPath {path} at (0,0) size 2x2 [fill={[type=SOLID] [color=#0000FF]}] [data="M5.00,0.00 L10.00,10.00 L0.00,10.00 Z"] 15 RenderSVGContainer {g} at ( 0,0) size 184x18516 RenderPath {path} at ( 0,0) size 184x185[stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=markerStart] [middle marker=markerMiddle] [end marker=markerEnd] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"]15 RenderSVGContainer {g} at (130,131) size 54x54 16 RenderPath {path} at (130,131) size 54x54 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=markerStart] [middle marker=markerMiddle] [end marker=markerEnd] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"] -
trunk/LayoutTests/platform/mac/svg/custom/non-circular-marker-reference-expected.txt
r52630 r52633 3 3 RenderView at (0,0) size 800x600 4 4 layer at (0,0) size 800x600 5 RenderSVGRoot {svg} at (235,225) size 3 89.99x299.995 RenderSVGRoot {svg} at (235,225) size 330x150 6 6 RenderSVGHiddenContainer {defs} at (0,0) size 0x0 7 7 RenderSVGViewportContainer {marker} at (0.19,0.19) size 2.62x2.62 8 8 RenderPath {circle} at (0.19,0.19) size 2.62x2.62 [stroke={[type=SOLID] [color=#FF0000] [line cap=ROUND]}] [data="M7.00,4.00 L6.99,4.19 L6.98,4.38 L6.95,4.56 L6.91,4.75 L6.85,4.93 L6.79,5.10 L6.71,5.28 L6.63,5.45 L6.53,5.61 L6.43,5.76 L6.31,5.91 L6.19,6.05 L6.05,6.19 L5.91,6.31 L5.76,6.43 L5.61,6.53 L5.45,6.63 L5.28,6.71 L5.10,6.79 L4.93,6.85 L4.75,6.91 L4.56,6.95 L4.38,6.98 L4.19,6.99 L4.00,7.00 L3.81,6.99 L3.62,6.98 L3.44,6.95 L3.25,6.91 L3.07,6.85 L2.90,6.79 L2.72,6.71 L2.55,6.63 L2.39,6.53 L2.24,6.43 L2.09,6.31 L1.95,6.19 L1.81,6.05 L1.69,5.91 L1.57,5.76 L1.47,5.61 L1.37,5.45 L1.29,5.28 L1.21,5.10 L1.15,4.93 L1.09,4.75 L1.05,4.56 L1.02,4.38 L1.01,4.19 L1.00,4.00 L1.01,3.81 L1.02,3.62 L1.05,3.44 L1.09,3.25 L1.15,3.07 L1.21,2.90 L1.29,2.72 L1.37,2.55 L1.47,2.39 L1.57,2.24 L1.69,2.09 L1.81,1.95 L1.95,1.81 L2.09,1.69 L2.24,1.57 L2.39,1.47 L2.55,1.37 L2.72,1.29 L2.90,1.21 L3.07,1.15 L3.25,1.09 L3.44,1.05 L3.62,1.02 L3.81,1.01 L4.00,1.00 L4.19,1.01 L4.38,1.02 L4.56,1.05 L4.75,1.09 L4.93,1.15 L5.10,1.21 L5.28,1.29 L5.45,1.37 L5.61,1.47 L5.76,1.57 L5.91,1.69 L6.05,1.81 L6.19,1.95 L6.31,2.09 L6.43,2.24 L6.53,2.39 L6.63,2.55 L6.71,2.72 L6.79,2.90 L6.85,3.07 L6.91,3.25 L6.95,3.44 L6.98,3.62 L6.99,3.81 Z"] 9 9 RenderPath {path} at (235,225) size 330x30 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [data="M-5.00,-2.00 L0.00,-2.00 L5.00,-2.00"] 10 RenderPath {path} at (235,3 15.01) size 389.99x209.99[stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"]10 RenderPath {path} at (235,345) size 330x30 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"] -
trunk/LayoutTests/platform/mac/svg/custom/shapes-supporting-markers-expected.txt
r52630 r52633 3 3 RenderView at (0,0) size 800x600 4 4 layer at (0,0) size 800x600 5 RenderSVGRoot {svg} at (-0.83, 0.83) size 622.50x284.365 RenderSVGRoot {svg} at (-0.83,10) size 622.50x275.20 6 6 RenderSVGHiddenContainer {defs} at (0,0) size 0x0 7 7 RenderSVGViewportContainer {marker} at (0.19,0.19) size 2.62x2.62 8 8 RenderPath {circle} at (0.19,0.19) size 2.62x2.62 [stroke={[type=SOLID] [color=#FF0000]}] [data="M7.00,4.00 L6.99,4.19 L6.98,4.38 L6.95,4.56 L6.91,4.75 L6.85,4.93 L6.79,5.10 L6.71,5.28 L6.63,5.45 L6.53,5.61 L6.43,5.76 L6.31,5.91 L6.19,6.05 L6.05,6.19 L5.91,6.31 L5.76,6.43 L5.61,6.53 L5.45,6.63 L5.28,6.71 L5.10,6.79 L4.93,6.85 L4.75,6.91 L4.56,6.95 L4.38,6.98 L4.19,6.99 L4.00,7.00 L3.81,6.99 L3.62,6.98 L3.44,6.95 L3.25,6.91 L3.07,6.85 L2.90,6.79 L2.72,6.71 L2.55,6.63 L2.39,6.53 L2.24,6.43 L2.09,6.31 L1.95,6.19 L1.81,6.05 L1.69,5.91 L1.57,5.76 L1.47,5.61 L1.37,5.45 L1.29,5.28 L1.21,5.10 L1.15,4.93 L1.09,4.75 L1.05,4.56 L1.02,4.38 L1.01,4.19 L1.00,4.00 L1.01,3.81 L1.02,3.62 L1.05,3.44 L1.09,3.25 L1.15,3.07 L1.21,2.90 L1.29,2.72 L1.37,2.55 L1.47,2.39 L1.57,2.24 L1.69,2.09 L1.81,1.95 L1.95,1.81 L2.09,1.69 L2.24,1.57 L2.39,1.47 L2.55,1.37 L2.72,1.29 L2.90,1.21 L3.07,1.15 L3.25,1.09 L3.44,1.05 L3.62,1.02 L3.81,1.01 L4.00,1.00 L4.19,1.01 L4.38,1.02 L4.56,1.05 L4.75,1.09 L4.93,1.15 L5.10,1.21 L5.28,1.29 L5.45,1.37 L5.61,1.47 L5.76,1.57 L5.91,1.69 L6.05,1.81 L6.19,1.95 L6.31,2.09 L6.43,2.24 L6.53,2.39 L6.63,2.55 L6.71,2.72 L6.79,2.90 L6.85,3.07 L6.91,3.25 L6.95,3.44 L6.98,3.62 L6.99,3.81 Z"] 9 RenderSVGContainer {g} at (-0.83, 0.83) size 622.50x284.36[start marker=mark] [middle marker=mark] [end marker=mark]9 RenderSVGContainer {g} at (-0.83,10) size 622.50x275.20 [start marker=mark] [middle marker=mark] [end marker=mark] 10 10 RenderSVGText {text} at (0,20) size 373x18 contains 1 chunk(s) 11 11 RenderSVGInlineText {#text} at (0,-14) size 373x18 … … 17 17 RenderPath {circle} at (90.83,84.17) size 85.00x85.00 [stroke={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M105.00,76.00 L104.95,77.57 L104.80,79.13 L104.56,80.68 L104.21,82.22 L103.78,83.73 L103.24,85.20 L102.62,86.64 L101.91,88.04 L101.11,89.40 L100.23,90.69 L99.26,91.94 L98.22,93.11 L97.11,94.22 L95.94,95.26 L94.69,96.23 L93.40,97.11 L92.04,97.91 L90.64,98.62 L89.20,99.24 L87.73,99.78 L86.22,100.21 L84.68,100.56 L83.13,100.80 L81.57,100.95 L80.00,101.00 L78.43,100.95 L76.87,100.80 L75.32,100.56 L73.78,100.21 L72.27,99.78 L70.80,99.24 L69.36,98.62 L67.96,97.91 L66.60,97.11 L65.31,96.23 L64.06,95.26 L62.89,94.22 L61.78,93.11 L60.74,91.94 L59.77,90.69 L58.89,89.40 L58.09,88.04 L57.38,86.64 L56.76,85.20 L56.22,83.73 L55.79,82.22 L55.44,80.68 L55.20,79.13 L55.05,77.57 L55.00,76.00 L55.05,74.43 L55.20,72.87 L55.44,71.32 L55.79,69.78 L56.22,68.27 L56.76,66.80 L57.38,65.36 L58.09,63.96 L58.89,62.60 L59.77,61.31 L60.74,60.06 L61.78,58.89 L62.89,57.78 L64.06,56.74 L65.31,55.77 L66.60,54.89 L67.96,54.09 L69.36,53.38 L70.80,52.76 L72.27,52.22 L73.78,51.79 L75.32,51.44 L76.87,51.20 L78.43,51.05 L80.00,51.00 L81.57,51.05 L83.13,51.20 L84.68,51.44 L86.22,51.79 L87.73,52.22 L89.20,52.76 L90.64,53.38 L92.04,54.09 L93.40,54.89 L94.69,55.77 L95.94,56.74 L97.11,57.78 L98.22,58.89 L99.26,60.06 L100.23,61.31 L101.11,62.60 L101.91,63.96 L102.62,65.36 L103.24,66.80 L103.78,68.27 L104.21,69.78 L104.56,71.32 L104.80,72.87 L104.95,74.43 Z"] 18 18 RenderPath {ellipse} at (182.50,84.17) size 101.67x85.00 [stroke={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M170.00,76.00 L169.94,77.57 L169.76,79.13 L169.47,80.68 L169.06,82.22 L168.53,83.73 L167.89,85.20 L167.14,86.64 L166.29,88.04 L165.33,89.40 L164.27,90.69 L163.12,91.94 L161.87,93.11 L160.54,94.22 L159.12,95.26 L157.63,96.23 L156.07,97.11 L154.45,97.91 L152.77,98.62 L151.04,99.24 L149.27,99.78 L147.46,100.21 L145.62,100.56 L143.76,100.80 L141.88,100.95 L140.00,101.00 L138.12,100.95 L136.24,100.80 L134.38,100.56 L132.54,100.21 L130.73,99.78 L128.96,99.24 L127.23,98.62 L125.55,97.91 L123.93,97.11 L122.37,96.23 L120.88,95.26 L119.46,94.22 L118.13,93.11 L116.88,91.94 L115.73,90.69 L114.67,89.40 L113.71,88.04 L112.86,86.64 L112.11,85.20 L111.47,83.73 L110.94,82.22 L110.53,80.68 L110.24,79.13 L110.06,77.57 L110.00,76.00 L110.06,74.43 L110.24,72.87 L110.53,71.32 L110.94,69.78 L111.47,68.27 L112.11,66.80 L112.86,65.36 L113.71,63.96 L114.67,62.60 L115.73,61.31 L116.88,60.06 L118.13,58.89 L119.46,57.78 L120.88,56.74 L122.37,55.77 L123.93,54.89 L125.55,54.09 L127.23,53.38 L128.96,52.76 L130.73,52.22 L132.54,51.79 L134.38,51.44 L136.24,51.20 L138.12,51.05 L140.00,51.00 L141.88,51.05 L143.76,51.20 L145.62,51.44 L147.46,51.79 L149.27,52.22 L151.04,52.76 L152.77,53.38 L154.45,54.09 L156.07,54.89 L157.63,55.77 L159.12,56.74 L160.54,57.78 L161.87,58.89 L163.12,60.06 L164.27,61.31 L165.33,62.60 L166.29,63.96 L167.14,65.36 L167.89,66.80 L168.53,68.27 L169.06,69.78 L169.47,71.32 L169.76,72.87 L169.94,74.43 Z"] 19 RenderPath {line} at (-0.83, 0.83) size 13.33x282.50[stroke={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M0.00,120.00 L0.00,170.00"]20 RenderPath {polyline} at ( 0.83,0.83) size 133.85x282.87[stroke={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M30.00,120.00 L80.00,120.00 L55.00,170.00"]21 RenderPath {polygon} at ( 0.83,0.83) size 250.51x284.36[stroke={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M100.00,120.00 L150.00,120.00 L125.00,170.00 Z"]22 RenderPath {path} at ( 0.83,0.83) size 367.18x283.33[stroke={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M170.00,120.00 L220.00,120.00 L195.00,170.00 C185.00,170.00,170.00,140.00,170.00,120.00"]19 RenderPath {line} at (-0.83,200) size 1.67x83.33 [stroke={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M0.00,120.00 L0.00,170.00"] 20 RenderPath {polyline} at (50,199.17) size 84.68x84.54 [stroke={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M30.00,120.00 L80.00,120.00 L55.00,170.00"] 21 RenderPath {polygon} at (165.32,199.17) size 86.03x86.03 [stroke={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M100.00,120.00 L150.00,120.00 L125.00,170.00 Z"] 22 RenderPath {path} at (282.50,199.17) size 85.52x85.00 [stroke={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M170.00,120.00 L220.00,120.00 L195.00,170.00 C185.00,170.00,170.00,140.00,170.00,120.00"] -
trunk/WebCore/Android.mk
r52630 r52633 631 631 rendering/SVGInlineFlowBox.cpp \ 632 632 rendering/SVGInlineTextBox.cpp \ 633 rendering/SVGMarkerLayoutInfo.cpp \634 633 rendering/SVGRenderSupport.cpp \ 635 634 rendering/SVGRenderTreeAsText.cpp \ -
trunk/WebCore/ChangeLog
r52632 r52633 1 2009-12-29 Eric Seidel <eric@webkit.org> 2 3 No review, rolling out r52630. 4 http://trac.webkit.org/changeset/52630 5 6 Change caused layout tests failures and crashes. 7 8 * Android.mk: 9 * GNUmakefile.am: 10 * WebCore.pro: 11 * WebCore.vcproj/WebCore.vcproj: 12 * WebCore.xcodeproj/project.pbxproj: 13 * rendering/RenderPath.cpp: 14 (WebCore::RenderPath::repaintRectInLocalCoordinates): 15 (WebCore::RenderPath::setPath): 16 (WebCore::RenderPath::path): 17 (WebCore::RenderPath::paint): 18 (WebCore::): 19 (WebCore::DrawMarkersData::DrawMarkersData): 20 (WebCore::drawMarkerWithData): 21 (WebCore::updateMarkerDataForElement): 22 (WebCore::drawStartAndMidMarkers): 23 (WebCore::RenderPath::drawMarkersIfNeeded): 24 * rendering/RenderPath.h: 25 * rendering/RenderSVGContainer.h: 26 * rendering/RenderSVGViewportContainer.cpp: 27 (WebCore::RenderSVGViewportContainer::paint): 28 * rendering/RenderSVGViewportContainer.h: 29 * rendering/SVGMarkerLayoutInfo.cpp: Removed. 30 * rendering/SVGMarkerLayoutInfo.h: Removed. 31 * svg/SVGMarkerElement.cpp: 32 (WebCore::SVGMarkerElement::canvasResource): 33 * svg/graphics/SVGResource.cpp: 34 (WebCore::SVGResource::SVGResource): 35 (WebCore::ResourceSet::ResourceSet): 36 (WebCore::clientMap): 37 (WebCore::SVGResource::~SVGResource): 38 (WebCore::SVGResource::removeClient): 39 (WebCore::SVGResource::addClient): 40 * svg/graphics/SVGResourceMarker.cpp: 41 (WebCore::SVGResourceMarker::SVGResourceMarker): 42 (WebCore::SVGResourceMarker::setMarker): 43 (WebCore::SVGResourceMarker::setRef): 44 (WebCore::SVGResourceMarker::draw): 45 (WebCore::SVGResourceMarker::cachedBounds): 46 (WebCore::SVGResourceMarker::externalRepresentation): 47 * svg/graphics/SVGResourceMarker.h: 48 (WebCore::SVGResourceMarker::refX): 49 (WebCore::SVGResourceMarker::refY): 50 1 51 2009-12-29 Dan Bernstein <mitz@apple.com> 2 52 -
trunk/WebCore/GNUmakefile.am
r52630 r52633 2951 2951 WebCore/rendering/SVGInlineTextBox.cpp \ 2952 2952 WebCore/rendering/SVGInlineTextBox.h \ 2953 WebCore/rendering/SVGMarkerLayoutInfo.cpp \2954 WebCore/rendering/SVGMarkerLayoutInfo.h \2955 2953 WebCore/rendering/SVGRenderSupport.cpp \ 2956 2954 WebCore/rendering/SVGRenderSupport.h \ -
trunk/WebCore/WebCore.pro
r52630 r52633 2147 2147 rendering/SVGInlineFlowBox.h \ 2148 2148 rendering/SVGInlineTextBox.h \ 2149 rendering/SVGMarkerLayoutInfo.h \2150 2149 rendering/SVGRenderSupport.h \ 2151 2150 rendering/SVGRenderTreeAsText.h \ … … 3124 3123 rendering/SVGInlineFlowBox.cpp \ 3125 3124 rendering/SVGInlineTextBox.cpp \ 3126 rendering/SVGMarkerLayoutInfo.cpp \3127 3125 rendering/SVGRenderSupport.cpp \ 3128 3126 rendering/SVGRootInlineBox.cpp -
trunk/WebCore/WebCore.vcproj/WebCore.vcproj
r52630 r52633 27820 27820 </File> 27821 27821 <File 27822 RelativePath="..\rendering\SVGMarkerLayoutInfo.cpp"27823 >27824 </File>27825 <File27826 RelativePath="..\rendering\SVGMarkerLayoutInfo.h"27827 >27828 </File>27829 <File27830 27822 RelativePath="..\rendering\SVGRenderSupport.cpp" 27831 27823 > -
trunk/WebCore/WebCore.xcodeproj/project.pbxproj
r52630 r52633 89 89 087281570F26B9B600AFC596 /* OptionGroupElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 087281530F26B9B600AFC596 /* OptionGroupElement.cpp */; }; 90 90 087281580F26B9B600AFC596 /* OptionGroupElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 087281540F26B9B600AFC596 /* OptionGroupElement.h */; }; 91 08735FB810E91232006D6FAD /* SVGMarkerLayoutInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08735FB610E91232006D6FAD /* SVGMarkerLayoutInfo.cpp */; };92 08735FB910E91232006D6FAD /* SVGMarkerLayoutInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 08735FB710E91232006D6FAD /* SVGMarkerLayoutInfo.h */; };93 91 08744BAA0EDB7D86004C9E63 /* WMLOnEventElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08744BA90EDB7D86004C9E63 /* WMLOnEventElement.cpp */; }; 94 92 08744BAE0EDB7D92004C9E63 /* WMLOnEventElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 08744BAD0EDB7D92004C9E63 /* WMLOnEventElement.h */; }; … … 5305 5303 087281530F26B9B600AFC596 /* OptionGroupElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OptionGroupElement.cpp; sourceTree = "<group>"; }; 5306 5304 087281540F26B9B600AFC596 /* OptionGroupElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OptionGroupElement.h; sourceTree = "<group>"; }; 5307 08735FB610E91232006D6FAD /* SVGMarkerLayoutInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGMarkerLayoutInfo.cpp; sourceTree = "<group>"; };5308 08735FB710E91232006D6FAD /* SVGMarkerLayoutInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGMarkerLayoutInfo.h; sourceTree = "<group>"; };5309 5305 08744BA90EDB7D86004C9E63 /* WMLOnEventElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLOnEventElement.cpp; sourceTree = "<group>"; }; 5310 5306 08744BAD0EDB7D92004C9E63 /* WMLOnEventElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLOnEventElement.h; sourceTree = "<group>"; }; … … 15565 15561 AA0972CA0B6947A800A705E9 /* SVGInlineTextBox.cpp */, 15566 15562 AA0972CB0B6947A800A705E9 /* SVGInlineTextBox.h */, 15567 08735FB610E91232006D6FAD /* SVGMarkerLayoutInfo.cpp */,15568 08735FB710E91232006D6FAD /* SVGMarkerLayoutInfo.h */,15569 15563 A8F4FB950C169E85002AFED5 /* SVGRenderSupport.cpp */, 15570 15564 A8F4FB930C169E7B002AFED5 /* SVGRenderSupport.h */, … … 18272 18266 BC56CB2410D5AC8000A77C64 /* GeolocationError.h in Headers */, 18273 18267 BC56CB2510D5AC8000A77C64 /* GeolocationPosition.h in Headers */, 18274 08735FB910E91232006D6FAD /* SVGMarkerLayoutInfo.h in Headers */,18275 18268 ); 18276 18269 runOnlyForDeploymentPostprocessing = 0; … … 20429 20422 0C45342710CDBBFA00869157 /* JSWebGLUniformLocation.cpp in Sources */, 20430 20423 BC56CB2110D5AC8000A77C64 /* GeolocationController.cpp in Sources */, 20431 08735FB810E91232006D6FAD /* SVGMarkerLayoutInfo.cpp in Sources */,20432 20424 ); 20433 20425 runOnlyForDeploymentPostprocessing = 0; -
trunk/WebCore/rendering/RenderPath.cpp
r52632 r52633 26 26 #include "RenderPath.h" 27 27 28 #include "FloatConversion.h"29 28 #include "FloatPoint.h" 30 29 #include "FloatQuad.h" … … 131 130 132 131 // Markers and filters can paint outside of the stroke path 133 if (m_cachedLocalMarkerBBox.isEmpty() && static_cast<SVGStyledElement*>(node())->supportsMarkers()) 134 calculateMarkerBoundsIfNeeded(); 135 136 m_cachedLocalRepaintRect.unite(m_cachedLocalMarkerBBox); 132 m_cachedLocalRepaintRect.unite(m_markerBounds); 137 133 m_cachedLocalRepaintRect.unite(filterBoundingBoxForRenderer(this)); 134 138 135 return m_cachedLocalRepaintRect; 139 136 } … … 144 141 m_cachedLocalRepaintRect = FloatRect(); 145 142 m_cachedLocalFillBBox = FloatRect(); 146 m_cachedLocalMarkerBBox = FloatRect(); 143 } 144 145 const Path& RenderPath::path() const 146 { 147 return m_path; 147 148 } 148 149 … … 196 197 197 198 if (static_cast<SVGStyledElement*>(node())->supportsMarkers()) 198 m_marker LayoutInfo.drawMarkers(paintInfo);199 m_markerBounds = drawMarkersIfNeeded(paintInfo, m_path); 199 200 } 200 201 finishRenderSVGContent(this, paintInfo, filter, savedInfo.context); … … 239 240 } 240 241 241 void RenderPath::calculateMarkerBoundsIfNeeded() const 242 enum MarkerType { 243 Start, 244 Mid, 245 End 246 }; 247 248 struct MarkerData { 249 FloatPoint origin; 250 FloatPoint subpathStart; 251 double strokeWidth; 252 FloatPoint inslopePoints[2]; 253 FloatPoint outslopePoints[2]; 254 MarkerType type; 255 SVGResourceMarker* marker; 256 }; 257 258 struct DrawMarkersData { 259 DrawMarkersData(RenderObject::PaintInfo&, SVGResourceMarker* startMarker, SVGResourceMarker* midMarker, double strokeWidth); 260 RenderObject::PaintInfo& paintInfo; 261 int elementIndex; 262 MarkerData previousMarkerData; 263 SVGResourceMarker* midMarker; 264 }; 265 266 DrawMarkersData::DrawMarkersData(RenderObject::PaintInfo& pi, SVGResourceMarker* start, SVGResourceMarker* mid, double strokeWidth) 267 : paintInfo(pi) 268 , elementIndex(0) 269 , midMarker(mid) 270 { 271 previousMarkerData.origin = FloatPoint(); 272 previousMarkerData.subpathStart = FloatPoint(); 273 previousMarkerData.strokeWidth = strokeWidth; 274 previousMarkerData.marker = start; 275 previousMarkerData.type = Start; 276 } 277 278 static void drawMarkerWithData(RenderObject::PaintInfo& paintInfo, MarkerData& data) 279 { 280 if (!data.marker) 281 return; 282 283 FloatPoint inslopeChange = data.inslopePoints[1] - FloatSize(data.inslopePoints[0].x(), data.inslopePoints[0].y()); 284 FloatPoint outslopeChange = data.outslopePoints[1] - FloatSize(data.outslopePoints[0].x(), data.outslopePoints[0].y()); 285 286 double inslope = rad2deg(atan2(inslopeChange.y(), inslopeChange.x())); 287 double outslope = rad2deg(atan2(outslopeChange.y(), outslopeChange.x())); 288 289 double angle = 0.0; 290 switch (data.type) { 291 case Start: 292 angle = outslope; 293 break; 294 case Mid: 295 angle = (inslope + outslope) / 2; 296 break; 297 case End: 298 angle = inslope; 299 } 300 301 data.marker->draw(paintInfo, data.origin.x(), data.origin.y(), data.strokeWidth, angle); 302 } 303 304 static inline void updateMarkerDataForElement(MarkerData& previousMarkerData, const PathElement* element) 305 { 306 FloatPoint* points = element->points; 307 308 switch (element->type) { 309 case PathElementAddQuadCurveToPoint: 310 // TODO 311 previousMarkerData.origin = points[1]; 312 break; 313 case PathElementAddCurveToPoint: 314 previousMarkerData.inslopePoints[0] = points[1]; 315 previousMarkerData.inslopePoints[1] = points[2]; 316 previousMarkerData.origin = points[2]; 317 break; 318 case PathElementMoveToPoint: 319 previousMarkerData.subpathStart = points[0]; 320 case PathElementAddLineToPoint: 321 previousMarkerData.inslopePoints[0] = previousMarkerData.origin; 322 previousMarkerData.inslopePoints[1] = points[0]; 323 previousMarkerData.origin = points[0]; 324 break; 325 case PathElementCloseSubpath: 326 previousMarkerData.inslopePoints[0] = previousMarkerData.origin; 327 previousMarkerData.inslopePoints[1] = points[0]; 328 previousMarkerData.origin = previousMarkerData.subpathStart; 329 previousMarkerData.subpathStart = FloatPoint(); 330 } 331 } 332 333 static void drawStartAndMidMarkers(void* info, const PathElement* element) 334 { 335 DrawMarkersData& data = *reinterpret_cast<DrawMarkersData*>(info); 336 337 int elementIndex = data.elementIndex; 338 MarkerData& previousMarkerData = data.previousMarkerData; 339 340 FloatPoint* points = element->points; 341 342 // First update the outslope for the previous element 343 previousMarkerData.outslopePoints[0] = previousMarkerData.origin; 344 previousMarkerData.outslopePoints[1] = points[0]; 345 346 // Draw the marker for the previous element 347 if (elementIndex != 0) 348 drawMarkerWithData(data.paintInfo, previousMarkerData); 349 350 // Update our marker data for this element 351 updateMarkerDataForElement(previousMarkerData, element); 352 353 if (elementIndex == 1) { 354 // After drawing the start marker, switch to drawing mid markers 355 previousMarkerData.marker = data.midMarker; 356 previousMarkerData.type = Mid; 357 } 358 359 data.elementIndex++; 360 } 361 362 FloatRect RenderPath::drawMarkersIfNeeded(PaintInfo& paintInfo, const Path& path) const 242 363 { 243 364 Document* doc = document(); … … 247 368 248 369 SVGStyledElement* styledElement = static_cast<SVGStyledElement*>(svgElement); 249 if (!styledElement->supportsMarkers())250 return;251 252 370 const SVGRenderStyle* svgStyle = style()->svgStyle(); 371 253 372 AtomicString startMarkerId(svgStyle->startMarker()); 254 373 AtomicString midMarkerId(svgStyle->midMarker()); … … 275 394 276 395 if (!startMarker && !midMarker && !endMarker) 277 return; 278 279 float strokeWidth = SVGRenderStyle::cssPrimitiveToLength(this, svgStyle->strokeWidth(), 1.0f); 280 m_markerLayoutInfo.initialize(startMarker, midMarker, endMarker, strokeWidth); 281 m_cachedLocalMarkerBBox = m_markerLayoutInfo.calculateBoundaries(m_path); 396 return FloatRect(); 397 398 double strokeWidth = SVGRenderStyle::cssPrimitiveToLength(this, svgStyle->strokeWidth(), 1.0f); 399 DrawMarkersData data(paintInfo, startMarker, midMarker, strokeWidth); 400 401 path.apply(&data, drawStartAndMidMarkers); 402 403 data.previousMarkerData.marker = endMarker; 404 data.previousMarkerData.type = End; 405 drawMarkerWithData(paintInfo, data.previousMarkerData); 406 407 // We know the marker boundaries, only after they're drawn! 408 // Otherwhise we'd need to do all the marker calculation twice 409 // once here (through paint()) and once in absoluteClippedOverflowRect(). 410 FloatRect bounds; 411 412 if (startMarker) 413 bounds.unite(startMarker->cachedBounds()); 414 415 if (midMarker) 416 bounds.unite(midMarker->cachedBounds()); 417 418 if (endMarker) 419 bounds.unite(endMarker->cachedBounds()); 420 421 return bounds; 282 422 } 283 423 -
trunk/WebCore/rendering/RenderPath.h
r52632 r52633 26 26 27 27 #if ENABLE(SVG) 28 28 29 #include "FloatRect.h" 29 30 #include "RenderSVGModelObject.h" 30 #include "SVGMarkerLayoutInfo.h"31 31 #include "TransformationMatrix.h" 32 32 … … 41 41 RenderPath(SVGStyledTransformableElement*); 42 42 43 const Path& path() const { return m_path; }43 const Path& path() const; 44 44 45 45 private: … … 64 64 virtual bool nodeAtFloatPoint(const HitTestRequest&, HitTestResult&, const FloatPoint& pointInParent, HitTestAction); 65 65 66 void calculateMarkerBoundsIfNeeded() const;66 FloatRect drawMarkersIfNeeded(PaintInfo&, const Path&) const; 67 67 68 68 private: … … 72 72 mutable FloatRect m_cachedLocalFillBBox; 73 73 mutable FloatRect m_cachedLocalRepaintRect; 74 mutable FloatRect m_cachedLocalMarkerBBox; 75 mutable SVGMarkerLayoutInfo m_markerLayoutInfo; 74 FloatRect m_markerBounds; 76 75 TransformationMatrix m_localTransform; 77 76 }; … … 96 95 #endif // ENABLE(SVG) 97 96 #endif 97 98 // vim:ts=4:noet -
trunk/WebCore/rendering/RenderSVGContainer.h
r52632 r52633 43 43 bool drawsContents() const; 44 44 45 protected: 45 46 virtual void paint(PaintInfo&, int parentX, int parentY); 46 virtual FloatRect repaintRectInLocalCoordinates() const;47 47 48 48 private: … … 58 58 59 59 virtual FloatRect objectBoundingBox() const; 60 virtual FloatRect repaintRectInLocalCoordinates() const; 60 61 61 62 virtual bool nodeAtFloatPoint(const HitTestRequest&, HitTestResult&, const FloatPoint& pointInParent, HitTestAction); -
trunk/WebCore/rendering/RenderSVGViewportContainer.cpp
r52630 r52633 39 39 } 40 40 41 TransformationMatrix RenderSVGViewportContainer::markerContentTransformation(const TransformationMatrix& contentTransformation, const FloatPoint& origin, float strokeWidth) const 41 void RenderSVGViewportContainer::paint(PaintInfo& paintInfo, int parentX, int parentY) 42 42 { 43 // The 'origin' coordinate maps to SVGs refX/refY, given in coordinates relative to the viewport established by the marker 44 FloatPoint mappedOrigin = viewportTransform().mapPoint(origin); 43 // FIXME: The if statement here evaluates to false. isEmpty() is exactly the same 44 // as what is on the right side, so it's basically !isEmpty && isEmpty. So this 45 // function does nothing. 45 46 46 TransformationMatrix transformation = contentTransformation;47 if ( strokeWidth != -1)48 transformation.scaleNonUniform(strokeWidth, strokeWidth);47 // A value of zero disables rendering of the element. 48 if (!m_viewport.isEmpty() && (m_viewport.width() <= 0. || m_viewport.height() <= 0.)) 49 return; 49 50 50 transformation.translate(-mappedOrigin.x(), -mappedOrigin.y()); 51 return transformation; 51 RenderSVGContainer::paint(paintInfo, parentX, parentY); 52 52 } 53 53 … … 126 126 127 127 #endif // ENABLE(SVG) 128 129 // vim:ts=4:noet -
trunk/WebCore/rendering/RenderSVGViewportContainer.h
r52630 r52633 25 25 26 26 #if ENABLE(SVG) 27 27 28 #include "RenderSVGContainer.h" 28 29 … … 35 36 RenderSVGViewportContainer(SVGStyledElement*); 36 37 37 // Generates a transformation matrix usable to render marker content. Handles scaling the marker content 38 // acording to SVGs markerUnits="strokeWidth" concept, when a strokeWidth value != -1 is passed in. 39 TransformationMatrix markerContentTransformation(const TransformationMatrix& contentTransformation, const FloatPoint& origin, float strokeWidth = -1) const; 38 // FIXME: This is only public for SVGResourceMarker::draw, likely the callsite should be changed. 39 TransformationMatrix viewportTransform() const; 40 41 virtual void paint(PaintInfo&, int parentX, int parentY); 40 42 41 43 private: … … 43 45 virtual const char* renderName() const { return "RenderSVGViewportContainer"; } 44 46 45 TransformationMatrix viewportTransform() const;46 47 virtual TransformationMatrix localToParentTransform() const; 47 48 … … 70 71 #endif // ENABLE(SVG) 71 72 #endif // RenderSVGViewportContainer_h 73 74 // vim:ts=4:noet -
trunk/WebCore/svg/SVGMarkerElement.cpp
r52630 r52633 176 176 m_marker = SVGResourceMarker::create(); 177 177 178 m_marker->set Renderer(toRenderSVGViewportContainer(renderer()));178 m_marker->setMarker(toRenderSVGViewportContainer(renderer())); 179 179 180 180 if (orientType() == SVG_MARKER_ORIENT_ANGLE) … … 183 183 m_marker->setAutoAngle(); 184 184 185 m_marker->setRef erencePoint(FloatPoint(refX().value(this), refY().value(this)));185 m_marker->setRef(refX().value(this), refY().value(this)); 186 186 m_marker->setUseStrokeWidth(markerUnits() == SVG_MARKERUNITS_STROKEWIDTH); 187 187 -
trunk/WebCore/svg/graphics/SVGResource.cpp
r52630 r52633 32 32 #include "SVGElement.h" 33 33 #include "SVGStyledElement.h" 34 #include <wtf/HashSet.h>35 34 #include <wtf/StdLibExtras.h> 36 35 37 36 namespace WebCore { 38 37 39 typedef HashSet<SVGResource*> ResourceSet; 40 41 static ResourceSet& resourceSet() 38 SVGResource::SVGResource() 42 39 { 43 DEFINE_STATIC_LOCAL(ResourceSet, set, ());44 return set;45 40 } 46 41 47 SVGResource::SVGResource() 42 struct ResourceSet : Noncopyable { 43 ResourceSet() 44 { 45 for (int i = 0; i < _ResourceTypeCount; i++) 46 resources[i] = 0; 47 } 48 SVGResource* resources[_ResourceTypeCount]; 49 }; 50 51 typedef HashMap<SVGStyledElement*, ResourceSet*> ResourceClientMap; 52 53 static ResourceClientMap& clientMap() 48 54 { 49 ASSERT(!resourceSet().contains(this));50 re sourceSet().add(this);55 DEFINE_STATIC_LOCAL(ResourceClientMap, map, ()); 56 return map; 51 57 } 52 53 58 54 59 SVGResource::~SVGResource() 55 60 { 56 ASSERT(resourceSet().contains(this)); 57 resourceSet().remove(this); 61 int type = -1; 62 HashSet<SVGStyledElement*>::iterator itr = m_clients.begin(); 63 64 for (; type < 0 && itr != m_clients.end(); ++itr) { 65 ResourceSet* target = clientMap().get(*itr); 66 if (!target) 67 continue; 68 69 for (int i = 0; i < _ResourceTypeCount; i++) { 70 if (target->resources[i] != this) 71 continue; 72 type = i; 73 target->resources[i] = 0; 74 break; 75 } 76 } 77 78 if (type < 0) 79 return; 80 81 for (; itr != m_clients.end(); ++itr) { 82 ResourceSet* target = clientMap().get(*itr); 83 if (!target) 84 continue; 85 86 if (target->resources[type] == this) 87 target->resources[type] = 0; 88 } 58 89 } 59 90 … … 90 121 void SVGResource::removeClient(SVGStyledElement* item) 91 122 { 92 ResourceSet::iterator it = resourceSet().begin(); 93 ResourceSet::iterator end = resourceSet().end(); 94 95 for (; it != end; ++it) { 96 SVGResource* resource = *it; 97 if (!resource->m_clients.contains(item)) 98 continue; 99 resource->m_clients.remove(item); 100 } 123 ResourceClientMap::iterator resourcePtr = clientMap().find(item); 124 if (resourcePtr == clientMap().end()) 125 return; 126 127 ResourceSet* set = resourcePtr->second; 128 ASSERT(set); 129 130 clientMap().remove(resourcePtr); 131 132 for (int i = 0; i < _ResourceTypeCount; i++) 133 if (set->resources[i]) 134 set->resources[i]->m_clients.remove(item); 135 136 delete set; 101 137 } 102 138 … … 107 143 108 144 m_clients.add(item); 145 146 ResourceSet* target = clientMap().get(item); 147 if (!target) 148 target = new ResourceSet; 149 150 SVGResourceType type = resourceType(); 151 if (SVGResource* oldResource = target->resources[type]) 152 oldResource->m_clients.remove(item); 153 154 target->resources[type] = this; 155 clientMap().set(item, target); 109 156 } 110 157 -
trunk/WebCore/svg/graphics/SVGResourceMarker.cpp
r52630 r52633 39 39 SVGResourceMarker::SVGResourceMarker() 40 40 : SVGResource() 41 , m_refX(0.0) 42 , m_refY(0.0) 41 43 , m_angle(-1) // just like using setAutoAngle() 42 , m_ renderer(0)44 , m_marker(0) 43 45 , m_useStrokeWidth(true) 44 46 { … … 49 51 } 50 52 51 FloatRect SVGResourceMarker::markerBoundaries() const 53 void SVGResourceMarker::setMarker(RenderSVGViewportContainer* marker) 52 54 { 53 ASSERT(m_renderer); 54 return m_renderer->repaintRectInLocalCoordinates(); 55 m_marker = marker; 55 56 } 56 57 57 TransformationMatrix SVGResourceMarker::markerTransformation(const FloatPoint& origin, float angle, float strokeWidth) const 58 void SVGResourceMarker::setRef(double refX, double refY) 58 59 { 59 ASSERT(m_renderer); 60 61 TransformationMatrix transform; 62 transform.translate(origin.x(), origin.y()); 63 transform.rotate(m_angle == -1 ? angle : m_angle); 64 transform = m_renderer->markerContentTransformation(transform, m_referencePoint, m_useStrokeWidth ? strokeWidth : -1); 65 return transform; 60 m_refX = refX; 61 m_refY = refY; 66 62 } 67 63 68 void SVGResourceMarker::draw(RenderObject::PaintInfo& paintInfo, const TransformationMatrix& transform)64 void SVGResourceMarker::draw(RenderObject::PaintInfo& paintInfo, double x, double y, double strokeWidth, double angle) 69 65 { 70 if (!m_ renderer)66 if (!m_marker) 71 67 return; 72 68 … … 78 74 79 75 currentlyDrawingMarkers.add(this); 80 ASSERT(!m_renderer->drawsContents()); 76 77 TransformationMatrix transform; 78 transform.translate(x, y); 79 transform.rotate(m_angle > -1 ? m_angle : angle); 80 81 // refX and refY are given in coordinates relative to the viewport established by the marker, yet they affect 82 // the translation performed on the viewport itself. 83 TransformationMatrix viewportTransform; 84 if (m_useStrokeWidth) 85 viewportTransform.scaleNonUniform(strokeWidth, strokeWidth); 86 viewportTransform *= m_marker->viewportTransform(); 87 double refX, refY; 88 viewportTransform.map(m_refX, m_refY, refX, refY); 89 transform.translate(-refX, -refY); 90 91 if (m_useStrokeWidth) 92 transform.scaleNonUniform(strokeWidth, strokeWidth); 81 93 82 94 paintInfo.context->save(); 83 95 paintInfo.context->concatCTM(transform); 84 m_ renderer->setDrawsContents(true);85 m_ renderer->paint(paintInfo, 0, 0);86 m_ renderer->setDrawsContents(false);96 m_marker->setDrawsContents(true); 97 m_marker->paint(paintInfo, 0, 0); 98 m_marker->setDrawsContents(false); 87 99 paintInfo.context->restore(); 88 100 101 m_cachedBounds = transform.mapRect(m_marker->absoluteClippedOverflowRect()); 102 89 103 currentlyDrawingMarkers.remove(this); 104 } 105 106 FloatRect SVGResourceMarker::cachedBounds() const 107 { 108 return m_cachedBounds; 90 109 } 91 110 … … 100 119 ts << angle() << "]"; 101 120 102 ts << " [ref x=" << m_referencePoint.x() << " y=" << m_referencePoint.y() << "]";121 ts << " [ref x=" << refX() << " y=" << refY() << "]"; 103 122 return ts; 104 123 } -
trunk/WebCore/svg/graphics/SVGResourceMarker.h
r52630 r52633 28 28 29 29 #if ENABLE(SVG) 30 30 31 #include "FloatRect.h" 31 #include "FloatPoint.h"32 32 #include "RenderObject.h" 33 33 #include "SVGResource.h" … … 36 36 37 37 class RenderSVGViewportContainer; 38 class TransformationMatrix;39 38 40 39 class SVGResourceMarker : public SVGResource { … … 43 42 virtual ~SVGResourceMarker(); 44 43 45 FloatRect markerBoundaries() const; 46 TransformationMatrix markerTransformation(const FloatPoint& origin, float angle, float strokeWidth) const; 47 void setRenderer(RenderSVGViewportContainer* marker) { m_renderer = marker; } 44 void setMarker(RenderSVGViewportContainer*); 48 45 49 void setReferencePoint(const FloatPoint& point) { m_referencePoint = point; } 50 FloatPoint referencePoint() const { return m_referencePoint; } 46 void setRef(double refX, double refY); 47 double refX() const { return m_refX; } 48 double refY() const { return m_refY; } 51 49 52 50 void setAngle(float angle) { m_angle = angle; } … … 57 55 bool useStrokeWidth() const { return m_useStrokeWidth; } 58 56 59 void draw(RenderObject::PaintInfo&, const TransformationMatrix&); 60 57 FloatRect cachedBounds() const; 58 void draw(RenderObject::PaintInfo&, double x, double y, double strokeWidth = 1, double angle = 0); 59 61 60 virtual SVGResourceType resourceType() const { return MarkerResourceType; } 62 61 virtual TextStream& externalRepresentation(TextStream&) const; … … 64 63 private: 65 64 SVGResourceMarker(); 66 67 Float Point m_referencePoint;65 double m_refX, m_refY; 66 FloatRect m_cachedBounds; 68 67 float m_angle; 69 RenderSVGViewportContainer* m_ renderer;68 RenderSVGViewportContainer* m_marker; 70 69 bool m_useStrokeWidth; 71 70 };
Note: See TracChangeset
for help on using the changeset viewer.