Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commit08a722c229b4c9261fe5c3cfc51c0f78cf93085c (patch)
Author
 Haelwenn (lanodan) Monnier <contact@hacktivis.me>
2021-11-20 13:28:32 +0100
Committer
 Haelwenn (lanodan) Monnier <contact@hacktivis.me>
2021-11-20 13:28:32 +0100
Filesd85f2a73692ae67ecb26ece266a7bfb1d53bda22
goodwolf-1.2.1.tar
goodwolf-1.2.1.tar.gz
goodwolf-1.2.1.zip
Parent667c807f6eebe09ba075f763f2642e5241d2ac84 (diff)
Parent1815d7a01c07f2cc69f406e343005e3e93c80123 (diff)
Merge branch 'release-1.2' into missy for 1.2.1 v1.2.1
2 files changed, 61 insertions, 2 deletions
-rw-r--r--badwolf.c24
-rwxr-xr-xconfigure39
diff --git a/badwolf.c b/badwolf.c
index a0a7d09..8578404 100644
--- a/badwolf.c
+++ b/badwolf.c
@@ -440,7 +440,11 @@ WebViewCb_load_failed_with_tls_errors(WebKitWebView *web_view,
gchar *error_details = detail_tls_certificate_flags(errors);
gint dialog_response;
+#ifndef USE_LIBSOUP2
GUri *failing_uri = g_uri_parse(failing_text, G_URI_FLAGS_NONE, NULL);
+#else
+ SoupURI *failing_uri = soup_uri_new(failing_text);
+#endif
GtkWidget *dialog = gtk_message_dialog_new(GTK_WINDOW(browser->window->main_window),
GTK_DIALOG_MODAL & GTK_DIALOG_DESTROY_WITH_PARENT,
@@ -461,12 +465,30 @@ WebViewCb_load_failed_with_tls_errors(WebKitWebView *web_view,
if(dialog_response == 1)
{
+#ifndef USE_LIBSOUP2
webkit_web_context_allow_tls_certificate_for_host(
webkit_web_view_get_context(browser->webView), certificate, g_uri_get_host(failing_uri));
+#else
+ webkit_web_context_allow_tls_certificate_for_host(
+ webkit_web_view_get_context(browser->webView), certificate, failing_uri->host);
+#endif
webkit_web_view_reload(browser->webView);
}
- g_free(failing_uri);
+#ifndef USE_LIBSOUP2
+ /* Calling g_free(failing_uri) ought to be the correct way but this causes a segfault.
+ *
+ * - documentation describes it as something which should be free
+ * - implementation seems to make it a pointer that should be freed
+ * - epiphany doesn't seems to free/unref it but gnome code seems to frequently have memleaks
+ *
+ * Decided to at least continue to try with using g_uri_unref(failing_uri) instead.
+ * Related fediverse post: <https://queer.hacktivis.me/objects/cec7c4e8-6a58-4358-85bf-b66f9bb21a98>
+ */
+ g_uri_unref(failing_uri);
+#else
+ soup_uri_free(failing_uri);
+#endif
g_free(error_details);
gtk_widget_destroy(dialog);
diff --git a/configure b/configure
index 3776bfa..7f52579 100755
--- a/configure
+++ b/configure
@@ -69,7 +69,7 @@ case "${WITH_WEBKITGTK}n" in
DEPS="${DEPS} webkit2gtk-4.0"
;;
n)
- echo "warning: Packagers should specify the ABI version (4.0 or 4.1) in WITH_WEBKITGTK" >&2
+ echo "notice: Packagers should consider setting the ABI version (4.0 or 4.1) in WITH_WEBKITGTK" >&2
if pkg_config_check --atleast-version=2.32.0 webkit2gtk-4.1
then
DEPS="${DEPS} webkit2gtk-4.1"
@@ -84,6 +84,43 @@ case "${WITH_WEBKITGTK}n" in
;;
esac
+case "${WITH_URI_PARSER}n" in
+ gurin)
+ echo "URI parser selected: GUri from glib-2.0"
+ pkg_config_check --atleast-version=2.66.0 glib-2.0 || exit 1
+ DEPS="${DEPS} glib-2.0"
+ ;;
+ libsoup2n)
+ echo "URI parser selected: libsoup-2.4"
+ pkg_config_check libsoup-2.4 || exit 1
+ DEPS="${DEPS} libsoup-2.4"
+ CFLAGS="${CFLAGS} -DUSE_LIBSOUP2"
+
+ if echo "${DEPS}" | grep -q 'webkit2gtk-4.1'
+ then
+ echo 'warning: libsoup2 selected while WebKitGTK with libsoup3 API is used' >&2
+ fi
+ ;;
+ n)
+ echo "notice: Packagers should consider setting the URI parsing library (guri or libsoup2) in WITH_URI_PARSER" >&2
+
+ if echo "${DEPS}" | grep -q 'webkit2gtk-4.0'
+ then
+ pkg_config_check libsoup-2.4 || exit 1
+ echo "URI parser selected: libsoup-2.4"
+ DEPS="${DEPS} libsoup-2.4"
+ CFLAGS="${CFLAGS} -DUSE_LIBSOUP2"
+ else
+ pkg_config_check --atleast-version="${min_glib_guri}" glib-2.0 || exit 1
+ echo "URI parser selected: GUri from glib-2.0"
+ DEPS="${DEPS} glib-2.0"
+ fi
+ ;;
+ *)
+ echo "error: invalid uri provider in WITH_URI_PARSER environment variable, must be guri or libsoup2" >&2
+ ;;
+esac
+
get_cflags() { "${PKGCONFIG}" --cflags "${DEPS}"; }
DEPS_cflags="$(get_cflags)"
get_libs() { "${PKGCONFIG}" --libs "${DEPS}"; }