[glib-networking] proxy: Use XDG_CURRENT_DESKTOP to determine which proxy module to load
- From: Michael Catanzaro <mcatanzaro src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib-networking] proxy: Use XDG_CURRENT_DESKTOP to determine which proxy module to load
- Date: Tue, 13 Feb 2018 01:28:59 +0000 (UTC)
commit 89c45b82b85daef0f1e679dbd15a9c7c893deb17
Author: Michael Catanzaro <mcatanzaro igalia com>
Date: Mon Feb 12 18:28:55 2018 -0600
proxy: Use XDG_CURRENT_DESKTOP to determine which proxy module to load
This will somewhat reduce the odds that that we'll load libproxy in the
gnome-shell greeter process, causing libproxy's old version of mozjs to
be loaded into the same process as gjs's newer version, causing the
login screen to crash in a spectacular loop of sadness, causing
coredumpctl to thrash the system... yeah.
This is already fixed in gnome-session by
https://git.gnome.org/browse/gnome-session/commit/?id=5f920253dfb2c0f2c4b742690f306cfea2ac6613
but I figure I should do my civic duty here to make it easier to remove
these environment variables in the future.
https://bugzilla.gnome.org/show_bug.cgi?id=790387
proxy/gnome/gproxyresolvergnome.c | 16 ++++++++--------
proxy/tests/gnome.c | 2 +-
2 files changed, 9 insertions(+), 9 deletions(-)
---
diff --git a/proxy/gnome/gproxyresolvergnome.c b/proxy/gnome/gproxyresolvergnome.c
index f9dba49..c3b3a7b 100644
--- a/proxy/gnome/gproxyresolvergnome.c
+++ b/proxy/gnome/gproxyresolvergnome.c
@@ -315,17 +315,17 @@ update_settings (GProxyResolverGnome *resolver)
static gboolean
g_proxy_resolver_gnome_is_supported (GProxyResolver *object)
{
- const char *session;
+ const char *desktop;
- if (g_getenv ("GNOME_DESKTOP_SESSION_ID"))
- return TRUE;
-
- session = g_getenv ("DESKTOP_SESSION");
- if (session == NULL)
+ desktop = g_getenv ("XDG_CURRENT_DESKTOP");
+ if (desktop == NULL)
return FALSE;
- return g_str_has_prefix (session, "gnome") ||
- strcmp (session, "ubuntu") == 0;
+ /* Remember that XDG_CURRENT_DESKTOP is a list of strings. Desktops that
+ * pretend to be GNOME, like Unity, add themselves here. That's fine, but
+ * if so they'd better really support our proxy settings.
+ */
+ return strstr (desktop, "GNOME") != NULL;
}
static inline gchar **
diff --git a/proxy/tests/gnome.c b/proxy/tests/gnome.c
index de91aaf..6603db3 100644
--- a/proxy/tests/gnome.c
+++ b/proxy/tests/gnome.c
@@ -163,7 +163,7 @@ main (int argc,
g_setenv ("GIO_EXTRA_MODULES", TOP_BUILDDIR "/proxy/gnome/.libs", TRUE);
g_setenv ("GIO_USE_PROXY_RESOLVER", "gnome", TRUE);
g_setenv ("GSETTINGS_BACKEND", "memory", TRUE);
- g_setenv ("DESKTOP_SESSION", "gnome", TRUE);
+ g_setenv ("XDG_CURRENT_DESKTOP", "GNOME", TRUE);
g_test_add_vtable ("/proxy/gnome/uri", 0, NULL,
reset_proxy_settings, test_proxy_uri, NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]