Skip to content

Commit

Permalink
Update root-cert-stats to use runtime.sendMessage #542 (#547)
Browse files Browse the repository at this point in the history
* Adding send message and on message functions

* moving table displaying into a new function

* updating rootCertStats from var to let

* updating comments

* Apply Linter change, unused const

Co-authored-by: Rob Wu <rob@robwu.nl>

---------

Co-authored-by: Rob Wu <rob@robwu.nl>
Co-authored-by: rebloor <git@sherpa.co.nz>
  • Loading branch information
3 people committed Nov 4, 2023
1 parent d5fee36 commit faadfca
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 28 deletions.
14 changes: 10 additions & 4 deletions root-cert-stats/background.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
"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 = {};
let rootCertStats = {};

/*
On an onHeadersReceived event, if there was a successful TLS connection
Expand Down Expand Up @@ -39,3 +36,12 @@ browser.webRequest.onHeadersReceived.addListener(logRootCert,
{urls: ["<all_urls>"]},
["blocking"]
);

/*
Send the rootCertStats object to popup.js when requested.
*/
browser.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (message.action === "getRootCertStats") {
sendResponse({ rootCertStats: rootCertStats });
}
});
52 changes: 28 additions & 24 deletions root-cert-stats/popup.js
Original file line number Diff line number Diff line change
@@ -1,33 +1,37 @@
"use strict";

/*
Get the background page to access the rootCertStats object
Send message to the background page to get the rootCertStats object
*/
const backgroundPage = browser.extension.getBackgroundPage();
browser.runtime.sendMessage({ action: "getRootCertStats" }, response => {
displayTable(response.rootCertStats);
});

let entries = Object.keys(backgroundPage.rootCertStats);

/*
If there are any stats, show the table, and append one row for each entry.
Each row contains the name of the CA and the number of times it has been
used as a trust root.
*/
if (entries.length > 0) {

let noData = document.querySelector(".no-data");
noData.classList.add("hidden");
let entryTable = document.querySelector(".root-cert-table");
entryTable.classList.remove("hidden");

for (let entry of entries) {
let entryTR = document.createElement("tr");
let entryName = document.createElement("td");
let entryValue = document.createElement("td");
entryName.textContent = entry;
entryValue.textContent = backgroundPage.rootCertStats[entry];
function displayTable(rootCertStats) {
/*
If there are any stats, show the table, and append one row for each entry.
Each row contains the name of the CA and the number of times it has been
used as a trust root.
*/
let entries = Object.keys(rootCertStats);

entryTR.appendChild(entryName);
entryTR.appendChild(entryValue);
entryTable.appendChild(entryTR);
if (entries.length > 0) {
let noData = document.querySelector(".no-data");
noData.classList.add("hidden");
let entryTable = document.querySelector(".root-cert-table");
entryTable.classList.remove("hidden");

for (let entry of entries) {
let entryTR = document.createElement("tr");
let entryName = document.createElement("td");
let entryValue = document.createElement("td");
entryName.textContent = entry;
entryValue.textContent = rootCertStats[entry];

entryTR.appendChild(entryName);
entryTR.appendChild(entryValue);
entryTable.appendChild(entryTR);
}
}
}

0 comments on commit faadfca

Please sign in to comment.