Index: Source/devtools/front_end/sdk/NetworkManager.js |
diff --git a/Source/devtools/front_end/sdk/NetworkManager.js b/Source/devtools/front_end/sdk/NetworkManager.js |
index 96f65d817ea90cb785602cbfc224d3fcde8da50a..1f59f3215b6de6e44c7672189709174afe0217e6 100644 |
--- a/Source/devtools/front_end/sdk/NetworkManager.js |
+++ b/Source/devtools/front_end/sdk/NetworkManager.js |
@@ -54,7 +54,8 @@ WebInspector.NetworkManager.EventTypes = { |
RequestStarted: "RequestStarted", |
RequestUpdated: "RequestUpdated", |
RequestFinished: "RequestFinished", |
- RequestUpdateDropped: "RequestUpdateDropped" |
+ RequestUpdateDropped: "RequestUpdateDropped", |
+ ResponseReceivedSecurityDetails: "ResponseReceivedSecurityDetails" |
} |
WebInspector.NetworkManager._MIMETypes = { |
@@ -349,6 +350,42 @@ WebInspector.NetworkDispatcher.prototype = { |
this._updateNetworkRequestWithResponse(networkRequest, response); |
this._updateNetworkRequest(networkRequest); |
+ |
+ this._dispatchResponseReceivedSecurityDetails(requestId, response); |
+ }, |
+ |
+ /** |
+ * @param {!NetworkAgent.RequestId} requestId |
+ * @param {!NetworkAgent.Response} response |
+ */ |
+ _dispatchResponseReceivedSecurityDetails: function(requestId, response) |
+ { |
+ var eventData = {}; |
+ eventData.requestId = requestId; |
+ eventData.origin = WebInspector.ParsedURL.splitURLIntoPathComponents(response.url)[0]; |
+ eventData.securityState = response.securityState; |
+ if (response.securityDetails) { |
+ /** |
+ * @this {WebInspector.NetworkDispatcher} |
+ * @param {?Protocol.Error} error |
+ * @param {!NetworkAgent.CertificateDetails} certificateDetails |
+ */ |
+ function callback(error, certificateDetails) |
+ { |
+ if (error) { |
+ console.error("Unable to get certificate details from the browser (for certificate ID ", response.securityDetails.certificateId, "): ", error); |
dgozman
2015/08/19 20:22:30
Should we just report empty certificate details?
lgarron
2015/08/19 22:51:33
I didn't want to think about dealing with that cas
|
+ return; |
+ } |
+ eventData.securityDetails.certificateDetails = certificateDetails; |
+ this._manager.dispatchEventToListeners(WebInspector.NetworkManager.EventTypes.ResponseReceivedSecurityDetails, eventData); |
+ } |
+ |
+ eventData.securityDetails = response.securityDetails; |
+ this._manager._networkAgent.getCertificateDetails(response.securityDetails.certificateId, callback.bind(this)); |
+ |
dgozman
2015/08/19 20:22:30
nit: extra blank line
lgarron
2015/08/19 22:51:33
Removed.
|
+ } else { |
+ this._manager.dispatchEventToListeners(WebInspector.NetworkManager.EventTypes.ResponseReceivedSecurityDetails, eventData); |
+ } |
}, |
/** |