- From: James Simonsen <simonjam@google.com>
- Date: Thu, 22 Aug 2013 13:55:51 -0700
- To: David Bruant <bruant.d@gmail.com>
- Cc: Boris Zbarsky <bzbarsky@mit.edu>, public-web-perf <public-web-perf@w3.org>
- Message-ID: <CAPVJQi=L=7Hp2nUhQxc0orA8WoobYjX67G8ZVBbpaaF1-8665A@mail.gmail.com>
On Thu, Aug 22, 2013 at 1:30 PM, David Bruant <bruant.d@gmail.com> wrote:
>  Le 22/08/2013 20:37, James Simonsen a écrit :
>
> On Wed, Aug 21, 2013 at 7:41 PM, Boris Zbarsky <bzbarsky@mit.edu> wrote:
>
>
>> This ambiguity seems like a hard blocker to actually proceeding with our
>> implementation.
>>
>> 2)  It's not quite clear to me what the "contains a copy" language means.
>>  Does this mean that this predicate:
>>
>>   performance.getEntries()[0] == performance.getEntries()[0]
>>
>> tests false if getEntries returns a nonempty list?  That is, each time
>> the list is returned it has to contain brand-new objects?  If this is in
>> fact the intent, it's rather surprising; given that the objects only have
>> readonly properties it seems like it would be better to return existing
>> objects.  If we _do_ want to return brand-new objects every time, it seems
>> like we should simply return dictionaries instead: then we get the
>> new-object behavior for free and script gets non-magical objects to work
>> with.
>
>
>  Blink doesn't create copies. It'd be silly to. I think we should just
> update the spec.
>
> Maybe it should just be .entries, then (instead of .getEntries() )?
>
The entries themselves are not copies, but you get a new list every time.
We don't want the list to change after you've called getEntries(). You're
getting a snapshot.
> I'm not sure I quite understand the difference between entryType and name.
>
The type refers to the source of the entry. If it's a network resource, the
type is "resource." If it's from a User Timing mark, it's "mark."
The name is the name of that specific resource or mark. For resources, it's
the URL.
I'm not sure I see the benefit of the getEntriesByType and getEntriesByName
> methods since what they do can be done very easily in JS:
>
>   var fooEntries = performance.entries.filter(function(e){return e.name=== "foo"}) // ES5
>   var fooEntries = performance.entries.filter(e => e.name === "foo") //
> ES6
>
Good point, but it's probably too late to change it.
James
Received on Thursday, 22 August 2013 20:56:18 UTC