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
This commit is contained in:
parent
d3939a38a3
commit
39f61fc41c
@ -489,9 +489,14 @@ var ExtensionManager = class {
|
|||||||
let extensionDir = Gio.File.new_for_path(
|
let extensionDir = Gio.File.new_for_path(
|
||||||
GLib.build_filenamev([global.userdatadir, 'extensions', uuid]));
|
GLib.build_filenamev([global.userdatadir, 'extensions', uuid]));
|
||||||
|
|
||||||
FileUtils.recursivelyDeleteDir(extensionDir, false);
|
try {
|
||||||
FileUtils.recursivelyMoveDir(dir, extensionDir);
|
FileUtils.recursivelyDeleteDir(extensionDir, false);
|
||||||
FileUtils.recursivelyDeleteDir(dir, true);
|
FileUtils.recursivelyMoveDir(dir, extensionDir);
|
||||||
|
} catch (e) {
|
||||||
|
log('Failed to install extension updates for %s'.format(uuid));
|
||||||
|
} finally {
|
||||||
|
FileUtils.recursivelyDeleteDir(dir, true);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user