Implement Resource Timing Level 3 interim response timestamps
| Tracking | Status | |
|---|---|---|
| firefox152 | --- | fixed |
| Assignee | |
Description•6 months ago
|
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36
Steps to reproduce:
Add firstInterimResponseStart and finalResponseHeadersStart properties to PerformanceResourceTiming API to distinguish interim (1xx) from final HTTP responses.
Per W3C Resource Timing Level 3 spec:
https://github.com/w3c/resource-timing/pull/408
Implementation complete:
- Network timing capture (HTTP/1.1, HTTP/2)
- IPC serialization
- DOM API with TAO security
- All 24 WPT tests passing
Matches WebKit (Safari) and Chromium implementations.
| Assignee | |
Comment 1•6 months ago
|
Add firstInterimResponseStart and finalResponseHeadersStart properties
to distinguish interim (1xx) from final HTTP responses per W3C Resource
Timing spec.
- Network layer: Capture timing in nsHttpTransaction and Http2Session
- IPC: Serialize new timestamps across processes
- DOM: Expose via PerformanceResourceTiming with TAO protection
- Tests: Enable WPT interim-response-times tests (all pass)
Matches WebKit and Chromium implementations.
Updated•6 months ago
|
| Assignee | |
Comment 2•6 months ago
|
Address reviewer feedback by simplifying from 3 timestamps to 2:
- Remove firstInterimResponseStart from network layer storage
- Keep only responseStart and finalResponseHeadersStart in TimingStruct
- Compute firstInterimResponseStart in Performance API layer
Key changes:
- Fix timing bug: remove early SetResponseStart call in WritePipeSegment
that was capturing data arrival instead of status line parse time - Add HTTP/3 support in Http3Session.cpp ProcessEvents
- Add HTTP/3-specific test (test_http3_interim_response_timing.js)
- Simplify HTTP/1.1 and HTTP/2 timing logic
This results in less memory usage (1 fewer timestamp per request) and
cleaner separation between network capture and performance computation.
All existing WPT tests pass (interim-response-times.html for HTTP/1.1
and HTTP/2). New HTTP/3 test verifies timing with and without 103 Early
Hints.
🤖 Generated with Claude Code
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Updated•6 months ago
|
Comment 5•5 months ago
|
Reverted this because it was causing wpt failures in idlharness.https.any.html.
- Revert link
- Push with failures
- Failure Log
- Failure line: TEST-UNEXPECTED-PASS | /server-timing/idlharness.https.any.html | PerformanceResourceTiming interface: attribute finalResponseHeadersStart - expected FAIL
| Assignee | |
Comment 6•5 months ago
|
fixed and pushed a new patchset to the change, how can i re-land it?
Comment 9•5 months ago
|
Reverted this because it was causing wpt failures in idlharness.any.html.
- Revert link
- Push with failures
- Failure Log
- Failure line: TEST-UNEXPECTED-PASS | /resource-timing/idlharness.any.worker.html | PerformanceResourceTiming interface: attribute finalResponseHeadersStart - expected FAIL
Comment 10•5 months ago
|
Updated•5 months ago
|
Comment 11•5 months ago
|
Comment 12•5 months ago
|
Backed out for causing wpt failures @interim-response-times.html.
Comment 13•1 month ago
|
Comment 14•1 month ago
|
|
| bugherder | |
Updated•1 month ago
|
Updated•29 days ago
|
Comment 15•19 days ago
|
FF152 MDN docs work for this can be tracked in https://github.com/mdn/content/issues/44168 (compatibility data and release note)
