extensionSystem: Require Extensions app for updates
While we don't technically need the app to download and apply updates, we do require it for notifying the user about available updates and listing extensions with pending updates. So instead of intransparently applying updates in the background without the user noticing, disable updates altogether if the Extensions app is not installed. https://gitlab.gnome.org/GNOME/gnome-shell/issues/2346
This commit is contained in:
parent
cc347bf6d8
commit
660a2b6e62
@ -108,6 +108,9 @@ function gotExtensionZipFile(session, message, uuid, dir, callback, errback) {
|
||||
}
|
||||
|
||||
function downloadExtensionUpdate(uuid) {
|
||||
if (!Main.extensionManager.updatesSupported)
|
||||
return;
|
||||
|
||||
let dir = Gio.File.new_for_path(
|
||||
GLib.build_filenamev([global.userdatadir, 'extension-updates', uuid]));
|
||||
|
||||
@ -126,6 +129,9 @@ function downloadExtensionUpdate(uuid) {
|
||||
}
|
||||
|
||||
function checkForUpdates() {
|
||||
if (!Main.extensionManager.updatesSupported)
|
||||
return;
|
||||
|
||||
let metadatas = {};
|
||||
Main.extensionManager.getUuids().forEach(uuid => {
|
||||
let extension = Main.extensionManager.lookup(uuid);
|
||||
|
@ -60,6 +60,11 @@ var ExtensionManager = class {
|
||||
ExtensionDownloader.checkForUpdates();
|
||||
}
|
||||
|
||||
get updatesSupported() {
|
||||
const appSys = Shell.AppSystem.get_default();
|
||||
return appSys.lookup_app('org.gnome.Extensions.desktop') !== null;
|
||||
}
|
||||
|
||||
lookup(uuid) {
|
||||
return this._extensions.get(uuid);
|
||||
}
|
||||
@ -481,6 +486,9 @@ var ExtensionManager = class {
|
||||
}
|
||||
|
||||
_installExtensionUpdates() {
|
||||
if (!this.updatesSupported)
|
||||
return;
|
||||
|
||||
FileUtils.collectFromDatadirs('extension-updates', true, (dir, info) => {
|
||||
let fileType = info.get_file_type();
|
||||
if (fileType !== Gio.FileType.DIRECTORY)
|
||||
|
Loading…
Reference in New Issue
Block a user