Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(31)

Unified Diff: third_party/WebKit/Source/devtools/front_end/security/SecurityPanel.js

Issue 1589703002: Surface SCT (Signed Certificate Timestamp) counts in the Security panel. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments by rsleevi@ and pfeldman@. Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
}
}
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/sdk/NetworkManager.js ('k') | third_party/WebKit/Source/devtools/protocol.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698