From a49e84d28d1d9a0db8c257b0f04512ebbbfd2c32 Mon Sep 17 00:00:00 2001 From: varjolintu Date: Fri, 18 May 2018 12:54:18 +0300 Subject: [PATCH] Improve detection of username fields --- keepassxc-browser/keepassxc-browser.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/keepassxc-browser/keepassxc-browser.js b/keepassxc-browser/keepassxc-browser.js index 4191c5d..dd4e609 100755 --- a/keepassxc-browser/keepassxc-browser.js +++ b/keepassxc-browser/keepassxc-browser.js @@ -897,6 +897,14 @@ cipFields.getAllCombinations = function(inputs) { } } + if (fields.length === 0 && uField) { + const combination = { + username: uField[0].getAttribute('data-cip-id'), + password: null + }; + fields.push(combination); + } + return fields; }; @@ -1156,7 +1164,13 @@ let observer = new MutationObserver(function(mutations, observer) { if (inputs.length > neededLength && !_observerIds.includes(mut.target.id)) { // Save target element id for preventing multiple calls to initCredentialsFields() _observerIds.push(mut.target.id); - cip.initCredentialFields(true); + + // Sometimes the settings haven't been loaded before new input fields are detected + if (Object.keys(cip.settings).length === 0) { + cip.init(); + } else { + cip.initCredentialFields(true); + } } } }); @@ -1269,6 +1283,8 @@ cip.initCredentialFields = function(forceCall) { }).then(cip.retrieveCredentialsCallback).catch((e) => { console.log(e); }); + } else { + cip.preparePageForMultipleCredentials(cip.credentials); } }); };