From 881b5941a98a223ec00dbd291e07e63bba888497 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juhani=20Krekel=C3=A4?= Date: Sun, 14 Jul 2024 22:17:43 +0300 Subject: [PATCH] First commit --- dialog.html | 25 ++++++++++++++++ dialog.js | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++ icon-16.png | Bin 0 -> 409 bytes icon-32.png | Bin 0 -> 758 bytes icon-64.png | Bin 0 -> 1557 bytes manifest.json | 29 ++++++++++++++++++ 6 files changed, 135 insertions(+) create mode 100644 dialog.html create mode 100644 dialog.js create mode 100644 icon-16.png create mode 100644 icon-32.png create mode 100644 icon-64.png create mode 100644 manifest.json diff --git a/dialog.html b/dialog.html new file mode 100644 index 0000000..07ed8e6 --- /dev/null +++ b/dialog.html @@ -0,0 +1,25 @@ + + + + + + +
+
+ Redirect configuration +
+
+ +
+
+ Authentication +
+
+
+
+
+ + + + + diff --git a/dialog.js b/dialog.js new file mode 100644 index 0000000..a5299a3 --- /dev/null +++ b/dialog.js @@ -0,0 +1,81 @@ +'use strict'; +if (window.browser === undefined) { + window.browser = window.chrome; +} + +function createRedirect(id, from, transform) { + return { + id: id, + action: { + type: "redirect", + redirect: { transform: transform }, + }, + condition: { + urlFilter: from, + resourceTypes: ["main_frame", "sub_frame"], + }, + }; +} + +function updateRedirects(settings) { + const transform = { + host: settings.instance, + }; + if (settings.username !== '') { + transform.username = settings.username; + } + if (settings.password !== '') { + transform.password = settings.password; + } + const redirects = []; + if (settings.enabled) { + redirects.push(createRedirect(1, '||twitter.com', transform)); + redirects.push(createRedirect(2, '||x.com', transform)); + } + browser.declarativeNetRequest.updateDynamicRules({ + addRules: redirects, + removeRuleIds: [1, 2], + }); +} + +function setupSettingsForm(settings) { + const enabled = document.getElementById('enabled'); + const instance = document.getElementById('instance'); + const username = document.getElementById('username'); + const password = document.getElementById('password'); + const submit = document.getElementById('submit'); + + enabled.checked = settings.enabled; + instance.value = settings.instance; + username.value = settings.username; + password.value = settings.password; + + document.getElementById('form').addEventListener('submit', (event) => { + event.preventDefault(); + settings.enabled = enabled.checked; + settings.instance = instance.value; + settings.username = username.value; + settings.password = password.value; + submit.disabled = true; + browser.storage.local.set(settings); + updateRedirects(settings); + }); + + for (let element of document.getElementsByClassName('control')) { + element.addEventListener('input', () => { + const different = + enabled.checked !== settings.enabled || + instance.value !== settings.instance || + username.value !== settings.username || + password.value !== settings.password; + submit.disabled = !different; + }); + } +} + +browser.storage.local.get({ + enabled: false, + instance: '', + username: '', + password: '', +}).then(setupSettingsForm); diff --git a/icon-16.png b/icon-16.png new file mode 100644 index 0000000000000000000000000000000000000000..a17113dddc7daa6687287e44c44662634a923d8b GIT binary patch literal 409 zcmV;K0cQS*P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGxhX4Q_hXIe}@nrx20WL{IK~y+Tt&_cq zgFqBUKLsUGiKI4tz)Fxbf?ZMv@{oCgR94ZnHi8N^`T(gE{|GU=>o_5qScKi|X}sSZ zICGt0xUV1Z0X+Twng17fo(I=;X?o8{5JeFj$DxVE_kF~1Ow#}(XqpDI*$k#>l1X04 zvJ9_h&Is~6had>p?RE%)07X&Im4Ujhu~;l<8ejxfRS`jtZQD2;4y5ksr@LOSP*s(7 z1{guVgCt3$HVgxo%LQQ=l6*d&p(qNepJ4=T+hRJM(gbX`TO5x^QkP{3S(Zut%;*;; zlL<}0d_Ko=xg-ZFiXyXihY@sL2cBnISg+Se(-cXPyq}=IqTB68(*VbD*lae~@Ao5l z57Sw#R?u~wrU#m)!LlrzPAA%V@T=GOd`ovee9pi(w%~Fk1K6FM00000NkvXXu0mjf DUCyMZ literal 0 HcmV?d00001 diff --git a/icon-32.png b/icon-32.png new file mode 100644 index 0000000000000000000000000000000000000000..773d41ae7b94f2163338f5f72eecae3553d1d9d0 GIT binary patch literal 758 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGxhX4Q_hXIe}@nrx20*gsRK~z{r?U%i4 zB2g5@uQ66e5|qS{Qo{DC;<%s3q9zI&g_I3Cy|NBF)s4gn4UBn3#NQjka_ zQ0*2;0ZOG36pKYvyG2rf*=z>&dL5N?GMNlit5sCn5e+bzOkh5r!^On~JU>69D~)_U z56xy1)pkS!B$G+Fxw(N@ECzu<09vgUo)Kp}9>ewZH7WtfC}!byySYlGLXWfAEO&c* zOOM6)`1s%)4hJ_HjnLVS=o663<)GDS>9N!4gtN0VNT<_Ovlt8ppin44qtT$V9cF;# za!H;Lz0sO*I1JHfls;Y-wOS1>FE3FE!wfJS4ru_LPKOSF!C(Np-42hBkLYZNbdAYm zLM03{z-qMunM_7sf8z7`;OXfJ+U+(vKk4`TaCLQsN*HE-Byw!0)(RF0fjy5Q#+4*+9Pi@$vCrr4xb~;Pdknj*f&c z@%#NyC=}?R`VRRV>$7W^SG>Kwfl8%9^%F83Z8jSOgF$q@=yW=8a&m%-4Ku*&>np7{ zi%=*8jYb1-+nAczAfAExYze`J^CTBnen77BCu( zGzfvzp0uzOb`pSacXtQ;UIEkTl(w&4ug5cNb{2pvRx%gJd?2OU$r|8yG*~PasKoJj zJhUatcs$Oj)oPBPBj^b8 o-~JntJ%TmF)*Swv?l}O!FWpi%$PDRhBme*a07*qoM6N<$g1jq7u>b%7 literal 0 HcmV?d00001 diff --git a/icon-64.png b/icon-64.png new file mode 100644 index 0000000000000000000000000000000000000000..920fea15a9359cb8e78b4470ae6f6b907b3d775e GIT binary patch literal 1557 zcmV+w2I~2VP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGxhX4Q_hXIe}@nrx21*%CzK~#8N?VDXl zR9h6sms)-lN~uK&DItc?L;7NZ;DbIW3NjDAloUaMmIzw;ftDhOP#|K4fe+$?F)B*Y zTWC?>W90`iCW>Gw+KgH@Flt}By_W0T8|7Tbv-ey^W_~cNng6Kgod4{-*4q1wK|%t4 zOfW~kC13zYza?M*N53Ut07t(iU;szIC13zYzeSq?xTJXW=n?ex_R{mcg0{ubmoH!7 z*s)`?=ux6w8NzJLEtpL}R&=$;w@+6=%8-?wic1O){_aPZzqE!xiX z!-o&>?b|n4Utfp8!9iBN2ad9*PoKi{^fW8x&}P7sCr@bp$Hm3Lg9i`1J`J2sC*ZWom0{al8wg%|@@w%F5__6D-wpkuVRx3gjnWdmg5 z6N!n5A~iLY6(QuX6j!cXp%ZLrX<=0_)z#JX_w9B&E9Ou(z-qP9iF9;yu(Ac3ke{C~ zWLXqrV`Hr9qq4G+j{E7;Csxd%Y=Chh4u^x4e|i7@y@-sA6xrF?tmt85V?!h*C5g1O zG$AVwtL9Kng8TRHr-)6^pPV>x0;;O2;Much@bcwLR@K3Bi}ha`OAVL`$_5zO*j+g) zEiHwkM~}kIn>VRl*1_k`pDC(dJfds>c7NFZ;$u4wA3jVa5qpEXcki;Q#_;ekMH~Uj z@Ki93?8az5e*OBDmF=-uEFvT%M2wD(vSJQQt`{#}q`V_X0;}dxGQj0>iP+d!QB+jK zihJhf=EQ*m2gJE^=U6ev+S;0kh=>pc1qDJjL9CibX$s)NXL)%U5)u+vaZh}FJQNld z!sEw};p4}TtnMD1YIxj~loTziPNlzK%zID!@vB#_(#c~&G|T+_JVjXwDXOAmfSl75 zJvAUbJss-m>Y%5m2kzg$&+6_N7#N@^rvOD&lnhu}TA~;e6GPDx8XFrSGcyxpD+}-5 zy<^pLWU{4r=FAz2swf%o=FJ<5I3GO)M-6`ZVPRpko}ZbS;dgdM<}6xy%I;Em8T=1h zxzHTV&COJf78Vv*@tl#75h1%s%I2Pe6+m{Jw9wLp(g-lJuq;aycSA--1{4<;(@xUt z>@2JQ4R(_FIDY&%E9xj2u-hu|C-Re|*xlVtaVL!9VfU#EB?GW0$2o0OgWZCO4BJ`E z336G>s(Xxum+~&qZzvhCxVQ+i6QqP@miqd7y7;E1CRW^Iv)L$Wz3IZaz!W(-IYL$d z>d#d$c8~h{`dHZ>++xF@o0^(pMIF;4K>jY+?RGeFLz