From f16c2ceeda27989f40379f2993fa8eac896637d1 Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 21 Oct 2020 16:28:59 +0800 Subject: import(ProxyChanger): Init. --- works/ProxyChanger/icons/black_circle.png | Bin 0 -> 16533 bytes works/ProxyChanger/manifest.json | 12 ++++++++ works/ProxyChanger/popup/popup.css | 28 ++++++++++++++++++ works/ProxyChanger/popup/popup.html | 15 ++++++++++ works/ProxyChanger/popup/popup.js | 47 ++++++++++++++++++++++++++++++ 5 files changed, 102 insertions(+) create mode 100644 works/ProxyChanger/icons/black_circle.png create mode 100644 works/ProxyChanger/manifest.json create mode 100644 works/ProxyChanger/popup/popup.css create mode 100644 works/ProxyChanger/popup/popup.html create mode 100644 works/ProxyChanger/popup/popup.js (limited to 'works') diff --git a/works/ProxyChanger/icons/black_circle.png b/works/ProxyChanger/icons/black_circle.png new file mode 100644 index 0000000..311762a Binary files /dev/null and b/works/ProxyChanger/icons/black_circle.png differ diff --git a/works/ProxyChanger/manifest.json b/works/ProxyChanger/manifest.json new file mode 100644 index 0000000..b2f1be5 --- /dev/null +++ b/works/ProxyChanger/manifest.json @@ -0,0 +1,12 @@ +{ + "manifest_version": 2, + "name": "Proxy Changer", + "version": "1.0", + "description": "A proxy changer.", + "permissions": ["proxy"], + "browser_action": { + "default_icon": "icons/black_circle.png", + "default_title": "Change proxy.", + "default_popup": "popup/popup.html" + } +} diff --git a/works/ProxyChanger/popup/popup.css b/works/ProxyChanger/popup/popup.css new file mode 100644 index 0000000..97601c2 --- /dev/null +++ b/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/works/ProxyChanger/popup/popup.html b/works/ProxyChanger/popup/popup.html new file mode 100644 index 0000000..8f082df --- /dev/null +++ b/works/ProxyChanger/popup/popup.html @@ -0,0 +1,15 @@ + + + + + + + + + +
Direct
+
System
+
Proxy
+ + + diff --git a/works/ProxyChanger/popup/popup.js b/works/ProxyChanger/popup/popup.js new file mode 100644 index 0000000..31c1384 --- /dev/null +++ b/works/ProxyChanger/popup/popup.js @@ -0,0 +1,47 @@ +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"); + } +}); + +const proxyConfigs = { + direct: { + proxyType: "none", + }, + system: { + proxyType: "system", + }, + proxy: { + proxyType: "manual", + http: "http://localhost:8888", + httpProxyAll: true, + }, +}; + +for (const key in buttons) { + buttons[key].addEventListener("click", () => { + browser.proxy.settings.set({ value: proxyConfigs[key] }).then((success) => { + if (success) { + setSelectedButton(key); + } + }); + }); +} -- cgit v1.2.3 From 4e24defd1b658dbfb85320e23b09dc1c0b6ad87b Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 21 Oct 2020 17:14:56 +0800 Subject: import(ProxyChanger): Allow to set proxy url. --- works/ProxyChanger/manifest.json | 6 +++- works/ProxyChanger/popup/popup.html | 2 ++ works/ProxyChanger/popup/popup.js | 53 +++++++++++++++++++------------ works/ProxyChanger/settings/settings.css | 9 ++++++ works/ProxyChanger/settings/settings.html | 30 +++++++++++++++++ works/ProxyChanger/settings/settings.js | 14 ++++++++ 6 files changed, 92 insertions(+), 22 deletions(-) create mode 100644 works/ProxyChanger/settings/settings.css create mode 100644 works/ProxyChanger/settings/settings.html create mode 100644 works/ProxyChanger/settings/settings.js (limited to 'works') diff --git a/works/ProxyChanger/manifest.json b/works/ProxyChanger/manifest.json index b2f1be5..d37af97 100644 --- a/works/ProxyChanger/manifest.json +++ b/works/ProxyChanger/manifest.json @@ -3,10 +3,14 @@ "name": "Proxy Changer", "version": "1.0", "description": "A proxy changer.", - "permissions": ["proxy"], + "permissions": ["proxy", "storage"], "browser_action": { "default_icon": "icons/black_circle.png", "default_title": "Change proxy.", "default_popup": "popup/popup.html" + }, + "options_ui": { + "page": "settings/settings.html", + "browser_style": true } } diff --git a/works/ProxyChanger/popup/popup.html b/works/ProxyChanger/popup/popup.html index 8f082df..16e4bd0 100644 --- a/works/ProxyChanger/popup/popup.html +++ b/works/ProxyChanger/popup/popup.html @@ -10,6 +10,8 @@
Direct
System
Proxy
+
+
Settings
diff --git a/works/ProxyChanger/popup/popup.js b/works/ProxyChanger/popup/popup.js index 31c1384..0615035 100644 --- a/works/ProxyChanger/popup/popup.js +++ b/works/ProxyChanger/popup/popup.js @@ -22,26 +22,37 @@ browser.proxy.settings.get({}).then(({ value }) => { } }); -const proxyConfigs = { - direct: { - proxyType: "none", - }, - system: { - proxyType: "system", - }, - proxy: { - proxyType: "manual", - http: "http://localhost:8888", - httpProxyAll: true, - }, -}; +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", () => { - browser.proxy.settings.set({ value: proxyConfigs[key] }).then((success) => { - if (success) { - setSelectedButton(key); - } + 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(); +}); diff --git a/works/ProxyChanger/settings/settings.css b/works/ProxyChanger/settings/settings.css new file mode 100644 index 0000000..50ee923 --- /dev/null +++ b/works/ProxyChanger/settings/settings.css @@ -0,0 +1,9 @@ +.proxy-url-div { + display: flex; + align-items: center; +} + +.proxy-url-div input { + margin-left: 1em; + flex: 1 1 auto; +} diff --git a/works/ProxyChanger/settings/settings.html b/works/ProxyChanger/settings/settings.html new file mode 100644 index 0000000..1883a2a --- /dev/null +++ b/works/ProxyChanger/settings/settings.html @@ -0,0 +1,30 @@ + + + + + + + + + + +

+ If this proxy does not work, go to settings page and allow it to access + private windows. That is a must for setting proxy for extensions. +

+

+ Input your custom manual proxy server. Feel free to make a XSS attack. If + you succeed to do that, report a bug to me, or maybe mozilla! +

+

+ After input, re-click the button in popup in toolbar to activate it! I bet + you don't change this frequently so it's not a pain. +

+

Do at your own risk if you input an invalid url!

+
+ + +
+ + + diff --git a/works/ProxyChanger/settings/settings.js b/works/ProxyChanger/settings/settings.js new file mode 100644 index 0000000..ec10c0c --- /dev/null +++ b/works/ProxyChanger/settings/settings.js @@ -0,0 +1,14 @@ +browser.storage.local.get("proxyUrl").then(({ proxyUrl }) => { + console.log("Saved proxy url is", proxyUrl); + document.getElementById("proxy_url").value = proxyUrl; + document.getElementById("proxy_url").addEventListener("input", (e) => { + const { value } = e.currentTarget; + browser.storage.local + .set({ + proxyUrl: value, + }) + .then(() => { + console.log("New proxy url saved!", value); + }); + }); +}); -- cgit v1.2.3 From 4457a639386ea9b9c6b5b880e6daa5f22057079b Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 21 Oct 2020 17:20:22 +0800 Subject: import(ProxyChanger): Add readme. --- works/ProxyChanger/README.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 works/ProxyChanger/README.md (limited to 'works') diff --git a/works/ProxyChanger/README.md b/works/ProxyChanger/README.md new file mode 100644 index 0000000..2177289 --- /dev/null +++ b/works/ProxyChanger/README.md @@ -0,0 +1,5 @@ +Finally I create an extension of Firefox to change proxy. + +It is **extremely dumn and stupid**! + +No webpack, no node, no npm. What you write is what you finally use! -- cgit v1.2.3 From 5277f9e601227415ac8956c9bfbb97c01a9e3905 Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 21 Oct 2020 17:28:06 +0800 Subject: import(ProxyChanger): Add krita file for create circle icon. --- works/ProxyChanger/art/circle.kra | Bin 0 -> 456167 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 works/ProxyChanger/art/circle.kra (limited to 'works') diff --git a/works/ProxyChanger/art/circle.kra b/works/ProxyChanger/art/circle.kra new file mode 100644 index 0000000..d7632a8 Binary files /dev/null and b/works/ProxyChanger/art/circle.kra differ -- cgit v1.2.3 From d51761e9658ea16529b2cc08d733102973fba1e3 Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 21 Oct 2020 17:38:45 +0800 Subject: import(ProxyChanger): Add id and gitignore. --- works/ProxyChanger/.gitignore | 1 + works/ProxyChanger/manifest.json | 5 +++++ 2 files changed, 6 insertions(+) create mode 100644 works/ProxyChanger/.gitignore (limited to 'works') diff --git a/works/ProxyChanger/.gitignore b/works/ProxyChanger/.gitignore new file mode 100644 index 0000000..db63815 --- /dev/null +++ b/works/ProxyChanger/.gitignore @@ -0,0 +1 @@ +web-ext-artifacts diff --git a/works/ProxyChanger/manifest.json b/works/ProxyChanger/manifest.json index d37af97..878cf8e 100644 --- a/works/ProxyChanger/manifest.json +++ b/works/ProxyChanger/manifest.json @@ -12,5 +12,10 @@ "options_ui": { "page": "settings/settings.html", "browser_style": true + }, + "browser_specific_settings": { + "gecko": { + "id": "proxy-changer@crupest.life" + } } } -- cgit v1.2.3 From d3fb8fae17f451c2c018c6c97eccc17c844c9f46 Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 22 Oct 2020 20:11:34 +0800 Subject: import(ProxyChanger): Fix a typo in README.md. --- works/ProxyChanger/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'works') diff --git a/works/ProxyChanger/README.md b/works/ProxyChanger/README.md index 2177289..939f079 100644 --- a/works/ProxyChanger/README.md +++ b/works/ProxyChanger/README.md @@ -1,5 +1,5 @@ Finally I create an extension of Firefox to change proxy. -It is **extremely dumn and stupid**! +It is **extremely dumb and stupid**! No webpack, no node, no npm. What you write is what you finally use! -- cgit v1.2.3