[webkit-changes] [WebKit/WebKit] 0c33f2: [LBSE] Fix transform support for SVG <text> elements

Nikolas Zimmermann noreply at github.com
Thu Oct 20 14:07:31 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0c33f22a764e207a6818f558211b2b0d833df4b3
      https://github.com/WebKit/WebKit/commit/0c33f22a764e207a6818f558211b2b0d833df4b3
  Author: Nikolas Zimmermann <nzimmermann at igalia.com>
  Date:   2022-10-20 (Thu, 20 Oct 2022)

  Changed paths:
    M LayoutTests/platform/mac-monterey-wk2-lbse-text/TestExpectations
    M LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/types-basicDOM-01-b-expected.txt
    M LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/batik/text/smallFonts-expected.txt
    M LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/batik/text/textFeatures-expected.txt
    M LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/custom/SVGPoint-matrixTransform-expected.txt
    M LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/text/append-text-node-to-tspan-expected.txt
    M LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/text/font-size-below-point-five-2-expected.txt
    M LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/text/modify-text-node-in-tspan-expected.txt
    M LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/text/remove-text-node-from-tspan-expected.txt
    M LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/text/remove-tspan-from-text-expected.txt
    M Source/WebCore/rendering/RenderBox.h
    M Source/WebCore/rendering/RenderLayerModelObject.cpp
    M Source/WebCore/rendering/svg/RenderSVGBlock.cpp
    M Source/WebCore/rendering/svg/RenderSVGBlock.h
    M Source/WebCore/rendering/svg/RenderSVGText.cpp
    M Source/WebCore/rendering/svg/RenderSVGText.h
    M Source/WebCore/svg/SVGGraphicsElement.cpp
    M Source/WebCore/svg/SVGGraphicsElement.h
    M Source/WebCore/svg/SVGUseElement.cpp

  Log Message:
  -----------
  [LBSE] Fix transform support for SVG <text> elements
https://bugs.webkit.org/show_bug.cgi?id=245508

Reviewed by Rob Buis.

RenderSVGBlock::referenceBoxRect() was missing (affecting RenderSVGText), thus the
refeferenceBoxRect() for a RenderSVGText renderer was computed according to CSS rules,
see RenderBox::referenceBoxRect(), and not according to the SVG rules, implemented in
RenderLayerModelObject::referenceBoxRect() -- fix that.

This also uncovered a LBSE specific isssue with SMIL <animateMotion> - they were
post- instead of pre-multiplied, fix that as well, while I'm at it.

Covered by numerous existing tests that now function properly in LBSE.

* LayoutTests/platform/mac-monterey-wk2-lbse-text/TestExpectations:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/types-basicDOM-01-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/batik/text/smallFonts-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/batik/text/textFeatures-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/custom/SVGPoint-matrixTransform-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/text/append-text-node-to-tspan-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/text/font-size-below-point-five-2-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/text/modify-text-node-in-tspan-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/text/remove-text-node-from-tspan-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/text/remove-tspan-from-text-expected.txt:
* Source/WebCore/rendering/RenderBox.h:
* Source/WebCore/rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::applySVGTransform const):
(WebCore::RenderLayerModelObject::updateHasSVGTransformFlags):
* Source/WebCore/rendering/svg/RenderSVGBlock.cpp:
(WebCore::RenderSVGBlock::referenceBoxRect const):
* Source/WebCore/rendering/svg/RenderSVGBlock.h:
* Source/WebCore/rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::applyTransform const):
* Source/WebCore/rendering/svg/RenderSVGText.h:
* Source/WebCore/svg/SVGGraphicsElement.cpp:
(WebCore::SVGGraphicsElement::toClipPath):
* Source/WebCore/svg/SVGGraphicsElement.h:
(WebCore::SVGGraphicsElement::hasTransformRelatedAttributes const):
* Source/WebCore/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::toClipPath):

Canonical link: https://commits.webkit.org/255801@main




More information about the webkit-changes mailing list