extensionSystem: Add methods to enable/disable extensions
Extensions are currently enabled or disabled by directly changing the list in the 'enabled-extensions' GSettings key. As we will soon add an overriding 'disabled-extensions' key as well, it makes sense to offer explicit API for enabling/disabling to avoid duplicating the logic. For the corresponding D-Bus API, the methods were even mentioned in the GSettings schema, albeit unimplemented until now. https://bugzilla.gnome.org/show_bug.cgi?id=789852
This commit is contained in:

committed by
Florian Müllner

parent
6a4c55b852
commit
4589da957b
@@ -126,6 +126,32 @@ var ExtensionManager = class {
|
||||
}
|
||||
}
|
||||
|
||||
enableExtension(uuid) {
|
||||
if (!ExtensionUtils.extensions[uuid])
|
||||
return false;
|
||||
|
||||
let enabledExtensions = global.settings.get_strv(ENABLED_EXTENSIONS_KEY);
|
||||
if (!enabledExtensions.includes(uuid)) {
|
||||
enabledExtensions.push(uuid);
|
||||
global.settings.set_strv(ENABLED_EXTENSIONS_KEY, enabledExtensions);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
disableExtension(uuid) {
|
||||
if (!ExtensionUtils.extensions[uuid])
|
||||
return false;
|
||||
|
||||
let enabledExtensions = global.settings.get_strv(ENABLED_EXTENSIONS_KEY);
|
||||
if (enabledExtensions.includes(uuid)) {
|
||||
enabledExtensions = enabledExtensions.filter(item => item !== uuid);
|
||||
global.settings.set_strv(ENABLED_EXTENSIONS_KEY, enabledExtensions);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
logExtensionError(uuid, error) {
|
||||
let extension = ExtensionUtils.extensions[uuid];
|
||||
if (!extension)
|
||||
|
Reference in New Issue
Block a user