From f198eaf6f37839d6eac1595cdc681c93a86f7ec6 Mon Sep 17 00:00:00 2001 From: r-zakarya <82443831+r-zakarya@users.noreply.github.com> Date: Sun, 26 Jul 2026 00:05:49 +0100 Subject: [PATCH] =?UTF-8?q?docs:=20K1=20=E2=80=94=20the=20clear-field=20to?= =?UTF-8?q?ggle=20vs=20Tab-selects-all,=20intentional?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Records why disabling "Clear the field before typing" still leaves the password replaced: Tab selects the target field's content, so the keystrokes overwrite it. Our code clears nothing — verified from the JS clear=0 through both ClearFieldIfWanted guards. The toggle exists to avoid sending Ctrl+A (terminals, remote desktops), not to preserve field content. Filed as intentional so it isn't "fixed" later into appending a new password onto the old one. Co-Authored-By: Claude Opus 4.8 --- TEST_SCENARIOS.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/TEST_SCENARIOS.md b/TEST_SCENARIOS.md index 94ea029..56211c3 100644 --- a/TEST_SCENARIOS.md +++ b/TEST_SCENARIOS.md @@ -413,6 +413,34 @@ est précisément le piège de coalescence documenté dans CLAUDE.md. --- +## K — Autofill : comportements intentionnels (à ne pas « corriger ») + +### K1 · « Clear the field before typing » désactivé → le password est quand même remplacé +- **ACTION** : Settings → Autofill → décocher *Clear the field before typing*. + Puis remplissage complet (`Ctrl+Shift+L`, ou clic-droit dans la quick search) + sur un formulaire dont les deux champs contiennent déjà quelque chose. +- **OBSERVÉ** : le **username** n'est pas effacé (la frappe s'insère), mais + l'ancien **password** disparaît et est remplacé. +- **C'EST NORMAL** — vérifié de bout en bout : le JS envoie `&clear=0`, Delphi + met `FAutofillPendingClear := False`, et les **deux** `ClearFieldIfWanted` + (avant username et avant password) sortent immédiatement. Notre code + n'efface rien. + La cause est le **Tab** du pipeline `username → Tab → password` : arriver + dans un champ par Tab **sélectionne tout son contenu** (comportement standard + Windows / navigateur), et la frappe remplace la sélection. Le username, lui, + a été focalisé par un **clic** de l'utilisateur → curseur sans sélection → + insertion. +- **Ce que le réglage fait réellement** : empêcher l'envoi de `Ctrl+A`. Il + existe pour les terminaux / bureaux distants où `Ctrl+A` signifie « début de + ligne » ou déclenche le préfixe tmux, ce qui casserait le remplissage. Il ne + promet pas de préserver le contenu des champs. +- **Ne pas « corriger »** : désélectionner après le Tab ferait **concaténer** le + nouveau mot de passe à l'ancien — jamais souhaitable. +- **Test qui isole la cause** : `Ctrl+Shift+P` (password seul) en cliquant + directement dans le champ → pas de Tab → l'ancienne valeur **reste**. + +--- + ## Reste à traiter (constaté pendant l'audit, non corrigé) 1. **Attachments hors garde A11.** Le contrôle « changed elsewhere » couvre le