| <!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> |