From e1ad6789be4124bdd599fa59a08c79dd8d8fa72d Mon Sep 17 00:00:00 2001 From: Jan Svoboda Date: Wed, 29 Apr 2026 09:19:57 +0200 Subject: [PATCH 1/2] Fix icon placement for two step login scenario where username is hidden --- keepassxc-browser/content/icon-handler.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keepassxc-browser/content/icon-handler.js b/keepassxc-browser/content/icon-handler.js index 9406d9cb..8767d07f 100644 --- a/keepassxc-browser/content/icon-handler.js +++ b/keepassxc-browser/content/icon-handler.js @@ -54,10 +54,10 @@ kpxcIcons.addIconsFromForm = async function(form) { } } - if (c.username && !c.username.readOnly) { + if (c.username && !c.username.readOnly && kpxcFields.isVisible(c.username)) { kpxcIcons.addIcon(c.username, kpxcIcons.iconTypes.DEFAULT); - } else if (c.password && (!c.username || (c.username && c.username.readOnly))) { - // Single password field + } else if (c.password && (!c.username || c.username.readOnly || !kpxcFields.isVisible(c.username))) { + // Single password field, or username field is hidden (e.g. two-step login) kpxcIcons.addIcon(c.password, kpxcIcons.iconTypes.DEFAULT); } } From 88d124af9c9542886274904034a3cf3cb24fed2c Mon Sep 17 00:00:00 2001 From: Jan Svoboda Date: Mon, 4 May 2026 11:28:07 +0200 Subject: [PATCH 2/2] Improve username visibility check to avoid redundant DOM passes Co-authored-by: Copilot --- keepassxc-browser/content/icon-handler.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/keepassxc-browser/content/icon-handler.js b/keepassxc-browser/content/icon-handler.js index 8767d07f..a7262a08 100644 --- a/keepassxc-browser/content/icon-handler.js +++ b/keepassxc-browser/content/icon-handler.js @@ -53,10 +53,11 @@ kpxcIcons.addIconsFromForm = async function(form) { kpxcIcons.addIcon(c.passwordInputs[0], kpxcIcons.iconTypes.DEFAULT); } } - - if (c.username && !c.username.readOnly && kpxcFields.isVisible(c.username)) { + const usernameFieldVisible = c.username && kpxcFields.isVisible(c.username); + + if (c.username && !c.username.readOnly && usernameFieldVisible) { kpxcIcons.addIcon(c.username, kpxcIcons.iconTypes.DEFAULT); - } else if (c.password && (!c.username || c.username.readOnly || !kpxcFields.isVisible(c.username))) { + } else if (c.password && (!c.username || (c.username && (c.username.readOnly || !usernameFieldVisible)))) { // Single password field, or username field is hidden (e.g. two-step login) kpxcIcons.addIcon(c.password, kpxcIcons.iconTypes.DEFAULT); }