Skip to content

spec what requestStart, responseStart, and responseEnd should represent when service worker is involved #119

Closed
@wanderview

Description

@wanderview

I'm trying to improve the PerformanceRequestTiming support in firefox when a request is intercepted by a service worker. I've implemented workerStart, but its a bit unclear what requestStart, responseStart, and responseEnd mean in this context.

Looking at the output from chrome it seems like these are being set:

fetchStart:1.9050000000000002
requestStart:2.325
responseEnd:6.73
responseStart:5.495000000000001
startTime:0
workerStart:2.32

Here requestStart is slightly after workerStart. Is this when respondWith() was called?

The responseStart is a few milliseconds later. Does this measure when the respondWith() promise resolves?

I assume responseEnd is when the synthesized body is complete.

Also, the WPT test here:

https://github.com/w3c/web-platform-tests/blob/master/service-workers/service-worker/resource-timing.https.html#L15

Wants workerStart to occur before fetchStart, but that is not what chrome is doing for this request. Also, this requirement was a bit awkward to implement in firefox. We trigger workerStart after we create our network channel, so its more natural for fetchStart to occur first. I plan to relax this requirement in the WPT test.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions