Chromium Code Reviews| 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 b678592b1d8e501e9c63e55d56f554d6d7047022..91f2e42ccac9b2920428f9d2cba6fef177900bab 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/security/SecurityPanel.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/security/SecurityPanel.js |
| @@ -178,6 +178,9 @@ WebInspector.SecurityPanel.prototype = { |
| if (securityDetails) { |
| originState.securityDetails = securityDetails; |
| originState.certificateDetailsPromise = request.target().networkManager.certificateDetailsPromise(securityDetails.certificateId); |
| + |
| + if (securityDetails.certificateValidationDetails) |
| + originState.certificateTransparencySummaryPromise = request.target().networkManager.certificateTransparencySummaryPromise(securityDetails.certificateValidationDetails); |
| } |
| this._origins.set(origin, originState); |
| @@ -798,8 +801,44 @@ WebInspector.SecurityOriginView = function(panel, origin, originState) |
| table.addRow("Valid From", validFromString); |
| table.addRow("Valid Until", validUntilString); |
| table.addRow("Issuer", certificateDetails.issuer); |
| + var sctValueDiv = table.addRow("SCTs", WebInspector.UIString("-")); |
| table.addRow("", WebInspector.SecurityPanel.createCertificateViewerButton(WebInspector.UIString("Open full certificate details"), originState.securityDetails.certificateId)); |
| - // TODO(lgarron): Make SCT status available in certificate details and show it here. |
| + |
| + var sctValue = WebInspector.UIString("-"); |
| + var validationDetails = originState.securityDetails.certificateValidationDetails; |
| + if (validationDetails) { |
| + |
| + var sctTypeList = []; |
| + |
| + if (validationDetails.numValidScts) |
| + sctTypeList.push(WebInspector.UIString("%d valid SCT%s", validationDetails.numValidScts, (validationDetails.numValidScts > 1) ? "s" : "")); |
| + if (validationDetails.numInvalidScts) |
| + sctTypeList.push(WebInspector.UIString("%d invalid SCT%s", validationDetails.numInvalidScts, (validationDetails.numInvalidScts > 1) ? "s" : "")); |
| + if (validationDetails.numUnknownScts) |
| + sctTypeList.push(WebInspector.UIString("%d SCT%s from unknown logs", validationDetails.numUnknownScts, (validationDetails.numUnknownScts > 1) ? "s" : "")); |
| + |
| + var sctTypeCounts = (sctTypeList.length == 0) ? WebInspector.UIString("0 SCTs") : sctTypeList.join(", "); |
| + |
| + if (originState.certificateTransparencySummaryPromise) { |
| + /** |
| + * @param {function(string)} summary |
| + */ |
| + function resolve(summary) |
| + { |
| + sctValueDiv.textContent = WebInspector.UIString("%s (%s)", summary, sctTypeCounts); |
| + } |
| + function reject() |
| + { |
| + sctValueDiv.textContent = sctTypeCounts; |
| + } |
| + originState.certificateTransparencySummaryPromise.then(resolve, reject); |
| + |
| + } else { |
| + // Fall back and just display the counts. |
| + sctValueDiv.textContent = sctTypeCounts; |
| + } |
| + } |
| + |
| } |
| function displayCertificateDetailsUnavailable () |
| @@ -904,6 +943,7 @@ WebInspector.SecurityDetailsTable.prototype = { |
| /** |
| * @param {string} key |
| * @param {string|!Node} value |
| + * @return: {!Element} -- the div containing the value. |
| */ |
| addRow: function(key, value) |
|
lgarron
2016/01/22 22:51:28
Although I added a return value, I decided to keep
|
| { |
| @@ -916,5 +956,6 @@ WebInspector.SecurityDetailsTable.prototype = { |
| } else { |
| valueDiv.appendChild(value); |
| } |
| + return valueDiv; |
| } |
| } |