Web: automatische broncontrole faalt doordat Isolate.run niet wordt ondersteund #2764
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#2764
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
De automatische broncontrole van presentaties gebruikt in de webversie
Isolate.run. Dart4web ondersteunt deze aanroep niet. Na de wachttijd van 350 ms ontstaat een onafgevangen fout; bijgewerkte validatie, schrijftips en optionele Marp-controle worden niet geleverd en de pendingstatus wordt niet beëindigd.De editor plant de ronde al bij openen en opnieuw na een tekstwijziging. Zoeken is geen voorwaarde. Tekstverlies of een volledige appcrash is niet aangetoond.
Reproductie en bewijs
Open de presentatiebroneditor in Chrome met de productie-uitvoering van
deckChecksRunner, wijzig een teken en wacht meer dan 350 ms. Een browserregressie mag de runner niet door de synchrone widgettestfixture vervangen.De concrete Chrome-reproductie tijdens het zoekwerk leverde:
lib/services/deck_source_checks.dartis bytegelijk aan basiscommit580a344fb; SHA-256 van beide:79c64548254057ea0617cf58e682c50cd0b5e79b65fcf6e4fe734494ef50962d. Dit is een bestaande fout, afzonderlijk van #2705–#2708. De onafhankelijke zoekgeometrietest slaagt in Chrome en native met dezelfde synchrone fixture als de bestaande broneditortests; die fixture repareert de productiebroncontrole niet.Gerichte duplicaatcontrole inclusief gesloten issues vond geen passende melding. #2713 behandelde de prestaties van dezelfde bundel, #875 presentatie-import en #2661 file://-CORS; deze fout heeft een andere trigger.
Aanpak
Maak alleen de uitvoeringskeuze van de standaardrunner platformbewust: behoud achtergrondverwerking op native en gebruik op web een ondersteunde uitvoering. Behoud de pure controleregelset, debounce en bescherming tegen verouderde resultaten. Schakel controles niet uit en verberg de fout niet met een lege catch. Geen nieuwe afhankelijkheid of algemene workerarchitectuur nodig.
Acceptatie
Opgepakt in tak
fix/web-deck-checks-2764. Raaktlib/services/deck_source_checks.dart(standaardrunner: nativeIsolate.run, webFuture.sync, zoalsExportService._offload), een browserregressietest/markdown_deck_editor_web_test.dart,test/deck_source_checks_test.dart(native én Chrome),docs/CHECKS.mden de CHANGELOG.Opgelost in
3c88fd61d(PR #2788). De standaardrunner kiest nukIsWeb ? Future.sync : Isolate.run. Browserregressie zonder runnervervanging:test/markdown_deck_editor_web_test.dart(openen, wijzigen, verdwenen editor). Platformneutraal:test/deck_source_checks_test.dart(zelfde oordeel; native buiten de UI-isolate, bewezen met sabotage; verlopen ronde levert niets af). Rood vóór de fix: alle vier in Chrome.make check/check-secrets/sastzijn groen.Niet meegenomen:
make check(er is geen--platform chrome-doel); ze staan indocs/CHECKS.mdom los te draaien.lib/utils/sanitize_svg.dart(SVG > 256 KB) krijgt een eigen issue.