Firefox prefetching: what you need to know
The basic idea behind prefetching is to speed things up for the user. An algorithm is involved that guesses which resources are likely to be accessed by the user in the recent future.Think of Facebook's login page for instance. The most reasonable assumption is that the user will enter the username and password, and then click on the login link. If you prefetch some of the information you may speed things up for the user in the progress if a prefetched resource is indeed accessed.
While it is in theory an interesting concept to speed things up for the user, critics argue that it is creating unnecessary overhead and that it has privacy implications. Resources that are prefetched but not accessed are wasted for instance as they remain unused. As far as privacy is concerned, the server the information are retrieved from notices the user's connection even if it is caused by the automated process.
Prefetching in Firefox is used in different ways.
Link prefetching based on
The browser supports the prefetch parameter that websites can use to provide browsers with information about resources that they would like it to prefetch. Sites simply need to add the rel="prefetch" parameter to links for that so that Firefox will prefetch the resource when the user connects to the page the link is published on. Prefetching information can also be added as HTML meta tags in the form <meta http-equiv="Link" content="<path/to/resource>; rel=prefetch">
Firefox users can disable this prefetch feature the following way:
- Type about:config in to the browsers address bar and hit the enter key on the keyboard to load it.
- Confirm that you will be careful if this is your first time you are opening the page.
- Search for the preference network.prefetch-next and double-click it to set it to false.
- Setting it to false disables the feature in the browser.
- Repeat the process if you want to enable it again at any point in time.
This is another form of prefetching that Firefox supports and makes use of by default. The browser predicts the links that the user is most likely to open to resolve domain names while the user is still on the page. This removes the time it takes to resolve domain names when the user clicks on a link in the browser that was pred icted by Firefox as a priority target. The gain depends a lot on the DNS server and the predictions that Firefox makes.
Two preferences are available in Firefox that determine the browser's DNS prefetching.
- network.dns.disablePrefetch - if set to true, it will disable DNS prefetching in the browser.
- network.dns.disablePrefetchFromHTTPS - if set to false, it will enable the DNS prefetching on HTTPS websites. The preference does not exist by default and needs to be created.
The difference between speculative pre-connections and link prefetching is that the former is handled by the browser automatically regardless of directives on the website the user is on, while the latter seems to only be triggered if the prefetch directive is used on the page.
There is another difference: while link prefetching can be disabled in the browser, speculative pre-connections cannot. There is no switch to turn it off and it seems that Mozilla won't implement one. Speculative pre-connections work on network and Internet pages as well as on the new tab page.
So what is the main issue here? Say you are using a laptop at home and work. If you visit NSFW sites regularly at home you may end up with some of them being listed on the new tab page. If you now hover over any link on the new tab page it will get connected to which certainly will make its way in to the logs. You may not only have a hard time explaining to your boss that you did not connect to the site at work, it may also be one of the most embarrassing moments you ever experienced.
There are other situations. You may leak information about a local network when you use the laptop in a public network for example.Advertisement