keepassxc-browser
keepassxc-browser copied to clipboard
Can't use passkeys within a container tab
I tried to set up passkey in Firefox for GitHub. I downloaded KeepassXC 2.7.7 and tried to add a passkey.
I use Firefox tab container 8.1.3 extension, and GitHub lives in a separate container.
If i try to add the passkey I get an Authentication failed.
error message.
If I try within a regular non-container tab it works without an issue.
Expected Behavior
I expect to be able to use passkeys in a tab container.
Current Behavior
When I try to add a passkey in a Firefox tab container, I get an "Authentication failed" error.
I checked the console and the following error were shown:
I also tried to debug with the debugger, and a Restricted
text was shown as the value of the msg.detail
.
Steps to Reproduce (for bugs)
- Install Multi-Account container add-on, and open GitHub in a container tab
- Try to log in with passkey or add a new passkey to your GitHub account
Debug info
KeePassXC - 2.7.7 KeePassXC-Browser - 1.9.0.3 Operating system: Linux Browser: Firefox
Uncaught (in promise) Error: Permission denied to access property "then"
handler passkeys.js:27
postMessageToExtension passkeys.js:36
postMessageToExtension passkeys.js:20
get passkeys.js:127
E webauthn-json.browser-ponyfill.js:208
prompt webauthn-get-element.ts:171
l bind.js:73
[passkeys.js:27:28](moz-extension://eadc49e0-5736-44a0-9a89-297df7e5ee0e/content/passkeys.js)
prompt webauthn-get-element.ts:186
AsyncFunctionThrow self-hosted:803
(Async: async)
l bind.js:73
Additional info
I'm not sure which extension can and should handle the issue, so if you think it's the Multi Account Containers, I'm happy to report the issue there.
Definitely Multi Account Containers. Looks like it is blocking stuff. You also might need to setup connection to keepassxc for each account container.
It turned out it happens only with one of my containers. Opened a ticket for the other extension. Thank you!
I figured out the issue and it turned out that the issue was that my user agent was changed to chrome in the container, so the isFirefox() function returned false, so the firefox specific code was never called.
@Ajnasz Good to know. Maybe we could investigate some other method to verify if the browser in use is Firefox. Possibly checking some Firefox-only API etc.