mirror of
https://github.com/lightpanda-io/browser.git
synced 2026-03-22 12:44:43 +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 {
|
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();
|
const key = keyboard_event.getKey();
|
||||||
|
|
||||||
if (key == .Dead) {
|
if (key == .Dead) {
|
||||||
|
|||||||
@@ -103,3 +103,16 @@
|
|||||||
document.dispatchEvent(new KeyboardEvent('keytest', {key: 'b'}));
|
document.dispatchEvent(new KeyboardEvent('keytest', {key: 'b'}));
|
||||||
testing.expectEqual(false, keyIsTrusted);
|
testing.expectEqual(false, keyIsTrusted);
|
||||||
</script>
|
</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