Open TheFinalCut83 opened 7 years ago
Remove AAK and GreaseMonkey
And reinstall OS. Thanks for the "great" advice. Any constructive?
AAK hasn't been updated in months and is no longer actively maintained, so basically a dead weight. You can carry on the dead weight if you like but my advice is the constructive
advice. Your sarcasm is unwarranted. You won't get help from the man who wrote this script, so keep waiting for constructive
advice which will never come.
If you don't want to remove GreaseMonkey, then don't, but remove AAK script though. You don't need it because all anti adblock scripts can be patched via uBO filters, so why bother running a java-script which is no longer maintained ? Think about it.
You already forked the repo. Why not fix the javascript yourself ? Otherwise, remove AAK. I ran AAK since mid 2015 and removed it in mid 2016 when reek ceased maintainence and releases and I found all anti adblock scripts can be patched via filters so I don't need it. Try and see for yourself. If you're still hell bent on keeping it, then you're in a for a long haul.
Why are you so strongly dislike GreaseMonkey? AAK - not the only userscript in the universe. GM is very helpful addon.
Looks like the website's "main script" will try to assign FuckAdBlock
and fails because it is set to read-only by AAK. So it didn't properly load other scripts. all.js
has over 3000 lines after that, and it crashed when assigning FuckAdBlock
because it is in strict mode. Maybe load all.js
, remove strict mode, then eval
it?
I put it in my script, have a try: https://x01x012013.github.io/AdBlockProtector/ It may not work perfectly since the script is loaded in the wrong order. If this fix isn't acceptable, let me know, I have a way that will make it work properly, but will freeze the page when loading.
Update: I did fix support for Greasemonkey, but now the Greasemonkey version exposes privileged functions. If you care about security, please switch to Tampermonkey if you haven't already.
This is the code that I added:
onEvent("load", function () {
const source = $("script[src*='/static/app/build/all.js']").attr("src");
GM_xmlhttpRequest({
method: "GET",
url: source,
onload: function (response) {
unsafeWindow.eval(response.responseText.replace(/\"use strict\";/g, ""));
}
});
});
@X01X012013 Thanks, your fix works! And thanks for mentioning Tampermonkey. I forgot that it has Firefox version.
I have to say Greasemonkey makes developer's life a lot harder, it hides all errors and have weird security policies where you can't just write into unsafeWindow
, you need to eval
it. Their excuse is FireFox update bla bla bla, but why Tampermonkey works just fine?
FireFox's decision is also weird, I don't see how is that safer, in fact, that is much more dangerous since if you didn't sanitize stuff properly, eval
can execute things that is meant to be string literal.
I know you can use cloneInto
, exportFunction
, and createObjectIn
, but these break cross-browser compatibility, and I'm not sure if they will work for defining read-only variables.
If you are a normal user who uses Greasemoneky, please try out Tampermonkey. It's not much different and it helps us to develop Userscripts faster.
https://tvrain.ru/ With AAK script and without. Notes in the right frame are without pictures. Firefox 51.0.1 / Chrome 56, uBO 1.10.7rc4/1.10.4
uBO filters Adblock Warning Removal List Anti-Adblock Killer | Reek EasyList EasyPrivacy Malvertising filter list by Disconnect RUS: Adguard Russian Filter RUS: BitBlock List RUS: RU AdList