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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
window.onload = function() {
chrome.proxy.settings.get({ incognito: false }, function(config) {
var googleList = ["*.google.com", "google.com", "googleusercontent.com", "*.googleusercontent.com", "*.gstatic.com", "gstatic.com"];
var bypassList = [];
var lastSetFunction = function() { };
var inputs = document.getElementsByTagName("input");
var setPreset = false;
var parseUrl = function(url) {
return { scheme: url.substring(0, url.indexOf(":")), host: url.substring(url.lastIndexOf("/") + 1, url.lastIndexOf(":")), port: parseInt(url.substring(url.lastIndexOf(":") + 1)) };
};
var parseObject = function(obj) {
return obj.scheme + "://" + obj.host + ":" + obj.port;
};
var closePopup = function() {
window.close();
};
for (var i = 0; i < inputs.length; ++i) {
if (inputs[i].name == "google") (function(self) {
self.onclick = function() {
bypassList = self.checked ? googleList : [];
lastSetFunction.call(self);
};
if (config.value.rules.bypassList.length > 0) {
self.checked = true;
bypassList = googleList;
}
})(inputs[i]);
else if (inputs[i].value == "system") (function(self) {
var setIt = function() {
chrome.proxy.settings.set({ value: { mode: "system" }, scope: "regular" }, closePopup);
lastSetFunction = setIt;
};
self.onclick = setIt;
if (config.value.mode == "system") {
self.checked = true;
lastSetFunction = setIt;
}
})(inputs[i]);
else if (inputs[i].value == "direct") (function(self) {
var setIt = function() {
chrome.proxy.settings.set({ value: { mode: "direct" }, scope: "regular" }, closePopup);
lastSetFunction = setIt;
};
self.onclick = setIt;
if (config.value.mode == "direct") {
self.checked = true;
lastSetFunction = setIt;
}
})(inputs[i]);
else if (inputs[i].value == "other") (function(self) {
var other = document.getElementById("other");
var setIt = function() {
chrome.proxy.settings.set({ value: { mode: "fixed_servers", rules:
{ singleProxy: parseUrl(other.value), bypassList: bypassList } },
scope: "regular" }, closePopup);
lastSetFunction = setIt;
};
other.onblur = setIt;
window.onunload = function() {
if (self.checked)
setIt.call(self);
};
other.onkeypress = function() {
self.checked = true;
};
if (!setPreset && config.value.mode == "fixed_servers" && typeof config.value.rules.singleProxy != "undefined") {
other.value = parseObject(config.value.rules.singleProxy);
self.checked = true;
lastSetFunction = setIt;
}
})(inputs[i]);
else (function(self) {
var setIt = function() {
chrome.proxy.settings.set({ value: { mode: "fixed_servers", rules:
{ singleProxy: parseUrl(self.value), bypassList: bypassList } },
scope: "regular" }, closePopup);
lastSetFunction = setIt;
};
self.onclick = setIt;
if (config.value.mode == "fixed_servers" && typeof config.value.rules.singleProxy != "undefined" && self.value == parseObject(config.value.rules.singleProxy)) {
self.checked = true;
setPreset = true;
lastSetFunction = setIt;
}
})(inputs[i]);
}
});
};
|