Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 03 Jan 2023 05:09:41 +0000
From:      bugzilla-noreply@freebsd.org
To:        ports-bugs@FreeBSD.org
Subject:   [Bug 268726] www/chromium: enable PipeWire support (screen capture under Wayland)
Message-ID:  <bug-268726-7788@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D268726

            Bug ID: 268726
           Summary: www/chromium: enable PipeWire support (screen capture
                    under Wayland)
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: chromium@FreeBSD.org
          Reporter: jbeich@FreeBSD.org
             Flags: maintainer-feedback?(chromium@FreeBSD.org)
          Assignee: chromium@FreeBSD.org

Created attachment 239219
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D239219&action=
=3Dedit
unconditional (rtc_link_pipewire=3Dfalse)

PipeWire-based screen capture is complex replacement[1] for
wlr-screencopy-unstable-v1 (wlroots, MirServer >=3D 2.8, to be standardized=
[2]),
primarily designed for sandboxing apps via Flatpak or similar. It can work
under both X11 and Wayland but most consumers limit it to Wayland. See also
other xdg-desktop-portal examples:
- org.freedesktop.portal.ScreenCast: firefox-esr, obs-studio, kooha
- org.freedesktop.portal.Screenshot: flameshot, ksnip, gimp-app

This expands ports 8fc70d7e9054 to include Screen Capture in WebRTC. With
rtc_link_pipewire=3Dfalse (upstream default) libpipewire is used via dlopen=
(3),
so it can always be enabled like Wayland support.

"poudriere bulk -t" passed on 13.1 amd64. Runtime tested inside 13.1 jail on
14.0 host under Sway with X11/Wayland/DBus sockets passed through. Works fi=
ne
both under native Wayland and Xwayland.

Runtime testing recipe:

# pkg install chromium sway pam_xdg xdg-desktop-portal-wlr xdg-desktop-port=
al
# echo 'session optional pam_xdg.so notroot runtime' >>/etc/pam.d/system
# sysrc seatd_enable=3DYES
# service seatd start
$ exit # log out to pick up XDG_RUNTIME_DIR
<new login>
$ dbus-daemon --session --fork --address=3Dunix:runtime=3Dyes
$ export DBUS_SESSION_BUS_ADDRESS=3Dunix:path=3D$XDG_RUNTIME_DIR/bus # work=
around
$ sway
<GUI session>
$ export XDG_CURRENT_DESKTOP=3Dsway
$ dbus-update-activation-environment --all
$ daemon -f pipewire
$ daemon -f /usr/local/libexec/xdg-desktop-portal # workaround
$ daemon -f /usr/local/libexec/xdg-desktop-portal-wlr # workaround
$ chrome
- open chrome://flags
- enter "wayland" in Search field
- set "WebRTC PipeWire support" to "Enabled"
- set "Preferred Ozone platform" to "Auto"
- click Relaunch

- open https://mozilla.github.io/webrtc-landing/gum_test.html
- click on "Screen Capture"
- click on "Entire Screen" tab in "Choose what to share" prompt
- click anywhere to select the desired output/monitor
- notice preview is filled with screen content
- click "Share" to confirm
- click anywhere to select the desired output/monitor
- watch screen content mirrored on the web page
- click on "Stop Sharing" to end the capture or just close the browser

References:
[1]
https://blogs.kde.org/2020/10/11/linux-desktop-shell-ipc-wayland-vs-d-bus-a=
nd-lack-agreement-when-use-them
[2]
https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/1=
24

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-268726-7788>