From: Alberto Garcia Date: Tue, 31 May 2022 08:54:46 +0000 (+0100) Subject: Force the single-process mode in Evolution and Geary X-Git-Tag: archive/raspbian/2.36.3-1_deb10u1+rpi1^2~1 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=bf4c705be80a3eee51614b0ae93bfb18d3ea0886;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 1b128a4c68..822cc02083 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp +++ b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp @@ -405,6 +405,20 @@ static void webkitWebContextConstructed(GObject* object) configuration.setUsesWebProcessCache(true); #if PLATFORM(GTK) configuration.setProcessSwapsOnNavigation(priv->psonEnabled); + if (!priv->psonEnabled) { + const char* useSingleWebProcess = getenv("WEBKIT_USE_SINGLE_WEB_PROCESS"); + 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); #endif