2011-06-30 Julien Chaffraix <jchaffraix@webkit.org>
authorJulien Chaffraix <jchaffraix@webkit.org>
Thu, 30 Jun 2011 20:50:16 +0000 (20:50 +0000)
committerAdemar de Souza Reis Jr <ademar.reis@openbossa.org>
Fri, 1 Jul 2011 16:53:14 +0000 (13:53 -0300)
commitadb427632610e8172fe7c5ddc10866483d0b8d55
treea3348b21abc667660ffff3badff1bc61c95bc1cd
parent173b2e23a546a1fffccb1c6a821b4a7aac00553a
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: http://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