Dear Maintainer,
while testing a self-compiled version of `obs-xdg-portal` plugin for Open
Broadcast Studio I noticed that the plugin failed to bring up the portal window
necessary to authorize the program to capture the screen.
I looked into this issue with dbus-monitor and got the following:
~~~
$ dbus-monitor path=/org/freedesktop/portal/desktop
method call time=1588071448.258833 sender=:1.531 ->
destination=org.freedesktop.portal.Desktop serial=2
path=/org/freedesktop/portal/desktop;
interface=org.freedesktop.portal.ScreenCast; member=CreateSession
array [
dict entry(
string "handle_token"
variant string "obs1"
)
dict entry(
string "session_handle_token"
variant string "obs1"
)
]
method call time=1588071448.273349 sender=:1.473 -> destination=:1.146
serial=213 path=/org/freedesktop/portal/desktop;
interface=org.freedesktop.impl.portal.ScreenCast; member=CreateSession
object path "/org/freedesktop/portal/desktop/request/1_531/obs1"
object path "/org/freedesktop/portal/desktop/session/1_531/obs1"
string ""
array [
]
~~~
and it seems to never return from the call to `createSession`.
looking into the service log I get:
~~~
$ journalctl --user
Apr 27 20:15:26 rae xdg-desktop-por[20017]: A backend call failed:
GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface
“org.freedesktop.impl.portal.ScreenCast” on object at path
/org/freedesktop/portal/desktop
Apr 27 20:15:26 rae xdg-desktop-por[20017]: Failed to close session
implementation: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such
interface “org.freedesktop.impl.portal.Session” on object at path
/org/freedesktop/portal/desktop/session/1_476/obs1
~~~
looking upstream, there's an issue reported about xdg-desktop-portal-gtk not
instantiating the ScreenCast and RemoteDesktop interfaces on Ubuntu:
https://github.com/flatpak/xdg-desktop-portal-gtk/issues/296
I can reproduce the behaviour reported upstream:
~~~
$ xdg-desktop-portal-gtk --replace --verbose
XDP: providing org.freedesktop.impl.portal.FileChooser
XDP: providing org.freedesktop.impl.portal.AppChooser
XDP: providing org.freedesktop.impl.portal.Print
XDP: providing org.freedesktop.impl.portal.Screenshot
XDP: providing org.freedesktop.impl.portal.Notification
XDP: Using org.gnome.SessionManager for inhibit
XDP: Using org.gnome.Screensaver for screensaver state
XDP: Using org.gnome.SessionManager for session state
XDP: providing org.freedesktop.impl.portal.Inhibit
XDP: providing org.freedesktop.impl.portal.Access
XDP: providing org.freedesktop.impl.portal.Account
XDP: providing org.freedesktop.impl.portal.Email
XDP: providing org.freedesktop.impl.portal.Lockdown
XDP: providing org.freedesktop.impl.portal.Background
...
XDP: providing org.freedesktop.impl.portal.Settings
XDP: providing org.freedesktop.impl.portal.Wallpaper
XDP: org.freedesktop.impl.portal.desktop.gtk acquired
~~~
This happens both in version 1.6.1 from Testing and version 1.7.1 from
Experimental.
I can also reproduce the same broken behaviour for the
`org.freedesktop.impl.portal.RemoteDesktop` interface using upstream's testing
script:
https://gitlab.gnome.org/snippets/39
Please let me know if there's anything else I can do to help fix this, as this
renders any screen grabbing and screen casting application unusable in GNOME
Wayland.
Best regards,
P.