From 589ff8b1981e029f59037049353af054a52bd0c7 Mon Sep 17 00:00:00 2001 From: varjolintu Date: Mon, 12 Jul 2021 18:27:22 +0300 Subject: [PATCH] Check for form opacity --- keepassxc-browser/content/keepassxc-browser.js | 7 +++++++ keepassxc-browser/content/ui.js | 2 ++ 2 files changed, 9 insertions(+) diff --git a/keepassxc-browser/content/keepassxc-browser.js b/keepassxc-browser/content/keepassxc-browser.js index 8955573..77e3d7b 100755 --- a/keepassxc-browser/content/keepassxc-browser.js +++ b/keepassxc-browser/content/keepassxc-browser.js @@ -631,7 +631,9 @@ kpxcFields.isVisible = function(elem) { // Check CSS visibility const elemStyle = getComputedStyle(elem); + const opacity = Number(elemStyle.opacity); if (elemStyle.visibility && (elemStyle.visibility === 'hidden' || elemStyle.visibility === 'collapse') + || (opacity < MIN_OPACITY || opacity > MAX_OPACITY) || parseInt(elemStyle.width, 10) <= MIN_INPUT_FIELD_WIDTH_PX || parseInt(elemStyle.height, 10) <= MIN_INPUT_FIELD_WIDTH_PX) { return false; @@ -642,6 +644,11 @@ kpxcFields.isVisible = function(elem) { return false; } + // If the input field belongs to a form, check its visibility also + if (elem.nodeName === 'INPUT' && elem.form && !kpxcFields.isVisible(elem.form)) { + return false; + } + return true; }; diff --git a/keepassxc-browser/content/ui.js b/keepassxc-browser/content/ui.js index b8018d2..c403e8c 100644 --- a/keepassxc-browser/content/ui.js +++ b/keepassxc-browser/content/ui.js @@ -4,6 +4,8 @@ const MIN_TOTP_INPUT_LENGTH = 6; const MAX_TOTP_INPUT_LENGTH = 10; const MIN_INPUT_FIELD_WIDTH_PX = 8; const MIN_INPUT_FIELD_OFFSET_WIDTH = 60; +const MIN_OPACITY = 0.7; +const MAX_OPACITY = 1; const DatabaseState = { DISCONNECTED: 0,