Changeset 286942 in webkit


Ignore:
Timestamp:
Dec 13, 2021 2:29:36 AM (7 months ago)
Author:
Martin Robinson
Message:

transform-origin on SVG elements does not take into account the transform reference box origin
https://bugs.webkit.org/show_bug.cgi?id=234078

Reviewed by Rob Buis.

Source/WebCore:

No new tests. This is covered by existing WPT tests.

  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::animatedLocalTransform const): Add the reference box origin
to the calculated reference box offset when calculating the transform origin for SVG.

LayoutTests:

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r286931 r286942  
     12021-12-13  Martin Robinson  <mrobinson@webkit.org>
     2
     3        `transform-origin` on SVG elements does not take into account the transform reference box origin
     4        https://bugs.webkit.org/show_bug.cgi?id=234078
     5
     6        Reviewed by Rob Buis.
     7
     8        * TestExpectations: Mark tests as passing.
     9
    1102021-12-12  Alan Bujtas  <zalan@apple.com>
    211
  • trunk/LayoutTests/TestExpectations

    r286924 r286942  
    39903990webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-fixed-bg-006.html [ ImageOnlyFailure ]
    39913991webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-fixed-bg-007.html [ ImageOnlyFailure ]
    3992 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-016.html [ ImageOnlyFailure ]
    3993 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-020.html [ ImageOnlyFailure ]
    3994 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-021.html [ ImageOnlyFailure ]
    3995 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-022.html [ ImageOnlyFailure ]
    3996 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-023.html [ ImageOnlyFailure ]
    3997 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-024.html [ ImageOnlyFailure ]
    3998 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-025.html [ ImageOnlyFailure ]
    3999 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-026.html [ ImageOnlyFailure ]
    4000 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-027.html [ ImageOnlyFailure ]
    4001 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-028.html [ ImageOnlyFailure ]
    4002 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-029.html [ ImageOnlyFailure ]
    4003 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-030.html [ ImageOnlyFailure ]
    4004 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-031.html [ ImageOnlyFailure ]
    4005 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-032.html [ ImageOnlyFailure ]
    4006 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-033.html [ ImageOnlyFailure ]
    4007 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-034.html [ ImageOnlyFailure ]
    4008 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-035.html [ ImageOnlyFailure ]
    4009 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-036.html [ ImageOnlyFailure ]
    4010 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-037.html [ ImageOnlyFailure ]
    4011 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-038.html [ ImageOnlyFailure ]
    4012 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-039.html [ ImageOnlyFailure ]
    4013 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-040.html [ ImageOnlyFailure ]
    4014 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-041.html [ ImageOnlyFailure ]
    4015 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-042.html [ ImageOnlyFailure ]
    4016 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-043.html [ ImageOnlyFailure ]
    4017 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-044.html [ ImageOnlyFailure ]
    4018 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-045.html [ ImageOnlyFailure ]
    4019 webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-origin/svg-origin-relative-length-046.html [ ImageOnlyFailure ]
    40203992webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-percent-008.html [ ImageOnlyFailure ]
    40213993webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-percent-010.html [ ImageOnlyFailure ]
  • trunk/Source/WebCore/ChangeLog

    r286940 r286942  
     12021-12-13  Martin Robinson  <mrobinson@webkit.org>
     2
     3        `transform-origin` on SVG elements does not take into account the transform reference box origin
     4        https://bugs.webkit.org/show_bug.cgi?id=234078
     5
     6        Reviewed by Rob Buis.
     7
     8        No new tests. This is covered by existing WPT tests.
     9
     10        * svg/SVGGraphicsElement.cpp:
     11        (WebCore::SVGGraphicsElement::animatedLocalTransform const): Add the reference box origin
     12        to the calculated reference box offset when calculating the transform origin for SVG.
     13
    1142021-12-13  Youenn Fablet  <youenn@apple.com>
    215
  • trunk/Source/WebCore/svg/SVGGraphicsElement.cpp

    r284853 r286942  
    102102    if (!hasSpecifiedTransform && style) {
    103103        auto boundingBox = SVGRenderSupport::transformReferenceBox(*renderer(), *this, *style);
    104         auto t = floatPointForLengthPoint(style->transformOriginXY(), boundingBox.size());
     104        auto t = floatPointForLengthPoint(style->transformOriginXY(), boundingBox.size()) + boundingBox.location();
    105105        matrix.translate(t);
    106106        matrix *= transform().concatenate();
Note: See TracChangeset for help on using the changeset viewer.