Files
i2pminibrowser/i2pminibrowser.c
2022-12-10 15:03:48 +01:00

70 lines
2.0 KiB
C

#include <gtk/gtk.h>
#include <webkit2/webkit2.h>
#include <stdio.h>
#include <stdlib.h>
static const int toplevel = GTK_WINDOW_TOPLEVEL;
const gchar* ProxyIgnore[] ={ "127.0.0.1", NULL };
const gchar* PreferredLanguages[] = { "en_US", NULL };
const gchar* ProxyAddress = "http://127.0.0.1:4444";
enum {
CustomProxy = WEBKIT_NETWORK_PROXY_MODE_CUSTOM,
SystemProxy = WEBKIT_NETWORK_PROXY_MODE_DEFAULT,
NoProxy = WEBKIT_NETWORK_PROXY_MODE_NO_PROXY,
};
typedef struct _Browser{
WebKitWebsiteDataManager *DataManager;
WebKitWebContext *context;
WebKitWebView *webView;
WebKitNetworkProxySettings *proxysettings;
WebKitSettings *settings;
} Browser;
int
main(int argc, char** argv) {
gtk_init(NULL, NULL);
GtkWidget *window = gtk_window_new(toplevel);
gtk_window_set_title(GTK_WINDOW(window), "I2P Mini Browser");
gtk_window_set_default_size(GTK_WINDOW(window), 1024, 768);
Browser *b;
if (!(b = calloc(1, sizeof(Browser))))
fprintf(stderr, "Cannot malloc!\n");
b->DataManager = webkit_website_data_manager_new_ephemeral();
b->context = webkit_web_context_new_with_website_data_manager(b->DataManager);
b->webView = WEBKIT_WEB_VIEW(webkit_web_view_new_with_context (b->context));
b->proxysettings = webkit_network_proxy_settings_new(ProxyAddress,ProxyIgnore);
b->settings = webkit_web_view_get_settings(b->webView);
webkit_website_data_manager_set_network_proxy_settings ( b->DataManager, CustomProxy, b->proxysettings);
webkit_settings_set_enable_javascript (b->settings, FALSE);
webkit_web_context_set_preferred_languages(b->context, PreferredLanguages);
gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(b->webView));
webkit_web_view_load_uri(b->webView, argv[1]);
gtk_widget_grab_focus(GTK_WIDGET(b->webView));
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
g_signal_connect(b->webView, "close", G_CALLBACK(gtk_widget_destroy), window);
gtk_widget_show_all(window);
gtk_main();
return EXIT_SUCCESS;
}