Re: [w3ctag/spec-reviews] Performance Observer Review (formerly Navigation Timing 2 concepts) (#18)

Thanks for the review Alex!

> It'd be great for there to be a separate explainer doc that goes into more detail about the problems that NT2 solves and the sample code you might write to use it to address those issues.

I assume you meant Perf Timeline 2, not Nav Timing 2. 

I think we can address this in the intro section. We already provide a PerfObserver code sample and I think we can just: (a) clarify that this is a v2 feature, (b) explain why it should be a preferred way to access the timeline. 

> In section 3, step 3.1, where is new entry allocated?

That algorithm defines the steps that are invoked by other specifications when they need to queue a "new entry" - e.g. [Frame Timing allocates new entry and invokes the algorithm](http://w3c.github.io/frame-timing/#processing).

> In step 3, are you really meaning to get the list of registered performance observer objects from the global environment? Could it be a more standard data structure like a list or map hidden away using a symbol?

What would that symbol be associated with? 

- We started with "unit of related similar-origin browsing contexts's" - [same as MutationObserver](https://www.w3.org/TR/dom/#mutation-observers).
- Boris and Anne [suggested that we should be using "global environment"](https://github.com/w3c/performance-timeline/issues/44#issuecomment-140911703) - [commit](https://github.com/w3c/performance-timeline/pull/47/commits/457000f2f1447a9b9ae7a814212e26d659387e9b).

> The "low priority queue" language is interesting...are there other specs that use similar priority statements that you're aware of?

I think IntersectionObserver is attempting to do something similar by leveraging requestIdleCallback - [open bug to cleanup interop](https://github.com/WICG/IntersectionObserver/issues/108). PerfObserver came about before we had rIC. It might make sense to go back and define PerfObserver to fire via rIC. 

> Where is the list of types that you can listen for via a PerformanceObserver listed? E.g., frame seems to relate to Frame Timing, but I'm not sure what's definitive.

There is a note in 3.1 that lists all valid entryType values, with links to each spec: https://www.w3.org/TR/performance-timeline-2/#the-performanceentry-interface

> Can Performance Observers be used to observe page load that may have already happened? How does that work?

No. If you register an observer after an event has already happened, you won't get a notification for it. If you want to get notifications for resource timing / nav timing entries when the page is loading, you should register the PerfObserver as a first thing in your doc -- e.g. inline the registration snippet in the head of the doc, before any resource declarations.

---
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3ctag/spec-reviews/issues/18#issuecomment-206523833

Received on Wednesday, 6 April 2016 19:29:09 UTC