[gnome-shell] extensions-tool/uninstall: Error out for system extensions
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] extensions-tool/uninstall: Error out for system extensions
- Date: Sun, 5 Apr 2020 12:40:39 +0000 (UTC)
commit 62f3457a958e35f3824b946647d267a24a8a492a
Author: Florian Müllner <fmuellner gnome org>
Date: Sat Mar 14 11:38:38 2020 +0100
extensions-tool/uninstall: Error out for system extensions
UninstallExtensions() only returns whether the operation was successful,
not why it failed. However we know that only user extensions can be
uninstalled, so check that first to provide a more meaningful error.
https://gitlab.gnome.org/GNOME/gnome-shell/issues/2391
subprojects/extensions-tool/src/command-uninstall.c | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
---
diff --git a/subprojects/extensions-tool/src/command-uninstall.c
b/subprojects/extensions-tool/src/command-uninstall.c
index 4b902f4037..344b720b8e 100644
--- a/subprojects/extensions-tool/src/command-uninstall.c
+++ b/subprojects/extensions-tool/src/command-uninstall.c
@@ -29,14 +29,27 @@ static gboolean
uninstall_extension (const char *uuid)
{
g_autoptr (GDBusProxy) proxy = NULL;
+ g_autoptr (GVariant) info = NULL;
g_autoptr (GVariant) response = NULL;
g_autoptr (GError) error = NULL;
gboolean success = FALSE;
+ double type;
proxy = get_shell_proxy (&error);
if (proxy == NULL)
return FALSE;
+ info = get_extension_property (proxy, uuid, "type");
+ if (info == NULL)
+ return FALSE;
+
+ type = g_variant_get_double (info);
+ if (type == TYPE_SYSTEM)
+ {
+ g_printerr (_("Cannot uninstall system extensions\n"));
+ return FALSE;
+ }
+
response = g_dbus_proxy_call_sync (proxy,
"UninstallExtension",
g_variant_new ("(s)", uuid),
@@ -44,11 +57,6 @@ uninstall_extension (const char *uuid)
-1,
NULL,
&error);
- if (response == NULL)
- {
- g_printerr (_("Failed to connect to GNOME Shell"));
- return FALSE;
- }
g_variant_get (response, "(b)", &success);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]