LibWeb: Skip select element internal shadow tree update unless it exists
This fixes a crash seen on https://www.gaslightanthem.com/
This commit is contained in:
parent
6713ed483b
commit
58b5181364
Notes:
sideshowbarker
2024-07-17 07:38:17 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/58b5181364 Pull-request: https://github.com/SerenityOS/serenity/pull/22786
3 changed files with 16 additions and 0 deletions
|
@ -0,0 +1 @@
|
|||
PASS
|
|
@ -0,0 +1,12 @@
|
|||
<script src="../include.js"></script>
|
||||
<script>
|
||||
test(() => {
|
||||
let select = document.createElement("select");
|
||||
let option = document.createElement("option");
|
||||
option.setAttribute("selected", "selected");
|
||||
option.setAttribute("value", "foo");
|
||||
select.appendChild(option);
|
||||
select.value = "foo";
|
||||
println("PASS"); // Didn't crash
|
||||
});
|
||||
</script>
|
|
@ -383,6 +383,9 @@ void HTMLSelectElement::create_shadow_tree_if_needed()
|
|||
|
||||
void HTMLSelectElement::update_inner_text_element()
|
||||
{
|
||||
if (!m_inner_text_element)
|
||||
return;
|
||||
|
||||
// Update inner text element to text content of selected option
|
||||
for (auto const& option_element : list_of_options()) {
|
||||
if (option_element->selected()) {
|
||||
|
|
Loading…
Add table
Reference in a new issue