[gnome-shell/wip/rstrode/login-screen-extensions: 58/134] extensionSystem: Catch errors when updating extensions




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]