[gnome-shell/wip/rstrode/login-screen-extensions: 58/134] extensionSystem: Catch errors when updating extensions
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/rstrode/login-screen-extensions: 58/134] extensionSystem: Catch errors when updating extensions
- Date: Thu, 26 Aug 2021 19:30:59 +0000 (UTC)
commit 5bcce956fffcfa88454118aac89b7f4c837e32e1
Author: Florian Müllner <fmuellner gnome org>
Date: Mon Mar 9 16:45:22 2020 +0100
extensionSystem: Catch errors when updating extensions
Extension updates are installed at startup, so any errors that bubble
up uncaught will prevent the startup to complete.
While the most likely error reason was addressed in the previous commit
(pending update for a no-longer exitent extension), it makes sense to
catch any kind of corrupt updates to not interfere with shell startup.
https://gitlab.gnome.org/GNOME/gnome-shell/issues/2343
js/ui/extensionSystem.js | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
---
diff --git a/js/ui/extensionSystem.js b/js/ui/extensionSystem.js
index 914abb3095..320af54e4b 100644
--- a/js/ui/extensionSystem.js
+++ b/js/ui/extensionSystem.js
@@ -457,9 +457,14 @@ var ExtensionManager = class {
let extensionDir = Gio.File.new_for_path(
GLib.build_filenamev([global.userdatadir, 'extensions', uuid]));
- FileUtils.recursivelyDeleteDir(extensionDir, false);
- FileUtils.recursivelyMoveDir(dir, extensionDir);
- FileUtils.recursivelyDeleteDir(dir, true);
+ try {
+ FileUtils.recursivelyDeleteDir(extensionDir, false);
+ FileUtils.recursivelyMoveDir(dir, extensionDir);
+ } catch (e) {
+ log('Failed to install extension updates for %s'.format(uuid));
+ } finally {
+ FileUtils.recursivelyDeleteDir(dir, true);
+ }
});
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]