Przeglądaj źródła

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 miesięcy temu
rodzic
commit
77d30a0cb7

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

@@ -17,6 +17,7 @@
 #include <LibWeb/HTML/HTMLSelectElement.h>
 #include <LibWeb/HTML/HTMLSelectElement.h>
 #include <LibWeb/HighResolutionTime/TimeOrigin.h>
 #include <LibWeb/HighResolutionTime/TimeOrigin.h>
 #include <LibWeb/Infra/Strings.h>
 #include <LibWeb/Infra/Strings.h>
+#include <LibWeb/SVG/SVGScriptElement.h>
 
 
 namespace Web::HTML {
 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)
 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;
         return;
     if (is<DOM::Text>(node))
     if (is<DOM::Text>(node))
         builder.append(verify_cast<DOM::Text>(node)->data());
         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
 Found 11 tests
 
 
-10 Pass
-1 Fail
+11 Pass
 Details
 Details
 Result	Test Name	MessagePass	option.text should recurse	
 Result	Test Name	MessagePass	option.text should recurse	
 Pass	option.text should not recurse into HTML script elements	
 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 MathML script elements	
 Pass	option.text should recurse into null 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	
 Pass	option.text should work if a child of the option ends with a script