mirror of
https://github.com/puppeteer/puppeteer
synced 2024-06-14 14:02:48 +00:00
feat(Network): introduce response.securityDetails() method (#1880)
This patch: - introduces `SecurityDetails` class that exposes a set of fields that describe properties of secure connection - introduces method `response.securityDetails()` that returns an instance of `SecurityDetails` object.
This commit is contained in:
committed by
Andrey Lushnikov
parent
700244a29a
commit
856c431914
@@ -253,7 +253,7 @@ class NetworkManager extends EventEmitter {
|
||||
if (!request)
|
||||
return;
|
||||
const response = new Response(this._client, request, event.response.status, event.response.headers,
|
||||
event.response.fromDiskCache, event.response.fromServiceWorker);
|
||||
event.response.fromDiskCache, event.response.fromServiceWorker, event.response.securityDetails);
|
||||
request._response = response;
|
||||
this.emit(NetworkManager.Events.Response, response);
|
||||
}
|
||||
@@ -498,10 +498,11 @@ class Response {
|
||||
* @param {!Request} request
|
||||
* @param {number} status
|
||||
* @param {!Object} headers
|
||||
* @param {!Object} securityDetails
|
||||
* @param {boolean} fromDiskCache
|
||||
* @param {boolean} fromServiceWorker
|
||||
*/
|
||||
constructor(client, request, status, headers, fromDiskCache, fromServiceWorker) {
|
||||
constructor(client, request, status, headers, fromDiskCache, fromServiceWorker, securityDetails = null) {
|
||||
this._client = client;
|
||||
this._request = request;
|
||||
this._contentPromise = null;
|
||||
@@ -513,6 +514,15 @@ class Response {
|
||||
this._headers = {};
|
||||
for (const key of Object.keys(headers))
|
||||
this._headers[key.toLowerCase()] = headers[key];
|
||||
this._securityDetails = {};
|
||||
if (securityDetails) {
|
||||
this._securityDetails = new SecurityDetails(
|
||||
securityDetails['subjectName'],
|
||||
securityDetails['issuer'],
|
||||
securityDetails['validFrom'],
|
||||
securityDetails['validTo'],
|
||||
securityDetails['protocol']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -543,6 +553,13 @@ class Response {
|
||||
return this._headers;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {!SecurityDetails|Object}
|
||||
*/
|
||||
securityDetails() {
|
||||
return this._securityDetails;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {!Promise<!Buffer>}
|
||||
*/
|
||||
@@ -631,6 +648,59 @@ function generateRequestHash(request) {
|
||||
return JSON.stringify(hash);
|
||||
}
|
||||
|
||||
class SecurityDetails {
|
||||
/**
|
||||
* @param {string} subjectName
|
||||
* @param {string} issuer
|
||||
* @param {number} validFrom
|
||||
* @param {number} validTo
|
||||
* @param {string} protocol
|
||||
*/
|
||||
|
||||
constructor(subjectName, issuer, validFrom, validTo, protocol) {
|
||||
this._subjectName = subjectName;
|
||||
this._issuer = issuer;
|
||||
this._validFrom = validFrom;
|
||||
this._validTo = validTo;
|
||||
this._protocol = protocol;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {string}
|
||||
*/
|
||||
subjectName() {
|
||||
return this._subjectName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {string}
|
||||
*/
|
||||
issuer() {
|
||||
return this._issuer;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {number}
|
||||
*/
|
||||
validFrom() {
|
||||
return this._validFrom;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {number}
|
||||
*/
|
||||
validTo() {
|
||||
return this._validTo;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {string}
|
||||
*/
|
||||
protocol() {
|
||||
return this._protocol;
|
||||
}
|
||||
}
|
||||
|
||||
NetworkManager.Events = {
|
||||
Request: 'request',
|
||||
Response: 'response',
|
||||
|
||||
Reference in New Issue
Block a user