Date: Wednesday, October 6, 2021 @ 12:25:34 Author: foutrelis Revision: 425164
upgpkg: chromium 94.0.4606.71-2: fix for xdg-desktop-portal 1.10 Fix desktop sharing via Pipewire with xdg-desktop-portal 1.10. https://crbug.com/webrtc/13192 Added: chromium/trunk/pipewire-do-not-typecheck-the-portal-session_handle.patch Modified: chromium/trunk/PKGBUILD -----------------------------------------------------------+ PKGBUILD | 7 + pipewire-do-not-typecheck-the-portal-session_handle.patch | 44 ++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2021-10-06 09:34:55 UTC (rev 425163) +++ PKGBUILD 2021-10-06 12:25:34 UTC (rev 425164) @@ -5,7 +5,7 @@ pkgname=chromium pkgver=94.0.4606.71 -pkgrel=1 +pkgrel=2 _launcher_ver=8 _gcc_patchset=3 pkgdesc="A web browser built for speed, simplicity, and security" @@ -27,6 +27,7 @@ replace-blacklist-with-ignorelist.patch add-a-TODO-about-a-missing-pnacl-flag.patch use-ffile-compilation-dir.patch + pipewire-do-not-typecheck-the-portal-session_handle.patch sql-make-VirtualCursor-standard-layout-type.patch chromium-93-ffmpeg-4.4.patch chromium-94-ffmpeg-roll.patch @@ -38,6 +39,7 @@ 'd3344ba39b8c6ed202334ba7f441c70d81ddf8cdb15af1aa8c16e9a3a75fbb35' 'd53da216538f2e741a6e048ed103964a91a98e9a3c10c27fdfa34d4692fdc455' '921010cd8fab5f30be76c68b68c9b39fac9e21f4c4133bb709879592bbdf606e' + '1889d890ff512a8b82a0f88972e78c78131177d8034750ff53577dfad99b3e3e' 'dd317f85e5abfdcfc89c6f23f4c8edbcdebdd5e083dcec770e5da49ee647d150' '1a9e074f417f8ffd78bcd6874d8e2e74a239905bf662f76a7755fa40dc476b57' '56acb6e743d2ab1ed9f3eb01700ade02521769978d03ac43226dec94659b3ace' @@ -116,6 +118,9 @@ patch -Rp1 -i ../add-a-TODO-about-a-missing-pnacl-flag.patch patch -Rp1 -i ../use-ffile-compilation-dir.patch + # Fix desktop sharing via Pipewire with xdg-desktop-portal 1.10 + patch -Np1 -d third_party/webrtc <../pipewire-do-not-typecheck-the-portal-session_handle.patch + # https://chromium-review.googlesource.com/c/chromium/src/+/2862724 patch -Np1 -i ../sql-make-VirtualCursor-standard-layout-type.patch Added: pipewire-do-not-typecheck-the-portal-session_handle.patch =================================================================== --- pipewire-do-not-typecheck-the-portal-session_handle.patch (rev 0) +++ pipewire-do-not-typecheck-the-portal-session_handle.patch 2021-10-06 12:25:34 UTC (rev 425164) @@ -0,0 +1,44 @@ +From 408e4da26f1b782005ab10307c83892055d7ef45 Mon Sep 17 00:00:00 2001 +From: Robert Mader <[email protected]> +Date: Mon, 20 Sep 2021 15:15:31 +0200 +Subject: [PATCH] Pipewire: Do not typecheck the portal session_handle +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Desktop sharing via Pipewire will break for clients updating to +xdg-desktop-portal 1.10 due to a bug fix in the API implementation[1]. + +This ports over a fix from OBS Studio[2] that also is used in the +downstream Firefox WebRTC copy[3]. + +1: https://github.com/flatpak/xdg-desktop-portal/pull/609 +2: https://github.com/obsproject/obs-studio/pull/5294 +3: https://phabricator.services.mozilla.com/D126053 +Bug: webrtc:13192 +Change-Id: I497dd1bb53cc39dee3732c2e0014e2e36a7afb6c +Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/232329 +Reviewed-by: Erik Språng <[email protected]> +Reviewed-by: Tommi <[email protected]> +Commit-Queue: Tommi <[email protected]> +Cr-Commit-Position: refs/heads/main@{#35153} +--- + modules/desktop_capture/linux/base_capturer_pipewire.cc | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/modules/desktop_capture/linux/base_capturer_pipewire.cc b/modules/desktop_capture/linux/base_capturer_pipewire.cc +index 2d5e973..45229b2 100644 +--- a/modules/desktop_capture/linux/base_capturer_pipewire.cc ++++ b/modules/desktop_capture/linux/base_capturer_pipewire.cc +@@ -801,8 +801,9 @@ void BaseCapturerPipeWire::OnSessionRequestResponseSignal( + Scoped<GVariant> response_data; + g_variant_get(parameters, "(u@a{sv})", &portal_response, + response_data.receive()); +- g_variant_lookup(response_data.get(), "session_handle", "s", +- &that->session_handle_); ++ Scoped<GVariant> session_handle( ++ g_variant_lookup_value(response_data.get(), "session_handle", nullptr)); ++ that->session_handle_ = g_variant_dup_string(session_handle.get(), nullptr); + + if (!that->session_handle_ || portal_response) { + RTC_LOG(LS_ERROR)
