From aa8da7b30b342da7dc8447c2013db03353c7005c Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: May 20 2020 13:14:59 +0000 Subject: Fix crashes when locking the screen while certain extensions are active Resolves: rhbz#1817082 Signed-off-by: Stephen Gallagher --- diff --git a/0001-extensionSystem-Disable-extension-before-unloading-s.patch b/0001-extensionSystem-Disable-extension-before-unloading-s.patch new file mode 100644 index 0000000..9fc414e --- /dev/null +++ b/0001-extensionSystem-Disable-extension-before-unloading-s.patch @@ -0,0 +1,51 @@ +From 6d5e93b00b5b4ce5315276e071a98c8db5ff6463 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Wed, 13 May 2020 20:10:56 +0200 +Subject: [PATCH] extensionSystem: Disable extension before unloading + stylesheet + +Removing a stylesheet from the theme will trigger a style update. There's +little point in updating the extension actors that are about to be destroyed +(hopefully), so call the extension's disable() function first. + +https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2757 +--- + js/ui/extensionSystem.js | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/js/ui/extensionSystem.js b/js/ui/extensionSystem.js +index 1a34f19e9e384b1d352207ea78eba9e7e1f80ba3..5a50b473ac2bdb25ec1a7f47cbd2d00ebf889800 100644 +--- a/js/ui/extensionSystem.js ++++ b/js/ui/extensionSystem.js +@@ -100,22 +100,22 @@ var ExtensionManager = class { + } catch (e) { + this.logExtensionError(otherUuid, e); + } + } + ++ try { ++ extension.stateObj.disable(); ++ } catch (e) { ++ this.logExtensionError(uuid, e); ++ } ++ + if (extension.stylesheet) { + let theme = St.ThemeContext.get_for_stage(global.stage).get_theme(); + theme.unload_stylesheet(extension.stylesheet); + delete extension.stylesheet; + } + +- try { +- extension.stateObj.disable(); +- } catch (e) { +- this.logExtensionError(uuid, e); +- } +- + for (let i = 0; i < order.length; i++) { + let otherUuid = order[i]; + try { + this.lookup(otherUuid).stateObj.enable(); + } catch (e) { +-- +2.26.2 + diff --git a/gnome-shell.spec b/gnome-shell.spec index 6d2e360..d3034f1 100644 --- a/gnome-shell.spec +++ b/gnome-shell.spec @@ -1,6 +1,6 @@ Name: gnome-shell Version: 3.36.2 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Window management and application launching for GNOME License: GPLv2+ @@ -20,6 +20,9 @@ Patch3: 0002-endSessionDialog-Support-rebooting-into-the-bootload.patch Patch4: extension-prefs-compat.patch Patch5: 0001-st-theme-Unref-CRStylesheet-after-removing-old-theme.patch +# Avoid crash in extensions +Patch6: 0001-extensionSystem-Disable-extension-before-unloading-s.patch + %define eds_version 3.33.1 %define gnome_desktop_version 3.35.91 %define glib2_version 2.56.0 @@ -216,6 +219,10 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de %{_mandir}/man1/gnome-shell.1* %changelog +* Wed May 20 2020 Stephen Gallagher - 3.36.2-3 +- Fix crashes when locking the screen while certain extensions are active +- Resolves: rhbz#1817082 + * Fri May 01 2020 Florian Müllner - 3.36.2-2 - Fix a crash