Bug 268376
| Summary: | [LegacySVG] SVG Marker is not showing if added in the next animation frame | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Roman Bruckner <bruckner.roman> |
| Component: | SVG | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED CONFIGURATION CHANGED | ||
| Severity: | Normal | CC: | ahmad.saleem792, alexander, caleb, graouts, rbuis, sabouhallawa, webkit-bug-importer, zimmermann |
| Priority: | P2 | Keywords: | InRadar |
| Version: | Safari 17 | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Roman Bruckner
The SVG Marker is not displayed if the `marker-start` attribute is added in `requestAnimationFrame`.
Here’s the minimum reproducible example: https://jsfiddle.net/kumilingus/k90h2Lt1/
Expected: The SVG path has the marker displayed.
Actual: No SVG marker is shown It works in all other browsers.
It used to work (not sure about the specific version). The bug has been introduced recently.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Ahmad Saleem
I am able to reproduce this bug on Safari 17.3 and WebKit ToT (273745@main).
@Roman - does this use to work earlier in Safari 16 or Safari 17.x? If yes, can you share the version number, it would be helpful.
Roman Bruckner
@ahmad Safari 16.6 is broken too. Sorry, that's all I know.
Radar WebKit Bug Importer
<rdar://problem/122384358>
Alexander Nestorov
The jsfiddle works as expected in Safari 15.6.1 (17613.3.9.1.16), but it doesn't in Safari 16.4.1 (17615.1.26.101.10, 17615). Both tested in Monterey 12.5.1.
Something got broken in between, maybe git bisect will be helpful?
Antoine Quint
This is great information, I should be able to find the commit where this regressed.
Antoine Quint
Going as far back as 253434@main, this bug reproduced.
Alexander Nestorov
If I'm reading correctly the relation between safari and webkit engine version, the bug should be somewhere between 613.3.9 and 615.1.26. Is that correct?
Caleb Hearon
I just encountered this bug. I don't think it has to do with RAF, but rather any change after the first render. The work-around is to remove the SVG element from the DOM and then add it back.
Here's the repro I made, with repro on the first button click, work-around on the second:
https://jsfiddle.net/51wgsby4/
Ahmad Saleem
Progressed with 304880@main.