browser(firefox): expose resource timing info (#4205)

This commit is contained in:
Pavel Feldman 2020-10-21 13:55:30 -07:00 committed by GitHub
parent 7d28dfdb59
commit 437fe17825
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 2 deletions

View file

@ -1,2 +1,2 @@
1195
Changed: yurys@chromium.org Tue Oct 20 13:36:31 PDT 2020
1196
Changed: pavel.feldman@gmail.com Wed Oct 21 13:53:01 PDT 2020

View file

@ -507,6 +507,17 @@ class NetworkRequest {
return;
this.httpChannel.QueryInterface(Ci.nsIHttpChannelInternal);
this.httpChannel.QueryInterface(Ci.nsITimedChannel);
const timing = {
startTime: this.httpChannel.channelCreationTime,
domainLookupStart: this.httpChannel.domainLookupStartTime,
domainLookupEnd: this.httpChannel.domainLookupEndTime,
connectStart: this.httpChannel.connectStartTime,
secureConnectionStart: this.httpChannel.secureConnectionStartTime,
connectEnd: this.httpChannel.connectEndTime,
requestStart: this.httpChannel.requestStartTime,
responseStart: this.httpChannel.responseStartTime,
};
const headers = [];
let status = 0;
@ -540,6 +551,7 @@ class NetworkRequest {
remotePort,
status,
statusText,
timing,
}, this._frameId);
}
@ -559,6 +571,7 @@ class NetworkRequest {
if (pageNetwork) {
pageNetwork.emit(PageNetwork.Events.RequestFinished, {
requestId: this.requestId,
responseEndTime: this.httpChannel.responseEndTime,
}, this._frameId);
}
this._networkObserver._channelToRequest.delete(this.httpChannel);

View file

@ -189,6 +189,16 @@ networkTypes.SecurityDetails = {
validTo: t.Number,
};
networkTypes.ResourceTiming = {
startTime: t.Number,
domainLookupStart: t.Number,
domainLookupEnd: t.Number,
connectStart: t.Number,
secureConnectionStart: t.Number,
connectEnd: t.Number,
requestStart: t.Number,
responseStart: t.Number,
};
const Browser = {
targets: ['browser'],
@ -450,9 +460,11 @@ const Network = {
status: t.Number,
statusText: t.String,
headers: t.Array(networkTypes.HTTPHeader),
timing: networkTypes.ResourceTiming,
},
'requestFinished': {
requestId: t.String,
responseEndTime: t.Number,
},
'requestFailed': {
requestId: t.String,