fix: remove setDisplayMediaRequestHandler to let restrictOwnAudio work natively

The custom screen share picker intercepted getDisplayMedia() and created
a raw loopback stream, bypassing Chromium's constraint pipeline entirely.
restrictOwnAudio was silently discarded. Removing the handler lets
Chromium 144's native getDisplayMedia run end-to-end with restrictOwnAudio
applied, eliminating the audio feedback loop in the desktop app.
This commit is contained in:
Jannis Braun
2026-03-16 18:18:42 +01:00
parent 46f55643ae
commit 9ff3761640
5 changed files with 4 additions and 377 deletions
-12
View File
@@ -1,13 +1,5 @@
/** Type augmentation for the Electron IPC bridge exposed by preload.ts */
interface ElectronScreenSource {
id: string; // "screen:0:0" or "window:12345:0"
name: string; // "Entire Screen" or "Firefox"
thumbnailDataUrl: string; // PNG data URL at 320×180
appIconDataUrl: string | null; // App icon (windows only)
isScreen: boolean; // true = display, false = window
}
interface BackspaceElectronAPI {
// Platform info
platform: NodeJS.Platform;
@@ -34,10 +26,6 @@ interface BackspaceElectronAPI {
// Deep linking (Task 2.3)
onDeepLink: (callback: (url: string) => void) => void;
// Screen share picker coordination
onScreenShareSources: (callback: (sources: ElectronScreenSource[]) => void) => void;
selectScreenSource: (sourceId: string | null, shareAudio?: boolean) => void;
// Instance URL management
getInstanceUrl: () => Promise<string | null>;
setInstanceUrl: (url: string) => Promise<void>;