2011-06-30 Julien Chaffraix <jchaffraix@webkit.org>
authorjchaffraix@webkit.org <jchaffraix@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 30 Jun 2011 20:50:16 +0000 (20:50 +0000)
committerjchaffraix@webkit.org <jchaffraix@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 30 Jun 2011 20:50:16 +0000 (20:50 +0000)
commit1234450c4077063b41cbcbc4d4b0737a426f32d6
treeb377cab2618aae7bd5dbe844611f51138aae3b76
parent05c32c3910c40237aa3a424e8175fade402b8910
2011-06-30  Julien Chaffraix  <jchaffraix@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Assertion failure in RenderSVGInlineText::characterStartsNewTextChunk
        https://bugs.webkit.org/show_bug.cgi?id=63076

        * svg/custom/crash-text-in-textpath-expected.txt: Added.
        * svg/custom/crash-text-in-textpath.svg: Added.
        Original crashing test case.

        * svg/custom/text-node-in-text-invalidated-expected.txt: Added.
        * svg/custom/text-node-in-text-invalidated.svg: Added.
        This test case was not crashing. However it is good to make sure this change
        did not regress that.
2011-06-30  Julien Chaffraix  <jchaffraix@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Assertion failure in RenderSVGInlineText::characterStartsNewTextChunk
        https://bugs.webkit.org/show_bug.cgi?id=63076

        Tests: svg/custom/crash-text-in-textpath.svg
               svg/custom/text-node-in-text-invalidated.svg

        The problem was that we did not call setNeedsPositionUpdate on RenderSVGText. When
        doing our layout, we would not update the attributes on our SVGRenderInlineText as
        we would not lay it out.

        This was caused by childrenChanged being overridden on SVGTextPositioningElement but
        not on SVGTextPathElement.

        As both classes shared the same mother class, it made sense to move the logic here.
        There should be no other side effects as SVGTextPathElement and SVGTextPositioningElement
        are the only classes deriving from SVGTextContentElement.

        * svg/SVGTextContentElement.cpp:
        (WebCore::SVGTextContentElement::childrenChanged): Moved this method from SVGTextPositioningElement.
        * svg/SVGTextContentElement.h:
        * svg/SVGTextPositioningElement.cpp:
        (WebCore::SVGTextPositioningElement::svgAttributeChanged): Updated after updatePositioningValuesInRenderer
        removal, replaced by RenderSVGText::locateRenderSVGTextAncestor.
        * svg/SVGTextPositioningElement.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@90156 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/svg/custom/crash-text-in-textpath-expected.txt [new file with mode: 0644]
LayoutTests/svg/custom/crash-text-in-textpath.svg [new file with mode: 0755]
LayoutTests/svg/custom/text-node-in-text-invalidated-expected.txt [new file with mode: 0644]
LayoutTests/svg/custom/text-node-in-text-invalidated.svg [new file with mode: 0755]
Source/WebCore/ChangeLog
Source/WebCore/svg/SVGTextContentElement.cpp
Source/WebCore/svg/SVGTextContentElement.h
Source/WebCore/svg/SVGTextPositioningElement.cpp
Source/WebCore/svg/SVGTextPositioningElement.h