⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 280887 in webkit


Ignore:
Timestamp:
Aug 11, 2021, 12:43:42 AM (5 years ago)
Author:
commit-queue@webkit.org
Message:

[SVG] Attribute change triggers redundant (and out of order) setNeedsLayout call
https://bugs.webkit.org/show_bug.cgi?id=228125

Patch by Rob Buis <rbuis@igalia.com> on 2021-08-11
Reviewed by Darin Adler.

As explained in the bug the setNeedsLayout call is redundant, however
keep using it for embedded SVG's to update width/height of the embedder.

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::svgAttributeChanged):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r280881 r280887  
     12021-08-11  Rob Buis  <rbuis@igalia.com>
     2
     3        [SVG] Attribute change triggers redundant (and out of order) setNeedsLayout call
     4        https://bugs.webkit.org/show_bug.cgi?id=228125
     5
     6        Reviewed by Darin Adler.
     7
     8        As explained in the bug the setNeedsLayout call is redundant, however
     9        keep using it for embedded SVG's to update width/height of the embedder.
     10
     11        * svg/SVGSVGElement.cpp:
     12        (WebCore::SVGSVGElement::svgAttributeChanged):
     13
    1142021-08-10  Chris Dumez  <cdumez@apple.com>
    215
  • trunk/Source/WebCore/svg/SVGSVGElement.cpp

    r278669 r280887  
    210210        invalidateSVGPresentationalHintStyle();
    211211
    212         if (auto renderer = this->renderer())
    213             RenderSVGResource::markForLayoutAndParentResourceInvalidation(*renderer);
     212        if (auto renderer = this->renderer()) {
     213            if (is<RenderSVGRoot>(renderer) && downcast<RenderSVGRoot>(*renderer).isEmbeddedThroughFrameContainingSVGDocument())
     214                RenderSVGResource::markForLayoutAndParentResourceInvalidation(*renderer);
     215        }
    214216        return;
    215217    }
    216    
     218
    217219    if (SVGFitToViewBox::isKnownAttribute(attrName)) {
    218220        if (auto* renderer = this->renderer()) {
Note: See TracChangeset for help on using the changeset viewer.