Menu ▾ ▴

#345 Linux: voice and video calls need WebRTC, which WebKitGTK builds don't include

open
nobody
None
6 days ago
2026-11-05
Anonymous
No

Originally created by: kristofferR

Voice and video calls don't work in Chatpane on Linux. In end-to-end encrypted chats Messenger greys out both call buttons; elsewhere a call can't connect.

Why

Chatpane on Linux uses the system's WebKitGTK, and WebKitGTK only supports WebRTC (the technology browsers use for calls) when it is compiled with it. Upstream leaves WebRTC off for the GTK port because it's still experimental, and distributions build it that way. Arch's WebKitGTK 2.54.1 on Omarchy, tested on 2026-11-05:

  • RTCPeerConnection, RTCRtpSender and RTCRtpScriptTransform are undefined, even with WebKitGTK's enable-webrtc setting on.
  • Messenger offers calls in encrypted chats only when the browser can transform call media (ZenonE2eeTransformGate: Safari's RTCRtpScriptTransform or Chromium's createEncodedStreams). Without either, both buttons show as unsupported.
  • Microphone access itself works.

The AppImage bundles a WebKitGTK built the same way, so it has the same limit. Chatpane can't add WebRTC to a WebKitGTK that wasn't built with it. Since [#344] it turns WebRTC on when the system's WebKitGTK has it, and hovering the call buttons explains why calls are unavailable and links here.

Ways forward

  • Chromium via Tauri's CEF runtime (planned). Chromium has full WebRTC and Messenger's encrypted calls already work in it. tauri-runtime-cef ships with Tauri 3, still in alpha (3.0.0-alpha.6, October 2026), and moving to it means moving Chatpane to Tauri 3. Revisit once there's a beta and these Linux bugs are fixed:
  • tauri-apps/tauri#15190: IPC doesn't work with WebviewUrl::External (Chatpane loads Messenger as an external URL)
  • tauri-apps/tauri#16189: idle main thread spins at 100% CPU on Linux
  • tauri-apps/tauri#16251 and tauri-apps/tauri#16351: keyboard input lost at startup or after refocusing
  • tauri-apps/tauri#16204: AppImage bundling fails
  • Bundle a WebKitGTK built with WebRTC. Hours-long builds, a much larger download, security updates to maintain, and upstream still calls the WebRTC backend experimental. Not planned.
  • Hand calls to the default browser. Possible stopgap, unproven: it would need Messenger to treat Chatpane as call-capable and the browser to be signed in to the same account.

Ref [#335]

Related

Tickets: #335
Tickets: #344
Tickets: #460

Discussion


Log in to post a comment.