Keepassxc-browser: Login fields are not detected

Created on 13 May 2018  路  7Comments  路  Source: keepassxreboot/keepassxc-browser

Expected Behavior



Login fields should be detected and user prompted to fill them in as extension normally works.

Current Behavior



Login fields are not detected on https://cloud.digitalocean.com/login page.

Possible Solution



The same issue occurred with KeePassHTTP-Connector. I opened the bug: https://github.com/smorks/keepasshttp-connector/issues/82

Steps to Reproduce (for bugs)


  1. Go to https://cloud.digitalocean.com/login in Google Chrome
  2. Try to log in with browser extension

Debug info


JS console:

Uncaught TypeError: Cannot read property 'onMessage' of undefined
at keepassxc-browser.js:16

KeePassXC - 2.3.3
keepassxc-browser - 1.1.3
Operating system: Win 10
Browser: Chrome Version 66.0.3359.139 (Official Build) (64-bit)
Proxy used: YES (default configuration)
Browser Plugins: the same as in list from the above pasted issue. Cookie Autodelete was removed. Just these were added:

  • Follow this feed | Feedly
  • PhishProtect Beta
  • Click&Clean
PR pending Chrome bug

Most helpful comment

Update: actually it's not the global variable after all. Any element with id browser causes this. See https://jsfiddle.net/y2eb1t44/7/.

All 7 comments

It seems Firefox has no problem detecting the input fields.

@varjolintu Yes, I confirm FireFox is working with DigitalOcean login page. Firefox version - 59.0.3 (64-bit). The issue persists with Chrome only.

For some reason Chromium returns the following error from the content script:

Uncaught TypeError: Cannot read property 'onMessage' of undefined
    at keepassxc-browser.js:16

It's unclear why this happens, and only for this site.

For me neither in Firefox (60.0.1) nor Chrome (66.0.3359.181) the automatic password field detection is working. KeepassXC version is 2.3.3 and KeepassXC-Browser version is 1.1.3.
Operating System is Windows 10 64Bit.

I have two computers with identical versions and both show this issue.

I inspected the page in more detail and the only explanation I discovered is the page source code that declares var browser = document.getElementById('browser'); in line 133 which collides with the content script. When debugging keepassxc-browser.js you can clearly see Chrome is trying to access .runtime.onMessage of the input field, not the browser namespace. For me Firefox works and a the page variable doesn't override the namespace.

Update: actually it's not the global variable after all. Any element with id browser causes this. See https://jsfiddle.net/y2eb1t44/7/.

A bug has been created for this.

Was this page helpful?
0 / 5 - 0 ratings