keepassium / KeePassium

KeePass-compatible password manager for iOS
https://keepassium.com
Other
1.2k stars 103 forks source link

macOS: Quick AutoFill is broken #392

Open TheFrenchGhosty opened 1 month ago

TheFrenchGhosty commented 1 month ago

Description

When using Quick AutoFill in Safari on macOS, the dialog will pop up, but when the KeePassium "box" open, nothing will work and it will be stuck on an empty screen, this box isn't possible to be closed, so Safari has to be quit.

Using "normal" AutoFill works, it only happens with Quick AutoFill.

How to reproduce

Expected behavior

It works (and the window can be closed)

Screenshots

Screenshot-2024-10-12-17-13-52@2x

Environment:

Additional context

Maybe related to https://github.com/keepassium/KeePassium/issues/259

feld commented 1 month ago

Did you import a Keepass database that was created elsewhere? I had this happen and the issue was that the autofill functionality here has some limitations (memory usage??) and you need to change your Keepass database to the default Keepassium encryption settings: ChaCha20, Argon2d, 100 rounds, 1MB memory usage, 2 threads

That solved the problem for me

TheFrenchGhosty commented 1 month ago

@feld

Did you import a Keepass database that was created elsewhere?

I am using the same database as I'm using in KeePassXC yes, it was created in KeePassXC

you need to change your Keepass database to the default Keepassium encryption settings: ChaCha20, Argon2d, 100 rounds, 1MB memory usage, 2 threads

I'd rather use the default from KeePassXC... those should work if the DB is unlocked already (it works on iPadOS)

svezg commented 1 month ago

Same issue here; it does not happen every time but more than half of the attempts.

tibideky commented 3 weeks ago

Same issue here, for me it happens every time when using Quickfill (autofill works ok without Quickfill)

keepassium commented 2 weeks ago

Hello everyone, sorry for the long silence.

I can reproduce the issue. Apparently, AutoFill lifecycle has changed again, so the system now calls AutoFill methods in a different order than KeePassium expects. This had happened before and AutoFill is already a patchwork of conditional code that "mostly works" on iOS 15-18 and macOS 12-15. Fixing it with yet another patch would likely break things on older systems.

So our plan is to drop older systems, increasing the the minimum requirement to iOS 17 and macOS 14 (the ones we can actually test), then re-analyze the current AutoFill lifecycle, and rewire things accordingly. This is at the top of the queue, but might take some time to finish. Stay tuned!