-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontent.js
More file actions
63 lines (60 loc) · 2.84 KB
/
content.js
File metadata and controls
63 lines (60 loc) · 2.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
var allTags = document.body.getElementsByTagName("a");
var result = obtainLinks(allTags);
if (request === "all") {
sendResponse({
securedLinks: result.securedLinks,
unsecuredLinks: result.unsecuredLinks,
});
}
if (request === "unsecure") {
sendResponse({ unsecuredLinks: result.unsecuredLinks });
}
if (request === "secure") {
sendResponse({ securedLinks: result.securedLinks });
}
});
//AUTO INIT
var allTags = document.body.getElementsByTagName("a");
var result = obtainLinks(allTags);
if (result.unsecuredLinks.length > 0) {
chrome.runtime.sendMessage({ action: "unsecured" });
}
function obtainLinks(allTags) {
var securedLinks = [];
var unsecuredLinks = [];
var alreadyExist = {}; //memoize/cache
var unsecuredTagsDom = [];
for (let item of allTags) {
var domain = item.href
.replace("http://", "")
.replace("https://", "")
.split(/[/?#]/)[0];
if (!alreadyExist[domain]) {
if (item.href.substr(0, 5) == "http:") {
unsecuredTagsDom.push(item);
unsecuredLinks.push({ href: item.href });
} else {
if (item.href.substr(0, 5) == "https") {
securedLinks.push({ href: item.href });
}
}
}
alreadyExist[domain] = true;
}
unsecuredTagsDom.forEach((x) => {
if (x.innerHTML.indexOf("bi-shield-exclamation") > 0) {
return;
} else {
var insafeLogo = `<svg style="color:red" width="1.4em" height="1.4em" viewBox="0 0 16 16" class="bi bi-shield-exclamation" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" d="M5.443 1.991a60.17 60.17 0 0 0-2.725.802.454.454 0 0 0-.315.366C1.87 7.056 3.1 9.9 4.567 11.773c.736.94 1.533 1.636 2.197 2.093.333.228.626.394.857.5.116.053.21.089.282.11A.73.73 0 0 0 8 14.5c.007-.001.038-.005.097-.023.072-.022.166-.058.282-.111.23-.106.525-.272.857-.5a10.197 10.197 0 0 0 2.197-2.093C12.9 9.9 14.13 7.056 13.597 3.159a.454.454 0 0 0-.315-.366c-.626-.2-1.682-.526-2.725-.802C9.491 1.71 8.51 1.5 8 1.5c-.51 0-1.49.21-2.557.491zm-.256-.966C6.23.749 7.337.5 8 .5c.662 0 1.77.249 2.813.525a61.09 61.09 0 0 1 2.772.815c.528.168.926.623 1.003 1.184.573 4.197-.756 7.307-2.367 9.365a11.191 11.191 0 0 1-2.418 2.3 6.942 6.942 0 0 1-1.007.586c-.27.124-.558.225-.796.225s-.526-.101-.796-.225a6.908 6.908 0 0 1-1.007-.586 11.192 11.192 0 0 1-2.417-2.3C2.167 10.331.839 7.221 1.412 3.024A1.454 1.454 0 0 1 2.415 1.84a61.11 61.11 0 0 1 2.772-.815z"/>
<path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 4.995z"/>
</svg>`;
x.href = "#";
x.target = "_self";
x.style.color = "#ddd";
x.innerHTML = x.innerHTML + insafeLogo;
}
});
return { securedLinks: securedLinks, unsecuredLinks: unsecuredLinks };
}