};
typedef struct Client {
- GtkWidget *win, *scroll, *vbox, *pane;
+ GtkWidget *win;
Window xid;
WebKitWebView *view;
WebKitWebInspector *inspector;
{
Client *c;
WebKitWebSettings *settings;
- WebKitWebFrame *frame;
GdkGeometry hints = { 1, 1 };
GdkScreen *screen;
GdkWindow *gwin;
if (!kioskmode)
addaccelgroup(c);
- /* Pane */
- c->pane = gtk_paned_new(GTK_ORIENTATION_VERTICAL);
-
- /* VBox */
- c->vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
- gtk_paned_pack1(GTK_PANED(c->pane), c->vbox, TRUE, TRUE);
-
/* Webview */
c->view = WEBKIT_WEB_VIEW(webkit_web_view_new());
"should-show-delete-interface-for-element",
G_CALLBACK(deletion_interface), c);
- /* Scrolled Window */
- c->scroll = gtk_scrolled_window_new(NULL, NULL);
-
- frame = webkit_web_view_get_main_frame(WEBKIT_WEB_VIEW(c->view));
- g_signal_connect(G_OBJECT(frame), "scrollbars-policy-changed",
- G_CALLBACK(gtk_true), NULL);
-
- if (!enablescrollbars) {
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(c->scroll),
- GTK_POLICY_NEVER,
- GTK_POLICY_NEVER);
- } else {
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(c->scroll),
- GTK_POLICY_AUTOMATIC,
- GTK_POLICY_AUTOMATIC);
- }
-
/* Arranging */
- gtk_container_add(GTK_CONTAINER(c->scroll), GTK_WIDGET(c->view));
- gtk_container_add(GTK_CONTAINER(c->win), c->pane);
- gtk_container_add(GTK_CONTAINER(c->vbox), c->scroll);
+ gtk_container_add(GTK_CONTAINER(c->win), GTK_WIDGET(c->view));
/* Setup */
- gtk_box_set_child_packing(GTK_BOX(c->vbox), c->scroll, TRUE, TRUE, 0,
- GTK_PACK_START);
gtk_widget_grab_focus(GTK_WIDGET(c->view));
- gtk_widget_show(c->pane);
- gtk_widget_show(c->vbox);
- gtk_widget_show(c->scroll);
gtk_widget_show(GTK_WIDGET(c->view));
gtk_widget_show(c->win);
gwin = gtk_widget_get_window(GTK_WIDGET(c->win));
if (enablestyle)
setstyle(c, getstyle("about:blank"));
- /*
- * While stupid, CSS specifies that a pixel represents 1/96 of an inch.
- * This ensures websites are not unusably small with a high DPI screen.
- * It is equivalent to firefox's "layout.css.devPixelsPerPx" setting.
- */
- if (zoomto96dpi) {
- screen = gdk_window_get_screen(gwin);
- dpi = gdk_screen_get_resolution(screen);
- if (dpi != -1) {
- g_object_set(G_OBJECT(settings),
- "enforce-96-dpi", true, NULL);
- webkit_web_view_set_zoom_level(c->view, dpi/96);
- }
- }
/* This might conflict with _zoomto96dpi_. */
if (zoomlevel != 1.0)
webkit_web_view_set_zoom_level(c->view, zoomlevel);
webkit_web_context_get_cookie_manager(context),
cookiepolicy_get());
+ /* rendering process model, can be a shared unique one or one for each
+ * view */
+ webkit_web_context_set_process_model(context,
+ WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES);
+
/* disk cache */
webkit_web_context_set_cache_model(context, enablecache ?
WEBKIT_CACHE_MODEL_WEB_BROWSER :
WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER);
/* ssl */
- tlsdb = g_tls_file_database_new(cafile, &error);
-
- if (error) {
- g_warning("Error loading SSL database %s: %s", cafile,
- error->message);
- g_error_free(error);
- }
- g_object_set(G_OBJECT(s), "tls-database", tlsdb, NULL);
- g_object_set(G_OBJECT(s), "ssl-strict", strictssl, NULL);
+ webkit_web_context_set_tls_errors_policy(context, strictssl ?
+ WEBKIT_TLS_ERRORS_POLICY_FAIL :
+ WEBKIT_TLS_ERRORS_POLICY_IGNORE);
}
void