From c999e279b6f3677df2a19fe71bb7c04ae08f4da4 Mon Sep 17 00:00:00 2001 From: Salah Benmoussati <51402489+sbenmoussati@users.noreply.github.com> Date: Wed, 5 Jun 2024 09:14:09 +0200 Subject: [PATCH] Upgrade electron@30.0.9 (#2158) * Upgrade electron@30.0.9 * Adapt media permissions handler due to types changes --- package.json | 2 +- src/app/window-actions.ts | 21 ++++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 59454432..01daa1a4 100644 --- a/package.json +++ b/package.json @@ -178,7 +178,7 @@ "builder-util-runtime": "^9.0.3", "cross-env": "7.0.3", "del": "3.0.0", - "electron": "29.3.1", + "electron": "30.0.9", "electron-builder": "^24.13.2", "electron-devtools-installer": "^3.2.0", "electron-icon-maker": "0.0.5", diff --git a/src/app/window-actions.ts b/src/app/window-actions.ts index 5d9dfe82..9fa84077 100644 --- a/src/app/window-actions.ts +++ b/src/app/window-actions.ts @@ -1,7 +1,8 @@ import { BrowserWindow, dialog, - PermissionRequestHandlerHandlerDetails, + MediaAccessPermissionRequest, + OpenExternalPermissionRequest, systemPreferences, WebContents, } from 'electron'; @@ -414,13 +415,13 @@ export const handleSessionPermissions = async ( * @param permission {boolean} - config value to a specific permission (only supports media permissions) * @param message {string} - custom message displayed to the user * @param callback {function} - * @param details {PermissionRequestHandlerHandlerDetails} - object passed along with certain permission types. see {@link https://www.electronjs.org/docs/api/session#sessetpermissionrequesthandlerhandler} + * @param details MediaAccessPermissionRequest see {@link https://www.electronjs.org/docs/latest/api/session/#sessetpermissionrequesthandlerhandler} */ const handleMediaPermissions = async ( permission: boolean, message: string, callback: (permission: boolean) => void, - details: PermissionRequestHandlerHandlerDetails, + details: MediaAccessPermissionRequest, ): Promise => { logger.info('window-action: permission is ->', permission); let systemAudioPermission; @@ -497,7 +498,7 @@ export const handlePermissionRequests = (webContents: WebContents): void => { PERMISSIONS_NAMESPACE, )(), callback, - details, + details as MediaAccessPermissionRequest, ); case Permissions.LOCATION: return handleSessionPermissions( @@ -546,9 +547,15 @@ export const handlePermissionRequests = (webContents: WebContents): void => { ); case Permissions.OPEN_EXTERNAL: if ( - details?.externalURL?.startsWith('symphony:') || - details?.externalURL?.startsWith('tel:') || - details?.externalURL?.startsWith('mailto:') + (details as OpenExternalPermissionRequest)?.externalURL?.startsWith( + 'symphony:', + ) || + (details as OpenExternalPermissionRequest)?.externalURL?.startsWith( + 'tel:', + ) || + (details as OpenExternalPermissionRequest)?.externalURL?.startsWith( + 'mailto:', + ) ) { return callback(true); }