diff options
author | Ricardo Iván Vieitez Parra <3857362+corrideat@users.noreply.github.com> | 2023-07-31 23:22:07 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-31 23:22:07 +0200 |
commit | 98403691d100fec0804c86d8b89d0d3f8da68354 (patch) | |
tree | 2757dc1a0ed392a9f2ca403903a078c6f61e8605 /ext/web/13_message_port.js | |
parent | aa8078b6888ee4d55ef348e336e076676dffc25f (diff) |
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.
Diffstat (limited to 'ext/web/13_message_port.js')
-rw-r--r-- | ext/web/13_message_port.js | 3 |
1 files changed, 3 insertions, 0 deletions
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; |