fix: remove experimental useSystemPicker causing double-picker and no audio on macOS
useSystemPicker triggers applyConstraints to re-open the system picker (Electron #44684) and doesn't reliably pass audio capture. All platforms now use the custom Aether Drift picker with explicit loopback control.
This commit is contained in:
@@ -598,9 +598,7 @@ if (!gotTheLock) {
|
|||||||
await session.defaultSession.clearCache();
|
await session.defaultSession.clearCache();
|
||||||
|
|
||||||
// Intercept getDisplayMedia() — show custom picker in renderer.
|
// Intercept getDisplayMedia() — show custom picker in renderer.
|
||||||
// useSystemPicker: on macOS 15+, the native system picker runs instead of
|
// Audio loopback controlled by user's shareAudio toggle.
|
||||||
// our handler, allowing Chromium's restrictOwnAudio constraint to work
|
|
||||||
// natively (no audio feedback). On Windows/Linux the handler is called.
|
|
||||||
session.defaultSession.setDisplayMediaRequestHandler(async (_request, callback) => {
|
session.defaultSession.setDisplayMediaRequestHandler(async (_request, callback) => {
|
||||||
console.log('[Main:ScreenShare] Handler invoked');
|
console.log('[Main:ScreenShare] Handler invoked');
|
||||||
try {
|
try {
|
||||||
@@ -658,7 +656,7 @@ if (!gotTheLock) {
|
|||||||
// @ts-ignore — deny the request without crashing
|
// @ts-ignore — deny the request without crashing
|
||||||
callback();
|
callback();
|
||||||
}
|
}
|
||||||
}, { useSystemPicker: true });
|
});
|
||||||
|
|
||||||
registerIpcHandlers();
|
registerIpcHandlers();
|
||||||
createWindow();
|
createWindow();
|
||||||
|
|||||||
Reference in New Issue
Block a user