diff options
| author | Danilo M. <danix@danix.xyz> | 2026-11-05 09:13:38 +0100 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-11-05 09:13:38 +0100 |
| commit | 3c421d6449e30e65753b42977646f3d24f1e31ef (patch) | |
| tree | 90c30bb62a4af37133e8b4dd3705523da969af38 /AGENTS.md | |
| parent | ebddebeb6c4f7bc4d48196e21bf4a942c5a8b176 (diff) | |
| download | HardenedPass-3c421d6449e30e65753b42977646f3d24f1e31ef.tar.gz HardenedPass-3c421d6449e30e65753b42977646f3d24f1e31ef.zip | |
fix(autofill-parser): open the save window on top on Android 14+
From Android 14 the framework sends the save IntentSender from the app
being filled. Firefox targets SDK 34 or later and does not opt in to
background activity starts, so the launch was blocked and
AutofillSaveActivity opened hidden behind it: tapping Save seemed to do
nothing. FixedSaveCallback now starts it from the service, which the
system has bound, and opts in as the sender.
Tested on an Android 14 tablet with Firefox release: the editor comes up
on its own and the entry is saved. The same run confirmed the stale
cached passphrase prompt, so both items leave TODO.md.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'AGENTS.md')
| -rw-r--r-- | AGENTS.md | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -122,8 +122,8 @@ instead: Last full emulator run (2026-11-04, Compose UI): clone over SSH, PGP import, decrypt, TOTP, create and push, conflict recovery (abort rebase, push a new branch), hard reset and -fingerprint unlock passed. Last Firefox autofill run on the tablet: 2026-11-04 (fill, passphrase -cache rule, no keys flow, picker, settings dialog), all passed. +fingerprint unlock passed. Last Firefox autofill run on the tablet: 2026-11-05 (fill, save, stale +cached passphrase), all passed. ## Verified facts and gotchas @@ -161,6 +161,10 @@ cache rule, no keys flow, picker, settings dialog), all passed. AES-GCM encrypted under Android Keystore keys by `util/crypto/KeystorePreferences.kt`. androidx security-crypto was removed; `removeSecurityCryptoData` in `Migrations.kt` deleted its data once on upgrade from 0.1.x. +- Autofill save on Android 14+: the framework sends the save `IntentSender` from the app being + filled, which is not opted in to background activity starts, so `AutofillSaveActivity` opens + hidden behind it (`Background activity launch blocked` in logcat). `FixedSaveCallback` starts it + from the service instead, which the system has bound. Firefox's own save prompt shows as well. - JGit is on 5.13.x, the last line that needs only Java 8 APIs. JGit 6+ needs Java 11 APIs Android only partly desugars; moving to it is a large, separate job. Window cache JMX is off in `Application` and GC runs without JGit's PID lock, because Android has no JMX. |
