From a3a7a65b1c89af5631436c06d2847fe7ad5c51cb Mon Sep 17 00:00:00 2001 From: Tim Ledbetter Date: Thu, 20 Jun 2024 09:20:15 +0100 Subject: [PATCH] LibWeb: Don't search non-visible text for find in page results Elements which are `display: none` or `visibility: hidden` are no longer included in find in page results. --- Userland/Libraries/LibWeb/DOM/Document.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Userland/Libraries/LibWeb/DOM/Document.cpp b/Userland/Libraries/LibWeb/DOM/Document.cpp index 46bb1f23b70..0848ba215ad 100644 --- a/Userland/Libraries/LibWeb/DOM/Document.cpp +++ b/Userland/Libraries/LibWeb/DOM/Document.cpp @@ -5129,6 +5129,9 @@ Vector> Document::find_matching_text(String const& query, Vector text_positions; Vector text_blocks; document_element()->layout_node()->for_each_in_inclusive_subtree([&](auto const& layout_node) { + if (layout_node.display().is_none() || !layout_node.paintable() || !layout_node.paintable()->is_visible()) + return TraversalDecision::Continue; + if (layout_node.is_block_container()) { if (!builder.is_empty()) { text_blocks.append({ builder.to_string_without_validation(), text_positions });