From 9fe427ff45778f53214ce110bf94fe43459491d1 Mon Sep 17 00:00:00 2001 From: Ruben Rodriguez Date: Wed, 7 Nov 2018 23:45:25 -0500 Subject: Updated extensions through running updated data/update-extensions.sh --- .../lib/common.js | 96 ++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 data/extensions/tortm-browser-button@jeremybenthum/lib/common.js (limited to 'data/extensions/tortm-browser-button@jeremybenthum/lib/common.js') diff --git a/data/extensions/tortm-browser-button@jeremybenthum/lib/common.js b/data/extensions/tortm-browser-button@jeremybenthum/lib/common.js new file mode 100644 index 0000000..d631376 --- /dev/null +++ b/data/extensions/tortm-browser-button@jeremybenthum/lib/common.js @@ -0,0 +1,96 @@ +window.setTimeout(function () { + var version = config.welcome.version; + if (!version) { + app.tab.open(app.homepage() + "?v=" + app.version() + "&type=install"); + config.welcome.version = app.version(); + } +}, 3000); + +var popupsend = function () { + tor.icon(tor.id); + app.popup.send("tor-data", { + "id": tor.id, + "log": tor.log, + "whitelist": config.addon.whitelist + }); +}; + +var setproxy = function (callback) { + if (tor.id === "OFF") chrome.proxy.settings.set({"scope": "regular", "value": {"mode": "system"}}, callback); + else chrome.proxy.settings.set({ + "scope": "regular", + "value": { + "mode": "fixed_servers", + "rules": { + "bypassList": tor.bypassList, + "singleProxy": {"scheme": "socks5", "host": "127.0.0.1", "port": 9050} + } + } + }, callback); +}; + +var tor = { + "id": "OFF", + "bypassList": [], + "log": "Tor Browser Button", + "update": function () { + if (config.addon.state === "ON") { + tor.once(function () { + var url = config.addon.check + "?t=" + new Date().getTime() + "&r=" + Math.round(Math.random() * 10000); + config.request(url, function (e) { + if (e === "ok") config.addon.state === "ON" ? tor.start() : tor.stop(); + else { + tor.stop(); + config.notifications.create("TOR is NOT running. Please connect your computer to TOR network and try again."); + } + }); + }); + } else tor.stop(); + }, + "stop": function () { + tor.id = "OFF"; + tor.log = "TOR proxy is disabled"; + setproxy(popupsend); + }, + "start": function () { + tor.id = "ON"; + tor.log = "Connected to 127.0.0.1:9050"; + config.notifications.create("TOR is running. Connected to 127.0.0.1:9050"); + tor.bypassList = config.addon.whitelist ? config.addon.whitelist.split(',') : []; + setproxy(popupsend); + }, + "once": function (callback) { + tor.id = "CHECK"; + tor.log = "Checking tor proxy connection..."; + tor.bypassList = config.addon.whitelist ? config.addon.whitelist.split(',') : []; + setproxy(function () {window.setTimeout(function () {callback(true)}, 300)}); + popupsend(); + }, + "icon": function (state) { + app.button.icon = { + "path": { + "16": '../../data/icons/' + state + '/16.png', + "32": '../../data/icons/' + state + '/32.png', + "48": '../../data/icons/' + state + '/48.png', + "64": '../../data/icons/' + state + '/64.png' + } + }; + } +}; + +app.popup.receive("popup-data", function (e) { + if (e.name === "support") app.tab.open(app.homepage()); + if (e.name === "check") app.tab.open(config.addon.check); + if (e.name === "install") app.tab.open(config.addon.github); + if (e.name === "bypassList") { + config.addon.whitelist = e.whitelist; + tor.update(); + } + if (e.name === "ON" || e.name === "OFF") { + config.addon.state = e.name; + tor.update(); + } +}); + +window.setTimeout(tor.update, 0); +app.popup.receive("load", popupsend); -- cgit v1.2.3