2023-07-17 19:28:58 +00:00
|
|
|
import { boot } from "./bootloader/kernel.js";
|
2022-07-29 10:37:20 +00:00
|
|
|
|
2023-04-03 17:29:20 +00:00
|
|
|
declare var browser: any; // tsc
|
2022-07-29 10:37:20 +00:00
|
|
|
|
2023-01-14 08:01:41 +00:00
|
|
|
document.title = "kernel.lume";
|
2022-07-29 10:37:20 +00:00
|
|
|
let header = document.createElement("h1");
|
|
|
|
header.textContent =
|
|
|
|
"Something went wrong! You should not be visiting this page, this page should only be accessed via an invisible iframe.";
|
|
|
|
document.body.appendChild(header);
|
|
|
|
|
2023-07-17 19:28:58 +00:00
|
|
|
function handleIncomingMessage(event: MessageEvent) {
|
2022-07-29 10:37:20 +00:00
|
|
|
if (event.source === null) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (event.source === window) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!("nonce" in event.data)) {
|
|
|
|
(event.source as WindowProxy).postMessage(
|
|
|
|
{
|
|
|
|
nonce: "N/A",
|
|
|
|
method: "response",
|
|
|
|
err: "message sent to kernel with no nonce",
|
|
|
|
},
|
2023-07-17 15:39:16 +00:00
|
|
|
event.origin,
|
2022-07-29 10:37:20 +00:00
|
|
|
);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!("method" in event.data)) {
|
|
|
|
(event.source as WindowProxy).postMessage(
|
|
|
|
{
|
|
|
|
nonce: event.data.nonce,
|
|
|
|
method: "response",
|
|
|
|
err: "message sent to kernel with no method",
|
|
|
|
},
|
2023-07-17 15:39:16 +00:00
|
|
|
event.origin,
|
2022-07-29 10:37:20 +00:00
|
|
|
);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
(event.source as WindowProxy).postMessage(
|
|
|
|
{
|
|
|
|
nonce: event.data.nonce,
|
|
|
|
method: "response",
|
|
|
|
err:
|
|
|
|
"unrecognized method (user may need to log in): " + event.data.method,
|
|
|
|
},
|
2023-07-17 15:39:16 +00:00
|
|
|
event.origin,
|
2022-07-29 10:37:20 +00:00
|
|
|
);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2023-07-17 19:28:58 +00:00
|
|
|
window.addEventListener("message", handleIncomingMessage);
|
2022-07-29 10:37:20 +00:00
|
|
|
|
2023-07-17 19:28:58 +00:00
|
|
|
boot();
|