KeePassXC-Browser chrome extension doesn't work in Brave or Brave-dev on MacOS. I have confirmed the extension works in Chrome.
Key exchange was not successful.
Consistant
Brave | 0.68.86 Chromium: 75.0.3770.100Â (Official Build)Â dev(64-bit)
-- | --
Revision | cd0b15c8b6a4e70c44e27f35c37a4029bad3e3b0-refs/branch-heads/3770@{#1033}
OS | Mac OS X
See related report on keepassxc-browser github: https://github.com/keepassxreboot/keepassxc-browser/issues/541
debug info:
Connecting to native messaging host org.keepassxc.keepassxc_browser
keepass.js:969 Failed to connect: Specified native messaging host not found.
keepass.js:1192 Objectmessage: (...)get message: Æ’ ()arguments: (...)caller: (...)length: 0name: ""__proto__: Æ’ ()apply: Æ’ apply()arguments: (...)bind: Æ’ bind()call: Æ’ call()caller: (...)constructor: Æ’ Function()length: 0name: ""toString: Æ’ toString()Symbol(Symbol.hasInstance): Æ’ [Symbol.hasInstance]()get arguments: Æ’ ()set arguments: Æ’ ()get caller: Æ’ ()set caller: Æ’ ()__proto__: Object[[FunctionLocation]]: <unknown>[[Scopes]]: Scopes[0]No properties[[Scopes]]: Scopes[0]No properties__proto__: Object
browser-polyfill.min.js:1 Returning a Promise is the preferred way to send a reply from an onMessage/onMessageExternal listener, as the sendResponse will be removed from the specs (See https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onMessage) Error
at B (chrome-extension://oboonakemofpalcgghocfoadofidjkkk/browser-polyfill.min.js:1:8152)
at chrome-extension://oboonakemofpalcgghocfoadofidjkkk/background/event.js:108:9
B @ browser-polyfill.min.js:1
keepass.js:1078 Error 5: Cannot connect to KeePassXC. Check that browser integration is enabled in KeePassXC settings.
keepass.js:993 Connecting to native messaging host org.keepassxc.keepassxc_browser
keepass.js:969 Failed to connect: Specified native messaging host not found.
keepass.js:1192 {}message: (...)get message: Æ’ ()arguments: (...)caller: (...)length: 0name: ""__proto__: Æ’ ()apply: Æ’ apply()arguments: (...)bind: Æ’ bind()call: Æ’ call()caller: (...)constructor: Æ’ Function()length: 0name: ""toString: Æ’ toString()Symbol(Symbol.hasInstance): Æ’ [Symbol.hasInstance]()get arguments: Æ’ ()set arguments: Æ’ ()get caller: Æ’ ()set caller: Æ’ ()__proto__: Object[[FunctionLocation]]: <unknown>[[Scopes]]: Scopes[0][[Scopes]]: Scopes[0]No properties__proto__: constructor: Æ’ ()__proto__: Object
keepass.js:1078 Error 9: Key exchange was not successful.
According to https://github.com/browserpass/browserpass-native/issues/43#issuecomment-481794094, this is caused by Brave browser still looking for native messaging hosts definitions from ~/Library/Application Support/Google/Chrome/NativeMessagingHosts, not ~/Library/Application Support/BraveSoftware/Brave-Browser{,-Dev,...}/NativeMessagingHosts.
I think this is a completely unexpected behavior and a bug of Brave browser.
@HarukaMa good catch - I believe we have a bug captured for this with https://github.com/brave/brave-browser/issues/5272
We did have this solved in Muon, but we didn't carry over the behavior
cc: @bridiver
I did install Brave browser for the first time today and that leads me to the same connecting problem described here (thanks HarukaMa!). Brave Version 1.2.43 Chromium: 79.0.3945.130 (Official Build) (64-bit), MacOS 10.13.6, KeePassXC 2.5.2, KeePassXC-Browser extension 1.5.4. My solution to make it works was to enable browser integration for Google Chrome in KeePassXC (Brave is not even enabled!). So this bug still needs to be taken care of…
I had the same issue.
Brave Version 1.2.43
Chromium: 79.0.3945.130 (Official Build) (64-bit)
KeePassXC-Browser Version: 1.5.4
KeePassXC Version: 2.5.3
Like @jobeleau2, enabling Google Chrome in KeePassXC browser integration settings fixed the issue.
Still occurring in Brave Version 1.8.96
Chromium: 81.0.4044.138 (Official Build) (64-bit)
KeePassXC-Browser Version: 1.6.3
KeePassXC Version: 2.5.4
MacOS Catalina Version 10.15.4 (19E287)
Like @jobeleau2, and @haloid2010, enabling Google Chrome in KeePassXC browser integration settings fixed the issue.
Strangely some similar fixed worked for me on macOS Catalina, running Brave and KeepassXC.
I started Brave with debugging enabled (https://www.chromium.org/for-testers/enable-logging) and could see, that the manifest for KeepasssXC Extension could not be found.
It was already in the following locations:
~/Library/Application Support/Chromium/NativeMessagingHosts/org.keepassxc.keepassxc_browser.json
~/Library/Application Support/BraveSoftware/Brave-Browser/NativeMessagingHosts/org.keepassxc.keepassxc_browser.json
but I had to also copy it to:
~/Library/Application Support/Google/Chrome/NativeMessagingHosts/org.keepassxc.keepassxc_browser.json
Very strange. Why is Brave looking there? I do not necessarily want my Native Messaging Hosts started from a "different" Browser ...?!
Note: I did have Google Chrome and Chromium activated in KeepassXC Browser Integration Tab
@ArneTR we look for them in Google/Chrome/NativeMessagingHosts because that is where the native extension apps normally put them. I don't know why Keypass is putting it in Chromium/NativeMessagingHosts, but that is not something we control. They are not "started from a different browser", that is just the location of the file that tells Brave (or Chrome) how to connect to the native app side of the extension. We also don't have the option of looking in more than one place because there is a single DIR_NATIVE_MESSAGING that the chromium code uses. We actually had to override it from the default of Chromium to Google/Chrome or many extensions (like 1password) don't work. I'm not sure if I would necessarily call this a Keypass "bug", but this works fine for extensions that use Google/Chrome/NativeMessagingHosts. I'm sure we have a contact at Keypass so we'll try to follow up with them
@jonathansampson maybe we can look in Chromium/NativeMessagingHosts and BraveSoftware/Brave-Browser/NativeMessagingHosts and copy any missing files to Google/Chrome/NativeMessagingHosts? @diracdeltas do you see any potential security issues with that? It shouldn't impact Chrome because if the extension isn't installed the native messaging manifest won't do anything
sgtm, assuming permissions on Chromium/NativeMessagingHosts and BraveSoftware/Brave-Browser/NativeMessagingHosts are not less strict than Google/Chrome/NativeMessagingHosts
Most helpful comment
I had the same issue.
Brave Version 1.2.43
Chromium: 79.0.3945.130 (Official Build) (64-bit)
KeePassXC-Browser Version: 1.5.4
KeePassXC Version: 2.5.3
Like @jobeleau2, enabling Google Chrome in KeePassXC browser integration settings fixed the issue.