keepassxreboot / keepassxc-browser

KeePassXC Browser Extension
GNU General Public License v3.0
1.74k stars 183 forks source link

rb Digital website doesn't work well with plugin #891

Closed DonnKey closed 4 years ago

DonnKey commented 4 years ago

The rb Digital website, which works with many public libraries for eBooks (etc.) does some very odd things with logins and passwords, particularly on the capture side.

1) After creating a login/password on the rbDigital website (you may need a library card for a subscribing library), the plugin won't actually save the new login/password pair. The click to commit the new entry seems to be ignored (or intercepted by the website, probably). It does appear to work correctly up to that point. (It's possible there's a hidden error message here, I wasn't looking for it, see below)

2) Changing a password with the plugin active is impossible. Go to "Hamburger"->My Account->Profiles->Change Password (lower right) (with this plugin enabled). It will recognize the old and new password fields, and fill the old one, but when you attempt to commit the change, nothing happens. It just sits there. If you close the plugin's toolbar, you'll discover an error message hidden under it about the password not being changed. Disabling the plugin does allow the password to be changed.

This website does seem to be a bit more "creative" than many.

Expected Behavior

Current Behavior

In both cases, it should set the new/updated credentials, either both KeePassXC and rbDigital.

Possible Solution

Workaround of "don't do that" is feasible; for ordinary login it seems fine.

Steps to Reproduce (for bugs)

as above

Debug info

KeePassXC - 2.5.4 KeePassXC-Browser - 1.6.3 Operating system: WIn Browser: Chrome Website actually used: http://kingcowa.rbdigital.com/home (Yes, it's http, not https (sigh), and kingcowa is "King County Washington" library system.) You will need to find a library (there are lots) that uses this app and for which you can get a library card. It will be http://your_library_here/rbdigitial.com/home

varjolintu commented 4 years ago

The login is not identified because the page uses a div with role="button". The banner still shows if you manually force it from the context menu using Save credentials.

I added support for the div[role="button"] and I also fixed the form detection. It didn't look for any of the parent elements.