From 9a1ccc6bfea0cf9370bbb66b28b978054dd49e26 Mon Sep 17 00:00:00 2001 From: Pierre Paridans Date: Tue, 17 May 2022 14:03:24 +0000 Subject: [PATCH] [FIX] web:
visiblity check regression in Chromium 97+ Since Chromium 97, folded `
` content has non-zero computed width and height which returns false-positive QUnit `assert.isNotVisible()` calls. In a nutshell, this was introduced in https://bugs.chromium.org/p/chromium/issues/detail?id=1185950 when Chromium implemented the ability for "Find in page" to search in folded `
`. To do so, the `content-visibility` rule was used instead of `display: none` which, even if functionally similar, has an impact on the values returned by `getBoundingClientRect()` (i.e. used in `assert.isNotVisible()`. A regression report was filled in https://bugs.chromium.org/p/chromium/issues/detail?id=1276028 to highlight this change of behavior. What emerged from this report's discussion is that Chromium has no intent to revert this change and instead put the emphasis on avoiding to use `getBoundingClientRect()` and similar methods for visibility check (even pushing a proposal for a `Element.isVisible()` API; cf. https://github.com/w3c/csswg-drafts/issues/6850). This commit works around this issue by forcing the content to `display: none`, like in the previous Chromium versions. X-original-commit: 9f20e7f6815bd241998b8ddd7012034577781359 --- addons/web/static/tests/qunit.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/addons/web/static/tests/qunit.js b/addons/web/static/tests/qunit.js index 45c8ec2b8dcc3..7c5f5309f1755 100644 --- a/addons/web/static/tests/qunit.js +++ b/addons/web/static/tests/qunit.js @@ -408,4 +408,16 @@ addSortButton(); } }); + + // ----------------------------------------------------------------------------- + // FIXME: This sounds stupid, it feels stupid... but it fixes visibility check in folded
since Chromium 97+ 💩 + // Since https://bugs.chromium.org/p/chromium/issues/detail?id=1185950 + // See regression report https://bugs.chromium.org/p/chromium/issues/detail?id=1276028 + // ----------------------------------------------------------------------------- + + QUnit.begin(() => { + const el = document.createElement("style"); + el.innerText = "details:not([open]) > :not(summary) { display: none; }"; + document.head.appendChild(el); + }); })();