diff options
Diffstat (limited to 'ismitmlink/bg.js')
-rw-r--r-- | ismitmlink/bg.js | 69 |
1 files changed, 45 insertions, 24 deletions
diff --git a/ismitmlink/bg.js b/ismitmlink/bg.js index 5e575692..87a73de7 100644 --- a/ismitmlink/bg.js +++ b/ismitmlink/bg.js @@ -1,7 +1,6 @@ const apiurl = 'https://searxes.danwin1210.me/collab/open/ismitm.php'; -let mymemory = {}; -function ismitm(f) { +function is_infected(f) { return new Promise((g, b) => { fetch(apiurl, { method: 'POST', @@ -22,29 +21,51 @@ function ismitm(f) { }); } -browser.runtime.onMessage.addListener((request, sender, sendResponse) => { - if (request && sender) { - if (mymemory[request] != undefined) { - let rlt = mymemory[request]; - if (Object.keys(mymemory).length > 20000) { - let cnt = 1; - for (let t in mymemory) { - if (cnt > 10) { - break; - } - mymemory[t] = null; - delete mymemory[t]; - cnt++; +function i_already_know_you(f) { + if (!/^([a-z0-9_.-]{1,255})\.([a-z]{2,80})$/.test(f)) { + return false; + } + return new Promise((g, b) => { + browser.storage.local.get(f).then((ff) => { + if (ff[f]) { + if (ff[f] == 'y') { + g(1); + } else { + g(-1); } + } else { + g(0); } - browser.tabs.sendMessage(sender.tab.id, [request, rlt]); - } else { - ismitm(request).then(function (a) { - mymemory[request] = a; - browser.tabs.sendMessage(sender.tab.id, [request, a]); - }, function () { - browser.tabs.sendMessage(sender.tab.id, [request, false]); - }); + }, () => { + g(0); + }); + }); +} + +function i_remember_you(f, t) { + browser.storage.local.set({ + [f]: ((t) ? 'y' : 'n') + }); +} + +browser.storage.local.clear().then(() => { + browser.runtime.onMessage.addListener((request, sender, sendResponse) => { + if (request && sender) { + i_already_know_you(request).then((r) => { + if (r == 1 || r == -1) { + browser.tabs.sendMessage(sender.tab.id, [request, ((r == 1) ? true : false)]); + } + if (r == 0) { + is_infected(request).then((a) => { + i_remember_you(request, a); + browser.tabs.sendMessage(sender.tab.id, [request, a]); + }, () => { + browser.tabs.sendMessage(sender.tab.id, [request, false]); + }); + } + }, () => {}); } - } + }); +}, (e) => { + console.log(e); });
\ No newline at end of file |