- From: Zhiheng Wang <zhihengw@google.com>
- Date: Mon, 2 Aug 2010 16:55:26 -0700
- To: Anderson Quach <aquach@microsoft.com>
- Cc: Tony Gentilcore <tonyg@chromium.org>, "public-web-perf@w3.org" <public-web-perf@w3.org>
- Message-ID: <AANLkTinC0=V-NQhTBMusW2YC9QkP9yNWbQGezs-heb60@mail.gmail.com>
Hi, Anderson, Pls find comments inline. On Fri, Jul 30, 2010 at 3:44 PM, Anderson Quach <aquach@microsoft.com>wrote: > Having the times at which the document.readyState is rather useful in terms > of tuning and optimizing site performance. It helps to surface the time > delay between scripts marked deferred / interactive state and when the > document is consider complete. > > > > With respect to document.readyState, to gain access to the times of each > onreadystatechange transition, a developer would have to register the > callback to record the timestamp per transition. Making the timestamps > readily available in the performance.timing object would free her from > having to register these callbacks. > > > > Also, having this type of timing information easily accessible in the > Navigation Timing interface, there’s consistency and reduced overhead to get > access to the readystate change times. All in all there the benefits are: > > i. completeness in the navigation timeline > > ii. simplicity with accessing the timing information > > iii. prevention of instrumentation based overhead for > having the developer to register for these events herself. > I agree with most of the points here. :-) and, DomInteractive seems to be an interesting data point. My questions are more towards other data points in the IE's document.readyState: * unintialized/loading - not much value to WebTiming IMHO. * loaded/complete - I am not sure exactly what is the difference in between. WebTiming already has onloadStart/onloadEnd so how much added value they have? > > > In terms of mitigating the information disclosure attack surface, perhaps > the best way to prevent this type of attack is not to provide the > information in cross-domain scenarios. Where transitioning from abc.com à > xyz.com the unloadEventStart and unloadEventEnd is zeroed. > SOP usually is too strict but it could be a potential solution. > Again the most valuable timestamp is the unloadEventEnd, an attacker can > infer the start as the navigationStart. > iirc, unload starts after some sort of response is received by the user agent? cheers, Zhiheng > > > Best Regards, > > Anderson Quach > > IE Program Manager > > > > > > *From:* tonyg@google.com [mailto:tonyg@google.com] *On Behalf Of *Tony > Gentilcore > *Sent:* Thursday, July 29, 2010 9:59 AM > *To:* Zhiheng Wang > *Cc:* Anderson Quach; public-web-perf@w3.org > > *Subject:* Re: [Web Timing] WebKit's planned processing model > > > > > > On Thu, Jul 29, 2010 at 1:10 AM, Zhiheng Wang <zhihengw@google.com> wrote: > > > > On Sun, Jul 25, 2010 at 11:04 AM, Zhiheng Wang <zhihengw@google.com> > wrote: > > Hi, Anderson, > > Please see comments inline. > > On Fri, Jul 23, 2010 at 3:22 PM, Anderson Quach <aquach@microsoft.com> > wrote: > > Zhiheng and Tony, thanks for getting together to update the Web Timing > working draft. Here’s some feedback Nic & I have with the July 21st 2010 > version [1]. > > > > It would be pretty interesting to include markers that relate to > document.readyState [2]. This will help site developers further understand > what’s happening during the navigation as the page is loading, including > states like loading, interactive, and complete. > > Since developers already have convenient access to document.readyState > right now, including > > it in WebTiming seems to be something redundant. > > > > To clarify, I agree that having these times available in > window.performance.timing provides easier access. Exposing > > redundant data just makes me wonder. > > > > After some homework, I might have to take it back though. The current > spec <http://www.w3.org/TR/html5/dom.html#resource-metadata-management> requires document.readyState > to > > offer "loading" and "complete" only, which seem to be what Chrome and FF > are following. > > > > In WebKit, the "interactive" ready state just isn't implemented yet (but it > will be). Here's the definition of "interactive": > > http://dev.w3.org/html5/spec/Overview.html#the-end > > > > IE have additional state values<http://msdn.microsoft.com/en-us/library/ms534359(VS.85).aspx> > . > > So here are some thoughts to share: > > * unintialized/loading - not much value to WebTiming IMHO. > > * interactive - this should be an interesting POI during a page load > > * loaded/complete - I am not sure exactly what is the difference in > between. WebTiming already has onloadStart/onloadEnd > > so how much added value they have? > > > > cheers, > > Zhiheng > > > > > > > > > > The suggested markers are: > > · domLoading > > · domInteractive > > · domContentLoaded > > · domComplete > > > > In section 4.2 of the Web Timing draft [1]: > > > > unloadEventEnd is defined as the timestamps which relates to the unloading > of the last document. As the marker is named, you may have meant to be > defined as the time immediately when the unload event of the previous > document is complete. > > unloadEventEnd is meant for the time when the unloading document cleanup > steps [1] are completed for > > the browsing context of the previous navigation and its descendants > browsing context. The unload event of the root > > browsing context is fired before these steps. > > > > [1] > http://www.w3.org/TR/html5/history.html#unloading-document-cleanup-steps > > > > > > A suggestion, how about complementing unloadEventEnd with > unloadEventStart. > > This is something we should have further discussion over. As we discuss, > exposing both > > Start and End of the unload process reveals some information on the > previous page's unload > > event handling. Combining with the referrer, it causes some privacy > concern. > > > > This is a topic of the ongoing security review of the draft here. What > are the thoughts from others? > > > > redirectEnd for clarity, the recommendation here is to be more explicit > about the time maker for the last redirected navigation. E.g. If the last > navigation is a redirection, this attribute must return the number of > milliseconds between midnight of January 1, 1970 (UTC) and the time when the > last redirected navigation ends. > > Here is the current definition: > > "If the last navigation is a redirection, this attribute must return the > number of milliseconds between midnight of January 1, 1970 (UTC) and the > > time when the last navigation ends. If the last navigation is not a > redirect, this attribute must return zero." > > It looks the same to me? > > > > > > > > Within the NavigationInfo interface, to be consistent, the suggestion here > is to use the lower case type, rather than the capitalized Type. This may > have been a typo. > > Right, I've changed it to navigation.type. > > > > > > The code sample for NavigationInfo has a few code snippet errors. > > > > var t = performance.timing; > > if (t.timing.navigationEnd > 0) { > > var page_load_time = t.timing.navigationEnd - t.timing.navigationStart; > > if (t.navigation.Type == t.navigation.TYPE_LINK) { > > alert (page_load_time); > > } > > > > Should be: > > var t = performance.timing; > > if (t.timing.navigationEnd > 0) { > > var page_load_time = t.timing.navigationEnd - t.timing.navigationStart; > > if (performance.navigation.type == performance.navigation.TYPE_NAVIGATE) { > > alert (page_load_time); > > } > > > > > > Thanks for catching this. Fixed. > > > > > > In the code example, you make mention of navigationEnd which is not defined > in the document. The feedback here is that, it’s a great complement to > navigationStart to denote the logical start and end of the navigation phase. > Just thinking about how a site developer would intuitively think about the > timeline, having a navigationStart paired with a navigationEnd along with a > fetchStart and fetchEnd would help bring clarity to the phases of loading > the root document. Where, navigationEnd corresponds with loadEventEnd and > fetchEnd with responseEnd. Thoughts? > > In longer term, having two distinct variables referring to the same > value soundslike a good way > > to get developers confused. :-) Just my $0.02. > > > > thanks, > > Zhiheng > > > > > > > > > > [1] Web Timing http://dev.w3.org/2006/webapi/WebTiming/ > > [2] Resource metadata management > http://www.w3.org/TR/html5/dom.html#resource-metadata-management > > > > Anderson Quach > IE Program Manager > > > > *From:* public-web-perf-request@w3.org [mailto: > public-web-perf-request@w3.org] *On Behalf Of *Tony Gentilcore > *Sent:* Thursday, July 15, 2010 5:38 PM > *To:* public-web-perf@w3.org > *Subject:* Re: [Web Timing] WebKit's planned processing model > > > > I made two updates to my description of WebKit's processing model: > > 1. domainLookupStart, domainLookupEnd, connectStart, and connectEnd are now > "backfilled" when they would have previously returned 0. > > 2. Nic Jansma uncovered a bug. In 3.10.b, redirect-start should be set only > if it is currently 0. > > > > Here is the live link. Revision history is at the bottom. > > > https://docs.google.com/document/edit?id=1rZQ_XaiEwb4OL62DGHXY1Ktzk7PhgkHTYlzpnZEeYKw > > On Tue, Jul 13, 2010 at 1:52 PM, Tony Gentilcore <tonyg@chromium.org> > wrote: > > Attached[1] is my plan for the processing model of WebKit's initial > window.webkitPerformance implementation. > > > > I'm hoping its detailed language will be useful in informing the working > draft specification <http://dev.w3.org/2006/webapi/WebTiming/>. I'm also > very interested to make sure this lines up with the IE9 and Mozilla > implementation plans. All feedback appreciated. > > > > Tony > > > > [1] HTML exported from Google Docs. Let me know if you'd like me to share > the original. > > > > > > > > >
Received on Monday, 2 August 2010 23:55:58 UTC