evolution-data-server/webkitgtk-2.39.6.patch
2023-02-01 13:55:57 -06:00

149 lines
6.3 KiB
Diff

From 816deda308279c3e5a8a816ae2d94542c9084555 Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@redhat.com>
Date: Wed, 1 Feb 2023 13:36:21 -0600
Subject: [PATCH 1/2] M!114 - OAuth2: stop trying to disable WebKit plugins
WebKitGTK removed support for plugins in 2.32, but evolution-data-server
already requires 2.34 at least. This property is gone in 2.39.5.
---
src/libedataserverui/e-credentials-prompter-impl-oauth2.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/libedataserverui/e-credentials-prompter-impl-oauth2.c b/src/libedataserverui/e-credentials-prompter-impl-oauth2.c
index 7e116fc7f..7a1f40e10 100644
--- a/src/libedataserverui/e-credentials-prompter-impl-oauth2.c
+++ b/src/libedataserverui/e-credentials-prompter-impl-oauth2.c
@@ -1205,7 +1205,6 @@ e_credentials_prompter_impl_oauth2_show_dialog (ECredentialsPrompterImplOAuth2 *
"enable-html5-local-storage", FALSE,
"enable-offline-web-application-cache", FALSE,
"enable-page-cache", FALSE,
- "enable-plugins", FALSE,
"media-playback-allows-inline", FALSE,
"hardware-acceleration-policy", WEBKIT_HARDWARE_ACCELERATION_POLICY_NEVER,
NULL);
--
GitLab
From 02703b28d798931afccebf79c842b54625a8dcd0 Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@redhat.com>
Date: Wed, 1 Feb 2023 13:46:15 -0600
Subject: [PATCH 2/2] M!114 - OAuth2: use WebKitNetworkSession to manage proxy
settings
With WebKitGTK 2.39.6, network proxy settings moved from
WebKitWebsiteDataManager to WebKitNetworkSession.
---
.../e-credentials-prompter-impl-oauth2.c | 40 +++++++++++++++++--
1 file changed, 36 insertions(+), 4 deletions(-)
diff --git a/src/libedataserverui/e-credentials-prompter-impl-oauth2.c b/src/libedataserverui/e-credentials-prompter-impl-oauth2.c
index 7a1f40e10..9a3918b61 100644
--- a/src/libedataserverui/e-credentials-prompter-impl-oauth2.c
+++ b/src/libedataserverui/e-credentials-prompter-impl-oauth2.c
@@ -679,7 +679,12 @@ credentials_prompter_impl_oauth2_sanitize_host (gchar *host)
}
static void
-credentials_prompter_impl_oauth2_set_proxy (WebKitWebContext *web_context,
+credentials_prompter_impl_oauth2_set_proxy (
+#if GTK_CHECK_VERSION(4, 0, 0) && WEBKIT_CHECK_VERSION(2, 39, 6)
+ WebKitNetworkSession *network_session,
+#else
+ WebKitWebsiteDataManager *data_manager,
+#endif
ESourceRegistry *registry,
ESource *auth_source)
{
@@ -704,7 +709,6 @@ credentials_prompter_impl_oauth2_set_proxy (WebKitWebContext *web_context,
if (proxy_source && e_source_has_extension (proxy_source, E_SOURCE_EXTENSION_PROXY)) {
ESourceProxy *proxy;
- WebKitWebsiteDataManager *data_manager;
WebKitNetworkProxySettings *proxy_settings = NULL;
GUri *guri;
gchar **ignore_hosts = NULL;
@@ -712,11 +716,14 @@ credentials_prompter_impl_oauth2_set_proxy (WebKitWebContext *web_context,
guint16 port;
proxy = e_source_get_extension (proxy_source, E_SOURCE_EXTENSION_PROXY);
- data_manager = webkit_web_context_get_website_data_manager (web_context);
switch (e_source_proxy_get_method (proxy)) {
case E_PROXY_METHOD_DEFAULT:
+#if GTK_CHECK_VERSION(4, 0, 0) && WEBKIT_CHECK_VERSION(2, 39, 6)
+ webkit_network_session_set_proxy_settings (network_session, WEBKIT_NETWORK_PROXY_MODE_DEFAULT, NULL);
+#else
webkit_website_data_manager_set_network_proxy_settings (data_manager, WEBKIT_NETWORK_PROXY_MODE_DEFAULT, NULL);
+#endif
break;
case E_PROXY_METHOD_MANUAL:
ignore_hosts = e_source_proxy_dup_ignore_hosts (proxy);
@@ -770,13 +777,21 @@ credentials_prompter_impl_oauth2_set_proxy (WebKitWebContext *web_context,
}
g_free (tmp);
+#if GTK_CHECK_VERSION(4, 0, 0) && WEBKIT_CHECK_VERSION(2, 39, 6)
+ webkit_network_session_set_proxy_settings (network_session, WEBKIT_NETWORK_PROXY_MODE_CUSTOM, proxy_settings);
+#else
webkit_website_data_manager_set_network_proxy_settings (data_manager, WEBKIT_NETWORK_PROXY_MODE_CUSTOM, proxy_settings);
+#endif
break;
case E_PROXY_METHOD_AUTO:
/* not supported by WebKitGTK */
break;
case E_PROXY_METHOD_NONE:
+#if GTK_CHECK_VERSION(4, 0, 0) && WEBKIT_CHECK_VERSION(2, 39, 6)
+ webkit_network_session_set_proxy_settings (network_session, WEBKIT_NETWORK_PROXY_MODE_NO_PROXY, proxy_settings);
+#else
webkit_website_data_manager_set_network_proxy_settings (data_manager, WEBKIT_NETWORK_PROXY_MODE_NO_PROXY, NULL);
+#endif
break;
}
@@ -899,6 +914,11 @@ e_credentials_prompter_impl_oauth2_show_dialog (ECredentialsPrompterImplOAuth2 *
GtkWidget *progress_bar;
WebKitSettings *webkit_settings;
WebKitWebContext *web_context;
+#if GTK_CHECK_VERSION(4, 0, 0) && WEBKIT_CHECK_VERSION(2, 39, 6)
+ WebKitNetworkSession *network_session;
+#else
+ WebKitWebsiteDataManager *data_manager;
+#endif
#endif /* WITH_WEBKITGTK */
gchar *title, *uri;
GString *info_markup;
@@ -1213,9 +1233,18 @@ e_credentials_prompter_impl_oauth2_show_dialog (ECredentialsPrompterImplOAuth2 *
#if !GTK_CHECK_VERSION(4, 0, 0) || !WEBKIT_CHECK_VERSION(2, 39, 5)
webkit_web_context_set_sandbox_enabled (web_context, TRUE);
#endif
- credentials_prompter_impl_oauth2_set_proxy (web_context, e_credentials_prompter_get_registry (prompter), prompter_oauth2->priv->auth_source);
+#if GTK_CHECK_VERSION(4, 0, 0) && WEBKIT_CHECK_VERSION(2, 39, 6)
+ network_session = webkit_network_session_new (NULL, NULL);
+ credentials_prompter_impl_oauth2_set_proxy (network_session, e_credentials_prompter_get_registry (prompter), prompter_oauth2->priv->auth_source);
+#else
+ data_manager = webkit_web_context_get_website_data_manager (web_context);
+ credentials_prompter_impl_oauth2_set_proxy (data_manager, e_credentials_prompter_get_registry (prompter), prompter_oauth2->priv->auth_source);
+#endif
widget = g_object_new (WEBKIT_TYPE_WEB_VIEW,
+#if GTK_CHECK_VERSION(4, 0, 0) && WEBKIT_CHECK_VERSION(2, 39, 6)
+ "network-session", network_session,
+#endif
"settings", webkit_settings,
"web-context", web_context,
NULL);
@@ -1231,6 +1260,9 @@ e_credentials_prompter_impl_oauth2_show_dialog (ECredentialsPrompterImplOAuth2 *
gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (scrolled_window), widget);
#else
gtk_container_add (GTK_CONTAINER (scrolled_window), widget);
+#endif
+#if GTK_CHECK_VERSION(4, 0, 0) && WEBKIT_CHECK_VERSION(2, 39, 6)
+ g_object_unref (network_session);
#endif
g_object_unref (webkit_settings);
g_object_unref (web_context);
--
GitLab