diff --git a/ui/desktop/app/initializers/ipc.js b/ui/desktop/app/initializers/ipc.js index 367c38691..1ac9a8287 100644 --- a/ui/desktop/app/initializers/ipc.js +++ b/ui/desktop/app/initializers/ipc.js @@ -1,4 +1,5 @@ import Ember from 'ember'; +import { assert } from '@ember/debug'; import config from '../config/environment'; /** @@ -38,12 +39,10 @@ export function initialize() { const mockIPC = new MockIPC(); window.addEventListener('message', async function (event) { if (event.origin !== window.location.origin) return; - const { method, payload } = event.data; - if (method) { - const response = - await mockIPC.invoke(method, payload); - event.ports[0].postMessage(response); - } + const { method, payload } = event?.data ?? {}; + assert(`IPC requires a method, you passed '${method}'.`, method); + const response = await mockIPC.invoke(method, payload); + event.ports[0].postMessage(response); }); } } diff --git a/ui/desktop/electron-app/src/handlers.js b/ui/desktop/electron-app/src/handlers.js index 62d79a8bd..11c34a5b3 100644 --- a/ui/desktop/electron-app/src/handlers.js +++ b/ui/desktop/electron-app/src/handlers.js @@ -25,6 +25,6 @@ ipcMain.handle('getOrigin', async (event, request) => { */ ipcMain.handle('setOrigin', async (event, request) => { log('setOrigin', request); - origin = request.data; + origin = request?.data; return origin; }); diff --git a/ui/desktop/electron-app/src/preload.js b/ui/desktop/electron-app/src/preload.js index 5b4b5085b..589b6734f 100644 --- a/ui/desktop/electron-app/src/preload.js +++ b/ui/desktop/electron-app/src/preload.js @@ -1,4 +1,5 @@ const { ipcRenderer } = require('electron'); + // Messages must originate from this origin const emberAppOrigin = window.location.origin; @@ -16,10 +17,10 @@ process.once('loaded', () => { */ window.addEventListener('message', async function (event) { if (event.origin !== emberAppOrigin) return; - const response = await ipcRenderer.invoke( - event.data.method, - event.data.payload - ); - event.ports[0].postMessage(response); + const { method, payload } = event?.data ?? {}; + if (method) { + const response = await ipcRenderer.invoke(method, payload); + event.ports[0].postMessage(response); + } }); });