Skip to content

huddle: linux: grant WebKit user media requests - #3557

Closed
brauliobo wants to merge 1 commit into
block:mainfrom
brauliobo:agent/linux-huddle-permissions
Closed

huddle: linux: grant WebKit user media requests#3557
brauliobo wants to merge 1 commit into
block:mainfrom
brauliobo:agent/linux-huddle-permissions

Conversation

@brauliobo

Copy link
Copy Markdown

Summary

  • enable WebKitGTK media-stream support when the Linux main webview is ready
  • grant user-media permission requests only for Buzz's bundled UI and configured Vite development origin
  • leave every other permission type and navigated origin to WebKit's default handling
  • cover the trusted-origin boundary with focused unit tests

Root cause

WebKitGTK delegates getUserMedia permission decisions to the embedding application. Buzz did not handle WebKitUserMediaPermissionRequest, so WebKit denied microphone access without showing a prompt and Linux Huddles failed with NotAllowedError.

Impact

Linux users can acquire their microphone for Huddles while navigated or untrusted content remains unable to inherit user-media permission.

Closes #3495.

Validation

  • cargo fmt --manifest-path desktop/src-tauri/Cargo.toml --all -- --check
  • cargo test --manifest-path desktop/src-tauri/Cargo.toml webkit_permissions
  • cargo check --manifest-path desktop/src-tauri/Cargo.toml
  • cargo clippy --manifest-path desktop/src-tauri/Cargo.toml --all-targets -- -D warnings
  • production-profile runtime test on Arch Linux, KDE Wayland, and WebKitGTK: Huddle microphone capture became active without the previous permission rejection

Signed-off-by: Braulio Oliveira <brauliobo@gmail.com>
@brauliobo
brauliobo force-pushed the agent/linux-huddle-permissions branch from 329072e to aafb5a5 Compare July 29, 2026 15:03
@brauliobo
brauliobo marked this pull request as ready for review July 29, 2026 15:15
@brauliobo
brauliobo requested a review from a team as a code owner July 29, 2026 15:15

@Chessing234 Chessing234 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the missing piece for #3495-style Linux huddle failures. Handling WebKitUserMediaPermissionRequest only for the bundled UI / Vite origin is the correct trust boundary, and leaving other permission types alone avoids over-granting. Unit coverage on the trusted-origin check is welcome. One note for operators: this grants the permission request, but mic capture can still fail if PipeWire/GStreamer plugins are shadowed (see #3494) — worth cross-linking in the PR body so the two layers stay distinct.

@wpfleger96

Copy link
Copy Markdown
Member

🤖 hey @brauliobo, thanks for this — your trusted-origin allowlist and the unit tests proving that boundary are the security core of what shipped: #3607 (just merged, fixes #3495) adopted the same origin check (tauri://localhost + dev origin) your PR pioneered, combined with a device-kind check. Closing this as superseded by the merged fix.

@wpfleger96 wpfleger96 closed this Jul 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Linux: huddles fail with NotAllowedError — WebKitGTK user-media permission request appears unhandled

3 participants