Changeset 52633 in webkit


Ignore:
Timestamp:
Dec 29, 2009 2:08:30 PM (14 years ago)
Author:
eric@webkit.org
Message:

2009-12-29 Eric Seidel <eric@webkit.org>

No review, rolling out r52630.
https://bugs.webkit.org/show_bug.cgi?id=33012
http://trac.webkit.org/changeset/52630

This caused 2 layout test failures, and 2 layout test crashes on Leopard bots.

  • platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/painting-marker-03-f-expected.txt:
  • platform/mac/svg/custom/circular-marker-reference-1-expected.txt:
  • platform/mac/svg/custom/circular-marker-reference-2-expected.txt:
  • platform/mac/svg/custom/circular-marker-reference-3-expected.txt:
  • platform/mac/svg/custom/circular-marker-reference-4-expected.txt:
  • platform/mac/svg/custom/js-late-marker-and-object-creation-expected.txt:
  • platform/mac/svg/custom/js-late-marker-creation-expected.txt:
  • platform/mac/svg/custom/marker-changes-expected.checksum:
  • platform/mac/svg/custom/marker-changes-expected.png:
  • platform/mac/svg/custom/marker-changes-expected.txt:
  • platform/mac/svg/custom/marker-child-changes-expected.checksum:
  • platform/mac/svg/custom/marker-child-changes-expected.png:
  • platform/mac/svg/custom/marker-child-changes-expected.txt:
  • platform/mac/svg/custom/marker-default-width-height-expected.txt:
  • platform/mac/svg/custom/marker-overflow-clip-expected.txt:
  • platform/mac/svg/custom/marker-referencePoint-expected.checksum: Removed.
  • platform/mac/svg/custom/marker-referencePoint-expected.png: Removed.
  • platform/mac/svg/custom/marker-referencePoint-expected.txt: Removed.
  • platform/mac/svg/custom/marker-viewBox-changes-expected.checksum:
  • platform/mac/svg/custom/marker-viewBox-changes-expected.png:
  • platform/mac/svg/custom/marker-viewBox-changes-expected.txt:
  • platform/mac/svg/custom/non-circular-marker-reference-expected.txt:
  • platform/mac/svg/custom/shapes-supporting-markers-expected.txt:
  • svg/custom/marker-referencePoint.svg: Removed.

2009-12-29 Eric Seidel <eric@webkit.org>

No review, rolling out r52630.
http://trac.webkit.org/changeset/52630

Change caused layout tests failures and crashes.

  • Android.mk:
  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderPath.cpp: (WebCore::RenderPath::repaintRectInLocalCoordinates): (WebCore::RenderPath::setPath): (WebCore::RenderPath::path): (WebCore::RenderPath::paint): (WebCore::): (WebCore::DrawMarkersData::DrawMarkersData): (WebCore::drawMarkerWithData): (WebCore::updateMarkerDataForElement): (WebCore::drawStartAndMidMarkers): (WebCore::RenderPath::drawMarkersIfNeeded):
  • rendering/RenderPath.h:
  • rendering/RenderSVGContainer.h:
  • rendering/RenderSVGViewportContainer.cpp: (WebCore::RenderSVGViewportContainer::paint):
  • rendering/RenderSVGViewportContainer.h:
  • rendering/SVGMarkerLayoutInfo.cpp: Removed.
  • rendering/SVGMarkerLayoutInfo.h: Removed.
  • svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::canvasResource):
  • svg/graphics/SVGResource.cpp: (WebCore::SVGResource::SVGResource): (WebCore::ResourceSet::ResourceSet): (WebCore::clientMap): (WebCore::SVGResource::~SVGResource): (WebCore::SVGResource::removeClient): (WebCore::SVGResource::addClient):
  • svg/graphics/SVGResourceMarker.cpp: (WebCore::SVGResourceMarker::SVGResourceMarker): (WebCore::SVGResourceMarker::setMarker): (WebCore::SVGResourceMarker::setRef): (WebCore::SVGResourceMarker::draw): (WebCore::SVGResourceMarker::cachedBounds): (WebCore::SVGResourceMarker::externalRepresentation):
  • svg/graphics/SVGResourceMarker.h: (WebCore::SVGResourceMarker::refX): (WebCore::SVGResourceMarker::refY):
Location:
trunk
Files:
6 deleted
37 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r52630 r52633  
     12009-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
    1352009-12-29  Nikolas Zimmermann  <nzimmermann@rim.com>
    236
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt

    r52630 r52633  
    88  RenderView at (0,0) size 480x360
    99layer at (0,0) size 480x360
    10   RenderSVGRoot {svg} at (-4,-4) size 483.50x363.50
    11     RenderSVGContainer {g} at (-4,-4) size 455.20x276
     10  RenderSVGRoot {svg} at (-0.80,-0.80) size 480.30x360.30
     11    RenderSVGContainer {g} at (-0.80,-0.80) size 452x272.80
    1212      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    1313      RenderSVGText {text} at (125,30) size 184x16 contains 1 chunk(s)
     
    2020          RenderSVGInlineText {#text} at (0,-9) size 54x11
    2121            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"]
    2323        RenderSVGContainer {g} at (142,52) size 66x66 [transform={m=((1.00,0.00)(0.00,1.00)) t=(120.00,0.00)}]
    2424          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"]
     
    3535              RenderSVGContainer {g} at (192,102) size 16x16 [transform={m=((0.20,0.00)(0.00,0.20)) t=(0.00,0.00)}]
    3636                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.60x144
     37      RenderSVGContainer {g} at (-0.40,-0.40) size 450x142.40
    3838        RenderSVGViewportContainer {marker} at (-0.40,-0.40) size 4.80x4.80
    3939          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"]
     
    4141          RenderSVGInlineText {#text} at (0,-9) size 72x11
    4242            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"]
    4444        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)}]
    4545          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"]
     
    6161        RenderSVGViewportContainer {marker} at (-0.80,-0.80) size 5.60x5.60
    6262          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.20x276
     63      RenderSVGContainer {g} at (25.17,178.80) size 186.03x93.20
    6464        RenderSVGText {text} at (90,270) size 77x11 contains 1 chunk(s)
    6565          RenderSVGInlineText {#text} at (0,-9) size 77x11
    6666            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"]
    6868        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)}]
    6969          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"]
     
    8181                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)}]
    8282                  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.20x274
     83      RenderSVGContainer {g} at (265.17,178.80) size 186.03x93.20
    8484        RenderSVGText {text} at (340,270) size 77x11 contains 1 chunk(s)
    8585          RenderSVGInlineText {#text} at (0,-9) size 77x11
    8686            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"]
    8888        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)}]
    8989          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  
    1616      RenderSVGInlineText {#text} at (0,-18) size 140x23
    1717        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 (50,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 (50,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"]
    2424    RenderSVGText {text} at (27,200) size 426x23 contains 1 chunk(s)
    2525      RenderSVGInlineText {#text} at (0,-18) size 426x23
    2626        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 (50,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 (50,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"]
    3333    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
    3434      RenderSVGInlineText {#text} at (0,-36) size 264x46
  • trunk/LayoutTests/platform/mac/svg/custom/circular-marker-reference-1-expected.txt

    r52630 r52633  
    33  RenderView at (0,0) size 800x600
    44layer at (0,0) size 800x600
    5   RenderSVGRoot {svg} at (235,225) size 330x150
     5  RenderSVGRoot {svg} at (235,345) size 330x30
    66    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    77      RenderSVGViewportContainer {marker} at (-2.06,-0.94) size 4.12x0.38
    88        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  
    33  RenderView at (0,0) size 800x600
    44layer at (0,0) size 800x600
    5   RenderSVGRoot {svg} at (235,225) size 389.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]
    66    RenderSVGHiddenContainer {defs} at (0,0) size 0x0 [start marker=mark] [middle marker=mark] [end marker=mark]
    77      RenderSVGViewportContainer {marker} at (0.19,0.19) size 2.62x2.62 [start marker=mark] [middle marker=mark] [end marker=mark]
    88        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 389.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,315.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  
    33  RenderView at (0,0) size 800x600
    44layer 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]
    66    RenderSVGHiddenContainer {defs} at (0,0) size 0x0 [start marker=mark] [middle marker=mark] [end marker=mark]
    77      RenderSVGViewportContainer {marker} at (-2.06,-0.94) size 4.12x0.38 [start marker=mark] [middle marker=mark] [end marker=mark]
    88        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  
    44  RenderView at (0,0) size 800x600
    55layer at (0,0) size 800x600
    6   RenderSVGRoot {svg} at (235,225) size 330x150
    7     RenderSVGViewportContainer {marker} at (338.12,271.88) size 123.75x56.25
    8       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=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.25
    10       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  
    55  RenderView at (0,0) size 800x600
    66layer at (0,0) size 800x600
    7   RenderSVGRoot {svg} at (0,0) size 306.67x308.33
     7  RenderSVGRoot {svg} at (216.67,218.33) size 90.00x90
    88    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    99      RenderSVGViewportContainer {marker} at (0,0) size 2x2
     
    1313      RenderSVGViewportContainer {marker} at (0,0) size 2x2
    1414        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.33
    16       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  
    55  RenderView at (0,0) size 800x600
    66layer at (0,0) size 800x600
    7   RenderSVGRoot {svg} at (0,0) size 306.67x308.33
     7  RenderSVGRoot {svg} at (216.67,218.33) size 90.00x90
    88    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    99      RenderSVGViewportContainer {marker} at (0,0) size 2x2
     
    1313      RenderSVGViewportContainer {marker} at (0,0) size 2x2
    1414        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.33
    16       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
     1cb9c6ae0d0cd0a862ab1a47be6272684
  • trunk/LayoutTests/platform/mac/svg/custom/marker-changes-expected.txt

    r52630 r52633  
    55  RenderView at (0,0) size 800x600
    66layer at (0,0) size 800x600
    7   RenderSVGRoot {svg} at (0,0) size 184x185
     7  RenderSVGRoot {svg} at (130,131) size 54x54
    88    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    99      RenderSVGViewportContainer {marker} at (0,0) size 2x2
     
    1313      RenderSVGViewportContainer {marker} at (0,0) size 2x2
    1414        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 184x185
    16       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 fbb0a4464cb404cec2fa22a55477ff2e
     1f99aed7b122ebf0155573231013d80d7
  • trunk/LayoutTests/platform/mac/svg/custom/marker-child-changes-expected.txt

    r52630 r52633  
    55  RenderView at (0,0) size 800x600
    66layer at (0,0) size 800x600
    7   RenderSVGRoot {svg} at (0,0) size 184x185
     7  RenderSVGRoot {svg} at (130,131) size 54x54
    88    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    99      RenderSVGViewportContainer {marker} at (0,0) size 2x2
     
    1313      RenderSVGViewportContainer {marker} at (0,0) size 2x2
    1414        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 184x185
    16       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  
    2525      RenderSVGViewportContainer {marker} at (0,0) size 5x5
    2626        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  
    33  RenderView at (0,0) size 800x600
    44layer at (0,0) size 800x600
    5   RenderSVGRoot {svg} at (-50,-50) size 378x200
     5  RenderSVGRoot {svg} at (-50,-50) size 378x300
    66    RenderSVGViewportContainer {marker} at (-25,-25) size 100x100
    77      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"]
    88      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"]
    99    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"]
    1111    RenderSVGText {text} at (30,20) size 298x18 contains 1 chunk(s)
    1212      RenderSVGInlineText {#text} at (0,-14) size 298x18
  • trunk/LayoutTests/platform/mac/svg/custom/marker-viewBox-changes-expected.checksum

    r52630 r52633  
    1 fbb0a4464cb404cec2fa22a55477ff2e
     1112d6156ec1070f8934e12652f26239a
  • trunk/LayoutTests/platform/mac/svg/custom/marker-viewBox-changes-expected.txt

    r52630 r52633  
    55  RenderView at (0,0) size 800x600
    66layer at (0,0) size 800x600
    7   RenderSVGRoot {svg} at (0,0) size 184x185
     7  RenderSVGRoot {svg} at (130,131) size 54x54
    88    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    99      RenderSVGViewportContainer {marker} at (0,0) size 2x2
     
    1313      RenderSVGViewportContainer {marker} at (0,0) size 2x2
    1414        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 184x185
    16       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  
    33  RenderView at (0,0) size 800x600
    44layer at (0,0) size 800x600
    5   RenderSVGRoot {svg} at (235,225) size 389.99x299.99
     5  RenderSVGRoot {svg} at (235,225) size 330x150
    66    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    77      RenderSVGViewportContainer {marker} at (0.19,0.19) size 2.62x2.62
    88        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"]
    99    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,315.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  
    33  RenderView at (0,0) size 800x600
    44layer at (0,0) size 800x600
    5   RenderSVGRoot {svg} at (-0.83,0.83) size 622.50x284.36
     5  RenderSVGRoot {svg} at (-0.83,10) size 622.50x275.20
    66    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    77      RenderSVGViewportContainer {marker} at (0.19,0.19) size 2.62x2.62
    88        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]
    1010      RenderSVGText {text} at (0,20) size 373x18 contains 1 chunk(s)
    1111        RenderSVGInlineText {#text} at (0,-14) size 373x18
     
    1717      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"]
    1818      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  
    631631        rendering/SVGInlineFlowBox.cpp \
    632632        rendering/SVGInlineTextBox.cpp \
    633         rendering/SVGMarkerLayoutInfo.cpp \
    634633        rendering/SVGRenderSupport.cpp \
    635634        rendering/SVGRenderTreeAsText.cpp \
  • trunk/WebCore/ChangeLog

    r52632 r52633  
     12009-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
    1512009-12-29  Dan Bernstein  <mitz@apple.com>
    252
  • trunk/WebCore/GNUmakefile.am

    r52630 r52633  
    29512951        WebCore/rendering/SVGInlineTextBox.cpp \
    29522952        WebCore/rendering/SVGInlineTextBox.h \
    2953         WebCore/rendering/SVGMarkerLayoutInfo.cpp \
    2954         WebCore/rendering/SVGMarkerLayoutInfo.h \
    29552953        WebCore/rendering/SVGRenderSupport.cpp \
    29562954        WebCore/rendering/SVGRenderSupport.h \
  • trunk/WebCore/WebCore.pro

    r52630 r52633  
    21472147    rendering/SVGInlineFlowBox.h \
    21482148    rendering/SVGInlineTextBox.h \
    2149     rendering/SVGMarkerLayoutInfo.h \
    21502149    rendering/SVGRenderSupport.h \
    21512150    rendering/SVGRenderTreeAsText.h \
     
    31243123        rendering/SVGInlineFlowBox.cpp \
    31253124        rendering/SVGInlineTextBox.cpp \
    3126         rendering/SVGMarkerLayoutInfo.cpp \
    31273125        rendering/SVGRenderSupport.cpp \
    31283126        rendering/SVGRootInlineBox.cpp
  • trunk/WebCore/WebCore.vcproj/WebCore.vcproj

    r52630 r52633  
    2782027820                        </File>
    2782127821                        <File
    27822                                 RelativePath="..\rendering\SVGMarkerLayoutInfo.cpp"
    27823                                 >
    27824                         </File>
    27825                         <File
    27826                                 RelativePath="..\rendering\SVGMarkerLayoutInfo.h"
    27827                                 >
    27828                         </File>
    27829                         <File
    2783027822                                RelativePath="..\rendering\SVGRenderSupport.cpp"
    2783127823                                >
  • trunk/WebCore/WebCore.xcodeproj/project.pbxproj

    r52630 r52633  
    8989                087281570F26B9B600AFC596 /* OptionGroupElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 087281530F26B9B600AFC596 /* OptionGroupElement.cpp */; };
    9090                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 */; };
    9391                08744BAA0EDB7D86004C9E63 /* WMLOnEventElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08744BA90EDB7D86004C9E63 /* WMLOnEventElement.cpp */; };
    9492                08744BAE0EDB7D92004C9E63 /* WMLOnEventElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 08744BAD0EDB7D92004C9E63 /* WMLOnEventElement.h */; };
     
    53055303                087281530F26B9B600AFC596 /* OptionGroupElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OptionGroupElement.cpp; sourceTree = "<group>"; };
    53065304                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>"; };
    53095305                08744BA90EDB7D86004C9E63 /* WMLOnEventElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLOnEventElement.cpp; sourceTree = "<group>"; };
    53105306                08744BAD0EDB7D92004C9E63 /* WMLOnEventElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLOnEventElement.h; sourceTree = "<group>"; };
     
    1556515561                                AA0972CA0B6947A800A705E9 /* SVGInlineTextBox.cpp */,
    1556615562                                AA0972CB0B6947A800A705E9 /* SVGInlineTextBox.h */,
    15567                                 08735FB610E91232006D6FAD /* SVGMarkerLayoutInfo.cpp */,
    15568                                 08735FB710E91232006D6FAD /* SVGMarkerLayoutInfo.h */,
    1556915563                                A8F4FB950C169E85002AFED5 /* SVGRenderSupport.cpp */,
    1557015564                                A8F4FB930C169E7B002AFED5 /* SVGRenderSupport.h */,
     
    1827218266                                BC56CB2410D5AC8000A77C64 /* GeolocationError.h in Headers */,
    1827318267                                BC56CB2510D5AC8000A77C64 /* GeolocationPosition.h in Headers */,
    18274                                 08735FB910E91232006D6FAD /* SVGMarkerLayoutInfo.h in Headers */,
    1827518268                        );
    1827618269                        runOnlyForDeploymentPostprocessing = 0;
     
    2042920422                                0C45342710CDBBFA00869157 /* JSWebGLUniformLocation.cpp in Sources */,
    2043020423                                BC56CB2110D5AC8000A77C64 /* GeolocationController.cpp in Sources */,
    20431                                 08735FB810E91232006D6FAD /* SVGMarkerLayoutInfo.cpp in Sources */,
    2043220424                        );
    2043320425                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/WebCore/rendering/RenderPath.cpp

    r52632 r52633  
    2626#include "RenderPath.h"
    2727
    28 #include "FloatConversion.h"
    2928#include "FloatPoint.h"
    3029#include "FloatQuad.h"
     
    131130
    132131    // 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);
    137133    m_cachedLocalRepaintRect.unite(filterBoundingBoxForRenderer(this));
     134
    138135    return m_cachedLocalRepaintRect;
    139136}
     
    144141    m_cachedLocalRepaintRect = FloatRect();
    145142    m_cachedLocalFillBBox = FloatRect();
    146     m_cachedLocalMarkerBBox = FloatRect();
     143}
     144
     145const Path& RenderPath::path() const
     146{
     147    return m_path;
    147148}
    148149
     
    196197
    197198            if (static_cast<SVGStyledElement*>(node())->supportsMarkers())
    198                 m_markerLayoutInfo.drawMarkers(paintInfo);
     199                m_markerBounds = drawMarkersIfNeeded(paintInfo, m_path);
    199200        }
    200201        finishRenderSVGContent(this, paintInfo, filter, savedInfo.context);
     
    239240}
    240241
    241 void RenderPath::calculateMarkerBoundsIfNeeded() const
     242enum MarkerType {
     243    Start,
     244    Mid,
     245    End
     246};
     247
     248struct 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
     258struct 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
     266DrawMarkersData::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
     278static 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
     304static 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
     333static 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
     362FloatRect RenderPath::drawMarkersIfNeeded(PaintInfo& paintInfo, const Path& path) const
    242363{
    243364    Document* doc = document();
     
    247368
    248369    SVGStyledElement* styledElement = static_cast<SVGStyledElement*>(svgElement);
    249     if (!styledElement->supportsMarkers())
    250         return;
    251 
    252370    const SVGRenderStyle* svgStyle = style()->svgStyle();
     371
    253372    AtomicString startMarkerId(svgStyle->startMarker());
    254373    AtomicString midMarkerId(svgStyle->midMarker());
     
    275394
    276395    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;
    282422}
    283423
  • trunk/WebCore/rendering/RenderPath.h

    r52632 r52633  
    2626
    2727#if ENABLE(SVG)
     28
    2829#include "FloatRect.h"
    2930#include "RenderSVGModelObject.h"
    30 #include "SVGMarkerLayoutInfo.h"
    3131#include "TransformationMatrix.h"
    3232
     
    4141    RenderPath(SVGStyledTransformableElement*);
    4242
    43     const Path& path() const { return m_path; }
     43    const Path& path() const;
    4444
    4545private:
     
    6464    virtual bool nodeAtFloatPoint(const HitTestRequest&, HitTestResult&, const FloatPoint& pointInParent, HitTestAction);
    6565
    66     void calculateMarkerBoundsIfNeeded() const;
     66    FloatRect drawMarkersIfNeeded(PaintInfo&, const Path&) const;
    6767
    6868private:
     
    7272    mutable FloatRect m_cachedLocalFillBBox;
    7373    mutable FloatRect m_cachedLocalRepaintRect;
    74     mutable FloatRect m_cachedLocalMarkerBBox;
    75     mutable SVGMarkerLayoutInfo m_markerLayoutInfo;
     74    FloatRect m_markerBounds;
    7675    TransformationMatrix m_localTransform;
    7776};
     
    9695#endif // ENABLE(SVG)
    9796#endif
     97
     98// vim:ts=4:noet
  • trunk/WebCore/rendering/RenderSVGContainer.h

    r52632 r52633  
    4343    bool drawsContents() const;
    4444
     45protected:
    4546    virtual void paint(PaintInfo&, int parentX, int parentY);
    46     virtual FloatRect repaintRectInLocalCoordinates() const;
    4747
    4848private:
     
    5858
    5959    virtual FloatRect objectBoundingBox() const;
     60    virtual FloatRect repaintRectInLocalCoordinates() const;
    6061
    6162    virtual bool nodeAtFloatPoint(const HitTestRequest&, HitTestResult&, const FloatPoint& pointInParent, HitTestAction);
  • trunk/WebCore/rendering/RenderSVGViewportContainer.cpp

    r52630 r52633  
    3939}
    4040
    41 TransformationMatrix RenderSVGViewportContainer::markerContentTransformation(const TransformationMatrix& contentTransformation, const FloatPoint& origin, float strokeWidth) const
     41void RenderSVGViewportContainer::paint(PaintInfo& paintInfo, int parentX, int parentY)
    4242{
    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.
    4546
    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;
    4950
    50     transformation.translate(-mappedOrigin.x(), -mappedOrigin.y());
    51     return transformation;
     51    RenderSVGContainer::paint(paintInfo, parentX, parentY);
    5252}
    5353
     
    126126
    127127#endif // ENABLE(SVG)
     128
     129// vim:ts=4:noet
  • trunk/WebCore/rendering/RenderSVGViewportContainer.h

    r52630 r52633  
    2525
    2626#if ENABLE(SVG)
     27
    2728#include "RenderSVGContainer.h"
    2829
     
    3536    RenderSVGViewportContainer(SVGStyledElement*);
    3637
    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);
    4042
    4143private:
     
    4345    virtual const char* renderName() const { return "RenderSVGViewportContainer"; }
    4446
    45     TransformationMatrix viewportTransform() const;
    4647    virtual TransformationMatrix localToParentTransform() const;
    4748
     
    7071#endif // ENABLE(SVG)
    7172#endif // RenderSVGViewportContainer_h
     73
     74// vim:ts=4:noet
  • trunk/WebCore/svg/SVGMarkerElement.cpp

    r52630 r52633  
    176176        m_marker = SVGResourceMarker::create();
    177177
    178     m_marker->setRenderer(toRenderSVGViewportContainer(renderer()));
     178    m_marker->setMarker(toRenderSVGViewportContainer(renderer()));
    179179
    180180    if (orientType() == SVG_MARKER_ORIENT_ANGLE)
     
    183183        m_marker->setAutoAngle();
    184184
    185     m_marker->setReferencePoint(FloatPoint(refX().value(this), refY().value(this)));
     185    m_marker->setRef(refX().value(this), refY().value(this));
    186186    m_marker->setUseStrokeWidth(markerUnits() == SVG_MARKERUNITS_STROKEWIDTH);
    187187
  • trunk/WebCore/svg/graphics/SVGResource.cpp

    r52630 r52633  
    3232#include "SVGElement.h"
    3333#include "SVGStyledElement.h"
    34 #include <wtf/HashSet.h>
    3534#include <wtf/StdLibExtras.h>
    3635
    3736namespace WebCore {
    3837
    39 typedef HashSet<SVGResource*> ResourceSet;
    40 
    41 static ResourceSet& resourceSet()
     38SVGResource::SVGResource()
    4239{
    43     DEFINE_STATIC_LOCAL(ResourceSet, set, ());
    44     return set;
    4540}
    4641
    47 SVGResource::SVGResource()
     42struct ResourceSet : Noncopyable {
     43    ResourceSet()
     44    {
     45        for (int i = 0; i < _ResourceTypeCount; i++)
     46            resources[i] = 0;
     47    }
     48    SVGResource* resources[_ResourceTypeCount];
     49};
     50
     51typedef HashMap<SVGStyledElement*, ResourceSet*> ResourceClientMap;
     52
     53static ResourceClientMap& clientMap()
    4854{
    49     ASSERT(!resourceSet().contains(this));
    50     resourceSet().add(this);
     55    DEFINE_STATIC_LOCAL(ResourceClientMap, map, ());
     56    return map;
    5157}
    52 
    5358
    5459SVGResource::~SVGResource()
    5560{
    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    }
    5889}
    5990
     
    90121void SVGResource::removeClient(SVGStyledElement* item)
    91122{
    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;
    101137}
    102138
     
    107143
    108144    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);
    109156}
    110157
  • trunk/WebCore/svg/graphics/SVGResourceMarker.cpp

    r52630 r52633  
    3939SVGResourceMarker::SVGResourceMarker()
    4040    : SVGResource()
     41    , m_refX(0.0)
     42    , m_refY(0.0)
    4143    , m_angle(-1) // just like using setAutoAngle()
    42     , m_renderer(0)
     44    , m_marker(0)
    4345    , m_useStrokeWidth(true)
    4446{
     
    4951}
    5052
    51 FloatRect SVGResourceMarker::markerBoundaries() const
     53void SVGResourceMarker::setMarker(RenderSVGViewportContainer* marker)
    5254{
    53     ASSERT(m_renderer);
    54     return m_renderer->repaintRectInLocalCoordinates();
     55    m_marker = marker;
    5556}
    5657
    57 TransformationMatrix SVGResourceMarker::markerTransformation(const FloatPoint& origin, float angle, float strokeWidth) const
     58void SVGResourceMarker::setRef(double refX, double refY)
    5859{
    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;
    6662}
    6763
    68 void SVGResourceMarker::draw(RenderObject::PaintInfo& paintInfo, const TransformationMatrix& transform)
     64void SVGResourceMarker::draw(RenderObject::PaintInfo& paintInfo, double x, double y, double strokeWidth, double angle)
    6965{
    70     if (!m_renderer)
     66    if (!m_marker)
    7167        return;
    7268
     
    7874
    7975    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);
    8193
    8294    paintInfo.context->save();
    8395    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);
    8799    paintInfo.context->restore();
    88100
     101    m_cachedBounds = transform.mapRect(m_marker->absoluteClippedOverflowRect());
     102
    89103    currentlyDrawingMarkers.remove(this);
     104}
     105
     106FloatRect SVGResourceMarker::cachedBounds() const
     107{
     108    return m_cachedBounds;
    90109}
    91110
     
    100119        ts << angle() << "]";
    101120
    102     ts << " [ref x=" << m_referencePoint.x() << " y=" << m_referencePoint.y() << "]";
     121    ts << " [ref x=" << refX() << " y=" << refY() << "]";
    103122    return ts;
    104123}
  • trunk/WebCore/svg/graphics/SVGResourceMarker.h

    r52630 r52633  
    2828
    2929#if ENABLE(SVG)
     30
    3031#include "FloatRect.h"
    31 #include "FloatPoint.h"
    3232#include "RenderObject.h"
    3333#include "SVGResource.h"
     
    3636
    3737    class RenderSVGViewportContainer;
    38     class TransformationMatrix;
    3938
    4039    class SVGResourceMarker : public SVGResource {
     
    4342        virtual ~SVGResourceMarker();
    4443
    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*);
    4845
    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; }
    5149
    5250        void setAngle(float angle) { m_angle = angle; }
     
    5755        bool useStrokeWidth() const { return m_useStrokeWidth; }
    5856
    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       
    6160        virtual SVGResourceType resourceType() const { return MarkerResourceType; }
    6261        virtual TextStream& externalRepresentation(TextStream&) const;
     
    6463    private:
    6564        SVGResourceMarker();
    66 
    67         FloatPoint m_referencePoint;
     65        double m_refX, m_refY;
     66        FloatRect m_cachedBounds;
    6867        float m_angle;
    69         RenderSVGViewportContainer* m_renderer;
     68        RenderSVGViewportContainer* m_marker;
    7069        bool m_useStrokeWidth;
    7170    };
Note: See TracChangeset for help on using the changeset viewer.