Protect against form overlays (#2676)

Protect against form overlays
This commit is contained in:
Sami Vänttinen 2025-09-06 14:34:39 +03:00 committed by GitHub
parent 5f4133e8a3
commit 77a1f62979
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -439,11 +439,19 @@ kpxcFields.isTopElement = function(elem, rect) {
}
// Check for popup overlays
const overlays = document.querySelectorAll(':popover-open');
for (const overlay of overlays) {
const overlayRect = overlay?.getBoundingClientRect();
if (overlayRect && elementsOverlap(rect, overlayRect)) {
return false;
try {
// :popover-open selector is supported only with Firefox >= 125 and Chrome >= 114
const overlays = document.querySelectorAll(':popover-open, [popover]');
for (const overlay of overlays) {
const overlayRect = overlay?.getBoundingClientRect();
if (overlayRect && elementsOverlap(rect, overlayRect)) {
return false;
}
}
} catch (e) {
// Ignore SyntaxError (e.g., unsupported selector)
if (!(e instanceof SyntaxError)) {
logError(e);
}
}