diff --git a/desktop/flow-typed/npm/electron_v22.0.0.js b/desktop/flow-typed/npm/electron_v22.0.0.js --- a/desktop/flow-typed/npm/electron_v22.0.0.js +++ b/desktop/flow-typed/npm/electron_v22.0.0.js @@ -240,6 +240,7 @@ }; declare export type MenuItemConstructorOptions = { + click?: () => void, label?: string, submenu?: $ReadOnlyArray, type?: 'normal' | 'separator' | 'submenu' | 'checkbox' | 'radio', @@ -439,6 +440,7 @@ event: T, listener: $ElementType, ): void; + inspectSharedWorker(): void; } declare type WebContentsEvents = { 'did-finish-load': () => void, diff --git a/desktop/src/main.js b/desktop/src/main.js --- a/desktop/src/main.js +++ b/desktop/src/main.js @@ -29,7 +29,7 @@ 'utf8', ); -const setApplicationMenu = () => { +const setApplicationMenu = (mainWindow: BrowserWindow) => { let mainMenu = []; if (isMac) { mainMenu = [ @@ -62,6 +62,14 @@ { role: 'toggleDevTools' }, ], }; + if (isDev) { + viewMenu.submenu.push({ + label: 'Toggle Shared Worker Developer Tools', + click: () => { + mainWindow.webContents.inspectSharedWorker(); + }, + }); + } const windowMenu = { label: 'Window', submenu: [ @@ -216,6 +224,8 @@ const error = createErrorWindow(); const main = createMainWindow(urlPath); + setApplicationMenu(main); + let loadedSuccessfully = true; main.webContents.on('did-fail-load', () => { loadedSuccessfully = false; @@ -258,7 +268,6 @@ if (process.platform === 'win32') { app.setAppUserModelId('Comm'); } - setApplicationMenu(); (async () => { await app.whenReady();