diff --git a/keepassxc-browser/common/sites.js b/keepassxc-browser/common/sites.js index 3267523..82f82f4 100644 --- a/keepassxc-browser/common/sites.js +++ b/keepassxc-browser/common/sites.js @@ -235,6 +235,20 @@ kpxcSites.popupExceptionFound = function(combinations) { return false; }; +/** + * Handles exceptions where a certain element is set as a popover, and it prevents input field detections. + * @param {object} elem Popover element + * @returns {boolean} True if exception found + */ +kpxcSites.overlayExceptionFound = function(elem) { + if (document.location.href?.startsWith('https://github.com/login') + && elem?.nodeName === 'TOOL-TIP' && elem?.baseURI === 'https://github.com/login') { + return true; + } + + return false; +}; + /** * Handles a few exceptions for certain sites where Username Icon is not placed properly. * @param {number} left Absolute left position of the icon diff --git a/keepassxc-browser/content/fields.js b/keepassxc-browser/content/fields.js index df909f5..d31ddab 100644 --- a/keepassxc-browser/content/fields.js +++ b/keepassxc-browser/content/fields.js @@ -495,6 +495,10 @@ kpxcFields.isTopElement = function(elem, rect) { // Check for popup overlays for (const overlay of kpxcFields.overlays ?? []) { + if (kpxcSites.overlayExceptionFound(overlay)) { + continue; + } + const overlayRect = overlay?.getBoundingClientRect(); if (overlayRect && elementsOverlap(rect, overlayRect)) { return false;