mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 02:07:34 +00:00
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
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()
|
void HTMLSelectElement::update_inner_text_element()
|
||||||
{
|
{
|
||||||
|
if (!m_inner_text_element)
|
||||||
|
return;
|
||||||
|
|
||||||
// Update inner text element to text content of selected option
|
// Update inner text element to text content of selected option
|
||||||
for (auto const& option_element : list_of_options()) {
|
for (auto const& option_element : list_of_options()) {
|
||||||
if (option_element->selected()) {
|
if (option_element->selected()) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue