diff --git a/src/main/background.ts b/src/main/background.ts index ee1eb94..bcae0b4 100644 --- a/src/main/background.ts +++ b/src/main/background.ts @@ -55,6 +55,20 @@ function handleKernelMessage(event: MessageEvent) { } let data = event.data.data; + if (event.data.method === "kernelBridgeVersion") { + for (let [, port] of Object.entries(openPorts)) { + try { + (port as any).postMessage(event.data); + } catch {} + } + + return; + } + + if (event.origin !== "http://kernel.skynet") { + return; + } + if (event.data.method === "log") { if (data.isErr === false) { console.log(data.message); @@ -118,6 +132,11 @@ function handleBridgeMessage( return; } + if (data.method === "response") { + window.postMessage(data); + return; + } + if (data.method !== "queryUpdate") { queries[data.nonce] = (response: any) => { if (portNonce in openPorts) { diff --git a/src/main/bridge.ts b/src/main/bridge.ts index 42b6128..04440e3 100644 --- a/src/main/bridge.ts +++ b/src/main/bridge.ts @@ -49,14 +49,17 @@ port.onMessage.addListener(handleBackgroundMessage); // appeared which will need the auth status of the kernel repeated. function handleVersion(data: any) { // Send a message indicating that the bridge is alive. - window.postMessage({ + const message = { nonce: data.nonce, method: "response", err: null, data: { version: "v0.2.0", }, - }); + }; + + window.postMessage(message); + port.postMessage(message); // Wait until the kernel auth status is known, then send a message with // the kernel auth status.