Geef de toestemmingspoort een uitweg zonder akkoord (#1207) #1212
No reviewers
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!1212
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/1207-consent-exit"
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?
Wat
Fix voor #1207: op Windows zat een gebruiker die de voorwaarden bij de eerste
start niet accepteerde klem — geen weg vooruit of terug, alleen de app killen.
Waarom het vastliep
configureNativeWindowzetsetPreventClose(true), en alleen de shell(
AppShell.onWindowClose) handelt dat sluiten weer af. Zolang detoestemmingspoort in beeld is, draait de shell nog niet — dus de kruis-knop
deed niets en er was geen uitgang.
De fix
quitApp()in de native-window-laag:windowManager.destroy()op desktop,no-op op web (
native_window_io.dart/native_window_stub.dart).ConsentDialog. De knop hangt bewust niet van het vinkje af — hij is erjuist voor wie niet instemt. Op web valt de knop weg: een tabblad sluiten
werkt daar altijd en een pagina kan zichzelf niet betrouwbaar afsluiten.
make add-l10n).Regressietest
test/consent_and_license_test.dart→ "een uitweg blijft open zonder akkoord(#1207)": pint dat de afsluitknop aanwezig én bruikbaar is terwijl "Akkoord
gaan" nog grijs is. De knop rendert op de macOS-testhost omdat
isDesktopNativeop
Platform.isMacOSsteunt. Het feitelijke afsluiten (windowManager.destroy)valt buiten
flutter test— dat is een platformkanaal — dus de test borgt deuitweg-affordance, niet de OS-aanroep zelf.
Poorten
make check— groen (format, analyze, conventies, methodelengte, dode code,hardcoded-text, comment-language, volledige testsuite, dekkingsvloer 87,7%).
make check-secrets— schoon (gitleaks + trufflehog, geen leaks).make sast— schoon (semgrep, 0 findings).Bewaker
Bewust overgeslagen: deze wijziging raakt geen bestandsformaat, opslag,
afhankelijkheid, uitgaand verkeer of publieke belofte. Ze voegt enkel een
uitweg toe aan de toestemmingspoort en verzwakt geen enkele belofte (de
gebruiker kan nu juist wél weigeren).