Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Anti-Adblock Killer Continued #2685

Closed
comfyneet opened this issue Jun 6, 2017 · 57 comments
Closed

Add Anti-Adblock Killer Continued #2685

comfyneet opened this issue Jun 6, 2017 · 57 comments

Comments

@comfyneet
Copy link

comfyneet commented Jun 6, 2017

It seems that reek's AAK repo has been discontinued/abandoned for over 7 months (reek/anti-adblock-killer#3272), some features don't work any longer. Fortunately, someone else forks and maintains this repo at GitLab.

I think you should consider to add this new filter to the "3rd-party filters" tab.

@gorhill
Copy link
Owner

gorhill commented Jun 6, 2017

It's in there, it's called uBlock Protector.

@gorhill gorhill closed this as completed Jun 6, 2017
@gorhill gorhill added the invalid label Jun 6, 2017
@comfyneet
Copy link
Author

uBlock Protector only works with Chrome, its owner also recommends to use AAK-Cont:

You must be using Chrome, uBlock Origin, and Violentmonkey to use this project.
Do not want to switch your setup? Check out AAK-Cont!

I think you should add AAK-Coont to the filter list if the browser is not Chromium-based.

@gorhill gorhill reopened this Jun 7, 2017
@Atavic
Copy link

Atavic commented Jun 7, 2017

AAK has an old list that's bigger than the one on AAK-Continued.

@Giwayume
Copy link

Giwayume commented Jun 7, 2017

@Atavic We're working on converting all that over.

@BilBg
Copy link

BilBg commented Jun 8, 2017

I think you should add AAK-Coont to the filter list if the browser is not Chromium-based.

I use Chromium, uBlock Origin, but Tampermonkey (not Violentmonkey) so uBlock Protector is not compatible.
AAK-Cont Filter For uBlock Origin
https://gitlab.com/xuhaiyang1234/AAK-Cont/raw/master/dist/aak-cont-list-ubo.txt

@lewisje
Copy link

lewisje commented Jun 8, 2017

Wait, what happened to jspenguin2017 and the AdBlock Protector List?

@BilBg
Copy link

BilBg commented Jun 8, 2017

Wait, what happened to jspenguin2017 and the AdBlock Protector List?

I think AdBlockProtector was renamed to uBlockProtector
https://github.com/jspenguin2017/uBlockProtector
jspenguin2017/uBlockProtector@2e63db9

@BilBg
Copy link

BilBg commented Jun 16, 2017

AAK-Cont Filter For uBlock Origin has new URL:
https://xuhaiyang1234.gitlab.io/AAK-Cont/dist/aak-cont-list-ubo.txt

@gorhill gorhill removed the invalid label Jun 16, 2017
@lewisje
Copy link

lewisje commented Jun 16, 2017

I hope they have the decency to add in the redirection line in the filter-list (I forget exactly what the syntax is now).

@TonyTough
Copy link

TonyTough commented Jun 18, 2017

ublock Protector List in combination with ublock Protector Script is only for users of
Chrome + uBlock Origin + Violentmonkey

I guess the amount of users that use exactly that combination is very small.

For all other combinations with ublock Origin
AAK-Cont Filter For ublock Origin + AAK-Cont Userscript For uBlock Origin
has to be installed.

@Hrxn
Copy link

Hrxn commented Jun 18, 2017

Violentmonkey

Not Tampermonkey? Why is that?

@BilBg
Copy link

BilBg commented Jun 18, 2017

Not Tampermonkey? Why is that?

Ask the author of uBlockProtector:
https://jspenguin2017.github.io/uBlockProtector/

"Anti-Adblock Killer Continued" claims to work with Tampermonkey:
https://xuhaiyang1234.gitlab.io/AAK-Cont/
https://gitlab.com/xuhaiyang1234/AAK-Cont#installation-instruction

@hawkeye116477
Copy link

hawkeye116477 commented Jun 19, 2017

Author of uBlock Protector told that this script works also with Tampermonkey, but „Violentmonkey is open source and is significantly lighter than Tampermonkey", so he recommends Violentmonkey.
jspenguin2017/uBlockProtector#249 (comment)

@Hrxn
Copy link

Hrxn commented Jun 19, 2017

Thanks, I wasn't aware that Tampermonkey is not completely open source.
And whatever "significantly lighter" means, for normal usage. I doubt that you can really notice a difference, except some extreme cases maybe.

I always thought UI/UX was especially nice in Tampermonkey, but Violentmonkey doesn't look too bad either. Well, then there is the icon. The Violentmonkey extension icon looks rather, well, ugly. And you can't even hide it. I'd really prefer a much more minimalist icon.

@kageimposter
Copy link

Hey guys, couldn't find a spot for this so I'll just leave this here.
This site http://prompt-sys60.info/chrm/ is a new phishing site posing as microsoft support preying on google's site ad service, found it while going to lowes.com. So far non of the filters have blocked it after updating and adding all 3rd party UbO filters. Its really really convincing, so just thought this might help if one of the admins see it.
capture

@bershan2
Copy link
Contributor

bershan2 commented Jun 27, 2017

@kageimposter This is not a place for this, please report it to list maintainers. Or better yet, to Google SafeBrowsing, which is built into every major browser except for IE/Edge, and to PhishTank. I already reported this to PhishTank, and Google Safe Browsing. Please do not remove your comment since I linked to it.

To followup: Google Safe Browsing had blacklisted the entire domain prompt-sys60.info. (PhishTank, however, did not).

@RoxKilly
Copy link

Can anyone please shed some light on why Greasemonkey is not supported? I've seen this same limitation on another userscript recently. Tampermonkey in FF seems to be compatible with more userscripts.

@Hrxn
Copy link

Hrxn commented Jun 28, 2017

In case of uBlock Protector, Chrome(ium) only, hence no Greasemonkey.

No longer relevant in that case, because the uBlock Protector userscript is already (or is about to be) dropped, in favor of a real browser extension on the Chrome Web Store.

The problem with Greasemonkey in general is its incompatibility with WebExt, so unless Greasemonkey gets updated it won't work anymore starting with Firefox 57.
Tampermonkey and Violentmonkey for Firefox will continue to work.

@Giwayume
Copy link

@Hrxn
The problem is, Greasemonkey is the only extension that runs reliably at document start, and most anti-adblock killer scripts rely on running absolutely first. Tampermonkey and Violentmonkey have race conditions in this case, which is why uBlock Protector was converted to an extension.

@Atavic
Copy link

Atavic commented Jun 28, 2017

@RoxKilly Are you asking if Greasemonkey is supported by uBlock Protector? Not officially.

For a Greasemonkey related project: https://xuhaiyang1234.gitlab.io/AAK-Cont/

@jspenguin2017
Copy link
Contributor

The Userscript is now replaced by an extension, there are a lot of things that cannot be done with just a filter list, so an additional script based system is required. Please note that I overrode some whitelists with the filter and I'm not sure what will happen if you don't install the extension.

AAK-Cont will try to support Greasemonkey, but for technical reasons, that turns out to be a real pain, so the Userscript there is left in a half-working state, and is no longer in sync with uBlock Protector. That project may not go very far without additional help from the community.

@Atavic
Copy link

Atavic commented Jun 28, 2017

@jspenguin2017 I'd like to help, but I have not so much time. Definitely hope your project gets more support!

@jspenguin2017
Copy link
Contributor

jspenguin2017 commented Jun 28, 2017

@Atavic Don't thank me, @Giwayume is the main developer downstream.

@TonyTough I knew not many people have Violentmonkey installed, but I think they can just go install it, you can have both Violentmonkey and Tampermonkey installed at the same time. Anyway, that doesn't matter anymore, since the Userscript is changed to an extension, now the supported setup covers over half of total users as Chrome and Chromium have about 54% of market share.

@TonyTough
Copy link

@jspenguin2017
Thanks for the info.
Would it be possible to also use a webextension for Firefox, so that ublock Protector List + webextension can be used with Firefox?

@jspenguin2017
Copy link
Contributor

jspenguin2017 commented Jun 28, 2017

@TonyTough I can make the extension run on Firefox, but I don't have time to maintain that version. So no.

@lain566
Copy link

lain566 commented Jun 29, 2017

@jspenguin2017 uBlock Protector Extension works a treat on Firefox, better than AAK Cont Script

administrador_de_complementos_-_mozilla_firefox_2017-06-29_12-57-12

@jspenguin2017
Copy link
Contributor

@lewisje The link is about the chrome: scheme, I'm talking about the namespace, like chrome in chrome.runtime.onMessage.addListener().

@lewisje
Copy link

lewisje commented Jun 29, 2017

It does that too, but as a nod to compatibility.

@lain566
Copy link

lain566 commented Jun 29, 2017

@jspenguin2017 I use Chrome as first priority browser, and Firefox to test
I would like to help you develop extension for firefox, but I'm not a developer.

To be able to install uBlock Protector extension on firefox, I have used this addon

https://addons.mozilla.org/firefox/addon/chrome-store-foxified/

https://github.com/Noitidart/Chrome-Store-Foxified/

@jspenguin2017
Copy link
Contributor

@lain566 I think you can register a developer account pretty easily. Although I'm not sure if CI can push to Firefox store, that can add a lot of extra work, maybe Autohotkey can help...

Also, I'm not offering Firefox support not because it's hard to port the extension over, it's because I don't want to maintain the Firefox version. If you want to forcefully install the extension in a sketchy way, go for it, but don't tell me when it blow up.

@lain566
Copy link

lain566 commented Jun 29, 2017

@jspenguin2017 Do you hate firefox?
don't worry about that, I will not ask you for help

@jspenguin2017
Copy link
Contributor

A little bit, it caused me a lot of headaches.

@lain566
Copy link

lain566 commented Jun 29, 2017

@jspenguin2017 Ok, I understand

@bershan2
Copy link
Contributor

@Giwayume So Violentmonkey has a race condition? There is no open issue about that on its issue tracker... Could you report it there?

@Hrxn

I always thought UI/UX was especially nice in Tampermonkey, but Violentmonkey doesn't look too bad either. Well, then there is the icon. The Violentmonkey extension icon looks rather, well, ugly.

I agree: Violentmonkey has some CSS bugs and on Firefox looks ugly because of default Times New Roman, but that is Times New Roman's fault. But in Firefox you can change the font to anything you like. Also:

  1. You can always modify the look in the settings: just paste some CSS in "Custom Style" on Settings pane.
  2. Violentmonkey UI is getting an upgrade, e.g. new button icons instead of plain text and more condensed menus. Also, the author is accepting pull requests (I know because he accepted a few from me).

@jspenguin2017
Copy link
Contributor

@bershan2 The race condition isn't really fixable since browsers are designed like that... There are a few hacks that sometimes work but...
Why everyone cares about the UI? You look at that once a blue moon, functionalities are more important. Violentmonkey autocomplete is way better than Tampermonkey.

@bershan2
Copy link
Contributor

bershan2 commented Jul 1, 2017

@jspenguin2017

The race condition isn't really fixable since browsers are designed like that...

Does older API used by Greasemonkey allow solutions without race conditions? I guess it does not matter since Greasemonkey will probably die with Firefox 57 release...

I agree that functionality is more important than the visuals, but visuals are a necessary part of UX thus deserve some attention too. Furthermore, (I think) most people fairly rarely write scripts and more often tweak them and use "Installed scripts" pane.

@jspenguin2017
Copy link
Contributor

@bershan2 Yea, the old API is fully synchronous so it doesn't have race condition, but on the flip side, one website can lock up your whole browser.
Tweaking script by changing its code? Or just settings? Settings needs to be handled elsewhere and that UI depends on the script author. I don't know how many scripts do you install, but I have at most 3. I combined all the small scripts I use into a personal extension, so I'm not using a script host right now.
If you want beautiful animated UI, you can just throw in some Bootstrap or Polymer, it will be nice and shiny in no time. The price is speed, animation is costly, and not every device can afford that.

@Giwayume
Copy link

Giwayume commented Jul 1, 2017

@bershan2

Does older API used by Greasemonkey allow solutions without race conditions?

Yes. Web Extensions are screwing over a lot of existing Firefox add-ons, since previously they could modify pretty much any code in the browser.

@jspenguin2017

From my experience modern phones & tablets handle CSS animations very well (anything that costs $200+).

@jspenguin2017
Copy link
Contributor

@Giwayume Really? My $800 tablet can't quite handle it... Maybe because I'm doing other stuff when trying to animate the modal... If done right, the animation should be handled by GPU, hopefully soon we can use Bootstrap or Polymer without thinking about performance.

@bershan2
Copy link
Contributor

bershan2 commented Jul 1, 2017

I hope our discussion did not diverge too far from the original topic...
@jspenguin2017 No, there is no animation, just SVG icons and expanding list, and no outside dependencies. There is even no :hover. I'm not the author of the extension, but I do not think he will ever put in any animations.

I do not really use userscripts, I just like the idea of simple prototyping... I have yet to find any useful scripts. So far I really use only three extensions: uBO (obviously), HTTPS Everywhere (hope they'll improve memory usage) and Google Input Tools (could be better). Also, sometimes I just fix minor things without real reason.

@Giwayume Unfortunately, the computational cost does add up and although my devices cost significantly more than $200, I care about efficiency.

Update: typo fix.

@jspenguin2017
Copy link
Contributor

jspenguin2017 commented Jul 1, 2017

@bershan2
If you care about speed, then don't worry about how things look. Violentmonkey uses quite a bit less RAM than Tampermonkey, it is a lot lighter.
Animating beautiful user interface is not wasting. I didn't build my PC to look at UI from the 90s, but I don't care about UI as much when I'm on my tablet as it is significantly slower than my PC and do not have spare computation cycles to handle animation.
Coding faster in a language you like is not wasting neither, uBlock Origin uses Python for build script, which is 10 to 50 times slower than JavaScript (Node.js), build script runs once from time to time, its efficiency doesn't matter. (I think it can use PyPy as runtime to set back the efficiency difference though...)

Now back to topic, AAK-Cont is not really maintained, but it is still better than the original AAK. Adding it to the filters list will probably not cause damage considering the original AAK is kept.

@Giwayume
Copy link

Giwayume commented Jul 1, 2017

@TerrakionSmash It is, but so far it's only been me. It needs more devs.

@jspenguin2017
Copy link
Contributor

@TerrakionSmash Not enough maintainers. Maybe not enough interest as everyone wants the best in the world.
Also, many people uses AdBlock and Adblock Plus, so AAK-Cont will probably never work as expected.

@gorhill
Copy link
Owner

gorhill commented Jul 1, 2017

@bershan2

As @gorhill said, Wasting is not using

That statement was specifically in response for those who tried to excuse ABP's inefficient use of CPU/memory, this is not a statement to be used as an argument without context in other unrelated discussions.

@bershan2
Copy link
Contributor

bershan2 commented Jul 1, 2017

@gorhill Sorry for that, I just meant that UI does not need a lot to look nice (I'm currently adding in some SVGs with tooltips in place of text buttons). I'm not against animations, I'm against unnecessary use of powerful (and thus large) dependencies, responding to the comment right above mine. Also, I mentioned absence of :hover as an extreme example of minimalist CSS (but that might be unintentional).

@stanlane
Copy link

Replace "uBlock Protector List" (Chrome only) and "Anti-Adblock Killer | Reek​​​​​​​​​" (obsolete) with "Anti-Adblock Killer Continued" ("Based on uBlock Protector (by jspenguin2017) and Anti-Adblock Killer (by Reek)") in uBlock Origin for Firefox.

@Atavic
Copy link

Atavic commented Jul 29, 2017

Site is here.

@gorhill
Copy link
Owner

gorhill commented Sep 12, 2017

I'm going to remove "uBlock Protector List" and add "Anti-Adblock Killer Continued", uBO shouldn't promote Chrome at the expense of Firefox. For those who have "uBlock Protector List" selected, the list will be moved to the "Custom" section.

@jspenguin2017
Copy link
Contributor

jspenguin2017 commented Sep 12, 2017

Sounds good. The link to the filter is here: https://xuhaiyang1234.gitlab.io/AAK-Cont/dist/aak-cont-list-ubo.txt. It's an old version for now, but hopefully I'll have time to update it soon.

The build pipeline for AAK-Cont is choked up for now, I have more renaming planned for uBlock Protector so I'll fix AAK-Cont build scripts later. This is probably going to solve Userscript integration issues AAK-Cont currently suffers. But it might cause more confusion in how to properly install AAK-Cont, @Giwayume what's your opinion on this? Should the filter list be fully stand-alone? And have another filter list + Userscript in case the user wants more?

The Userscript is a bit out of sync too, @Giwayume do you have any plan on automating script rule porting?

@Giwayume
Copy link

I'd like to keep it to one filter list. This is pretty much the same situation that the old AAK had, uBO included the AAK filter list as an option upon installation, but there's the caveat that you need to install the script to get the full functionality. Ideally, a filter list should work on its own, but the whole point behind AAK is sometimes they don't.

My thought with the userscript is to write a node script to detect which filters need to be ported over/updated. The porting would still be a manual process, since you have some functions that only work in extension code.

I don't know when I'll get to that, though, since it's the end of the budget year I'm busy & with overtime at my job. My company likes to wait until last minute to fit all the projects in for the year for some reason.

@jspenguin2017
Copy link
Contributor

jspenguin2017 commented Sep 13, 2017

It's quite rare that I need to use privileged extension API, the main problems are:

  • onbeforescriptexecute polyfill works on Chrome and Edge but not Firefox (can't test on Safari, didn't test on Opera but since Chrome works Opera should work too). Not sure how are you going to implement a.beforeScript.
  • Stuff chokes on CSP from time to time, especially on Firefox that have pretty broken CSP implementation, Greasemonkey 3.x is a pain as well, and cloneInto is buggy though the roof. This isn't a problem in Tampermonkey that adds unsafe-inline to every page, but is a problem everywhere else. I hate promoting proprietary software, but oh boy Firefox doesn't make it easy for us.
  • Race condition that plagued us since the beginning of time, maybe minify the script?

I do have a few solutions that uses chrome.webRequest API, probably have to white list in the case of AAK-Cont. Also not sure what to do with IMA SDK surrogate.

@jspenguin2017
Copy link
Contributor

jspenguin2017 commented Sep 13, 2017

@Giwayume I'm not sure why not many people want to help. I think it is because Merge Requests are too much work and it's a bit hard to satisfy my filter and code quality standard.
I'll relax the rules until at least 20 developers join us. Filter and script rules are accepted if they fixes more than they breaks. Write access is granted if requested in an Issue or a Merge Request.
Any objection on this?

@Giwayume
Copy link

From the issues I've seen it's people who aren't confident enough in their Javascript abilities who said they want to help. I'm not sure how to solve the lack of contributor problem. I've certainly seen them trip up on which files to touch. Maybe the contributing guide needs a step by step tutorial.

@joey04
Copy link

joey04 commented Sep 14, 2017

I've not used AAK or uBO protector, but looking at this thread and the filter link for the first time, here's a first impression critique that may be of help in maintaining your project and getting others to help support it:

  1. Add whitespace and headers to organize it. When opening it for the first time I see a big wall of uninviting text. Other than the main header there's no section commenting. Something like EasyList may be a helpful guide in that regard, and would help keep it organized. Whitespace '!' or '#' separators here and there could help too (presumably added by your build scripts).

  2. Rule consolidation. There's a big block of 40 rules of ||domain/visitScript/$script,third-party that could be consolidated into a single /visitScript/*$script,third-party,domain=a|b|c|etc rule. That's the way EasyList and others do it.

@jspenguin2017
Copy link
Contributor

jspenguin2017 commented Sep 14, 2017

@joey04 You are looking at the compiled and minimized file, white space and comments are intentionally removed. I know there are some confusion about which file is source which file is "binary", I have plans on updating the contributor guide.
There are a lot of rules copied form the original AAK, I didn't try to beautify them in the fear of breaking things. The way to combine the rules you shown does change its behavior, as domain/notVisitScript/visitScript/ will be matched in the combined filter.

I am open to suggestions, but they need to be specific. Please submit a Merge Request with your suggested changes, then we can discuss about it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

17 participants