<!DOCTYPE html>
<title>MessagePort message events are trusted</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<link rel="help" href="https://html.spec.whatwg.org/multipage/comms.html#dom-messageport-postmessage">
<!-- See also:
- https://github.com/whatwg/html/issues/1602
- https://github.com/whatwg/html/pull/1935
-->

<script>
"use strict";

async_test(t => {
  assert_true("MessageChannel" in self, "The browser must support MessageChannel");

  const channel = new MessageChannel();

  channel.port2.onmessage = t.step_func_done(e => {
    assert_equals(e.isTrusted, true);
  });

  channel.port1.postMessage("ping");
}, "With a MessageChannel and its MessagePorts");

async_test(t => {
  assert_true("BroadcastChannel" in self, "The browser must support BroadcastChannel");

  const channel = new BroadcastChannel("channel name");

  channel.onmessage = t.step_func_done(e => {
    assert_equals(e.isTrusted, true);
  });

  new Worker("MessageEvent-trusted-worker.js");
}, "With a BroadcastChannel");

async_test(t => {
  window.onmessage = t.step_func_done(e => {
    assert_equals(e.isTrusted, true);
  });

  window.postMessage("ping", "*");
}, "With window");
</script>
