extensionSystem: Add hasUpdate state

The current support for extension updates is half-baked at best.
We are about to change that, and implement offline updates similar
to gnome-software.

As a first step, add a hasUpdate property to the extension state
which will communicate available updates.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/945
This commit is contained in:
Florian Müllner 2020-01-22 14:45:15 +01:00 committed by verdre
parent 2dae3f5656
commit 375d1892bf
2 changed files with 19 additions and 1 deletions

View File

@ -31,7 +31,15 @@ var ExtensionState = {
UNINSTALLED: 99,
};
const SERIALIZED_PROPERTIES = ['type', 'state', 'path', 'error', 'hasPrefs', 'canChange'];
const SERIALIZED_PROPERTIES = [
'type',
'state',
'path',
'error',
'hasPrefs',
'hasUpdate',
'canChange',
];
/**
* getCurrentExtension:

View File

@ -198,6 +198,15 @@ var ExtensionManager = class {
return true;
}
notifyExtensionUpdate(uuid) {
let extension = this.lookup(uuid);
if (!extension)
return;
extension.hasUpdate = true;
this.emit('extension-state-changed', extension);
}
logExtensionError(uuid, error) {
let extension = this.lookup(uuid);
if (!extension)
@ -253,6 +262,7 @@ var ExtensionManager = class {
path: dir.get_path(),
error: '',
hasPrefs: dir.get_child('prefs.js').query_exists(null),
hasUpdate: false,
canChange: false,
};
this._extensions.set(uuid, extension);