fix: scope DMABUF workaround to Linux+NVIDIA, add origin validation

Address CodeRabbit review feedback:
- Makefile: only set WEBKIT_DISABLE_DMABUF_RENDERER=1 when running on
  Linux with an NVIDIA GPU detected via lspci
- main.rs: validate webview origin before auto-granting microphone
  permission — only allow for trusted local origins (tauri://, localhost,
  127.0.0.1)

Co-Authored-By: Claude Opus 4.6 <[email protected]>
This commit is contained in:
Ivan
2026-02-27 07:01:32 +01:00
co-authored by Claude Opus 4.6
parent d21c63b52c
commit 30ee07c2e3
2 changed files with 17 additions and 3 deletions
+12 -2
View File
@@ -651,9 +651,19 @@ pub fn run() {
}
// Auto-grant UserMediaPermissionRequest (microphone access)
wk_webview.connect_permission_request(move |_, request: &webkit2gtk::PermissionRequest| {
// Only for trusted local origins (Tauri dev server or custom protocol)
wk_webview.connect_permission_request(move |webview, request: &webkit2gtk::PermissionRequest| {
if request.is::<webkit2gtk::UserMediaPermissionRequest>() {
request.allow();
let uri = WebViewExt::uri(webview).unwrap_or_default();
let is_trusted = uri.starts_with("tauri://")
|| uri.starts_with("https://tauri.localhost")
|| uri.starts_with("http://localhost")
|| uri.starts_with("http://127.0.0.1");
if is_trusted {
request.allow();
return true;
}
request.deny();
return true;
}
false