From 2cffdfa9d70f604b1b53a892def8f3b4a6bedf2f Mon Sep 17 00:00:00 2001 From: Stefan Sundin Date: Mon, 23 Dec 2019 21:36:22 -0800 Subject: [PATCH] Do not add helpers on fields that have autocomplete="off" or autocomplete="new-password". Identify fields with autocomplete="one-time-code" as TOTP fields. --- keepassxc-browser/content/keepassxc-browser.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/keepassxc-browser/content/keepassxc-browser.js b/keepassxc-browser/content/keepassxc-browser.js index e064e27..326bed6 100755 --- a/keepassxc-browser/content/keepassxc-browser.js +++ b/keepassxc-browser/content/keepassxc-browser.js @@ -300,11 +300,16 @@ kpxcFields.isVisible = function(field) { return true; }; +kpxcFields.isAutocompleteAppropriate = function(field) { + const autocomplete = field.getLowerCaseAttribute('autocomplete'); + return !(autocomplete === 'off' || autocomplete === 'new-password'); +}; + kpxcFields.getAllFields = function() { const fields = []; const inputs = kpxcObserverHelper.getInputs(document); for (const i of inputs) { - if (kpxcFields.isVisible(i) && !kpxcFields.isSearchField(i)) { + if (kpxcFields.isVisible(i) && !kpxcFields.isSearchField(i) && kpxcFields.isAutocompleteAppropriate(i)) { kpxcFields.setUniqueId(i); fields.push(i); } @@ -992,8 +997,9 @@ kpxc.initOTPFields = function(inputs, databaseClosed) { for (const i of inputs) { const id = i.getLowerCaseAttribute('id'); const name = i.getLowerCaseAttribute('name'); + const autocomplete = i.getLowerCaseAttribute('autocomplete'); - if (acceptedOTPFields.some(f => (id && id.includes(f)) || (name && name.includes(f)))) { + if (autocomplete === 'one-time-code' || acceptedOTPFields.some(f => (id && id.includes(f)) || (name && name.includes(f)))) { kpxcTOTPIcons.newIcon(i, _databaseClosed); } }