我正在开发一个Firefox扩展,它会向用户显示SSL证书信息。实际信息与浏览器内置的信息相同,但我将尝试用户体验的布局和其他信息。
由于2017年对附加组件的弃用,我一直在使用Firefox扩展而不是添加,但此项目将在此之前完成。
我正在尝试找到here的示例,但扩展似乎停在require("chrome")
上。
接下来,我尝试编写更简单的代码来确定示例的工作原理,但此代码没有附加到请求的通道。我的代码减去了所有类型的打印语句,如下所示:
document.getElementById("click_button").addEventListener("click",
function(e) {
var url = "https://secure-website-example.google.com";
xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.addEventListener("error",
function(e) {
dumpSecurityInfo(xhr, -1);
}, false);
xhr.onload = function(e) {
dumpSecurityInfo(xhr);
};
xhr.send();
});
function dumpSecurityInfo(xhr, error) {
var channel = xhr.channel;
try {
console.log("Connection status:");
if (!error) { console.log("Succeeded"); }
else { console.log("Failed :("); }
var securityInfo = channel.securityInfo;
} catch(err) {
alert(err);
}
}
带有这样的清单:
"manifest_version": 2,
"name": "Certificate Browser",
"version": "1.0",
...
"permissions": [
"activeTab",
"webRequest",
"https://secure-website-example.google.com/*"
],
"browser_action": {
...
"default_popup": "popup/certificate_information.html"
}
我是否遗漏了访问证书所需的任何权限?是否有更好的方法来获取证书信息?