瀏覽代碼

LibWeb: Return empty string if image element `currentSrc` URL is invalid

Tim Ledbetter 11 月之前
父節點
當前提交
4f7a4d9c57

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

@@ -0,0 +1 @@
+img.currentSrc default value: ''

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

@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<script src="../include.js"></script>
+<script>
+    test(() => {
+        const elementList = [
+            { "img": "currentSrc" },
+        ];
+        for (const elementDescriptor of elementList) {
+            [elementName, propertyName] = Object.entries(elementDescriptor)[0];
+            const element = document.createElement(elementName);
+            println(`${elementName}.${propertyName} default value: '${element[propertyName]}'`);
+        }
+    });
+</script>

+ 4 - 1
Userland/Libraries/LibWeb/HTML/HTMLImageElement.cpp

@@ -275,7 +275,10 @@ bool HTMLImageElement::complete() const
 String HTMLImageElement::current_src() const
 {
     // The currentSrc IDL attribute must return the img element's current request's current URL.
-    return MUST(m_current_request->current_url().to_string());
+    auto current_url = m_current_request->current_url();
+    if (!current_url.is_valid())
+        return {};
+    return MUST(current_url.to_string());
 }
 
 // https://html.spec.whatwg.org/multipage/embedded-content.html#dom-img-decode