Web Performance Working Group Teleconference

09 Mar 2011

See also: IRC log


Anderson, Arvind, JamesSimonsen, JasonWeber, Jatinder, KarenAnd, Nic, Tonyg, Zhiheng, plh


<trackbot> Date: 09 March 2011

<scribe> Meeting: Web Perf WG

Scribe+ Jatinder Mann

Philippe: Charter is on schedule.

Zhiheng: Do we have editors in place for all the specs?
... We may want to organize another face to face meeting.

Arvind: Agree that we need a face to face to decide the format.

Anderson: That is a fantastic idea. Do one relatively soon, with video conferencing so Cameron can also join.
... We are definitely open to hosting the face to face in Redmond, since the last one we had was in Google.

Tony: There is a lot of forward momentum on these and we should discuss the high level overlaps before we get down too far.

Arvind: Let me take an action item to determine the location and time of the face to face meeting.

Philippe: Are we going to send email to the group? To kick off the discussion.

Arvind: Yes.

Philippe: In the email we should also ask if we want a new teleconference time.

Arvind: I will both send an email to decide the time for the face to face and determine the new teleconference time.
... I think sometime around 1pm PST would be good for teleconference time.
... That takes care of agenda #1.

Anderson: I will coordinate with Jason to organize the face to face

Move to agenda 2

Tests for Navigation Timing to review

Anderson: I will batch all the submissions up after this meeting and will move it over to the approved folder.
... Are there any additional tests?

<tonyg> http://w3c-test.org/webperf/tests/submission/Google/NavigationTiming/test_document_open.htm

Nic: We're looking at it right now.

Anderson: Where does it throw access is denied?
... We will look at this after the call.
... Let's move on to Agenda 3.

Philippe: Regarding Navigation timing, I sent email asking about dependencies. Is there any clarification on that?

Anderson: From my knowledge, as long as we have a conforming IDL and we're also using the readystate from HTML document. Those are the only two that come to mind

Phillipe: For WebIDL, I'm not sure there is a solution.

Zhiheng: I don't see much problem on this one for now.

Anderson: So we're on track for the 11th to publish?

Phillipe: No. I will do my best to try to be on track.

Anderson: Let's get started with Resource Timing (Agenda 3)

<zhiheng> http://test.w3.org/webperf/specs/ResourceTiming/

Anderson: Please walk us through the deltas.

Zhiheng: One of the most important one is that we removed the resource timing connector.

Anderson: One thing we wanted to discuss, the behavior of enabled vs. disabled

Zhiheng: Those would go into the privacy issue.
... getResourceTimeByLocation - I think ByType would be more useful.

Anderson: The ability to access an element by all its different monikers. Elements on a page are not unique (multiple img elements with the same id). We wanted to come up with the most flexible way to access a resource.

Zhiheng: We can just edit to getResourceTimeByType.

Anderson: The diff looks good. Are we ready to discuss the details of the timing per element?

Zhiheng: I think for the interfaces we can start discussing them.

Anderson: The model we had discussed last time was safe by default.

Zhiheng: My main question is how do we cross domain as a control

Anderson: Still major issue to deal with.

Zhiheng: In terms of interfaces, do you have any suggestions or ideas?

Tony: I don't understand allowedDomains
... Let's say a resource is used multiple times by the same or different elements - would there be multiple copies?

Nic: I would say it's unique for resource fetched from the network.

Zhiheng: In terms of the privacy, if we don't allow the cross-domain access, we only provide the start and ending timing. That is already available today.

Nic: We would be reporting resources from the cache.
... How would that be exposed? For the first resource that asked for it?
... Is it reported for each element or is it only reported once?

Zhiheng: The first one is from the network, the last one is from the cache.
... That's a good point though.

Nic: I think it can be kind of tricky. Browsers today if the same resources are used from the page, we don't go get it from the network.

Tony: If there is a 1x1 pixel gif. If I use it a 100 times on the page, do I have it a 100 times?

Karen: This is where getElementByID is useful.

Nic: In the list of all the things downloaded from the page would we show it multiple times?

Zhiheng: Thats what the current job is assuming.

Karen: Pretend like we have a 100 times and we are JSONing them all back, it becomes interesting to know how the DOM starts getting downloaded. Imagine parsers being different per user agents. Several variations.

Nic: Taking a step back, the goal for resource timing is to try to get something like the Network Inspectors. Do we agree that that is kind of the goal?

Tony: That is what I've had in mind here.

Nic: The browsers would not display the img element over and over again if it was displayed.
... We should probably be more explict about which resources should be in the list.

Anderson: It's a valid question: the latency between fetching from the cache and displaying the retroactive waterfall display in the network inspector.
... It's interesting to consider how we would normalize cache access.

Zhiheng: If we consider each element a subdocument, I'm trying to make it consistent with the navigation timing.
... Like we found in navigation timing, it's not always possible to get the exact timing of the resource going to the wire.

Nic: As soon as we start exposing the fact that we get from the cache, we are exposing the user's browsing history.
... We don'tw ant to make it easier for an attacker to determine which resources have already been loaded.

Anderson: We store the timings for only those that we have downloaded. This allows inline defining for images. If we start thinking about accessing resources locally, we would need to bring in the ability of accessing inline resources. That goes beyong what we had initialy thought about. That would reduce a lot of the traffic - minimize the noisyness of having using a resource 100 times.
... Simplicity, privacy, and consistency would be the goal.

Zhiheng: Not sure how this would add to the privacy concern here.
... Everything that can be done by this API can already be done by the webpage.

Nic: You are right in the fact that a page could determine this. One of the concerns could be to not explicitly expose we are getting this from the cache.
... As long as expose the same level of granularity. It can be deduced that a resource was downloaded from the cache.
... Goal would be to not give any higher precision whether something was in the cache or not. In the case of going to a page and looking at the resources, if anything is downloadable resource, we would put it in there.
... Not sure how to precisely describe this in the spec.

Zhiheng: I understand. This kind of filtering may be confusing to the user.

Nic: In the case of 1x1 gif used a 100 times case, the browser would use a in memory cache to reuse this. I don't suggest that all several 100 be included in the cache, only the initial request?

Anderson: Tony, James, any comments on the approach that we capture timing for the downloadable? Anything that was in memory cache, we don't necessarily have timing information for.

Tony: The difference between the memory cache and the disk cache would be confusing for the user.
... We should think about here is what the page downloaded rather than downloadable.

Anderson: Downloaded instead of downloadable?

Tony: Perhaps. Reduces confusion about memory and disk cache.

Nic: The worry here is that it gives higher precision to if resources weren't in the cache.

Tony: I forgot what the privacy concern was.

Nic: For example, you can build an attacker page that includes a bank logo.

Tony: We want to report anything that is cross origin.

Nic: We wouldn't be providing anything we just saying fetchStart and loadEnd. Not including it from the list would say for sure it was. Not sure how important this is.

Tony: I see, makes sense.

Zhiheng: Example is there is a page, and I want to see if the user has visited a bank page. I can still get that information. If I don't see the timing in the resource timing interface, I can assume that this is the cache.

Nic: Correct, if we didn't include things into the cache.

Zhiheng: They can still guess if a user ever visited a page.

Nic: They can get that today. There is a higher precision if we're saying that if its not cached, we'll put it in the cache. I know its not a huge difference, but its a stronger indication that its in the cache.

Zhiheng: If you posted a request but you don't see a timing in the buffer, you can see this also.

Anderson: Good point.

Tony: Maybe we should only expose timing for same origin.

Anderson: I know this is where Jason would step in and say he would like cross domain origin.

Tony: I think he's interested in the additional details.

Anderson: Certainly, adds more pressure for us to come up with a solution for cross domain access.

Karen: Even same origin, this issue is important. The tracking of a user's browsing history is important privacy concern. Say on a banking site, you put a resources for checking, saving account - one could deduce what kind of user is on the page. Now you're dealing with a tracking of a user.

Nic: If you own the domain, you own everything on it. You own the server technology.

Karen: You could theoritically do this through sessions, but now you know through the JSON session, you know it's one user.

Tony: Sounds like the big homework for this week will be figuring out when things should go into the event log.

Zhiheng: Yes, agree.

Anderson: Alright then, let's follow up with the various proposals of accessing resources and where we would log. The when and where question.
... Hard stop at 10?

Zhiheng: I can stay.

Arvind: I will leave.

regret: Arvind

Anderson: Let's move to User Timing


Anderson: Some points I wanted to raise. Let's first go over deltas.

First set of changes was that the marks were added and three additional measure apis were added.

Anderson: One thing I wanted to note was that the difference between the user timing and resource timing, is that the marks/data is not generated by the UA, but rather developed by the developer.

Tony: Right.

Anderson: I should add that you can measure from a user agent mark. Like a navigation start.

Zhiheng: Sounds good.

Tony: We are getting kicked out from our room.

Zhiheng: Navigation start lives in a different namespace.

Anderson: If a UA supplied mark name, we recommend throwing an exception - make it read only and don't store the time stamp.
... How's the weather in mountain view?

Zhiheng: Great!

<tonyg> The bridge won't let us back in... "the conference is restricted at this time"

Anderson: Let's adjourn.

Zhiheng: If you want another meeting this week, I'm open.

<tonyg> Okay, we'll do some homework and talk to you next week

Anderson: I love progress!

set logs world-visible

<AndersonQuach> chair+ Arvind

Summary of Action Items

[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.135 (CVS log)
$Date: 2011/03/09 19:47:40 $

Scribe.perl diagnostic output

[Delete this section before finalizing the minutes.]
This is scribe.perl Revision: 1.135  of Date: 2009/03/02 03:52:20  
Check for newer version at http://dev.w3.org/cvsweb/~checkout~/2002/scribe/

Guessing input format: RRSAgent_Text_Format (score 1.00)

Succeeded: s/Philip/Philippe/
No ScribeNick specified.  Guessing ScribeNick: Jatinder
Inferring Scribes: Jatinder

WARNING: Replacing previous Present list. (Old list: Philippe, Le, Hegaret)
Use 'Present+ ... ' if you meant to add people without replacing the list,
such as: <dbooth> Present+ Arvind, Jain

WARNING: Replacing previous Present list. (Old list: Arvind, Jain)
Use 'Present+ ... ' if you meant to add people without replacing the list,
such as: <dbooth> Present+ Tonyg

WARNING: Replacing previous Present list. (Old list: Tonyg)
Use 'Present+ ... ' if you meant to add people without replacing the list,
such as: <dbooth> Present+ Zhiheng

WARNING: Replacing previous Present list. (Old list: Zhiheng)
Use 'Present+ ... ' if you meant to add people without replacing the list,
such as: <dbooth> Present+ Jatinder, Mann

WARNING: Replacing previous Present list. (Old list: Jatinder, Mann)
Use 'Present+ ... ' if you meant to add people without replacing the list,
such as: <dbooth> Present+ Nic, Jansma

WARNING: Replacing previous Present list. (Old list: Nic, Jansma)
Use 'Present+ ... ' if you meant to add people without replacing the list,
such as: <dbooth> Present+ KarenAnd

Present: Anderson Arvind JamesSimonsen JasonWeber Jatinder KarenAnd Nic Tonyg Zhiheng plh
Found Date: 09 Mar 2011
Guessing minutes URL: http://www.w3.org/2011/03/09-webperf-minutes.html
People with action items: 

WARNING: Input appears to use implicit continuation lines.
You may need the "-implicitContinuations" option.

[End of scribe.perl diagnostic output]