extensionSystem: Fix extension reloading

Unloading an extension has become an async operation, but we aren't
awaiting the result. That means that we recreate the extension
object *before* we remove the "old" extension object from the map,
with the effect that the reloaded extension is removed completely.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6507

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2694>
This commit is contained in:
Florian Müllner 2023-03-14 12:57:43 +01:00 committed by Marge Bot
parent b8013704cf
commit 0b8114ba52

View File

@ -432,7 +432,7 @@ var ExtensionManager = class extends Signals.EventEmitter {
let { uuid, dir, type } = oldExtension;
// Then unload the old extension.
this.unloadExtension(oldExtension);
await this.unloadExtension(oldExtension);
// Now, recreate the extension and load it.
let newExtension;