diff options
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | dragonfly/Makefile | 6 | ||||
-rw-r--r-- | freebsd/Makefile | 6 | ||||
-rw-r--r-- | linux/Makefile | 2 | ||||
-rw-r--r-- | netbsd/Makefile | 7 | ||||
-rw-r--r-- | osx/Makefile | 2 | ||||
-rw-r--r-- | xombrero.c | 148 | ||||
-rw-r--r-- | xombrero.h | 24 |
8 files changed, 15 insertions, 181 deletions
diff --git a/Makefile b/Makefile index 57584b9..2260fba 100644 --- a/Makefile +++ b/Makefile @@ -23,7 +23,6 @@ LIBS+= webkitgtk-3.0 .endif LIBS+= libsoup-2.4 LIBS+= gnutls -LIBS+= gthread-2.0 GTK_CFLAGS!= pkg-config --cflags $(LIBS) GTK_LDFLAGS!= pkg-config --libs $(LIBS) CFLAGS+= $(GTK_CFLAGS) diff --git a/dragonfly/Makefile b/dragonfly/Makefile index f438f1f..f0b8a32 100644 --- a/dragonfly/Makefile +++ b/dragonfly/Makefile @@ -4,13 +4,13 @@ LIBS= gtk+-2.0 webkit-1.0 .else LIBS= gtk+-3.0 webkitgtk-3.0 .endif -LIBS+= libsoup-2.4 gnutls gthread-2.0 +LIBS+= libsoup-2.4 gnutls LDADD= -lutil -lgcrypt -lX11 GTK_CFLAGS!= pkg-config --cflags $(LIBS) GTK_LDFLAGS!= pkg-config --libs $(LIBS) -CFLAGS+= $(GTK_CFLAGS) -O2 -Wall -pthread -I. -I.. -LDFLAGS+= $(GTK_LDFLAGS) -pthread +CFLAGS+= $(GTK_CFLAGS) -O2 -Wall -I. -I.. +LDFLAGS+= $(GTK_LDFLAGS) PREFIX?= /usr/local BINDIR?= $(PREFIX)/bin diff --git a/freebsd/Makefile b/freebsd/Makefile index fb1ccf7..b057202 100644 --- a/freebsd/Makefile +++ b/freebsd/Makefile @@ -4,13 +4,13 @@ LIBS= gtk+-2.0 webkit-1.0 .else LIBS= gtk+-3.0 webkitgtk-3.0 .endif -LIBS+= libsoup-2.4 gnutls gthread-2.0 +LIBS+= libsoup-2.4 gnutls LDADD= -lutil -lgcrypt GTK_CFLAGS!= pkg-config --cflags $(LIBS) GTK_LDFLAGS!= pkg-config --libs $(LIBS) -CFLAGS+= $(GTK_CFLAGS) -O2 -Wall -pthread -I. -I.. -LDFLAGS+= $(GTK_LDFLAGS) -pthread +CFLAGS+= $(GTK_CFLAGS) -O2 -Wall -I. -I.. +LDFLAGS+= $(GTK_LDFLAGS) PREFIX?= /usr/local BINDIR?= $(PREFIX)/bin diff --git a/linux/Makefile b/linux/Makefile index 0e19d2a..0cc96cc 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -15,7 +15,7 @@ else LIBS+= gtk+-3.0 webkitgtk-3.0 CFLAGS+=-I/usr/include/gtk-3.0 endif -LIBS+= libsoup-2.4 gthread-2.0 gnutls libbsd +LIBS+= libsoup-2.4 gnutls libbsd CFLAGS+= -O2 -Wall -ggdb3 -D_GNU_SOURCE -I. -I.. $(shell pkg-config --cflags $(LIBS)) $(JS_CF) LDADD+= $(shell pkg-config --libs $(LIBS)) $(JS_LD) -ldl -lgcrypt -lX11 diff --git a/netbsd/Makefile b/netbsd/Makefile index 7118caa..3939ddf 100644 --- a/netbsd/Makefile +++ b/netbsd/Makefile @@ -4,13 +4,13 @@ LIBS= gtk+-2.0 webkit-1.0 .else LIBS= gtk+-3.0 webkitgtk-3.0 .endif -LIBS+= libsoup-2.4 gnutls gthread-2.0 +LIBS+= libsoup-2.4 gnutls LDADD= -lutil -lgcrypt -lX11 GTK_CFLAGS!= pkg-config --cflags $(LIBS) GTK_LDFLAGS!= pkg-config --libs $(LIBS) -CFLAGS+= $(GTK_CFLAGS) -O2 -Wall -pthread -I. -I.. -LDFLAGS+= $(GTK_LDFLAGS) -pthread +CFLAGS+= $(GTK_CFLAGS) -O2 -Wall -I. -I.. +LDFLAGS+= $(GTK_LDFLAGS) PREFIX?= /usr/local BINDIR?= $(PREFIX)/bin @@ -115,7 +115,6 @@ LIBS+= webkitgtk-3.0 .endif LIBS+= libsoup-2.4 LIBS+= gnutls -LIBS+= gthread-2.0 GTK_CFLAGS!= pkg-config --cflags $(LIBS) GTK_LDFLAGS!= pkg-config --libs $(LIBS) CFLAGS+= $(GTK_CFLAGS) diff --git a/osx/Makefile b/osx/Makefile index eaa9bfe..184d34a 100644 --- a/osx/Makefile +++ b/osx/Makefile @@ -1,6 +1,6 @@ LIBS= glib-2.0 LIBS+= gtk+-2.0 webkit-1.0 -LIBS+= libsoup-2.4 gthread-2.0 gnutls +LIBS+= libsoup-2.4 gnutls CFLAGS+= -O2 -Wall -D_GNU_SOURCE -I. -I.. $(shell pkg-config --cflags $(LIBS)) $(JS_CF) LDADD+= $(shell pkg-config --libs $(LIBS)) $(JS_LD) -ldl -lgcrypt -lX11 diff --git a/xombrero.c b/xombrero.c index 5800d23..b714ad4 100644 --- a/xombrero.c +++ b/xombrero.c @@ -48,10 +48,6 @@ uint32_t swm_debug = 0 ; #endif -#ifdef USE_THREADS -GCRY_THREAD_OPTION_PTHREAD_IMPL; -#endif - char *icons[] = { "xombreroicon16.png", "xombreroicon32.png", @@ -1109,21 +1105,6 @@ run_script(struct tab *t, char *s) return (0); } -int -run_script_locked(struct tab *t, char *s) -{ - int rv; -#ifdef USE_THREADS - gdk_threads_enter(); -#endif - rv = run_script(t, s); -#ifdef USE_THREADS - GDK_FLUSH(); - gdk_threads_leave(); -#endif - return (rv); -} - void enable_hints(struct tab *t) { @@ -1883,23 +1864,6 @@ done: return (0); } -/* - * args must be allocated dynamically as the thread that added this function - * to the idle loop no longer exists - */ -gboolean -warn_cert_cache_differs_idle(struct karg *args) -{ - if (args == NULL) { - show_oops(NULL, "%s: invalid parameters", __func__); - /* return 0 to not re-add function to the idle loop */ - return (0); - } - xtp_page_sv((struct tab *)args->ptr, args); - g_free(args); - return (0); -} - /* Checks whether the remote cert is identical to the local saved * cert. Returns CERT_LOCAL if unchanged, CERT_UNTRUSTED if local * cert does not exist, and CERT_BAD if different. @@ -1965,7 +1929,6 @@ check_cert_changes(struct tab *t, GTlsCertificate *cert, const char *file, const SoupURI *soupuri = NULL; struct karg args = {0}; struct wl_entry *w = NULL; - struct karg *argsp; char *chain = NULL; int ret = 0; @@ -1988,10 +1951,8 @@ check_cert_changes(struct tab *t, GTlsCertificate *cert, const char *file, const if ((w = wl_find(soupuri->host, &svil)) != NULL) break; t->xtp_meaning = XT_XTP_TAB_MEANING_SV; - argsp = g_malloc0(sizeof(struct karg)); - argsp->s = g_strdup((char *)uri); - argsp->ptr = (void *)t; - g_idle_add((GSourceFunc)warn_cert_cache_differs_idle, argsp); + args.s = g_strdup((char *)uri); + xtp_page_sv(t, &args); break; } @@ -4057,10 +4018,6 @@ notify_load_status_cb(WebKitWebView* wview, GParamSpec* pspec, struct tab *t) t->focus_wv = 1; marks_clear(t); -#ifdef USE_THREAD - /* kill color thread */ - t->thread = NULL; -#endif break; case WEBKIT_LOAD_COMMITTED: @@ -4322,7 +4279,7 @@ nofile: } DNPRINTF(XT_D_JS, "%s: about to run script\n", __func__); - run_script_locked(t, js); + run_script(t, js); done: if (su) @@ -7187,10 +7144,6 @@ delete_tab(struct tab *t) if (t == NULL) return; - /* - * no need to join thread here because it won't access t on completion - */ - TAILQ_REMOVE(&tabs, t, entry); buffercmd_abort(t); @@ -8221,81 +8174,6 @@ usage(void) exit(0); } -GStaticRecMutex my_gdk_mtx = G_STATIC_REC_MUTEX_INIT; -volatile int mtx_depth; -int mtx_complain; - -/* - * The linux flash plugin violates the gdk locking mechanism. - * Work around the issue by using a recursive mutex with some match applied - * to see if we hit a buggy condition. - * - * The following code is painful so just don't read it. It really doesn't - * make much sense but seems to work. - */ -void -mtx_lock(void) -{ -#ifdef XT_DEBUG - char *s = NULL; -#endif - - g_static_rec_mutex_lock(&my_gdk_mtx); - if (my_gdk_mtx.depth <= 0) { -#ifdef XT_DEBUG - s = "lock <= 0"; -#endif - g_static_rec_mutex_lock(&my_gdk_mtx); - goto complain; - } else if (my_gdk_mtx.depth != 1) { -#ifdef XT_DEBUG - s = "lock != 1"; -#endif - do { - g_static_rec_mutex_unlock(&my_gdk_mtx); - } while (my_gdk_mtx.depth > 1); - goto complain; - } - return; - -complain: - if (mtx_complain == 0) { - DNPRINTF(XT_D_MTX, "buggy mutex implementation detected(%s), " - "work around implemented", s); - mtx_complain = 1; - } -} - -void -mtx_unlock(void) -{ -#ifdef XT_DEBUG - char *s = NULL; -#endif - - if (my_gdk_mtx.depth <= 0) { -#ifdef XT_DEBUG - s = "unlock <= 0"; -#endif - goto complain; - } else if (my_gdk_mtx.depth != 1) { -#ifdef XT_DEBUG - s = "unlock != 1"; -#endif - g_static_rec_mutex_unlock_full(&my_gdk_mtx); - goto complain; - } - g_static_rec_mutex_unlock(&my_gdk_mtx); - return; - -complain: - if (mtx_complain == 0) { - DNPRINTF(XT_D_MTX, "buggy mutex implementation detected(%s), " - "work around implemented", s); - mtx_complain = 1; - } -} - #if GTK_CHECK_VERSION(3, 0, 0) void setup_css(void) @@ -8360,20 +8238,6 @@ main(int argc, char **argv) os_init(); /* prepare gtk */ -#ifdef USE_THREADS -#if !defined __MINGW32__ - /* http://web.archiveorange.com/archive/v/UsPjxkX5PsaXBIoOjqxf */ - XInitThreads(); -#endif - /* http://developer.gnome.org/gdk/stable/gdk-Threads.html */ - g_thread_init(NULL); - gdk_threads_set_lock_functions(mtx_lock, mtx_unlock); - gdk_threads_init(); - gdk_threads_enter(); - - /* http://www.gnupg.org/documentation/manuals/gcrypt/Multi_002dThreading.html */ - gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread); -#endif gtk_init(&argc, &argv); gnutls_global_init(); @@ -8788,12 +8652,6 @@ main(int argc, char **argv) gtk_main(); -#ifdef USE_THREADS - GDK_FLUSH(); - gdk_threads_leave(); - g_static_rec_mutex_unlock_full(&my_gdk_mtx); /* just in case */ -#endif - gnutls_global_deinit(); if (url_regex) diff --git a/xombrero.h b/xombrero.h index f1461a1..8e0e505 100644 --- a/xombrero.h +++ b/xombrero.h @@ -106,24 +106,6 @@ uint32_t arc4random_uniform(uint32_t); #include <gnutls/gnutls.h> #include <gnutls/x509.h> -/* comment if you don't want to use threads */ -#define USE_THREADS - -#ifdef USE_THREADS -/* http://seclists.org/wireshark/2011/Jul/209 */ -#define _GCRYPT_IN_LIBGCRYPT 1 -#include <gcrypt.h> -#include <pthread.h> - -/* #define USE_FLUSH */ -#ifdef USE_FLUSH -#define GDK_FLUSH() do { gdk_flush(); } while (0) -#else -#define GDK_FLUSH() -#endif /* USE_FLUSH */ - -#endif - /* set if you don't want to use resource limits */ #ifndef XT_RESOURCE_LIMITS_DISABLE #include <sys/resource.h> @@ -186,7 +168,6 @@ THE SOFTWARE. #define XT_D_CUSTOM_URI 0x80000 #define XT_D_CMD_ALIAS 0x100000 #define XT_D_SEARCH 0x200000 -#define XT_D_MTX 0x400000 extern uint32_t swm_debug; #else #define DPRINTF(x...) @@ -283,10 +264,7 @@ struct tab { gchar *tmp_uri; int popup; /* 1 if cmd_entry has popup visible */ int download_requested; -#ifdef USE_THREADS - /* https thread stuff */ - GThread *thread; -#endif + /* hints */ int script_init; int new_tab; |