brave-browser: KeePassXC-Browser chrome extension doesn't work in Brave on MacOS

Description

KeePassXC-Browser chrome extension doesn’t work in Brave or Brave-dev on MacOS. I have confirmed the extension works in Chrome.

Steps to Reproduce

  1. Install KeePassXC-Browser extension
  2. Enable browser integration for brave in KeePassXC (creates Brave-Browser/NativeMessagingHosts/org.keepassxc.keepassxc_browser.json - I copied manually for Brave-Browser-Dev)
  3. Try to connect to KeePassXC through the extension

Actual result:

Key exchange was not successful.

Expected result:

Reproduces how often:

Consistant

Brave version (brave://version info)

Version/Channel Information:

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
  • Can you reproduce this issue with the current release? yes
  • Can you reproduce this issue with the beta channel? didnt try
  • Can you reproduce this issue with the dev channel? yes
  • Can you reproduce this issue with the nightly channel? didnt try

Other Additional Information:

  • Does the issue resolve itself when disabling Brave Shields? n/a
  • Does the issue resolve itself when disabling Brave Rewards? n/a
  • Is the issue reproducible on the latest version of Chrome? No, extension works as expected on latest Chrome

Miscellaneous Information:

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.

About this issue

  • Original URL
  • State: open
  • Created 5 years ago
  • Reactions: 6
  • Comments: 21 (2 by maintainers)

Most upvoted comments

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.

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.

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…

martin-braun, I use it with Brave for many years now. May be you have to enable it for Chrome (same framework, if i remember well).

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

Works for me on Linux.

# cp ~/.config/google-chrome/NativeMessagingHosts/org.keepassxc.keepassxc_browser.json ~/.config/BraveSoftware/Brave-Browser/NativeMessagingHosts/

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