tazweb diff src/tazweb.c @ rev 179
Use helper as as SHell library
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Mon Mar 13 01:51:59 2017 +0100 (2017-03-13) |
parents | 1603951a52b8 |
children | a6d2bc6be4a4 |
line diff
1.1 --- a/src/tazweb.c Sun Mar 12 17:56:20 2017 +0100 1.2 +++ b/src/tazweb.c Mon Mar 13 01:51:59 2017 +0100 1.3 @@ -4,9 +4,9 @@ 1.4 * as a contextual menu, but no menu bar or tabs. Commented line code 1.5 * starts with // and comments are between * * 1.6 * 1.7 - * Copyright (C) 2011-2014 SliTaz GNU/Linux - BSD License 1.8 + * Copyright (C) 2011-2017 SliTaz GNU/Linux - BSD License 1.9 * See AUTHORS and LICENSE for detailed information 1.10 - * 1.11 + * 1.12 */ 1.13 1.14 #include <glib.h> 1.15 @@ -15,12 +15,13 @@ 1.16 1.17 #include <gtk/gtk.h> 1.18 #include <webkit/webkit.h> 1.19 -//#include <libsoup/soup.h> // for cookies ? 1.20 +#include <libsoup/soup.h> // for cookies 1.21 1.22 #define HOME g_get_home_dir() 1.23 #define CONFIG g_strdup_printf("%s/.config/tazweb", HOME) 1.24 #define BMTXT g_strdup_printf("%s/bookmarks.txt", CONFIG) 1.25 #define BMURL g_strdup_printf("%s/bookmarks.html", CONFIG) 1.26 +#define COOKIES g_strdup_printf("%s/cookies.txt", CONFIG) 1.27 #define WEBHOME "file:///usr/share/webhome/index.html" 1.28 #define SEARCH "http://duckduckgo.com/?q=%s&t=slitaz" 1.29 1.30 @@ -31,10 +32,15 @@ 1.31 static WebKitWebFrame *frame; 1.32 static gint count = 0; 1.33 static gboolean notoolbar; 1.34 -static gboolean noquit; 1.35 +static gboolean nocookies; 1.36 static gboolean kiosk; 1.37 + 1.38 + 1.39 const gchar* uri; 1.40 1.41 +SoupSession *session; 1.42 +SoupCookieJar *cookiejar; 1.43 + 1.44 /* Create an icon */ 1.45 static GdkPixbuf* 1.46 create_pixbuf(const gchar* image) 1.47 @@ -59,12 +65,12 @@ 1.48 GString *string; 1.49 gdouble progress; 1.50 gchar *title; 1.51 - 1.52 + 1.53 string = g_string_new(webkit_web_view_get_title(webview)); 1.54 progress = webkit_web_view_get_progress(webview) * 100; 1.55 if (progress < 100) 1.56 g_string_append_printf(string, " [ %f%% ] ", progress); 1.57 - 1.58 + 1.59 title = g_string_free(string, FALSE); 1.60 gtk_window_set_title(window, title); 1.61 g_free(title); 1.62 @@ -109,11 +115,11 @@ 1.63 view_source_cb(GtkWidget* widget, WebKitWebView* webview) 1.64 { 1.65 gboolean source; 1.66 - 1.67 + 1.68 frame = webkit_web_view_get_main_frame(webview); 1.69 uri = webkit_web_frame_get_uri(frame); 1.70 source = webkit_web_view_get_view_source_mode(webview); 1.71 - 1.72 + 1.73 webkit_web_view_set_view_source_mode(webview, !source); 1.74 webkit_web_view_reload(webview); 1.75 } 1.76 @@ -147,14 +153,25 @@ 1.77 search_icon_press_cb(GtkWidget *search, GtkEntryIconPosition pos, 1.78 GdkEvent *event, WebKitWebView* webview) 1.79 { 1.80 - search_web(search, webview); 1.81 + search_web(search, webview); 1.82 } 1.83 1.84 -/* Navigation button function: */ 1.85 +/* 1.86 + * 1.87 + * Navigation functions 1.88 + * 1.89 + */ 1.90 + 1.91 +static void 1.92 +bookmarks_edit_cb(GtkWidget* widget, WebKitWebView* webview) 1.93 +{ 1.94 + system("/usr/lib/tazweb/helper.sh edit_bookmarks"); 1.95 +} 1.96 + 1.97 static void 1.98 go_bookmarks_cb(GtkWidget* widget, WebKitWebView* webview) 1.99 { 1.100 - system("tazweb-helper html_bookmarks"); 1.101 + system("/usr/lib/tazweb/helper.sh html_bookmarks"); 1.102 uri = g_strdup_printf("file://%s", BMURL); 1.103 g_assert(uri); 1.104 webkit_web_view_load_uri(webview, uri); 1.105 @@ -171,28 +188,15 @@ 1.106 static void 1.107 go_back_cb(GtkWidget* widget, WebKitWebView* webview) 1.108 { 1.109 - webkit_web_view_go_back(webview); 1.110 + webkit_web_view_go_back(webview); 1.111 } 1.112 1.113 static void 1.114 go_forward_cb(GtkWidget* widget, WebKitWebView* webview) 1.115 { 1.116 - webkit_web_view_go_forward(webview); 1.117 + webkit_web_view_go_forward(webview); 1.118 } 1.119 1.120 -/* Fullscreen and unfullscreen callback function */ 1.121 -//static void 1.122 -//fullscreen_cb(GtkWindow* window, gpointer data) 1.123 -//{ 1.124 - //GdkWindowState state; 1.125 - //state = gdk_window_get_state(gtk_widget_get_window(GTK_WIDGET(mainwindow))); 1.126 - 1.127 - //if(state & GDK_WINDOW_STATE_FULLSCREEN) 1.128 - //gtk_window_unfullscreen(GTK_WINDOW(mainwindow)); 1.129 - //else 1.130 - //gtk_window_fullscreen(GTK_WINDOW(mainwindow)); 1.131 -//} 1.132 - 1.133 /* TazWeb doc callback function */ 1.134 static void 1.135 tazweb_doc_cb(GtkWidget* widget, WebKitWebView *webview) 1.136 @@ -202,7 +206,7 @@ 1.137 webkit_web_view_load_uri(webview, uri); 1.138 } 1.139 1.140 -/* Download function */ 1.141 +/* Download functions */ 1.142 static gboolean 1.143 download_requested_cb(WebKitWebView *webview, WebKitDownload *download, 1.144 gpointer user_data) 1.145 @@ -232,10 +236,24 @@ 1.146 static void 1.147 print_page_cb (GtkWidget *widget, gpointer data) 1.148 { 1.149 - webkit_web_frame_print (webkit_web_view_get_main_frame ( 1.150 - WEBKIT_WEB_VIEW (webview))); 1.151 + webkit_web_frame_print (webkit_web_view_get_main_frame ( 1.152 + WEBKIT_WEB_VIEW (webview))); 1.153 } 1.154 1.155 + 1.156 +/* Fullscreen and unfullscreen callback function */ 1.157 +//static void 1.158 +//fullscreen_cb(GtkWindow* window, gpointer data) 1.159 +//{ 1.160 + //GdkWindowState state; 1.161 + //state = gdk_window_get_state(gtk_widget_get_window(GTK_WIDGET(mainwindow))); 1.162 + 1.163 + //if(state & GDK_WINDOW_STATE_FULLSCREEN) 1.164 + //gtk_window_unfullscreen(GTK_WINDOW(mainwindow)); 1.165 + //else 1.166 + //gtk_window_fullscreen(GTK_WINDOW(mainwindow)); 1.167 +//} 1.168 + 1.169 /* New webview callbacks */ 1.170 static WebKitWebView* 1.171 create_web_view_cb(WebKitWebView* webview, WebKitWebFrame* web_frame, 1.172 @@ -262,46 +280,66 @@ 1.173 } 1.174 1.175 /* Add a bookmark */ 1.176 -void add_bookmark_cb(GtkWidget *widget, gpointer data) 1.177 +void 1.178 +add_bookmark_cb(GtkWidget *widget, gpointer data) 1.179 { 1.180 const gchar* title; 1.181 const gchar* buffer; 1.182 - 1.183 + 1.184 title = webkit_web_view_get_title(WEBKIT_WEB_VIEW (webview)); 1.185 uri = webkit_web_view_get_uri(WEBKIT_WEB_VIEW (webview)); 1.186 - 1.187 + 1.188 asprintf(&buffer, "echo '%s|%s' >> %s", title, uri, BMTXT); 1.189 system(buffer); 1.190 } 1.191 1.192 +/* Setup session cookies */ 1.193 +void 1.194 +cookies_setup(void) 1.195 +{ 1.196 + if (cookiejar) { 1.197 + soup_session_remove_feature(session, 1.198 + (SoupSessionFeature*)cookiejar); 1.199 + g_object_unref(cookiejar); 1.200 + cookiejar = NULL; 1.201 + } 1.202 + 1.203 + cookiejar = soup_cookie_jar_text_new(COOKIES, 0); 1.204 + soup_session_add_feature(session, (SoupSessionFeature*)cookiejar); 1.205 +} 1.206 + 1.207 +static void 1.208 +cookies_view_cb(GtkWidget* widget, WebKitWebView* webview) 1.209 +{ 1.210 + system("/usr/lib/tazweb/helper.sh html_cookies"); 1.211 + uri = g_strdup_printf("file://%s/cookies.html", CONFIG); 1.212 + g_assert(uri); 1.213 + webkit_web_view_load_uri(webview, uri); 1.214 +} 1.215 + 1.216 +static void 1.217 +cookies_clean_cb(GtkWidget* widget, WebKitWebView* webview) 1.218 +{ 1.219 + system("/usr/lib/tazweb/helper.sh clean_cookies"); 1.220 +} 1.221 + 1.222 /* Add items to WebKit contextual menu */ 1.223 static void 1.224 populate_menu_cb(WebKitWebView *webview, GtkMenu *menu, gpointer data) 1.225 { 1.226 GtkWidget* item; 1.227 - 1.228 - /* Separator */ 1.229 - item = gtk_separator_menu_item_new(); 1.230 - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 1.231 - 1.232 - /* Zoom in */ 1.233 - item = gtk_image_menu_item_new_with_label(_("Zoom in")); 1.234 - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), 1.235 - gtk_image_new_from_stock(GTK_STOCK_ZOOM_IN, GTK_ICON_SIZE_MENU)); 1.236 - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 1.237 - g_signal_connect(item, "activate", G_CALLBACK(zoom_in_cb), webview); 1.238 - 1.239 - /* Zoom out */ 1.240 - item = gtk_image_menu_item_new_with_label(_("Zoom out")); 1.241 - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), 1.242 - gtk_image_new_from_stock(GTK_STOCK_ZOOM_OUT, GTK_ICON_SIZE_MENU)); 1.243 - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 1.244 - g_signal_connect(item, "activate", G_CALLBACK(zoom_out_cb), webview); 1.245 1.246 /* Separator */ 1.247 item = gtk_separator_menu_item_new(); 1.248 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 1.249 - 1.250 + 1.251 + /* Bookmark */ 1.252 + item = gtk_image_menu_item_new_with_label(_("Bookmarks")); 1.253 + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), 1.254 + gtk_image_new_from_stock(GTK_STOCK_PROPERTIES, GTK_ICON_SIZE_MENU)); 1.255 + gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 1.256 + g_signal_connect(item, "activate", G_CALLBACK(go_bookmarks_cb), webview); 1.257 + 1.258 if (! kiosk) { 1.259 /* Add a bookmark */ 1.260 item = gtk_image_menu_item_new_with_label(_("Add a bookmark")); 1.261 @@ -309,8 +347,19 @@ 1.262 gtk_image_new_from_stock(GTK_STOCK_ADD, GTK_ICON_SIZE_MENU)); 1.263 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 1.264 g_signal_connect(item, "activate", G_CALLBACK(add_bookmark_cb), webview); 1.265 + 1.266 + /* Edit bookmarks */ 1.267 + item = gtk_image_menu_item_new_with_label(_("Edit bookmarks")); 1.268 + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), 1.269 + gtk_image_new_from_stock(GTK_STOCK_EDIT, GTK_ICON_SIZE_MENU)); 1.270 + gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 1.271 + g_signal_connect(item, "activate", G_CALLBACK(bookmarks_edit_cb), webview); 1.272 + 1.273 + /* Separator */ 1.274 + item = gtk_separator_menu_item_new(); 1.275 + gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 1.276 } 1.277 - 1.278 + 1.279 /* Printing */ 1.280 item = gtk_image_menu_item_new_with_label(_("Print this page")); 1.281 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), 1.282 @@ -324,25 +373,62 @@ 1.283 gtk_image_new_from_stock(GTK_STOCK_PROPERTIES, GTK_ICON_SIZE_MENU)); 1.284 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 1.285 g_signal_connect(item, "activate", G_CALLBACK(view_source_cb), webview); 1.286 + 1.287 + /* Separator */ 1.288 + item = gtk_separator_menu_item_new(); 1.289 + gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 1.290 + 1.291 + /* Zoom in */ 1.292 + item = gtk_image_menu_item_new_with_label(_("Zoom in")); 1.293 + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), 1.294 + gtk_image_new_from_stock(GTK_STOCK_ZOOM_IN, GTK_ICON_SIZE_MENU)); 1.295 + gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 1.296 + g_signal_connect(item, "activate", G_CALLBACK(zoom_in_cb), webview); 1.297 + 1.298 + /* Zoom out */ 1.299 + item = gtk_image_menu_item_new_with_label(_("Zoom out")); 1.300 + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), 1.301 + gtk_image_new_from_stock(GTK_STOCK_ZOOM_OUT, GTK_ICON_SIZE_MENU)); 1.302 + gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 1.303 + g_signal_connect(item, "activate", G_CALLBACK(zoom_out_cb), webview); 1.304 1.305 /* Separator */ 1.306 item = gtk_separator_menu_item_new(); 1.307 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 1.308 1.309 + /* Cookies */ 1.310 + if (! nocookies) { 1.311 + item = gtk_image_menu_item_new_with_label(_("View cookies")); 1.312 + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), 1.313 + gtk_image_new_from_stock(GTK_STOCK_HELP, GTK_ICON_SIZE_MENU)); 1.314 + gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 1.315 + g_signal_connect(item, "activate", G_CALLBACK(cookies_view_cb), webview); 1.316 + 1.317 + item = gtk_image_menu_item_new_with_label(_("Clean all cookies")); 1.318 + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), 1.319 + gtk_image_new_from_stock(GTK_STOCK_REMOVE, GTK_ICON_SIZE_MENU)); 1.320 + gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 1.321 + g_signal_connect(item, "activate", G_CALLBACK(cookies_clean_cb), webview); 1.322 + 1.323 + /* Separator */ 1.324 + item = gtk_separator_menu_item_new(); 1.325 + gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 1.326 + } 1.327 + 1.328 /* TazWeb documentation */ 1.329 item = gtk_image_menu_item_new_with_label(_("TazWeb manual")); 1.330 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), 1.331 gtk_image_new_from_stock(GTK_STOCK_HELP, GTK_ICON_SIZE_MENU)); 1.332 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 1.333 g_signal_connect(item, "activate", G_CALLBACK(tazweb_doc_cb), webview); 1.334 - 1.335 + 1.336 /* Quit TazWeb */ 1.337 item = gtk_image_menu_item_new_with_label(_("Quit TazWeb")); 1.338 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), 1.339 gtk_image_new_from_stock(GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU)); 1.340 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 1.341 g_signal_connect(item, "activate", G_CALLBACK(destroy_cb), webview); 1.342 - 1.343 + 1.344 gtk_widget_show_all(GTK_WIDGET(menu)); 1.345 } 1.346 1.347 @@ -352,7 +438,7 @@ 1.348 WebKitWebView* webview) 1.349 { 1.350 WebKitWebSettings *settings; 1.351 - 1.352 + 1.353 browser = gtk_scrolled_window_new(NULL, NULL); 1.354 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(browser), 1.355 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); 1.356 @@ -374,7 +460,7 @@ 1.357 G_CALLBACK(webview_ready_cb), window); 1.358 g_signal_connect(webview, "close-web-view", 1.359 G_CALLBACK(close_webview_cb), window); 1.360 - 1.361 + 1.362 /* Impossible to open in new window or download in kiosk mode */ 1.363 if (! kiosk) { 1.364 g_signal_connect(webview, "download-requested", 1.365 @@ -394,7 +480,7 @@ 1.366 create_toolbar(GtkWidget* urientry, GtkWidget* search, WebKitWebView* webview) 1.367 { 1.368 GtkToolItem* item; 1.369 - 1.370 + 1.371 toolbar = gtk_toolbar_new(); 1.372 gtk_toolbar_set_orientation(GTK_TOOLBAR(toolbar), 1.373 GTK_ORIENTATION_HORIZONTAL); 1.374 @@ -402,18 +488,18 @@ 1.375 GTK_TOOLBAR_BOTH_HORIZ); 1.376 1.377 /* The back button */ 1.378 - item = gtk_tool_button_new_from_stock(GTK_STOCK_GO_BACK); 1.379 - g_signal_connect(G_OBJECT(item), "clicked", 1.380 + item = gtk_tool_button_new_from_stock(GTK_STOCK_GO_BACK); 1.381 + g_signal_connect(G_OBJECT(item), "clicked", 1.382 G_CALLBACK(go_back_cb), webview); 1.383 - gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); 1.384 + gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); 1.385 1.386 - /* The forward button */ 1.387 - item = gtk_tool_button_new_from_stock(GTK_STOCK_GO_FORWARD); 1.388 - g_signal_connect(G_OBJECT(item), "clicked", 1.389 + /* The forward button */ 1.390 + item = gtk_tool_button_new_from_stock(GTK_STOCK_GO_FORWARD); 1.391 + g_signal_connect(G_OBJECT(item), "clicked", 1.392 G_CALLBACK(go_forward_cb), webview); 1.393 - gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); 1.394 + gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); 1.395 1.396 - /* Home button */ 1.397 + /* Home button */ 1.398 item = gtk_tool_button_new_from_stock(GTK_STOCK_HOME); 1.399 g_signal_connect(G_OBJECT(item), "clicked", 1.400 G_CALLBACK(go_home_cb), webview); 1.401 @@ -422,19 +508,20 @@ 1.402 /* URL entry */ 1.403 item = gtk_tool_item_new(); 1.404 gtk_tool_item_set_expand(item, TRUE); 1.405 - gtk_widget_set_size_request(urientry, 0, 20); 1.406 + //gtk_widget_set_size_request(urientry, 0, 20); 1.407 gtk_container_add(GTK_CONTAINER(item), urientry); 1.408 gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); 1.409 g_signal_connect(G_OBJECT(urientry), "activate", 1.410 G_CALLBACK(uri_entry_cb), webview); 1.411 - 1.412 + 1.413 /* Separator */ 1.414 item = gtk_separator_tool_item_new(); 1.415 - gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); 1.416 - 1.417 + gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); 1.418 + 1.419 /* Search entry */ 1.420 item = gtk_tool_item_new(); 1.421 - gtk_widget_set_size_request(search, 160, 20); 1.422 + gtk_tool_item_set_expand(item, FALSE); 1.423 + gtk_widget_set_size_request(GTK_WIDGET(item), 200, 0); 1.424 gtk_container_add(GTK_CONTAINER(item), search); 1.425 gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); 1.426 gtk_entry_set_icon_from_stock(GTK_ENTRY(search), 1.427 @@ -443,7 +530,7 @@ 1.428 G_CALLBACK(search_icon_press_cb), webview); 1.429 g_signal_connect(G_OBJECT(search), "activate", 1.430 G_CALLBACK(search_entry_cb), webview); 1.431 - 1.432 + 1.433 /* Bookmark button */ 1.434 item = gtk_tool_button_new_from_stock(GTK_STOCK_PROPERTIES); 1.435 g_signal_connect(G_OBJECT(item), "clicked", 1.436 @@ -460,7 +547,7 @@ 1.437 GtkWidget *window; 1.438 GtkWidget *urientry; 1.439 GtkWidget *search; 1.440 - 1.441 + 1.442 g_atomic_int_inc(&count); 1.443 1.444 /* Default TazWeb window */ 1.445 @@ -476,31 +563,34 @@ 1.446 urientry = gtk_entry_new(); 1.447 search = gtk_entry_new(); 1.448 vbox = gtk_vbox_new(FALSE, 0); 1.449 - 1.450 + 1.451 /* Pack box and container */ 1.452 if (! notoolbar) 1.453 gtk_box_pack_start(GTK_BOX(vbox), 1.454 create_toolbar(urientry, search, webview), FALSE, FALSE, 0); 1.455 gtk_box_pack_start(GTK_BOX(vbox), 1.456 create_browser(window, urientry, search, webview), TRUE, TRUE, 0); 1.457 - 1.458 + 1.459 gtk_container_add(GTK_CONTAINER(window), vbox); 1.460 - 1.461 + 1.462 if (newwebview) 1.463 *newwebview = webview; 1.464 - 1.465 - return window; 1.466 + 1.467 + return window; 1.468 } 1.469 1.470 int 1.471 main(int argc, char* argv[]) 1.472 { 1.473 textdomain (GETTEXT_PACKAGE); 1.474 - 1.475 + 1.476 while (argc > 1) { 1.477 if (!strcmp(argv[1],"--notoolbar")) { 1.478 notoolbar++; 1.479 } 1.480 + if (!strcmp(argv[1],"--nocookies")) { 1.481 + nocookies++; 1.482 + } 1.483 else if (!strcmp(argv[1],"--kiosk")) { 1.484 kiosk++; 1.485 } 1.486 @@ -510,7 +600,7 @@ 1.487 useragent = argv[1]; 1.488 } 1.489 else if (!strcmp(argv[1],"--help")) { 1.490 - printf ("Usage: tazweb [--notoolbar|--kiosk|--useragent] [ua]\n"); 1.491 + printf ("Usage: tazweb [--notoolbar|--nocookies|--kiosk|--useragent] [ua]\n"); 1.492 printf ("Bookmarks: %s\n", BMTXT); 1.493 return 0; 1.494 } 1.495 @@ -518,32 +608,39 @@ 1.496 argc--; 1.497 argv++; 1.498 } 1.499 - 1.500 + 1.501 /* Initialize GTK */ 1.502 gtk_init(NULL, NULL); 1.503 - 1.504 + 1.505 /* Get a default bookmarks.txt if missing */ 1.506 if (! g_file_test(BMTXT, G_FILE_TEST_EXISTS)) { 1.507 system("install -m 0700 -d $HOME/.config/tazweb"); 1.508 system("install -m 0600 /usr/share/tazweb/bookmarks.txt \ 1.509 $HOME/.config/tazweb/bookmarks.txt"); 1.510 - } 1.511 + } 1.512 1.513 /* Load the start page file or the url in argument */ 1.514 uri =(char*)(argc > 1 ? argv[1] : WEBHOME); 1.515 if (argv[1]) 1.516 check_requested_uri(); 1.517 - 1.518 + 1.519 mainwindow = create_window(&webview); 1.520 gtk_widget_show_all(mainwindow); 1.521 1.522 + /* Handle cookies */ 1.523 + if (! nocookies) { 1.524 + session = webkit_get_default_session(); 1.525 + snprintf(COOKIES, sizeof COOKIES, "%s", COOKIES); 1.526 + cookies_setup(); 1.527 + } 1.528 + 1.529 /* Fullscreen for Kiosk mode */ 1.530 if (kiosk) 1.531 gtk_window_fullscreen(GTK_WINDOW(mainwindow)); 1.532 - 1.533 + 1.534 webkit_web_view_load_uri(webview, uri); 1.535 gtk_widget_grab_focus(GTK_WIDGET(webview)); 1.536 gtk_main(); 1.537 - 1.538 + 1.539 return 0; 1.540 }