From 1da6c76017567317d67e2a708682d8bbe40c88ad Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 10 Mar 2026 23:06:48 +0100 Subject: [PATCH] fix(electron): crash when cancelling screen picker Calling callback({}) with an empty object caused Electron to throw "Video was requested, but no video stream was provided". The correct way to cancel/deny the request is callback() with no arguments. Co-Authored-By: Claude Opus 4.6 --- electron/main.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/electron/main.js b/electron/main.js index 0f8233d..07b6f76 100644 --- a/electron/main.js +++ b/electron/main.js @@ -134,7 +134,7 @@ function createWindow() { session.defaultSession.setDisplayMediaRequestHandler(async (_request, callback) => { const sources = await desktopCapturer.getSources({ types: ['screen', 'window'], thumbnailSize: { width: 320, height: 180 } }); if (sources.length === 0) { - callback({}); + callback(); return; } @@ -232,7 +232,7 @@ document.getElementById('cancelBtn').addEventListener('click', () => { try { fs.unlinkSync(tmpFile); } catch {} if (!selection) { - callback({}); + callback(); return; } const selectedId = typeof selection === 'string' ? selection : selection.id; @@ -241,7 +241,7 @@ document.getElementById('cancelBtn').addEventListener('click', () => { if (chosen) { callback(withAudio ? { video: chosen, audio: 'loopback' } : { video: chosen }); } else { - callback({}); + callback(); } }; @@ -252,7 +252,7 @@ document.getElementById('cancelBtn').addEventListener('click', () => { if (!resolved) { resolved = true; ipcMain.removeListener(PICKER_CHANNEL, onPickerResult); - callback({}); + callback(); } }); });