gnome-shell/js/ui
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
..
components notification: Pass policy in the Source contructor 2024-02-09 11:12:51 +00:00
status notification: Use the same Source for showing system notifications 2024-02-06 17:25:01 +00:00
accessDialog.js js: Stop using ClutterContainer API 2023-11-10 20:19:13 +00:00
altTab.js js: Cleanup use of StBin 2023-11-10 20:19:13 +00:00
animation.js animation: Use appropriate spinner asset in light variant 2023-12-27 10:10:35 +00:00
appDisplay.js appDisplay: CSS cleanup & fixes for app dialog 2024-01-09 17:14:09 +00:00
appFavorites.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
appMenu.js appMenu: Move setApp to null before destroy 2023-12-31 20:30:11 +02:00
audioDeviceSelection.js js: Stop using ClutterContainer API 2023-11-10 20:19:13 +00:00
background.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
backgroundMenu.js js: Stop using ClutterContainer API 2023-11-10 20:19:13 +00:00
barLevel.js slider: Request a size 2023-11-21 18:55:47 +00:00
boxpointer.js boxpointer: Clamp alignments to expected range 2024-01-29 22:40:12 +00:00
calendar.js notification: Show symbolic icons in a circle and smaller 2024-02-01 10:31:24 +01:00
checkBox.js js: Stop using ClutterContainer API 2023-11-10 20:19:13 +00:00
closeDialog.js closeDialog: Actually set key focus to button when grabbing key focus 2024-01-29 23:14:24 +00:00
components.js js: Port to modules 2023-08-06 13:02:49 +02:00
ctrlAltTab.js Use dedicated assets for ctrlAltTab 2023-11-23 13:33:08 +00:00
dash.js dash: Resolve padding and alignment issues with dash items 2024-01-24 17:51:16 +00:00
dateMenu.js dateMenu: Fix missing text style for no locations state 2024-02-06 19:54:04 +00:00
dialog.js js: Rely on default scroll policy where appropriate 2023-11-18 18:00:43 +00:00
dnd.js js: Stop using ClutterContainer API 2023-11-10 20:19:13 +00:00
edgeDragAction.js Adapt to the new Mtk library 2023-08-31 03:44:32 +00:00
endSessionDialog.js endSessionDialog: Use registered D-Bus error 2024-01-31 20:58:31 +01:00
environment.js environment: Stop patching StBoxLayout 2023-11-10 20:19:13 +00:00
extensionDownloader.js extensionDownloader: Use registered D-Bus error 2024-01-31 20:58:31 +01:00
extensionSystem.js notification: Pass policy in the Source contructor 2024-02-09 11:12:51 +00:00
focusCaretTracker.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
grabHelper.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
ibusCandidatePopup.js js: Stop using ClutterContainer API 2023-11-10 20:19:13 +00:00
iconGrid.js iconGrid: Don't recreate StIcons on icon theme changes 2024-01-26 23:36:25 +00:00
inhibitShortcutsDialog.js js: Port to modules 2023-08-06 13:02:49 +02:00
init.js init: Improve error message formatting 2024-01-04 18:59:33 +00:00
kbdA11yDialog.js cleanup: Use consistent 4-space indent 2023-08-09 15:10:37 +00:00
keyboard.js keyboard: Avoid markup escaping when setting button labels 2024-01-29 22:15:53 +00:00
layout.js layout: Stop using deprecated display property 2024-02-09 19:04:53 +01:00
lightbox.js js: Adapt for ::child-{added,removed} 2023-11-14 11:09:02 +00:00
listModes.js listModes: Port listModes command to ES module 2023-08-05 22:16:23 +02:00
locatePointer.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
lookingGlass.js lookingGlass: Do not escape markup in button subclass constructor 2024-01-29 22:15:53 +00:00
magnifier.js magnifier: Fix isTrackingMouse() 2024-01-30 15:55:29 +01:00
main.js notification: Use the same Source for showing system notifications 2024-02-06 17:25:01 +00:00
messageList.js notifications: Add header like in the new designs 2024-01-30 17:05:23 +00:00
messageTray.js messageTray: Remove _createPolicy() hook 2024-02-09 11:12:51 +00:00
modalDialog.js js: Stop using ClutterContainer API 2023-11-10 20:19:13 +00:00
mpris.js mpris: Use player Identity if the player app isn't known 2024-01-30 17:05:23 +00:00
notificationDaemon.js notification: Pass policy in the Source contructor 2024-02-09 11:12:51 +00:00
osdMonitorLabeler.js js: Stop using ClutterContainer API 2023-11-10 20:19:13 +00:00
osdWindow.js js: Stop using ClutterContainer API 2023-11-10 20:19:13 +00:00
overview.js notification: Use the same Source for showing system notifications 2024-02-06 17:25:01 +00:00
overviewControls.js overview: Hide search results while leaving overview 2024-01-30 03:59:45 +01:00
padOsd.js padOsd: Fix rings and strips event handling 2023-11-26 23:31:14 +00:00
pageIndicators.js js: Cleanup use of StBin 2023-11-10 20:19:13 +00:00
panel.js panel: Actually switch to connectObject() 2024-01-19 19:29:33 +01:00
panelMenu.js panelMenu: Remove SystemIndicator class 2023-12-21 13:35:50 +00:00
pointerA11yTimeout.js js: Stop using ClutterContainer API 2023-11-10 20:19:13 +00:00
pointerWatcher.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
popupMenu.js popupMenu/switch: Follow "show-status-shapes" setting 2024-01-17 04:30:11 +00:00
quickSettings.js js: Explicitly set expand of St.Bin children 2023-12-15 14:45:37 +00:00
remoteSearch.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
ripples.js js: Stop using ClutterContainer API 2023-11-10 20:19:13 +00:00
runDialog.js js: Stop using ClutterContainer API 2023-11-10 20:19:13 +00:00
screenShield.js js: Stop using ClutterContainer API 2023-11-10 20:19:13 +00:00
screenshot.js screenshot: Blocklist the current screencast pipeline if recorder failed 2024-02-11 12:34:54 +01:00
scripting.js scripting: Use logError to format error stack 2024-01-04 18:59:33 +00:00
search.js cleanup: Remove unused argument from createResultObject() 2024-01-30 01:49:06 +00:00
searchController.js overview: Hide search results while leaving overview 2024-01-30 03:59:45 +01:00
sessionMode.js js: Port Config to ESM 2023-08-10 17:42:23 +00:00
shellDBus.js shellDBus: Await Eval() result 2023-11-19 02:20:01 +00:00
shellEntry.js js: Stop using ClutterContainer API 2023-11-10 20:19:13 +00:00
shellMountOperation.js notification: Use the same Source for showing system notifications 2024-02-06 17:25:01 +00:00
slider.js slider: Request a size 2023-11-21 18:55:47 +00:00
swipeTracker.js Adapt to the new Mtk library 2023-08-31 03:44:32 +00:00
switcherPopup.js switcherPopup: Restore selected pseudo-class 2024-02-06 20:09:20 +00:00
switchMonitor.js switchMonitor: New assets for switcher items 2024-01-29 22:47:10 +00:00
unlockDialog.js messageTray: Expose Source icon as GObject property 2024-01-30 17:05:23 +00:00
userWidget.js userWidget: Expand child 2023-12-16 23:57:48 +01:00
welcomeDialog.js welcomeDialog: Adapt dialog title 2023-10-18 18:40:04 +00:00
windowAttentionHandler.js notification: Pass policy in the Source contructor 2024-02-09 11:12:51 +00:00
windowManager.js windowManager: Add "opacity: 0" to minimize ease animation 2024-02-01 13:17:02 +00:00
windowMenu.js js: Stop using ClutterContainer API 2023-11-10 20:19:13 +00:00
windowPreview.js windowPreview: Don't hide overlay while hovering icon 2023-12-11 15:10:59 +00:00
workspace.js cleanup: Fixup wrong JSDoc comments 2023-08-09 15:10:38 +00:00
workspaceAnimation.js js: Stop using ClutterContainer API 2023-11-10 20:19:13 +00:00
workspacesView.js js: Stop using ClutterContainer API 2023-11-10 20:19:13 +00:00
workspaceSwitcherPopup.js js: Stop using ClutterContainer API 2023-11-10 20:19:13 +00:00
workspaceThumbnail.js js: Stop using ClutterContainer API 2023-11-10 20:19:13 +00:00
xdndHandler.js js: Stop using ClutterContainer API 2023-11-10 20:19:13 +00:00