[webkit-changes] [WebKit/WebKit] 76697a: Make RenderSVGPath check if its path is created be...

Said Abou-Hallawa noreply at github.com
Wed Jun 21 14:05:33 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 76697a3fe448ca55326e8b18e0ee20d44494509d
      https://github.com/WebKit/WebKit/commit/76697a3fe448ca55326e8b18e0ee20d44494509d
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2023-06-21 (Wed, 21 Jun 2023)

  Changed paths:
    M Source/WebCore/rendering/svg/LegacyRenderSVGEllipse.cpp
    M Source/WebCore/rendering/svg/LegacyRenderSVGEllipse.h
    M Source/WebCore/rendering/svg/LegacyRenderSVGPath.cpp
    M Source/WebCore/rendering/svg/LegacyRenderSVGPath.h
    M Source/WebCore/rendering/svg/LegacyRenderSVGRect.cpp
    M Source/WebCore/rendering/svg/LegacyRenderSVGRect.h
    M Source/WebCore/rendering/svg/LegacyRenderSVGShape.cpp
    M Source/WebCore/rendering/svg/LegacyRenderSVGShape.h
    M Source/WebCore/rendering/svg/RenderSVGEllipse.cpp
    M Source/WebCore/rendering/svg/RenderSVGEllipse.h
    M Source/WebCore/rendering/svg/RenderSVGPath.cpp
    M Source/WebCore/rendering/svg/RenderSVGPath.h
    M Source/WebCore/rendering/svg/RenderSVGRect.cpp
    M Source/WebCore/rendering/svg/RenderSVGRect.h
    M Source/WebCore/rendering/svg/RenderSVGShape.cpp
    M Source/WebCore/rendering/svg/RenderSVGShape.h

  Log Message:
  -----------
  Make RenderSVGPath check if its path is created before calling RenderSVGShape::strokeShape()
https://bugs.webkit.org/show_bug.cgi?id=258333
rdar://110382674

Reviewed by Cameron McCormack.

1) Remove the flag `m_usePathFallback` from the SVG renderers. It is always set
to false when the fallback Path is cleared. It is set to true when the base class
method updateShapeFromElement() is called. So replace `m_usePathFallback` with
`hasPath()`.

2) RenderSVGShape has two strokeShape() functions. Both take a GraphicsContext as
an argument. One of them is marked as const and the other is  not. They have two
different behaviors. To remove this confusion, add a RenderStyle as an argument
to the non const one and rename the similar one strokeShapeInternal().

* Source/WebCore/rendering/svg/LegacyRenderSVGEllipse.cpp:
(WebCore::LegacyRenderSVGEllipse::LegacyRenderSVGEllipse):
(WebCore::LegacyRenderSVGEllipse::updateShapeFromElement):
(WebCore::LegacyRenderSVGEllipse::fillShape const):
(WebCore::LegacyRenderSVGEllipse::strokeShape const):
(WebCore::LegacyRenderSVGEllipse::shapeDependentStrokeContains):
(WebCore::LegacyRenderSVGEllipse::shapeDependentFillContains const):
* Source/WebCore/rendering/svg/LegacyRenderSVGEllipse.h:
* Source/WebCore/rendering/svg/LegacyRenderSVGPath.cpp:
(WebCore::LegacyRenderSVGPath::strokeShape const):
(WebCore::LegacyRenderSVGPath::strokeZeroLengthSubpaths const):
* Source/WebCore/rendering/svg/LegacyRenderSVGPath.h:
* Source/WebCore/rendering/svg/LegacyRenderSVGRect.cpp:
(WebCore::LegacyRenderSVGRect::LegacyRenderSVGRect):
(WebCore::LegacyRenderSVGRect::updateShapeFromElement):
(WebCore::LegacyRenderSVGRect::fillShape const):
(WebCore::LegacyRenderSVGRect::strokeShape const):
(WebCore::LegacyRenderSVGRect::shapeDependentStrokeContains):
(WebCore::LegacyRenderSVGRect::shapeDependentFillContains const):
* Source/WebCore/rendering/svg/LegacyRenderSVGRect.h:
* Source/WebCore/rendering/svg/LegacyRenderSVGShape.cpp:
(WebCore::LegacyRenderSVGShape::strokeShapeInternal):
(WebCore::LegacyRenderSVGShape::strokeShape):
(WebCore::LegacyRenderSVGShape::fillStrokeMarkers):
* Source/WebCore/rendering/svg/LegacyRenderSVGShape.h:
* Source/WebCore/rendering/svg/RenderSVGEllipse.cpp:
(WebCore::RenderSVGEllipse::RenderSVGEllipse):
(WebCore::RenderSVGEllipse::updateShapeFromElement):
(WebCore::RenderSVGEllipse::fillShape const):
(WebCore::RenderSVGEllipse::strokeShape const):
(WebCore::RenderSVGEllipse::shapeDependentStrokeContains):
(WebCore::RenderSVGEllipse::shapeDependentFillContains const):
* Source/WebCore/rendering/svg/RenderSVGEllipse.h:
* Source/WebCore/rendering/svg/RenderSVGPath.cpp:
(WebCore::RenderSVGPath::strokeShape const):
(WebCore::RenderSVGPath::strokeZeroLengthSubpaths const):
* Source/WebCore/rendering/svg/RenderSVGPath.h:
* Source/WebCore/rendering/svg/RenderSVGRect.cpp:
(WebCore::RenderSVGRect::RenderSVGRect):
(WebCore::RenderSVGRect::updateShapeFromElement):
(WebCore::RenderSVGRect::fillShape const):
(WebCore::RenderSVGRect::strokeShape const):
(WebCore::RenderSVGRect::shapeDependentStrokeContains):
(WebCore::RenderSVGRect::shapeDependentFillContains const):
* Source/WebCore/rendering/svg/RenderSVGRect.h:
* Source/WebCore/rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::strokeShapeInternal):
(WebCore::RenderSVGShape::strokeShape):
(WebCore::RenderSVGShape::fillStrokeMarkers):
* Source/WebCore/rendering/svg/RenderSVGShape.h:

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




More information about the webkit-changes mailing list