Skip to content
  • ch.dumez@sisa.samsung.com's avatar
    Have SVGTextContentElement inherit SVGGraphicsElement · 50e120f6
    ch.dumez@sisa.samsung.com authored
    https://bugs.webkit.org/show_bug.cgi?id=118351
    
    Reviewed by Dirk Schulze.
    
    Source/WebCore:
    
    Have SVGTextContentElement inherit SVGGraphicsElement instead of
    SVGStyledElement in order to match the latest SVG2 specification:
    https://svgwg.org/svg2-draft/text.html#InterfaceSVGTextContentElement
    
    This patch also removes the SVGTransformable and SVGLocatable IDL
    interfaces as they are no longer needed (were merged into
    SVGGraphicsElement in the latest specification).
    
    This is one step towards getting rid of multiple inheritance in
    SVG, and complying with the latest SVG2 specification.
    
    No new tests, covered by existing tests.
    
    * DerivedSources.make:
    * WebCore.xcodeproj/project.pbxproj:
    * bindings/scripts/CodeGeneratorJS.pm:
    (GetGnuVTableOffsetForType):
    * bindings/scripts/CodeGeneratorObjC.pm:
    * svg/SVGAnimateMotionElement.cpp:
    (WebCore::SVGAnimateMotionElement::hasValidAttributeType):
    * svg/SVGElement.cpp:
    (WebCore::SVGElement::getBoundingBox):
    * svg/SVGLocatable.idl: Removed.
    * svg/SVGTextContentElement.cpp:
    (WebCore::SVGTextContentElement::SVGTextContentElement):
    (WebCore::SVGTextContentElement::isSupportedAttribute):
    (WebCore::SVGTextContentElement::isPresentationAttribute):
    (WebCore::SVGTextContentElement::collectStyleForPresentationAttribute):
    (WebCore::SVGTextContentElement::parseAttribute):
    (WebCore::SVGTextContentElement::svgAttributeChanged):
    * svg/SVGTextContentElement.h:
    * svg/SVGTextContentElement.idl:
    * svg/SVGTextElement.cpp:
    (WebCore::SVGTextElement::SVGTextElement):
    (WebCore::SVGTextElement::animatedLocalTransform):
    * svg/SVGTextElement.h:
    * svg/SVGTextElement.idl:
    * svg/SVGTransformable.idl: Removed.
    
    LayoutTests:
    
    Fix conversion to absolute (user agent) coordinates in the svg/text
    tests to use SVGGraphicsElement::getScreenCTM() instead of
    SVGGraphicsElement::getTransformToElement(). The previous code was
    working until now due to a bug in getTransformToElement(), which
    was not taking into consideration the CTM of the SVGTextElement (as
    it was not recognized as a "locatable" element). Now that
    SVGTextElement inherits from SVGGraphicsElement, it is properly
    recognized as a "locatable" element by getTransformToElement().
    
    * svg/text/resources/SelectionTestCase.js:
    (toAbsoluteCoordinates):
    * svg/text/selection-doubleclick.svg:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152404 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    50e120f6