The following is a patch that disables DNS prefetching and Link
prefetching.

DNS prefetching causes all links on a webpage to be resolved during
load.  This causes sites to load more slowly, but supposedly makes
clicking on a link faster since now it is in the DNS cache.  In the
world of broadband, I think it DNS prefetching slows web browsing down.

Going to http://news.google.com:
        with DNS prefetching: 310 lookups (155 IPv6, 155 IPv4)
                                50 seconds doing lookups 
        without DNS prefetching: 18 lookups (9 IPv6, 9 IPv4)
                                2 seconds doing lookups 

Link prefetching allows websites to have a web browser load a webpage in
the background by using <link rel="next" href="XXXXX" />.  Sites use
this to speed up load time IF the user clicks the link.  However, it
can and is used for cross-site tracking.

For example, foocompany.com could have <link rel="next"
href="http://www.barcompany.com"; /> in it's HTML source.  You visit
foocompany.com, your browser prefetches http://www.barcompany.com in the
background without you ever clicking anything, resulting in barcompany
knowing you visited foocompany.com.  For me, this is a huge security and
privacy issue, as well as a waste of bandwidth.

So, the proposed patch is to make OpenBSD's firefox package disable both
of these options by default.  I am sure people with disagree with
changing the default options of firefox, but as an operating system that
builds its reputation on security and privacy, I figure this wouldn't be
out of line.

If you would like to test without using the patch, just goto
about:config and toggle or add:
        network.dns.disablePrefetch to true
        network.prefetch-next to false

I'd be interested to know if people see an increase or decrease in web
browsing performance.
 
Index: patches/patch-modules_libpref_src_init_all_js
===================================================================
RCS file: patches/patch-modules_libpref_src_init_all_js
diff -N patches/patch-modules_libpref_src_init_all_js
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-modules_libpref_src_init_all_js       15 Oct 2011 02:01:58 
-0000
@@ -0,0 +1,22 @@
+$OpenBSD$
+--- modules/libpref/src/init/all.js.orig       Wed Sep 28 16:25:00 2011
++++ modules/libpref/src/init/all.js    Fri Oct 14 21:59:07 2011
+@@ -959,6 +959,9 @@ pref("network.dns.ipv4OnlyDomains", "");
+ // This preference can be used to turn off IPv6 name lookups. See bug 68796.
+ pref("network.dns.disableIPv6", false);
+ 
++// This preference disables DNS prefetching
++pref("network.dns.disablePrefetch", true);
++
+ // This preference controls whether or not URLs with UTF-8 characters are
+ // escaped.  Set this preference to TRUE for strict RFC2396 conformance.
+ pref("network.standard-url.escape-utf8", true);
+@@ -981,7 +984,7 @@ pref("network.ftp.idleConnectionTimeout", 300);
+ pref("network.dir.format", 2);
+ 
+-// enables the prefetch service (i.e., prefetching of <link rel="next"> URLs).
++// disables the prefetch service (i.e., prefetching of <link rel="next"> 
URLs).
+-pref("network.prefetch-next", true);
++pref("network.prefetch-next", false);
+ 
+ 
+ // The following prefs pertain to the negotiate-auth extension (see bug 
17578),

Reply via email to