gnome-shell/js/dbusServices
Jonas Dreßler b6bfe07137 screenshot: Blocklist the current screencast pipeline if recorder failed
When gstreamer crashes during recording, it pulls the whole screencastService
down with it.

These crashes are typically caused by the gstreamer pipeline that's in use,
so to avoid running into them again and again, we can blocklist the last
used pipeline in case the recorder didn't shut down (aka crashed) last time.

To store this state, create a file (gnome-shell-screencast-pipeline-blocklist)
in the XDG runtime dir and store the ID of the current pipeline in that file
before we try to start.

Now when we crash while running the pipeline, the entry in that file will stay
around and we'll pick it up on the next start of the screencastService as a
blocklist.

When the recording was successful on the other hand, we'll call
`this._updateServiceCrashBlocklist([...this._blocklistFromPreviousCrashes])`
and remove the new entry from the file again before shutting down the recorder.

In addition to that, we can now encourage the user to try recording again
after a crash happened. Adjust the failure notification a bit to say
"please try again".

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6747

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2976>
2024-02-11 12:34:54 +01:00
..
extensions dbusServices/extensions: Improve error message formatting 2024-01-04 18:59:33 +00:00
notifications js: Port dbusUtils to ESM 2023-08-07 19:05:50 +00:00
screencast screenshot: Blocklist the current screencast pipeline if recorder failed 2024-02-11 12:34:54 +01:00
screensaver js: Port dbusUtils to ESM 2023-08-07 19:05:50 +00:00
dbus-service.in dbusServices: Port to ESM 2023-06-21 13:26:42 +02:00
dbus-service.service.in dbusServices: Port to ESM 2023-06-21 13:26:42 +02:00
dbusService.js dbusServices: Always import dbus errors 2024-01-31 20:58:31 +01:00
meson.build dbusServices/screencast: Install unconditionally 2022-05-20 12:00:22 +00:00
org.gnome.ScreenSaver.src.gresource.xml dbusServices: Always import dbus errors 2024-01-31 20:58:31 +01:00
org.gnome.Shell.Extensions.src.gresource.xml dbusServices: Always import dbus errors 2024-01-31 20:58:31 +01:00
org.gnome.Shell.Notifications.src.gresource.xml dbusServices: Always import dbus errors 2024-01-31 20:58:31 +01:00
org.gnome.Shell.Screencast.src.gresource.xml dbusServices: Always import dbus errors 2024-01-31 20:58:31 +01:00