keepassxc-browser icon indicating copy to clipboard operation
keepassxc-browser copied to clipboard

Can't use passkeys within a container tab

Open Ajnasz opened this issue 9 months ago • 1 comments

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)

  1. Install Multi-Account container add-on, and open GitHub in a container tab
  2. 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.

Ajnasz avatar May 06 '24 14:05 Ajnasz

Definitely Multi Account Containers. Looks like it is blocking stuff. You also might need to setup connection to keepassxc for each account container.

droidmonkey avatar May 06 '24 14:05 droidmonkey

It turned out it happens only with one of my containers. Opened a ticket for the other extension. Thank you!

Ajnasz avatar May 07 '24 07:05 Ajnasz

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 avatar May 07 '24 13:05 Ajnasz

@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.

varjolintu avatar May 07 '24 13:05 varjolintu