From 99e2e923d0c77b02f3fb4ff648ea916954868606 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Fri, 28 Feb 2025 23:13:39 +0800 Subject: chore(store): move everything to store. --- store/works/ProxyChanger/popup/popup.css | 28 +++++++++++++++ store/works/ProxyChanger/popup/popup.html | 17 +++++++++ store/works/ProxyChanger/popup/popup.js | 58 +++++++++++++++++++++++++++++++ 3 files changed, 103 insertions(+) create mode 100644 store/works/ProxyChanger/popup/popup.css create mode 100644 store/works/ProxyChanger/popup/popup.html create mode 100644 store/works/ProxyChanger/popup/popup.js (limited to 'store/works/ProxyChanger/popup') diff --git a/store/works/ProxyChanger/popup/popup.css b/store/works/ProxyChanger/popup/popup.css new file mode 100644 index 0000000..97601c2 --- /dev/null +++ b/store/works/ProxyChanger/popup/popup.css @@ -0,0 +1,28 @@ +html, +body { + width: 200px; +} + +body { + margin: 0; +} + +.button { + margin: 0; + padding: 4px 20px; + text-align: center; + font-size: 1.5em; + cursor: pointer; +} + +.button:hover { + background: #97c4ff; +} + +.selected { + background: #4294ff; +} + +.selected:hover { + background: #4294ff; +} diff --git a/store/works/ProxyChanger/popup/popup.html b/store/works/ProxyChanger/popup/popup.html new file mode 100644 index 0000000..16e4bd0 --- /dev/null +++ b/store/works/ProxyChanger/popup/popup.html @@ -0,0 +1,17 @@ + + + + + + + + + +
Direct
+
System
+
Proxy
+
+
Settings
+ + + diff --git a/store/works/ProxyChanger/popup/popup.js b/store/works/ProxyChanger/popup/popup.js new file mode 100644 index 0000000..0615035 --- /dev/null +++ b/store/works/ProxyChanger/popup/popup.js @@ -0,0 +1,58 @@ +const buttons = { + direct: document.getElementById("direct_button"), + system: document.getElementById("system_button"), + proxy: document.getElementById("proxy_button"), +}; + +function setSelectedButton(button) { + for (const key in buttons) { + buttons[key].classList.remove("selected"); + } + buttons[button].classList.add("selected"); +} + +browser.proxy.settings.get({}).then(({ value }) => { + console.log("current proxy settings: ", value); + if (value.proxyType === "none") { + setSelectedButton("direct"); + } else if (value.proxyType === "system") { + setSelectedButton("system"); + } else if (value.proxyType === "manual") { + setSelectedButton("proxy"); + } +}); + +browser.storage.local.get("proxyUrl").then(({ proxyUrl }) => { + console.log("Saved proxy url is ", proxyUrl); + + const proxyConfigs = { + direct: { + proxyType: "none", + }, + system: { + proxyType: "system", + }, + proxy: { + proxyType: "manual", + http: proxyUrl, + httpProxyAll: true, + }, + }; + + for (const key in buttons) { + buttons[key].addEventListener("click", () => { + console.log("Try to set proxy to ", proxyConfigs[key]); + browser.proxy.settings + .set({ value: proxyConfigs[key] }) + .then((success) => { + if (success) { + setSelectedButton(key); + } + }); + }); + } +}); + +document.getElementById("settings_button").addEventListener("click", () => { + browser.runtime.openOptionsPage(); +}); -- cgit v1.2.3