diff --git a/extra/chromium/PKGBUILD b/extra/chromium/PKGBUILD index 47d775bd6..2199053f4 100644 --- a/extra/chromium/PKGBUILD +++ b/extra/chromium/PKGBUILD @@ -18,7 +18,7 @@ highmem=1 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" @@ -40,6 +40,7 @@ source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgn 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 @@ -54,6 +55,7 @@ sha256sums=('cabbba2e608c5ec110850b14ee5fead2608c44447a52edb80e2ba8261be3dc5b' 'd3344ba39b8c6ed202334ba7f441c70d81ddf8cdb15af1aa8c16e9a3a75fbb35' 'd53da216538f2e741a6e048ed103964a91a98e9a3c10c27fdfa34d4692fdc455' '921010cd8fab5f30be76c68b68c9b39fac9e21f4c4133bb709879592bbdf606e' + '1889d890ff512a8b82a0f88972e78c78131177d8034750ff53577dfad99b3e3e' 'dd317f85e5abfdcfc89c6f23f4c8edbcdebdd5e083dcec770e5da49ee647d150' '1a9e074f417f8ffd78bcd6874d8e2e74a239905bf662f76a7755fa40dc476b57' '56acb6e743d2ab1ed9f3eb01700ade02521769978d03ac43226dec94659b3ace' @@ -152,6 +154,9 @@ prepare() { 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 diff --git a/extra/chromium/pipewire-do-not-typecheck-the-portal-session_handle.patch b/extra/chromium/pipewire-do-not-typecheck-the-portal-session_handle.patch new file mode 100644 index 000000000..59bfa3d18 --- /dev/null +++ b/extra/chromium/pipewire-do-not-typecheck-the-portal-session_handle.patch @@ -0,0 +1,44 @@ +From 408e4da26f1b782005ab10307c83892055d7ef45 Mon Sep 17 00:00:00 2001 +From: Robert Mader +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 +Reviewed-by: Tommi +Commit-Queue: Tommi +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 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 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)