38 lines
860 B
HTML
38 lines
860 B
HTML
<!doctype html>
|
|
<meta charset="utf-8">
|
|
|
|
Testing browser.test.onMessage event from
|
|
a page hosted on web-platform.test.
|
|
|
|
<script>
|
|
"use strict";
|
|
|
|
function send(detail) {
|
|
dispatchEvent(new CustomEvent("testMsg", { detail }));
|
|
}
|
|
|
|
function listener(message, data) {
|
|
send({ message, data });
|
|
}
|
|
|
|
window.subscribe = () => {
|
|
if (!window.browser) {
|
|
send({ error: "Missing browser namespace." });
|
|
return;
|
|
}
|
|
if (!window.browser.test?.onMessage?.addListener) {
|
|
send({ error: "Missing browser.test.onMessage.addListener." });
|
|
return;
|
|
}
|
|
browser.test.onMessage.addListener(listener);
|
|
|
|
// If other things don't resolve collection of messages, explicit timeout.
|
|
setTimeout(() => send({ error: "timeout" }), 5_000);
|
|
}
|
|
|
|
window.unsubscribe = () => {
|
|
browser.test.onMessage.removeListener(listener);
|
|
send({ done: "unsubscribed" });
|
|
}
|
|
|
|
</script>
|