diff options
Initial Commit
4 files changed, 57 insertions, 0 deletions
| -rw-r--r-- | KnowledgeBase.md | 2 | ||||
| -rw-r--r-- | Makefile | 9 | ||||
| -rw-r--r-- | README.md | 12 | ||||
| -rw-r--r-- | badwolf.c | 34 |
diff --git a/KnowledgeBase.md b/KnowledgeBase.md new file mode 100644 index 0000000..460ade3 --- /dev/null +++ b/KnowledgeBase.md @@ -0,0 +1,2 @@ +- Similar WebKitGTK+ browser: https://www.uninformativ.de/git/lariza/ +- WebKit2 Extensions Tutorial: https://blogs.igalia.com/carlosgc/2013/09/10/webkit2gtk-web-process-extensions/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..74e4d33 --- /dev/null +++ b/Makefile @@ -0,0 +1,9 @@ +LIBS=$(shell pkg-config --cflags --libs gtk+-3.0 webkit2gtk-4.0) + +badwolf: badwolf.c + $(CC) $(CFLAGS) $(LIBS) -o $@ $@.c + +clean: + rm badwolf + +.PHONY: clean diff --git a/README.md b/README.md new file mode 100644 index 0000000..2b5211c --- /dev/null +++ b/README.md @@ -0,0 +1,12 @@ +# BadWolf + +Yet Another WebKitGTK+ interface. + +Target: https://hacktivis.me/articles/www-client%20are%20broken + +## Dependencies +- WebKitGTK+ +- GTK3+ + +## Notes +Most of the privacy/security stuff will be done with patches against WebKit as quite a lot isn’t into [WebKitSettings](https://webkitgtk.org/reference/webkit2gtk/stable/WebKitSettings.html) and with a generic WebKit extension that should be resuseable. diff --git a/badwolf.c b/badwolf.c new file mode 100644 index 0000000..0e08ac4 --- /dev/null +++ b/badwolf.c @@ -0,0 +1,34 @@ +#include <gtk/gtk.h> +#include <webkit2/webkit2.h> + +static gboolean closeWebViewCb(WebKitWebView *_webView, GtkWidget *window) +{ + gtk_widget_destroy(window); + return TRUE; +} + +int main(int argc, char *argv[]) +{ + gtk_init(0, 0); + + char *target_url = "about:blank"; + + if(argv[1]) + target_url = argv[1]; + + GtkWidget *main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + + WebKitWebView *webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); + + gtk_container_add(GTK_CONTAINER(main_window), GTK_WIDGET(webView)); + + g_signal_connect(main_window, "destroy", G_CALLBACK(gtk_main_quit), NULL); + g_signal_connect(webView, "close", G_CALLBACK(closeWebViewCb), main_window); + + webkit_web_view_load_uri(webView, target_url); + + gtk_widget_grab_focus(GTK_WIDGET(webView)); + gtk_widget_show_all(main_window); + gtk_main(); + return 0; +} |