Fix crashes when locking the screen while certain extensions are active

Resolves: rhbz#1817082

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
This commit is contained in:
Stephen Gallagher 2020-05-20 09:05:22 -04:00
parent 657bcd8386
commit 900baaef0a
No known key found for this signature in database
GPG Key ID: 45DB85A568286D11
2 changed files with 59 additions and 1 deletions

View File

@ -0,0 +1,51 @@
From 6d5e93b00b5b4ce5315276e071a98c8db5ff6463 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
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

View File

@ -1,6 +1,6 @@
Name: gnome-shell
Version: 3.37.1
Release: 2%{?dist}
Release: 3%{?dist}
Summary: Window management and application launching for GNOME
License: GPLv2+
@ -22,6 +22,9 @@ Patch3: 0002-endSessionDialog-Support-rebooting-into-the-bootload.patch
# https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/e08a4acd
Patch4: 0001-ibusManager-Fix-the-panel-after-porting-to-Promises.patch
# Avoid crash in extensions
Patch5: 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
@ -218,6 +221,10 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de
%{_mandir}/man1/gnome-shell.1*
%changelog
* Wed May 20 2020 Stephen Gallagher <sgallagh@redhat.com> - 3.37.1-3
- Fix crashes when locking the screen while certain extensions are active
- Resolves: rhbz#1817082
* Mon May 04 2020 Adam Williamson <awilliam@redhat.com> - 3.37.1-2
- Fix panel to show input methods (MR #1235)