From fdf7fc5326c4c503b54fce105b52ebdebd70fd33 Mon Sep 17 00:00:00 2001 From: Martin Robinson Date: Tue, 26 Apr 2022 08:40:26 +0000 Subject: [PATCH] Bug 1766265 - Content hidden by `content-visibility` should not trigger intersection observers r=emilio Differential Revision: https://phabricator.services.mozilla.com/D144584 --- dom/base/DOMIntersectionObserver.cpp | 9 +++++++++ .../content-visibility/content-visibility-030.html.ini | 4 ---- 2 files changed, 9 insertions(+), 4 deletions(-) delete mode 100644 testing/web-platform/meta/css/css-contain/content-visibility/content-visibility-030.html.ini diff --git a/dom/base/DOMIntersectionObserver.cpp b/dom/base/DOMIntersectionObserver.cpp index 945b171fd8db..e56c99a85074 100644 --- a/dom/base/DOMIntersectionObserver.cpp +++ b/dom/base/DOMIntersectionObserver.cpp @@ -598,6 +598,15 @@ void DOMIntersectionObserver::Update(Document* aDocument, return false; } + // "From the perspective of an IntersectionObserver, the skipped contents + // of an element are never intersecting the intersection root. This is + // true even if both the root and the target elements are in the skipped + // contents." + // https://drafts.csswg.org/css-contain/#cv-notes + if (targetFrame->AncestorHidesContent()) { + return false; + } + // 2.1. If the intersection root is not the implicit root and target is // not a descendant of the intersection root in the containing block // chain, skip further processing for target. diff --git a/testing/web-platform/meta/css/css-contain/content-visibility/content-visibility-030.html.ini b/testing/web-platform/meta/css/css-contain/content-visibility/content-visibility-030.html.ini deleted file mode 100644 index 73150067d0e0..000000000000 --- a/testing/web-platform/meta/css/css-contain/content-visibility/content-visibility-030.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[content-visibility-030.html] - [IntersectionObserver interactions] - expected: FAIL -