Bug 241489

Summary: Track SVG renderer updates using a NodeFlag instead of on Style::Update
Product: WebKit Reporter: Cameron McCormack (:heycam) <heycam>
Component: SVGAssignee: Cameron McCormack (:heycam) <heycam>
Status: RESOLVED FIXED    
Severity: Normal CC: sabouhallawa, webkit-bug-importer, zimmermann
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=230296
https://bugs.webkit.org/show_bug.cgi?id=240112

Description Cameron McCormack (:heycam) 2022-06-09 14:00:32 PDT
SVG renderer updates are currently tracked as a kind of Style::Update change.  When a page is updating attributes on many SVG elements, but is not making changes that require a restyle on those elements, we can spend a lot of time hashing to store and look up the Style::Update associated with an element.

We could track the "SVG renderer update is needed" state using a Node flag instead, but continue using the Style::Update mechanism for root tracking, to reduce the overhead.
Comment 1 Radar WebKit Bug Importer 2022-06-09 14:00:54 PDT
<rdar://problem/94756741>
Comment 2 Cameron McCormack (:heycam) 2022-06-09 14:20:24 PDT
Pull request: https://github.com/WebKit/WebKit/pull/1430
Comment 3 Cameron McCormack (:heycam) 2022-06-13 22:01:30 PDT
Pull request: https://github.com/WebKit/WebKit/pull/1492
Comment 4 Cameron McCormack (:heycam) 2022-06-13 22:04:38 PDT
Pull request: https://github.com/WebKit/WebKit/pull/1493
Comment 5 EWS 2022-06-14 15:00:42 PDT
Committed r295539 (251544@main): <https://commits.webkit.org/251544@main>

Reviewed commits have been landed. Closing PR #1430 and removing active labels.