You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.3 KiB
38 lines
1.3 KiB
2 months ago
|
From 7e82f0a73a1d1576e94b17e21d07fd3978ba7c33 Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||
|
Date: Mon, 1 Feb 2021 18:26:00 +0100
|
||
|
Subject: [PATCH] extensionDownloader: Refuse to override system extensions
|
||
|
|
||
|
The website allows to "update" system extensions by installing the
|
||
|
upstream version into the user's home directory.
|
||
|
|
||
|
Prevent that by refusing to download and install extensions that are
|
||
|
already installed system-wide.
|
||
|
---
|
||
|
js/ui/extensionDownloader.js | 9 +++++++++
|
||
|
1 file changed, 9 insertions(+)
|
||
|
|
||
|
diff --git a/js/ui/extensionDownloader.js b/js/ui/extensionDownloader.js
|
||
|
index 0366c5dfa8..5b27543aa6 100644
|
||
|
--- a/js/ui/extensionDownloader.js
|
||
|
+++ b/js/ui/extensionDownloader.js
|
||
|
@@ -39,6 +39,15 @@ export async function installExtension(uuid, invocation) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
+ const oldExt = Main.extensionManager.lookup(uuid);
|
||
|
+ if (oldExt && oldExt.type === ExtensionUtils.ExtensionType.SYSTEM) {
|
||
|
+ log('extensionDownloader: Trying to replace system extension %s'.format(uuid));
|
||
|
+ invocation.return_error_literal(
|
||
|
+ ExtensionErrors, ExtensionError.NOT_ALLOWED,
|
||
|
+ 'System extensions cannot be replaced');
|
||
|
+ return;
|
||
|
+ }
|
||
|
+
|
||
|
const params = {
|
||
|
uuid,
|
||
|
shell_version: Config.PACKAGE_VERSION,
|
||
|
--
|
||
|
2.45.2
|
||
|
|