Use setDisplayMediaRequestHandler instead (#2266)

This commit is contained in:
Axel Eriksson 2025-01-22 11:38:50 +01:00 committed by GitHub
parent 5606a3e454
commit 1b83b36f55
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 25 additions and 2 deletions

View File

@ -115,14 +115,15 @@ export const setChromeFlags = () => {
export const setSessionProperties = () => {
logger.info(`chrome-flags: Settings session properties`);
const { customFlags } = config.getConfigFields(['customFlags']) as IConfig;
const { defaultSession } = session;
if (
session.defaultSession &&
defaultSession &&
customFlags &&
customFlags.authServerWhitelist &&
customFlags.authServerWhitelist !== ''
) {
session.defaultSession.allowNTLMCredentialsForDomains(
defaultSession.allowNTLMCredentialsForDomains(
customFlags.authServerWhitelist,
);
}

View File

@ -0,0 +1,20 @@
import { session } from 'electron';
/**
* This is currently supported only on macOS 15+.
* setDisplayMediaRequestHandler injects into navigator.mediaDevices.getDisplayMedia().
* With the macOS-only option { useSystemPicker: true },
* everyting is handled natively by the OS.
*
* For all other OSes and versions, the regular screen share flow will be used.
*/
export const setDisplayMediaRequestHandler = () => {
const { defaultSession } = session;
defaultSession.setDisplayMediaRequestHandler(
async (_request, _callback) => {
// TODO - Add support for Windows.
},
{ useSystemPicker: true },
);
};

View File

@ -8,6 +8,7 @@ import { cleanUpAppCache, createAppCacheFile } from './app-cache-handler';
import { setChromeFlags, setSessionProperties } from './chrome-flags';
import { config } from './config-handler';
import './dialog-handler';
import { setDisplayMediaRequestHandler } from './display-media-request-handler';
import './main-api-handler';
import { handlePerformanceSettings } from './perf-handler';
import { protocolHandler } from './protocol-handler';
@ -108,6 +109,7 @@ const startApplication = async () => {
// Picks global config values and updates them in the user config
await config.updateUserConfigOnStart();
setSessionProperties();
setDisplayMediaRequestHandler();
await autoUpdate.init();
await windowHandler.createApplication();
logger.info(`main: created application`);