A bit of historical context.. Per spec, toJSON support was *not* required on PerformanceEntry or any subclasses of it. That said, in practice, Firefox, IE/Edge, and Safari implemented it and Chrome was/is the only one that doesn't support it. As an aside, this is a bit of a sore point with developers and I often field questions as to why Chrome doesn't support this.
More recently, this came to a head in light of "WebIDL serializer has been deprecated in favor of toJSON operation" [1]. Based on above, we're now making toJSON a requirement on PerformanceEntry, and hence need to add support for this in Chrome.
Affected interfaces are:
- Performance
- PerformanceEntry
- PerformanceResourceTiming
- PerformanceNavigationTiming and PerformanceTiming
- PerformanceLongTaskTiming
- PerformancePaintTiming
- ...
Basically, everything that can be delivered to a PerformanceObserver, or retrieved via performance.getEntries().
We've landed spec updates for most of the above and a few are still pending. That said, that shouldn't block the work here.
[1] https://github.com/w3c/resource-timing/issues/112
There's already some of these supported:
- Performance (although I think not for Worker?)
- PerformanceEntry
- PerformanceNavigationTiming
- PerformanceTiming
And I don't know if this is needed for PerformancePaintTiming since it does not add any attributes to what PerformanceEntry already had. Maybe it can just be added if/when it adds something extra to PerformancePaintTiming.
Comment 1 by tdres...@chromium.org
, Jul 7 2017