Explorar o código

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.
Tim Ledbetter hai 1 ano
pai
achega
a3a7a65b1c
Modificáronse 1 ficheiros con 3 adicións e 0 borrados
  1. 3 0
      Userland/Libraries/LibWeb/DOM/Document.cpp

+ 3 - 0
Userland/Libraries/LibWeb/DOM/Document.cpp

@@ -5129,6 +5129,9 @@ Vector<JS::Handle<DOM::Range>> Document::find_matching_text(String const& query,
         Vector<TextPosition> text_positions;
         Vector<TextBlock> 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 });