Explorar el Código

LibWeb: Return empty string if object element `data` URL is invalid

Tim Ledbetter hace 11 meses
padre
commit
c61262684b

+ 1 - 0
Tests/LibWeb/Text/expected/HTML/invalid-url-attribute-values.txt

@@ -1 +1,2 @@
 img.currentSrc default value: ''
+object.data default value: ''

+ 1 - 0
Tests/LibWeb/Text/input/HTML/invalid-url-attribute-values.html

@@ -4,6 +4,7 @@
     test(() => {
         const elementList = [
             { "img": "currentSrc" },
+            { "object": "data" },
         ];
         for (const elementDescriptor of elementList) {
             [elementName, propertyName] = Object.entries(elementDescriptor)[0];

+ 5 - 2
Userland/Libraries/LibWeb/HTML/HTMLObjectElement.cpp

@@ -77,8 +77,11 @@ void HTMLObjectElement::form_associated_element_was_removed(DOM::Node*)
 // https://html.spec.whatwg.org/multipage/iframe-embed-object.html#attr-object-data
 String HTMLObjectElement::data() const
 {
-    auto data = get_attribute_value(HTML::AttributeNames::data);
-    return MUST(document().parse_url(data).to_string());
+    auto data = get_attribute(HTML::AttributeNames::data);
+    if (!data.has_value())
+        return {};
+
+    return MUST(document().parse_url(*data).to_string());
 }
 
 JS::GCPtr<Layout::Node> HTMLObjectElement::create_layout_node(NonnullRefPtr<CSS::StyleProperties> style)