Browse Source

LibWeb: Don't include SVG script element in HTMLOptionElement.text

We had an old FIXME for this from times before SVGScriptElement was
a thing in our codebase.
Andreas Kling 8 months ago
parent
commit
77d30a0cb7

+ 2 - 2
Libraries/LibWeb/HTML/HTMLOptionElement.cpp

@@ -17,6 +17,7 @@
 #include <LibWeb/HTML/HTMLSelectElement.h>
 #include <LibWeb/HighResolutionTime/TimeOrigin.h>
 #include <LibWeb/Infra/Strings.h>
+#include <LibWeb/SVG/SVGScriptElement.h>
 
 namespace Web::HTML {
 
@@ -88,8 +89,7 @@ WebIDL::ExceptionOr<void> HTMLOptionElement::set_value(String const& value)
 
 static void concatenate_descendants_text_content(DOM::Node const* node, StringBuilder& builder)
 {
-    // FIXME: SVGScriptElement should also be skipped, but it doesn't exist yet.
-    if (is<HTMLScriptElement>(node))
+    if (is<HTMLScriptElement>(node) || is<SVG::SVGScriptElement>(node))
         return;
     if (is<DOM::Text>(node))
         builder.append(verify_cast<DOM::Text>(node)->data());

+ 2 - 3
Tests/LibWeb/Text/expected/wpt-import/html/semantics/forms/the-option-element/option-text-recurse.txt

@@ -6,12 +6,11 @@ Rerun
 
 Found 11 tests
 
-10 Pass
-1 Fail
+11 Pass
 Details
 Result	Test Name	MessagePass	option.text should recurse	
 Pass	option.text should not recurse into HTML script elements	
-Fail	option.text should not recurse into SVG script elements	
+Pass	option.text should not recurse into SVG script elements	
 Pass	option.text should recurse into MathML script elements	
 Pass	option.text should recurse into null script elements	
 Pass	option.text should work if a child of the option ends with a script