1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 12:27:35 +00:00

LibWeb: Fix crashing after input into empty contenteditable

Change `EventHandler::handle_keydown()` to no longer assume the cursor
position's node is always a `DOM::Text`. While this assumption holds
for `HTMLInputElement` that has a shadow DOM with a text node, an empty
`contenteditable` might not have any children. With this change,
`handle_keydown()` creates a new text node if the cursor position's
node is not a text node.
This commit is contained in:
Aliaksandr Kalenik 2024-02-24 02:53:35 +01:00 committed by Andreas Kling
parent 5d76fa72e9
commit 906ac71eca
5 changed files with 47 additions and 9 deletions

View file

@ -0,0 +1,15 @@
<script src="../include.js"></script>
<style>
#input {
width: 100px;
height: 100px;
border: 1px solid black;
}
</style>
<div id="input" contenteditable="true"></div>
<script>
test(() => {
const input = document.getElementById("input");
internals.sendText(input, "hello");
});
</script>