Я использую webExtension SecurityInfo API.Например, я хочу посмотреть, включен ли HSTS.Я только хочу знать эту информацию.один раз за вкладку.Например, в этом коде я хочу проверить, включен ли HSTS.
background.js
:
sync function logger(details) {
try {
let securityInfo = await browser.webRequest.getSecurityInfo(
details.requestId, {}
);
console.log("URL",details.url)
if ((securityInfo.state == "secure" || securityInfo.state == "weak") &&
!securityInfo.isUntrusted) {
console.log("HSTS:",securityInfo.hsts)
}
}
catch(error) {
console.error(error);
}
}
browser.webRequest.onHeadersReceived.addListener(logger,
{urls: ["<all_urls>"]},
["blocking"]
);
, когда я открываю google.com
, я получаю десятки ответов в browser console
для многих ссылок, которые предназначены для google.com
или для встроенных ссылок вта же страница
Мне интересно знать только SecurityInfo.для корневого домена URL я попал в строку URL.Ничего больше.Например, если я нажму mail.google.com
, я хочу узнать статус HSTS для google.com
.Если я снова введу новый адрес в той же вкладке, скажем, yahoo.com
, мне будет интересно узнать SecurityInfo для yahoo.com
.
Если я открою новую вкладку для google.com
, я хочу эту информациюснова появиться как новая вкладка, несмотря на то, что я видел ее на предыдущей вкладке.
Т.е. меня интересует только информация SecurityInfo корневого домена (не поддоменов) один раз для каждого попадания URL.
А, manifest.json
:
{
"manifest_version": 2,
"name": "Example",
"description": "Example.",
"version": "0.1.0",
"browser_action": {
"default_icon": {
"32": "icons/icon-32.png"
},
"default_title": "Example",
"default_popup": "popup.html"
},
"permissions": ["webRequest", "webRequestBlocking", "<all_urls>"],
"background": {
"scripts": [ "background.js" ]
},
"icons": {
"32": "icons/icon-32.png"
},
"applications": {
"gecko": {
"strict_min_version": "62.0b5"
}
}
}