From 98403691d100fec0804c86d8b89d0d3f8da68354 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Iv=C3=A1n=20Vieitez=20Parra?= <3857362+corrideat@users.noreply.github.com> Date: Mon, 31 Jul 2023 23:22:07 +0200 Subject: fix: call setIsTrusted for generated events (MessageEvent) (#19919) This addresses issue #19918. ## Issue description Event messages have the wrong isTrusted value when they are not triggered by user interaction, which differs from the browser. In particular, all MessageEvents created by Deno have isTrusted set to false, even though it should be true. This is my first ever contribution to Deno, so I might be missing something. --- ext/web/13_message_port.js | 3 +++ 1 file changed, 3 insertions(+) (limited to 'ext/web') diff --git a/ext/web/13_message_port.js b/ext/web/13_message_port.js index 08f668b2d..40145db78 100644 --- a/ext/web/13_message_port.js +++ b/ext/web/13_message_port.js @@ -14,6 +14,7 @@ import { EventTarget, MessageEvent, setEventTargetData, + setIsTrusted, } from "ext:deno_web/02_event.js"; import DOMException from "ext:deno_web/01_dom_exception.js"; const primordials = globalThis.__bootstrap.primordials; @@ -155,6 +156,7 @@ class MessagePort extends EventTarget { transferables = v[1]; } catch (err) { const event = new MessageEvent("messageerror", { data: err }); + setIsTrusted(event, true); this.dispatchEvent(event); return; } @@ -165,6 +167,7 @@ class MessagePort extends EventTarget { (t) => ObjectPrototypeIsPrototypeOf(MessagePortPrototype, t), ), }); + setIsTrusted(event, true); this.dispatchEvent(event); } this[_enabled] = false; -- cgit v1.2.3