Index: third_party/WebKit/Source/devtools/front_end/security/SecurityPanel.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/security/SecurityPanel.js b/third_party/WebKit/Source/devtools/front_end/security/SecurityPanel.js |
index 2bc3e5f51ccdabe1cbaf2892e73c393dae294821..1b43937da73e3cc98e5ff3f509d84e6b8775d415 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/security/SecurityPanel.js |
+++ b/third_party/WebKit/Source/devtools/front_end/security/SecurityPanel.js |
@@ -800,6 +800,29 @@ WebInspector.SecurityOriginView = function(panel, origin, originState) |
table.addRow(WebInspector.UIString("Issuer"), certificateDetails.issuer); |
table.addRow(WebInspector.UIString("SCTs"), this.sctSummary(originState.securityDetails.certificateValidationDetails)); |
table.addRow("", WebInspector.SecurityPanel.createCertificateViewerButton(WebInspector.UIString("Open full certificate details"), originState.securityDetails.certificateId)); |
+ |
+ // Show SCT(s) of Certificate Transparency. |
+ for (var i = 0; i < originState.securityDetails.signedCertificateTimestampList.length; i++) |
+ { |
+ var sctSection = this.element.createChild("div", "origin-view-section"); |
+ sctSection.createChild("div", "origin-view-section-title").textContent = WebInspector.UIString("Certificate Transparency - Signed Certificate Timestamp " + (i + 1)); |
+ |
+ var sctTable = new WebInspector.SecurityDetailsTable(); |
+ sctSection.appendChild(sctTable.element()); |
+ sctTable.addRow(WebInspector.UIString("Validation Status"), originState.securityDetails.signedCertificateTimestampList[i].status); |
+ sctTable.addRow(WebInspector.UIString("Origin"), originState.securityDetails.signedCertificateTimestampList[i].origin); |
+ sctTable.addRow(WebInspector.UIString("Version"), originState.securityDetails.signedCertificateTimestampList[i].version); |
+ sctTable.addRow(WebInspector.UIString("Log Name"), originState.securityDetails.signedCertificateTimestampList[i].logDescription); |
+ sctTable.addRow(WebInspector.UIString("Log ID"), originState.securityDetails.signedCertificateTimestampList[i].logId.replace(/(.{2})/g,"$1 ")); |
+ sctTable.addRow(WebInspector.UIString("Issued At"), new Date(originState.securityDetails.signedCertificateTimestampList[i].timestamp).toUTCString()); |
+ sctTable.addRow(WebInspector.UIString("Hash Algorithm"), originState.securityDetails.signedCertificateTimestampList[i].hashAlgorithm); |
+ sctTable.addRow(WebInspector.UIString("Sign Algorithm"), originState.securityDetails.signedCertificateTimestampList[i].signatureAlgorithm); |
+ sctTable.addRow(WebInspector.UIString("Signature Data"), originState.securityDetails.signedCertificateTimestampList[i].signatureData.replace(/(.{2})/g,"$1 ")); |
+ } |
+ |
+ var noteSection = this.element.createChild("div", "origin-view-section"); |
+ // TODO(lgarron): Fix the issue and then remove this section. See comment in SecurityPanel._processRequest(). |
+ noteSection.createChild("div").textContent = WebInspector.UIString("The security details above are from the first inspected response."); |
} |
function displayCertificateDetailsUnavailable () |
@@ -808,10 +831,6 @@ WebInspector.SecurityOriginView = function(panel, origin, originState) |
} |
originState.certificateDetailsPromise.then(displayCertificateDetails.bind(this), displayCertificateDetailsUnavailable); |
- |
- var noteSection = this.element.createChild("div", "origin-view-section"); |
- // TODO(lgarron): Fix the issue and then remove this section. See comment in SecurityPanel._processRequest(). |
- noteSection.createChild("div").textContent = WebInspector.UIString("The security details above are from the first inspected response."); |
} else if (originState.securityState !== SecurityAgent.SecurityState.Unknown) { |
var notSecureSection = this.element.createChild("div", "origin-view-section"); |
notSecureSection.createChild("div", "origin-view-section-title").textContent = WebInspector.UIString("Not Secure"); |