diff options
Diffstat (limited to 'data/extensions/torproxy@icecat.gnu/settings.js')
-rw-r--r-- | data/extensions/torproxy@icecat.gnu/settings.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/data/extensions/torproxy@icecat.gnu/settings.js b/data/extensions/torproxy@icecat.gnu/settings.js new file mode 100644 index 0000000..d227763 --- /dev/null +++ b/data/extensions/torproxy@icecat.gnu/settings.js @@ -0,0 +1,53 @@ +function saveOptions(e) {
+ e.preventDefault();
+ browser.storage.local.set({
+ proxySettings: {
+ type: document.querySelector("#type").value,
+ host: document.querySelector("#host").value,
+ port: document.querySelector("#port").value,
+ username: document.querySelector("#username").value,
+ password: document.querySelector("#password").value,
+ proxyDNS: document.querySelector("#dns").checked
+ },
+ skipLocal: document.querySelector("#skiplocal").checked
+ });
+}
+
+function restoreOptions(e) {
+ function onGot(item) {
+ document.querySelector("#host").value = item.proxySettings.host;
+ document.querySelector("#port").value = item.proxySettings.port;
+ document.querySelector('#type [value="' + item.proxySettings.type + '"]').selected = true;
+ document.querySelector("#username").value = item.proxySettings.username;
+ document.querySelector("#password").value = item.proxySettings.password;
+ document.querySelector("#dns").checked = item.proxySettings.proxyDNS;
+ document.querySelector("#skiplocal").checked = item.skipLocal;
+ typeChanged(e);
+ }
+ function onError(error) {
+ console.log(`Error: ${error}`);
+ }
+ var gettingItem = browser.storage.local.get({ skipLocal: true, proxySettings: {type: 'socks', host: '127.0.0.1', port: 9050, username: '', password: '', proxyDNS: true}});
+ gettingItem.then(onGot, onError);
+}
+
+function typeChanged(e) {
+ var type = document.querySelector("#type").value;
+ var dnsDisplay = 'none';
+ if(type=="socks"||type=="socks4")
+ dnsDisplay = 'table-row';
+ else
+ document.querySelector("#dns").checked = false;
+ document.querySelector("#dnsrow").style.display = dnsDisplay;
+ saveOptions(e);
+}
+
+document.addEventListener("DOMContentLoaded", restoreOptions);
+document.querySelector("#type").addEventListener("change", typeChanged);
+document.querySelector("#host").addEventListener("blur", saveOptions);
+document.querySelector("#port").addEventListener("blur", saveOptions);
+document.querySelector("#port").addEventListener("change", saveOptions);
+document.querySelector("#username").addEventListener("blur", saveOptions);
+document.querySelector("#password").addEventListener("blur", saveOptions);
+document.querySelector("#dns").addEventListener("change", saveOptions);
+document.querySelector("#skiplocal").addEventListener("change", saveOptions);
|