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
|
var config = {};
config.welcome = {
get version () {return app.storage.read("version")},
set version (val) {app.storage.write("version", val)}
};
config.addon = {
"check": "https://check.torproject.org/",
set state (val) {app.storage.write("state", val)},
set whitelist (val) {app.storage.write("whitelist", val)},
get whitelist () {return app.storage.read("whitelist") || ''},
"github": "https://github.com/jeremy-jr-benthum/tor-button/releases",
get state () {return app.storage.read("state") !== undefined ? app.storage.read("state") : "OFF"}
};
config.request = function (url, callback) {
var xhr = new XMLHttpRequest();
try {
xhr.onload = function () {xhr.status >= 200 && xhr.status < 304 ? callback("ok") : callback("error")};
xhr.open("HEAD", url, true);
xhr.onerror = function () {callback("error")};
xhr.ontimeout = function () {callback("error")};
xhr.send('');
} catch (e) {callback("error")}
};
config.notifications = (function () {
chrome.notifications.onClosed.addListener(function () {config.notifications.id = ''});
chrome.notifications.onClicked.addListener(function (id) {if (id === config.notifications.id) app.tab.open(app.homepage() + "#faq")});
/* */
return {
"id": '',
"create": function (message) {
var iconUrl = /Firefox/.test(navigator.userAgent) ? "data/icons/ON/64.png" : chrome.runtime.getURL("data/icons/ON/64.png");
var o = {"message": message, "type": "basic", "title": "Tor Browser Button", "iconUrl": iconUrl};
if (config.notifications.id) {
if (chrome.notifications.update) {
return chrome.notifications.update(config.notifications.id, o, function () {});
}
}
return chrome.notifications.create(o, function (id) {config.notifications.id = id});
}
}
})();
|