Procházet zdrojové kódy

LibWeb: Don't crash when modifying detached progress element attributes

Tim Ledbetter před 1 rokem
rodič
revize
e795c24fdd

+ 1 - 0
Tests/LibWeb/Text/expected/HTML/HTMLProgressElement-detached.txt

@@ -0,0 +1 @@
+PASS (didn't crash)

+ 10 - 0
Tests/LibWeb/Text/input/HTML/HTMLProgressElement-detached.html

@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<script src="../include.js"></script>
+<script>
+    test(() => {
+        const progressElement = document.createElement("progress");
+        progressElement.max = 100;
+        progressElement.value = 50;
+        println("PASS (didn't crash)");
+    });
+</script>

+ 2 - 1
Userland/Libraries/LibWeb/HTML/HTMLProgressElement.cpp

@@ -114,7 +114,8 @@ void HTMLProgressElement::create_shadow_tree_if_needed()
 
 void HTMLProgressElement::update_progress_value_element()
 {
-    MUST(m_progress_value_element->style_for_bindings()->set_property(CSS::PropertyID::Width, MUST(String::formatted("{}%", position() * 100))));
+    if (m_progress_value_element)
+        MUST(m_progress_value_element->style_for_bindings()->set_property(CSS::PropertyID::Width, MUST(String::formatted("{}%", position() * 100))));
 }
 
 }