From 29b637d2cc62f2fdf74ce22719471f149e1e1e3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?arijiiiitttt=F0=9F=8D=89?= Date: Wed, 29 Apr 2026 12:52:03 +0530 Subject: [PATCH 1/2] fix: reject getDisplayMedia calls without user gesture on server view --- src/screenSharing/serverViewScreenSharing.ts | 28 +++++++++++--------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/screenSharing/serverViewScreenSharing.ts b/src/screenSharing/serverViewScreenSharing.ts index 3a2cc2f2ba..a5d1038cf6 100644 --- a/src/screenSharing/serverViewScreenSharing.ts +++ b/src/screenSharing/serverViewScreenSharing.ts @@ -69,19 +69,23 @@ export const setupServerViewDisplayMedia = ( const currentProvider = provider; try { guestWebContents.session.setDisplayMediaRequestHandler( - (_request, cb) => { - try { - currentProvider.handleDisplayMediaRequest(cb); - } catch (error) { - console.error( - 'Server view screen sharing: error in handler:', - error - ); - cb({ video: false } as any); - } - }, - { useSystemPicker: false } + (request, cb) => { + if (!request.userGesture) { + cb({} as any); + return; + } + try { + currentProvider.handleDisplayMediaRequest(cb); + } catch (error) { + console.error( + 'Server view screen sharing: error in handler:', + error ); + cb({ video: false } as any); + } + }, + { useSystemPicker: false } +); prewarmDesktopCapturerCache(); } catch (error) { console.error( From e12d8a5c9021daa9fab47b1c08ef98d4fd9c1294 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?arijiiiitttt=F0=9F=8D=89?= Date: Wed, 29 Apr 2026 13:21:45 +0530 Subject: [PATCH 2/2] chore: fix prettier formatting in serverViewScreenSharing --- src/screenSharing/serverViewScreenSharing.ts | 32 ++++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/screenSharing/serverViewScreenSharing.ts b/src/screenSharing/serverViewScreenSharing.ts index a5d1038cf6..9a8d4d3796 100644 --- a/src/screenSharing/serverViewScreenSharing.ts +++ b/src/screenSharing/serverViewScreenSharing.ts @@ -69,23 +69,23 @@ export const setupServerViewDisplayMedia = ( const currentProvider = provider; try { guestWebContents.session.setDisplayMediaRequestHandler( - (request, cb) => { - if (!request.userGesture) { - cb({} as any); - return; - } - try { - currentProvider.handleDisplayMediaRequest(cb); - } catch (error) { - console.error( - 'Server view screen sharing: error in handler:', - error + (request, cb) => { + if (!request.userGesture) { + cb({} as any); + return; + } + try { + currentProvider.handleDisplayMediaRequest(cb); + } catch (error) { + console.error( + 'Server view screen sharing: error in handler:', + error + ); + cb({ video: false } as any); + } + }, + { useSystemPicker: false } ); - cb({ video: false } as any); - } - }, - { useSystemPicker: false } -); prewarmDesktopCapturerCache(); } catch (error) { console.error(