Bug 268909

Summary: Unify cycle detection logic for legacy & LBSE
Product: WebKit Reporter: Nikolas Zimmermann <zimmermann>
Component: SVGAssignee: Nikolas Zimmermann <zimmermann>
Status: RESOLVED FIXED    
Severity: Normal CC: heycam, rbuis, sabouhallawa, webkit-bug-importer, zimmermann
Priority: P2 Keywords: InRadar
Version: WebKit Local Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 90738, 265134    

Description Nikolas Zimmermann 2024-02-07 04:32:45 PST
Cycle detection logic is spread over multiple files with different implementations: SVGSMILElement use SVGElement-based cycle detection logic, LegacyRenderSVGShape/Image/..., RenderSVGShape/Image/ResourceClipper/... use RenderElement-based cycle detection logic (abusing SVGHitTestCycleDetectionScope, which is now used throughout LBSE, not only for hit-testing).

Provide a shared SVGVisitedElementTracking / SVGVisitedRendererTracking implementation that is used for recursion-prevention, used for both legacy & LBSE.
Comment 1 Nikolas Zimmermann 2024-02-07 04:47:07 PST
Pull request: https://github.com/WebKit/WebKit/pull/23995
Comment 2 EWS 2024-02-09 15:06:39 PST
Committed 274392@main (3bd5bd5c81f2): <https://commits.webkit.org/274392@main>

Reviewed commits have been landed. Closing PR #23995 and removing active labels.
Comment 3 Radar WebKit Bug Importer 2024-02-09 15:07:39 PST
<rdar://problem/122672522>