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 1196
Changed: yurys@chromium.org Tue Oct 20 13:36:31 PDT 2020 Changed: pavel.feldman@gmail.com Wed Oct 21 13:53:01 PDT 2020

View file

@ -507,6 +507,17 @@ class NetworkRequest {
return; return;
this.httpChannel.QueryInterface(Ci.nsIHttpChannelInternal); 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 = []; const headers = [];
let status = 0; let status = 0;
@ -540,6 +551,7 @@ class NetworkRequest {
remotePort, remotePort,
status, status,
statusText, statusText,
timing,
}, this._frameId); }, this._frameId);
} }
@ -559,6 +571,7 @@ class NetworkRequest {
if (pageNetwork) { if (pageNetwork) {
pageNetwork.emit(PageNetwork.Events.RequestFinished, { pageNetwork.emit(PageNetwork.Events.RequestFinished, {
requestId: this.requestId, requestId: this.requestId,
responseEndTime: this.httpChannel.responseEndTime,
}, this._frameId); }, this._frameId);
} }
this._networkObserver._channelToRequest.delete(this.httpChannel); this._networkObserver._channelToRequest.delete(this.httpChannel);

View file

@ -189,6 +189,16 @@ networkTypes.SecurityDetails = {
validTo: t.Number, 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 = { const Browser = {
targets: ['browser'], targets: ['browser'],
@ -450,9 +460,11 @@ const Network = {
status: t.Number, status: t.Number,
statusText: t.String, statusText: t.String,
headers: t.Array(networkTypes.HTTPHeader), headers: t.Array(networkTypes.HTTPHeader),
timing: networkTypes.ResourceTiming,
}, },
'requestFinished': { 'requestFinished': {
requestId: t.String, requestId: t.String,
responseEndTime: t.Number,
}, },
'requestFailed': { 'requestFailed': {
requestId: t.String, requestId: t.String,