From 509d4f56e4b33235bf682c7081da205c76ef18ec Mon Sep 17 00:00:00 2001 From: Erik Marks Date: Thu, 10 Oct 2024 14:53:59 -0700 Subject: [PATCH] feat(extension): Restore error logs in message handlers --- packages/extension/src/offscreen.ts | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/packages/extension/src/offscreen.ts b/packages/extension/src/offscreen.ts index 4bfdc87a7..109a71146 100644 --- a/packages/extension/src/offscreen.ts +++ b/packages/extension/src/offscreen.ts @@ -1,5 +1,9 @@ import { makePromiseKit } from '@endo/promise-kit'; -import { isKernelCommand, KernelCommandMethod } from '@ocap/kernel'; +import { + isKernelCommand, + isKernelCommandReply, + KernelCommandMethod, +} from '@ocap/kernel'; import type { KernelCommandReply, KernelCommand } from '@ocap/kernel'; import { ChromeRuntimeTarget, @@ -14,7 +18,7 @@ import { ExtensionVatWorkerServer } from './VatWorkerServer.js'; const logger = makeLogger('[ocap glue]'); -main().catch(console.error); +main().catch(logger.error); /** * The main function for the offscreen script. @@ -45,9 +49,12 @@ async function main(): Promise { kernelWorker.receiveMessages(), kernelInitKit.promise.then(async () => { for await (const message of backgroundStream) { - isKernelCommand(message) - ? await kernelWorker.sendMessage(message) - : logger.info('Received unexpected message', message); + if (!isKernelCommand(message)) { + logger.error('Offscreen received unexpected message', message); + continue; + } + + await kernelWorker.sendMessage(message); } return undefined; }), @@ -96,6 +103,11 @@ async function main(): Promise { // change once this offscreen script is providing services to the kernel worker that don't // involve the user. for await (const message of workerStream) { + if (!isKernelCommandReply(message)) { + logger.error('Kernel received unexpected message', message); + continue; + } + if (message.method === KernelCommandMethod.InitKernel) { logger.info('Kernel initialized.'); kernelInitKit.resolve();