Web: geïmporteerde SVG boven 256 KB toont een fout doordat Isolate.run niet bestaat #2789
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
release-blocker
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#2789
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Probleem en gebruikersimpact
sanitizeImportedSvgForDisplay(lib/utils/sanitize_svg.dart) saneert een SVG bovenkSvgSanitizeInlineMaxBytes(256 KB) viaIsolate.run. Het web kent dat niet. Een geïmporteerde SVG van die grootte valt in de browser daarom in de foutweergave vanSafeSvgImage, in de dia, de previews, de zoomdialoog en de presentatie. Kleinere SVG's werken wel. Ingevoerd met7729c6915(31-10-2026). Het is dezelfde foutklasse als #2764.Bewijs
Nieuwe toets in
test/sanitize_svg_test.dart, in Chrome (flutter test --platform chrome test/sanitize_svg_test.dart) tegen de huidigemain:Native is dezelfde toets groen.
SafeSvgImage.memory(de webroute) en.filelopen allebei via_cachedSvg→sanitizeImportedSvgForDisplay.Aanpak
Hetzelfde patroon als
ExportService._offloaden #2764:kIsWeb→ saneren op de main thread, native →Isolate.run. Daarnaast een statische regel intool/check_conventions.dart: een bestand datIsolate.run(aanroept, moet een platformpoort noemen. Onderflutter testiskIsWebaltijd false, dus de native suite kan dit niet vangen. Dat is dezelfde reden als bij de FilePicker-regel (#150/#506).Acceptatie
Isolate.run.Opgepakt in tak
fix/web-svg-sanitize. Raaktlib/utils/sanitize_svg.dart,test/sanitize_svg_test.dart,tool/check_conventions.dart(+ toets) endocs/CHECKS.md.Opgelost in
47559b73d(PR #2790). Op het web saneertsanitizeImportedSvgForDisplaynu inline; native gaat een SVG boven 256 KB zoals voorheen naar een worker. Nieuwe conventieregel: elkeIsolate.runinlib/noemt een platformpoort, zonder basislijn. Rood vóór de fix: de toets in Chrome, en de regel wees preciessanitize_svg.dart:85aan.make check/check-secrets/sastzijn groen.Niet meegenomen:
make check; ze staan indocs/CHECKS.md.