W3C home > Mailing lists > Public > public-web-perf@w3.org > September 2010

Re: [Web Timing] Getting root timings to recommendation

From: Sigbjørn Vik <sigbjorn@opera.com>
Date: Wed, 22 Sep 2010 10:47:15 +0200
To: "public-web-perf@w3.org" <public-web-perf@w3.org>
Message-ID: <op.vjfeo0nh41y844@id-c0735.oslo.opera.com>
On Wed, 22 Sep 2010 10:19:25 +0200, Zhiheng Wang <zhihengw@google.com>  

> On Thu, Sep 16, 2010 at 3:09 AM, Sigbjørn Vik <sigbjorn@opera.com> wrote:

>> Does domainLookupStart need a clarification that if DNS lookup was  
>> started
>> before fetchStart (in the case of DNS prefetching), domainLookupStart  
>> should
>> still be set to fetchStart?
> Make sense. Out of curiosity, how does the user agent prefetch a DNS for
> the root page before the fetch? Part of the fetching processing is to
> formulate the address of the resource.
> I can only imagine the user agent prefetch DNS for embedded  
> links/elements
> on the current page.

There are multiple ways DNS could be prefetched. Hovering a regular link  
to a new domain might trigger a DNS prefetch. The parser might request DNS  
as soon as it hits a URL, even before the code has been parsed to the  
point where it can be decided whether the resource needs to be fetched or  
not. Some ways can also happen in a blank, new tab: Highlighting or  
showing domains in the address bar history completion dropdown. DNS might  
randomly be requested immediately before a request due to autorenewal when  
the pinning expires, or by some unrelated action, e.g. a background RSS  
fetch, or another open tab requesting a new resource. Opening a bookmark  
folder, where two or more of the bookmarks have the same domain, or  
manually opening two tabs for the same domain very quickly. When starting  
with many open tabs, the user agent might prefetch DNS while parsing the  
saved tabs file, before starting to load the tabs.

In all cases, there might be an ongoing DNS request for the domain in  
question at the time when the fetch process is actually started.

In addition, if all sockets are in use, the user agent might prefetch DNS  
while waiting for an empty socket (though in this case, domainLookupStart  
does start after fetchStart, so that might not be relevant).

Sigbjørn Vik
Quality Assurance
Opera Software
Received on Wednesday, 22 September 2010 08:47:42 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:04:29 UTC