On Wed, Mar 09, 2011 at 08:55:37AM -0800, Martin Robinson wrote: > On Wed, Mar 9, 2011 at 6:28 AM, Marco Peereboom <sl...@peereboom.us> wrote: > > Hence the knobbing part. ??Some people have legitimate use for it which > > is of course fine. ??I want it for performance reasons but also to > > prevent DNS tracking. ??Between DNS prefetching, link hovering and the > > empty DNS lookups webkit generates one can get near pixel resolution on > > how the user moves his mouse. ??This comes in handy for "Online > > Behavioral Tracking". ??Being a practical paranoid I'd like to prevent > > that. > > Is it possible for you to make the tools you used to generate your > performance number available publically? This would help us fix any > performance issues that exist as bugs. This may very well be some > weird corner case that we're hitting in libsoup. Let's fix it!
Sure, it is far less interesting than you'd hope for ;-) The patch at the bottom is what generates the numbers I quoted. It goes against the in tree cvs version of xxxterm. Tree is at: CVSROOT=anon...@opensource.conformal.com:/anoncvs/xxxterm The DNS lookup stuff I measured with the adsuck stats but I don't think that is pertinent to this discussion. If you guys want a rundown on that as well let me know and I'll show ya. > I do not think there is any harm in exposing this setting. I do > believe that those pushing for it should try to clarify what it is > though. From what I gather it's effectively two pieces: > > 1. A backport of a Settings.cpp DNS prefetch change to the stable branch. Correct. > 2. New code which exposes this setting in the WebKitWebSettings WebKitGTK+ > API. Right. > Really it should just be the change to WebKitWebSettings and a request > to merge both changes back into the stable branch. Be aware that we > are desperately close to cutting the stable branch for 1.4.x. This is why I really really really would like to get this cranking :-) > --Martin Index: xxxterm.c =================================================================== RCS file: /cvs/xxxterm/xxxterm/xxxterm.c,v retrieving revision 1.348 diff -u -p -u -p -r1.348 xxxterm.c --- xxxterm.c 8 Mar 2011 23:19:36 -0000 1.348 +++ xxxterm.c 9 Mar 2011 17:38:34 -0000 @@ -218,6 +218,9 @@ struct tab { WebKitWebSettings *settings; int font_size; gchar *user_agent; + + struct timeval sod; + struct timeval eod; }; TAILQ_HEAD(tab_list, tab); @@ -492,6 +495,7 @@ char *user_agent = NULL; int save_rejected_cookies = 0; time_t session_autosave = 0; int guess_search = 0; +int dns_prefetch = FALSE; struct settings; struct key_binding; @@ -5768,6 +5772,7 @@ notify_load_status_cb(WebKitWebView* wvi struct history *h, find; const gchar *s_loading; struct karg a; + struct timeval elapsed; DNPRINTF(XT_D_URL, "notify_load_status_cb: %d\n", webkit_web_view_get_load_status(wview)); @@ -5780,6 +5785,7 @@ notify_load_status_cb(WebKitWebView* wvi switch (webkit_web_view_get_load_status(wview)) { case WEBKIT_LOAD_PROVISIONAL: /* 0 */ + gettimeofday(&t->sod, NULL); abort_favicon_download(t); #if GTK_CHECK_VERSION(2, 20, 0) gtk_widget_show(t->spinner); @@ -5865,6 +5871,11 @@ notify_load_status_cb(WebKitWebView* wvi gtk_label_set_text(GTK_LABEL(t->label), "(untitled)"); default: gtk_widget_set_sensitive(GTK_WIDGET(t->stop), FALSE); + + gettimeofday(&t->eod, NULL); + timersub(&t->eod, &t->sod, &elapsed); + fprintf(stderr, "prefetch %d: page load time: %ld.%.6ld -> %s\n", + dns_prefetch, elapsed.tv_sec, elapsed.tv_usec, uri); break; } @@ -6618,6 +6629,8 @@ stop_cb(GtkWidget *w, struct tab *t) void setup_webkit(struct tab *t) { + g_object_set(G_OBJECT(t->settings), + "dns-prefetching", dns_prefetch, (char *)NULL); g_object_set(G_OBJECT(t->settings), "user-agent", t->user_agent, (char *)NULL); g_object_set(G_OBJECT(t->settings), _______________________________________________ webkit-gtk mailing list webkit-gtk@lists.webkit.org http://lists.webkit.org/mailman/listinfo.cgi/webkit-gtk