mirror of
https://github.com/lightpanda-io/browser.git
synced 2026-03-22 04:34:44 +00:00
Don't assume that a 'keydown' event is a KeyboardEvent
This commit is contained in:
@@ -3069,7 +3069,7 @@ pub fn triggerKeyboard(self: *Page, keyboard_event: *KeyboardEvent) !void {
|
||||
}
|
||||
|
||||
pub fn handleKeydown(self: *Page, target: *Node, event: *Event) !void {
|
||||
const keyboard_event = event.as(KeyboardEvent);
|
||||
const keyboard_event = event.is(KeyboardEvent) orelse return;
|
||||
const key = keyboard_event.getKey();
|
||||
|
||||
if (key == .Dead) {
|
||||
|
||||
@@ -103,3 +103,16 @@
|
||||
document.dispatchEvent(new KeyboardEvent('keytest', {key: 'b'}));
|
||||
testing.expectEqual(false, keyIsTrusted);
|
||||
</script>
|
||||
|
||||
<script id=non_keyboard_keydown>
|
||||
// this used to crash
|
||||
{
|
||||
let called = false;
|
||||
const div = document.createElement('div')
|
||||
div.addEventListener('keydown', () => {
|
||||
called = true;
|
||||
});
|
||||
div.dispatchEvent(new Event('keydown'));
|
||||
testing.expectEqual(true, called);
|
||||
}
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user