Files
sousa-gecko/dom/webidl/PerformanceResourceTiming.webidl
T
Helmut Januschka ceb343c444 Bug 2006340 - Implement Resource Timing Level 3 interim response timestamps r=necko-reviewers,webidl,smaug,valentin
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.

Differential Revision: https://phabricator.services.mozilla.com/D276668
2026-04-28 07:30:18 +00:00

75 lines
2.7 KiB
Plaintext

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/.
*
* The origin of this IDL file is
* https://w3c.github.io/resource-timing/#sec-performanceresourcetiming
*
* Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
* liability, trademark and document use rules apply.
*/
enum RenderBlockingStatusType { "blocking", "non-blocking" };
[Exposed=(Window,Worker)]
interface PerformanceResourceTiming : PerformanceEntry
{
readonly attribute DOMString initiatorType;
readonly attribute DOMString nextHopProtocol;
readonly attribute DOMHighResTimeStamp workerStart;
[NeedsSubjectPrincipal]
readonly attribute DOMHighResTimeStamp redirectStart;
[NeedsSubjectPrincipal]
readonly attribute DOMHighResTimeStamp redirectEnd;
readonly attribute DOMHighResTimeStamp fetchStart;
[NeedsSubjectPrincipal]
readonly attribute DOMHighResTimeStamp domainLookupStart;
[NeedsSubjectPrincipal]
readonly attribute DOMHighResTimeStamp domainLookupEnd;
[NeedsSubjectPrincipal]
readonly attribute DOMHighResTimeStamp connectStart;
[NeedsSubjectPrincipal]
readonly attribute DOMHighResTimeStamp connectEnd;
[NeedsSubjectPrincipal]
readonly attribute DOMHighResTimeStamp secureConnectionStart;
[NeedsSubjectPrincipal]
readonly attribute DOMHighResTimeStamp requestStart;
[NeedsSubjectPrincipal]
readonly attribute DOMHighResTimeStamp finalResponseHeadersStart;
[NeedsSubjectPrincipal]
readonly attribute DOMHighResTimeStamp firstInterimResponseStart;
[NeedsSubjectPrincipal]
readonly attribute DOMHighResTimeStamp responseStart;
readonly attribute DOMHighResTimeStamp responseEnd;
[NeedsSubjectPrincipal]
readonly attribute unsigned long long transferSize;
[NeedsSubjectPrincipal]
readonly attribute unsigned long long encodedBodySize;
[NeedsSubjectPrincipal]
readonly attribute unsigned long long decodedBodySize;
// https://w3c.github.io/resource-timing/#dom-performanceresourcetiming-responsestatus
[NeedsSubjectPrincipal]
readonly attribute unsigned short responseStatus;
// https://w3c.github.io/server-timing/#extension-to-the-performanceresourcetiming-interface
[NeedsSubjectPrincipal]
readonly attribute DOMString contentType;
// TODO: Use FrozenArray once available. (Bug 1236777)
// readonly attribute FrozenArray<PerformanceServerTiming> serverTiming;
[SecureContext, Frozen, Cached, Pure, NeedsSubjectPrincipal]
readonly attribute sequence<PerformanceServerTiming> serverTiming;
[Pref="dom.element.blocking.enabled"]
readonly attribute RenderBlockingStatusType renderBlockingStatus;
[Default] object toJSON();
};