From e90ff542b08979968a04a61c1650bf72598a084c Mon Sep 17 00:00:00 2001
From: libroot
+ Blocked Header:
+ This page has been blocked by the Cloudflare Blocker extension due to a Cloudflare header.
+
+ Loading...
+
+ Blocked response URL: +
Loading...+ + +
You can probably view the page on the Wayback Machine.
+ + + + diff --git a/blocked.js b/blocked.js new file mode 100644 index 0000000..b31eead --- /dev/null +++ b/blocked.js @@ -0,0 +1,21 @@ +function getUrlParams() { + const urlParams = new URLSearchParams(window.location.search); + return { + name: urlParams.get('name'), + value: urlParams.get('value'), + url: urlParams.get('url') + }; +} + +document.addEventListener('DOMContentLoaded', function() { + const params = getUrlParams(); + + if (params.name && params.value) { + const header_info = `Name: ${params.name}\nValue: ${params.value}`; + document.getElementById('header_info').textContent = header_info; + } + + if (params.url) { + document.getElementById('url').textContent = params.url; + } +}); diff --git a/icons/icon.png b/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..59b79277094339cf1c6ae4fb03ec22f4642599f1 GIT binary patch literal 24305 zcmd>GW0NI3w>@p!wr!i!*0ee8Y1_7KPWQBJp0;hdBSu$q!rB%CjY7s$ej9S}N>)uQZS30vuB6!FN?CXZ`t3uGq{J)EN
z|AK(rcYjvE(f0Q;EJXK8RTODG3$Af(dfT%-Ld`yE$Jv{sL0meP!fY4l5kdqiywqr<
zxD&dxEd)}a<$Ra?Zq&AZ8a4NG*pQwBNBU5KC)Iy1@mt5`N?yXA2-zh!;? S#4tMO2t
||1{A)D3t0So|@5bE!--MYtS@w|E^zY%83H~6x1?N&l%jC)Q9 zL?vAHbbO<YQU7of<@fxROuLcc%#PBj_g=y8Wi zD1LnZ3+IAbhe(m0d>#kl2{l|p>kp@GoYFO>HTWYX_-2im3=3HnS+2w`uPY4FPIpAu zUJ3=L753mp^2Ow^x~kBU|Cm{!NX&jlattckB2Mc#W8>Kq<{Pgp6>SLCo^+OkHA(Pq zNfs9;msoTxddhJz4bEFucM=!v^XV-08JB&!IRHv0z46cS!`=RK-@zkk=F~ZuN{3nQ zo=ROB&6KtY_=LkjhqXCEX~%xtVJJLoQ=KnT#F^M>vFrv1C4@gqJe#E4)^WBFhD1nK z>G#F6qg)=6eR|G{Ecs3G(v<`~Do8~k2*#Gr {h|Z4UB!JfSY}=VRTMM*F6KW>atB+YHp^fMOe_gR#g2RO5f5DB}zd!@+oe4BR<~ z%=Q0}8F)}ANV1Dx5!A}K4a~gGDi`638Z9eF%XSuv$kX(1vGu6p%a7Fm*ma+z#SO2| zm=kMuoP-x1^>4k~c|HEgG**9$Ru#k=TrG{)8K5xQNG|d~e^ki^n*)DSh2atjU*b0S zL x;l8;k48Z%fw?JXcwS43)1-j9+ zcn9S>PPcKN^XN-_rwu{CPtF`9pHNViPLZKr`hLK#L@5#(j$o#Xu2Hbfx5gbXsO)pt zlPEJ6vIt}DJwVxxjmd<;=98$+eEK3Y+wm_C*IHeAVxB~?f;nE>mzGvSJmd$Pep34J zj(z5S$BgTt5oS(B^jYpspAvs8|1LOlwg&E<&+oj!9Yzx_?>nP+7~C|QJ3w@$T~d1EMo zpTe1Qo6#C%X@JS|xm;KAi%tG*nP4COQ|rK07G_fohmh1zHnsg}jRrFY 8?Y{_|k(V|_vf^(L=er2EIUJDqeH}+OHV<_*s9bcF zoVD5IYzz^1N&@mH0wj{(Fd@P1sv#OQ4A!lGi=}wpVcikA;~msJeWGCAetEva|914s zB_L1Q2~@Q%iJRLvx~ZRebPgxmmEoLZZ9E@?3=(a{dvyRul7qzuAzs1W48G@^)X5Mi zGD8P6d4{~=!n=O|GB78kh|<$n$*?jKa~7`LYV_FJTX27ajr@5 fit?x3zTAo wE)$CNHVai^%o zHjz!b_NpiIgo;juF(iY(b(H@5&VPXL*4a)-OIZDz2Wp!$od50sAsL&WRC}mUa_tVD zd1BR(`9lY#wk|eSvF4N41kEUwlg4`fqyxocBJl3H1OVDehZioyd{*4jXOp}ACsbOv z{8W`#3cwnL7_FYfhR{vIt&);$<1B6eKT`K`d0a=jx>` R3 zSXszxY(&5~WmIwG9kL!JW8LmLE8p4G5(`mw)-o{s1Wc9>FQcz4#d$Jtw8yyqP&+B_ z^Ydb3++OVo2mac5>S_uay?L0$(sr}pv>Fp5%yeE-M?32SI;FmXLDVtxvi_v-Q{)No z7p #wd1VY^3bSk(te3RN?XMb>%_mSh(`vw8l>_F~|9|bmF zGv)c#KUYPw9r0!_X8mq?Wu2FfrAh04Rwtm^SzFHLwnt~`_t5vTO313;@Qjs2c`_xy z>}uxG3I@ce_(YsJm9P)jkDs?Ki{xYB-tQ+sLtUdO&Ss6J5xd9%!>mLk#u4t?VE-E0 zrw`HGR8%WXBzX!^9W#x^?IW`9W0+JElxC_IAg$m9i >ETDXLRI_q{HfVSKs0#iC_h90@Sp{kxEgHna!+YksEvl|w2Nx~ ztsM+o9traQEqA~mvk}eu7H(ICUKvvVqvZ5j5tFI{&6sgXI@Ao+c{O6eP2Cn_i6I+1 z)LW~GrUJ;vibZ`JaYFyXFV4V&`qJ_o*3HPpXKy9+c#zAiPyZRA)}^Bmo!~(;K5A9- zuXtGqsnkqNuBce jDe#CC?RC$@6xXl?7wkx_e#1`(27T*5r(~nNO z*!2K*F&r+Rh#72__t3gI*Aaiu7%cfdlwQQ?$&?`|9|Xbcvi~L;)z+TAf-~ znixj5+jwT=Mtej}x3HO?a2g lk*bi>CH-2Ss^0zjW`Mn4k`!Nw{
sYc zrSxU8yZ5ZLvwf|tKy4+@-T7!^_>)}21yI@{x~)FyeXS{Dyqf5MzV2-Nqr=O5VBLQ~ zg(EOE3vy(2wMOeiy+WU$VspVonm@9uP3{U0i+pNVIY1Ruz?J~aEEIzWe$wn;O|iV@ zMwc}$XYD)5r=o-RIUK_H_U~_FFVI;5geMk{{?XJu8hIbyZ_U)7PL0L`S6j}vN(UN1 zo^;%$4})1e@f#i(d5J=~LhD~s^RdL>4keQO8+#SE%h5jVP{rqc17!d1% F^6QJ zA@xBoInSSGW#8)l3N6p&$3wpeG{f;YvhgS?r$n_HZv8hkl7`};EPJ 9= zk~S;&U`Y`8>3rJyWZHXZ8nU2Yvq7d1p;cH1*t#)`$#WPq$&w8ESq{vc$z3P7+Cukr zfmjR3@a@<>@{kzSr-`H{q#ZU_e)t0_!uW#lEOxc6c+t&NwvIzS=K}LQdD3Q|yU*pf z=TqQIen0tse~ff?(_k7-juAVm?@eLj`k*Cx`LzJdZOqMOBlX)%Jor2J1o7tk>%YeX zUk$!YqGi?C3{FgdIfo;l5E`kH;lxvCB>NG>RB+P`ap0TtURr#GH4boZQh-Y-gae0P z>Qg+%h*gLsxmgSoTn)XaGD%w X#po**K`qJd{;l&MG%`P>17{k|_NU9oiSZn2q?}u9kfc{vNe- zTvqXJVf-~rO&x`fORLWzwtEW$KYuF6K55`G&6a6@ez`GofMTjH^mq>pY~)~ExCsO$ zyVcU0mPM3& I(fmiv%zVM+=I;j< z0`C4r!t80)BF3B`m|@ YN`{ zjV&CS$2T&is2Mw~_qpw$EV9Ug$r&oMJCnn`NBu6@_Mh1k7c96;H)R$2v5GiJSJF&( zt&`Y(fkWL7`&Tv02{UDhoxAcHss_o0M+@W4zI($cWb9b@bYrituyt=>^m$#RFb0 zOBQ!`=M$K~Pu%9NmiA%QPP){%WwSgqw|^-kUV_zPCYw3ZbkY+LrxsA?Brl7PJhL zZcM{Mdhc#!XBFKoXSyfXJScvYwN~R{QNL1zU^zeRKnGcayYqYLz5h#?|9?NWs-Muw W-n%U^Jo`TXD<&(cC{ZnD81#RZ%~i_) literal 0 HcmV?d00001 diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..35ee1c9 --- /dev/null +++ b/manifest.json @@ -0,0 +1,28 @@ +{ + "name": "Cloudflare Blocker", + "version": "1.0.0", + "author": "libroot.org", + "developer": { + "name": "libroot", + "url": "https://libroot.org/posts/Cloudflare-Blocker-Firefox-extension" + }, + "description": "Blocks requests if they have Cloudflare's headers, and shows a blocked page.", + "manifest_version": 2, + "permissions": [ + "webRequest", + "webRequestBlocking", + "tabs", + " " + ], + "background": { + "scripts": ["background.js"], + "persistent": false + }, + "browser_action": { + "default_popup": "popup.html", + "default_icon": "icons/icon.png" + }, + "web_accessible_resources": [ + "blocked.html" + ] +} diff --git a/popup.html b/popup.html new file mode 100644 index 0000000..5b31137 --- /dev/null +++ b/popup.html @@ -0,0 +1,53 @@ + + + + + + Cloudflare Blocker + + + + +Cloudflare Blocker
++ ++Blocking is ON
+ + + + diff --git a/popup.js b/popup.js new file mode 100644 index 0000000..0bf0c0c --- /dev/null +++ b/popup.js @@ -0,0 +1,32 @@ +const toggle = document.getElementById('toggle'); +const status = document.getElementById('status'); + +chrome.runtime.sendMessage({ action: 'getBlockingState' }, (response) => { + if (response && response.enabled !== undefined) { + const blockingEnabled = response.enabled; + + if (blockingEnabled) { + toggle.classList.add('active'); + status.textContent = 'Blocking is ON'; + } else { + toggle.classList.remove('active'); + status.textContent = 'Blocking is OFF'; + } + } +}); + +toggle.addEventListener('click', function () { + const isActive = toggle.classList.toggle('active'); + + if (isActive) { + status.textContent = 'Blocking is ON'; + } else { + status.textContent = 'Blocking is OFF'; + } + + chrome.runtime.sendMessage({ + action: 'toggleBlocking', + enabled: isActive + }); +}); +