mirror of
https://github.com/mdn/webextensions-examples.git
synced 2026-04-16 14:28:33 +02:00
* Reverse var to let change * Review feedback Co-authored-by: Rob Wu <rob@robwu.nl> --------- Co-authored-by: Rob Wu <rob@robwu.nl>
42 lines
1.2 KiB
JavaScript
42 lines
1.2 KiB
JavaScript
"use strict";
|
|
|
|
// Note: declared with "var" because popup.js references this global variable.
|
|
// If this were to be declared with "const" or "let", then the variable would
|
|
// still be available to this file, but not to popup.js.
|
|
var rootCertStats = {};
|
|
|
|
/*
|
|
On an onHeadersReceived event, if there was a successful TLS connection
|
|
established, fetch the root cert and look at its subject.
|
|
|
|
If we haven't seen this subject before, add it. If we have, increment its stats.
|
|
*/
|
|
async function logRootCert(details) {
|
|
try {
|
|
let securityInfo = await browser.webRequest.getSecurityInfo(
|
|
details.requestId,
|
|
{"certificateChain": true}
|
|
);
|
|
if ((securityInfo.state == "secure" || securityInfo.state == "weak") &&
|
|
!securityInfo.isUntrusted) {
|
|
let rootName = securityInfo.certificates[securityInfo.certificates.length - 1].subject;
|
|
if (rootCertStats[rootName] === undefined) {
|
|
rootCertStats[rootName] = 1;
|
|
} else {
|
|
rootCertStats[rootName] = rootCertStats[rootName] + 1;
|
|
}
|
|
}
|
|
}
|
|
catch(error) {
|
|
console.error(error);
|
|
}
|
|
}
|
|
|
|
/*
|
|
Listen for all onHeadersReceived events.
|
|
*/
|
|
browser.webRequest.onHeadersReceived.addListener(logRootCert,
|
|
{urls: ["<all_urls>"]},
|
|
["blocking"]
|
|
);
|