From: Alberto Garcia Date: Mon, 21 Dec 2020 13:01:31 +0000 (+0000) Subject: Force the single-process mode in Evolution and Geary X-Git-Tag: archive/raspbian/2.30.4-1_deb10u1+rpi1^2~1 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=88ec85e6344e1d0e08e0ad18a833632e509cd18a;p=webkit2gtk.git Force the single-process mode in Evolution and Geary Bug: https://bugs.webkit.org/show_bug.cgi?id=201033 Origin: https://mail.gnome.org/archives/distributor-list/2019-October/msg00000.html Since WebKitGTK 2.26 the single-process mode is considered a security risk and the process limiting APIs have been completely disabled. This change is transparent for most applications, but Geary and particularly Evolution (see upstream bug #587) are known to have problems in multi-process mode. This has already been fixed in Geary 3.33.91 and in Evolution 3.34.1. Although the API to set the single-process model is no longer available, it is still possible to do it internally. This patch does that for Evolution and Geary. This is a temporary workaround and it is especially meant for stable distributions and security updates, where patching or updating the affected apps is not an option. =================================================================== Gbp-Pq: Name force-single-process.patch --- diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp index af43f9acfd..662c2a35e0 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp +++ b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp @@ -397,9 +397,17 @@ static void webkitWebContextConstructed(GObject* object) configuration.setProcessSwapsOnNavigation(priv->psonEnabled); if (!priv->psonEnabled) { const char* useSingleWebProcess = getenv("WEBKIT_USE_SINGLE_WEB_PROCESS"); - if (useSingleWebProcess && strcmp(useSingleWebProcess, "0")) - configuration.setUsesSingleWebProcess(true); - } + if (useSingleWebProcess) { + if (strcmp(useSingleWebProcess, "0")) { + configuration.setUsesSingleWebProcess(true); + } + } else { + const char* prgname = g_get_prgname(); + if (!g_strcmp0(prgname, "evolution") || !g_strcmp0(prgname, "geary")) { + configuration.setUsesSingleWebProcess(true); + } + } + } #if !USE(GTK4) configuration.setUseSystemAppearanceForScrollbars(priv->useSystemAppearanceForScrollbars);