Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * @constructor | 6 * @constructor |
| 7 * @extends {WebInspector.PanelWithSidebar} | 7 * @extends {WebInspector.PanelWithSidebar} |
| 8 * @implements {WebInspector.TargetManager.Observer} | 8 * @implements {WebInspector.TargetManager.Observer} |
| 9 */ | 9 */ |
| 10 WebInspector.SecurityPanel = function() | 10 WebInspector.SecurityPanel = function() |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 171 } | 171 } |
| 172 } else { | 172 } else { |
| 173 // TODO(lgarron): Store a (deduplicated) list of different security details we have seen. https://crbug.com/503170 | 173 // TODO(lgarron): Store a (deduplicated) list of different security details we have seen. https://crbug.com/503170 |
| 174 var originState = {}; | 174 var originState = {}; |
| 175 originState.securityState = securityState; | 175 originState.securityState = securityState; |
| 176 | 176 |
| 177 var securityDetails = request.securityDetails(); | 177 var securityDetails = request.securityDetails(); |
| 178 if (securityDetails) { | 178 if (securityDetails) { |
| 179 originState.securityDetails = securityDetails; | 179 originState.securityDetails = securityDetails; |
| 180 originState.certificateDetailsPromise = request.target().network Manager.certificateDetailsPromise(securityDetails.certificateId); | 180 originState.certificateDetailsPromise = request.target().network Manager.certificateDetailsPromise(securityDetails.certificateId); |
| 181 | |
| 182 if (securityDetails.certificateValidationDetails) | |
| 183 originState.certificateTransparencySummaryPromise = request. target().networkManager.certificateTransparencySummaryPromise(securityDetails.ce rtificateValidationDetails); | |
| 181 } | 184 } |
| 182 | 185 |
| 183 this._origins.set(origin, originState); | 186 this._origins.set(origin, originState); |
| 184 | 187 |
| 185 this._sidebarTree.addOrigin(origin, securityState); | 188 this._sidebarTree.addOrigin(origin, securityState); |
| 186 | 189 |
| 187 // Don't construct the origin view yet (let it happen lazily). | 190 // Don't construct the origin view yet (let it happen lazily). |
| 188 } | 191 } |
| 189 }, | 192 }, |
| 190 | 193 |
| (...skipping 600 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 791 var validFromString = new Date(1000 * certificateDetails.validFrom). toUTCString(); | 794 var validFromString = new Date(1000 * certificateDetails.validFrom). toUTCString(); |
| 792 var validUntilString = new Date(1000 * certificateDetails.validTo).t oUTCString(); | 795 var validUntilString = new Date(1000 * certificateDetails.validTo).t oUTCString(); |
| 793 | 796 |
| 794 var table = new WebInspector.SecurityDetailsTable(); | 797 var table = new WebInspector.SecurityDetailsTable(); |
| 795 certificateSection.appendChild(table.element()); | 798 certificateSection.appendChild(table.element()); |
| 796 table.addRow("Subject", certificateDetails.subject.name); | 799 table.addRow("Subject", certificateDetails.subject.name); |
| 797 table.addRow("SAN", sanDiv); | 800 table.addRow("SAN", sanDiv); |
| 798 table.addRow("Valid From", validFromString); | 801 table.addRow("Valid From", validFromString); |
| 799 table.addRow("Valid Until", validUntilString); | 802 table.addRow("Valid Until", validUntilString); |
| 800 table.addRow("Issuer", certificateDetails.issuer); | 803 table.addRow("Issuer", certificateDetails.issuer); |
| 804 var sctValueDiv = table.addRow("SCTs", WebInspector.UIString("-")); | |
| 801 table.addRow("", WebInspector.SecurityPanel.createCertificateViewerB utton(WebInspector.UIString("Open full certificate details"), originState.securi tyDetails.certificateId)); | 805 table.addRow("", WebInspector.SecurityPanel.createCertificateViewerB utton(WebInspector.UIString("Open full certificate details"), originState.securi tyDetails.certificateId)); |
| 802 // TODO(lgarron): Make SCT status available in certificate details a nd show it here. | 806 |
| 807 var sctValue = WebInspector.UIString("-"); | |
| 808 var validationDetails = originState.securityDetails.certificateValid ationDetails; | |
| 809 if (validationDetails) { | |
| 810 | |
| 811 var sctTypeList = []; | |
| 812 | |
| 813 if (validationDetails.numValidScts) | |
| 814 sctTypeList.push(WebInspector.UIString("%d valid SCT%s", val idationDetails.numValidScts, (validationDetails.numValidScts > 1) ? "s" : "")); | |
| 815 if (validationDetails.numInvalidScts) | |
| 816 sctTypeList.push(WebInspector.UIString("%d invalid SCT%s", v alidationDetails.numInvalidScts, (validationDetails.numInvalidScts > 1) ? "s" : "")); | |
| 817 if (validationDetails.numUnknownScts) | |
| 818 sctTypeList.push(WebInspector.UIString("%d SCT%s from unknow n logs", validationDetails.numUnknownScts, (validationDetails.numUnknownScts > 1 ) ? "s" : "")); | |
| 819 | |
| 820 var sctTypeCounts = (sctTypeList.length == 0) ? WebInspector.UIS tring("0 SCTs") : sctTypeList.join(", "); | |
| 821 | |
| 822 if (originState.certificateTransparencySummaryPromise) { | |
| 823 /** | |
| 824 * @param {function(string)} summary | |
| 825 */ | |
| 826 function resolve(summary) | |
| 827 { | |
| 828 sctValueDiv.textContent = WebInspector.UIString("%s (%s) ", summary, sctTypeCounts); | |
| 829 } | |
| 830 function reject() | |
| 831 { | |
| 832 sctValueDiv.textContent = sctTypeCounts; | |
| 833 } | |
| 834 originState.certificateTransparencySummaryPromise.then(resol ve, reject); | |
| 835 | |
| 836 } else { | |
| 837 // Fall back and just display the counts. | |
| 838 sctValueDiv.textContent = sctTypeCounts; | |
| 839 } | |
| 840 } | |
| 841 | |
| 803 } | 842 } |
| 804 | 843 |
| 805 function displayCertificateDetailsUnavailable () | 844 function displayCertificateDetailsUnavailable () |
| 806 { | 845 { |
| 807 certificateSection.createChild("div").textContent = WebInspector.UIS tring("Certificate details unavailable."); | 846 certificateSection.createChild("div").textContent = WebInspector.UIS tring("Certificate details unavailable."); |
| 808 } | 847 } |
| 809 | 848 |
| 810 originState.certificateDetailsPromise.then(displayCertificateDetails.bin d(this), displayCertificateDetailsUnavailable); | 849 originState.certificateDetailsPromise.then(displayCertificateDetails.bin d(this), displayCertificateDetailsUnavailable); |
| 811 | 850 |
| 812 var noteSection = this.element.createChild("div", "origin-view-section") ; | 851 var noteSection = this.element.createChild("div", "origin-view-section") ; |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 897 * @return: {!Element} | 936 * @return: {!Element} |
| 898 */ | 937 */ |
| 899 element: function() | 938 element: function() |
| 900 { | 939 { |
| 901 return this._element; | 940 return this._element; |
| 902 }, | 941 }, |
| 903 | 942 |
| 904 /** | 943 /** |
| 905 * @param {string} key | 944 * @param {string} key |
| 906 * @param {string|!Node} value | 945 * @param {string|!Node} value |
| 946 * @return: {!Element} -- the div containing the value. | |
| 907 */ | 947 */ |
| 908 addRow: function(key, value) | 948 addRow: function(key, value) |
|
lgarron
2016/01/22 22:51:28
Although I added a return value, I decided to keep
| |
| 909 { | 949 { |
| 910 var row = this._element.createChild("div", "details-table-row"); | 950 var row = this._element.createChild("div", "details-table-row"); |
| 911 row.createChild("div").textContent = key; | 951 row.createChild("div").textContent = key; |
| 912 | 952 |
| 913 var valueDiv = row.createChild("div"); | 953 var valueDiv = row.createChild("div"); |
| 914 if (typeof value === "string") { | 954 if (typeof value === "string") { |
| 915 valueDiv.textContent = value; | 955 valueDiv.textContent = value; |
| 916 } else { | 956 } else { |
| 917 valueDiv.appendChild(value); | 957 valueDiv.appendChild(value); |
| 918 } | 958 } |
| 959 return valueDiv; | |
| 919 } | 960 } |
| 920 } | 961 } |
| OLD | NEW |