Most rules work in Brave.
The only ones that don’t work are Procedural Cosmetics as anyone knows, you know, the ones with :has, :has-text, :upward which are the 3 most used Procedural Cosmetics.
Then specific uBlock rules like $denyallow, $all, $popup
Then some specific ones aren’t supported because of performance reasons, like generic exceptions, the ones that are like #@#example
, so what Brave team does is to manually add one by one the exception for each domain or $ghide which will remove all generic cosmetics in a page.
Positive and negative lookahead in regex rules don’t work, which are the ones that have ?! or ?=
so some uBlock rules will not work because of that.
There is no support for entity in $domain so if a rule has $domain=example.*
it won’t work.
There is also no !#include
support yet which is to include several lists in one, like uBlock filters do, Brave has to add individually all lists that are created by year, for example they are already writing rules to 2023 one. uBlock only needs to use !#include and it will be loaded automatically with it.
there are other rules but not used really much to really worry about them.
Some rules can be workarounded by using CSP or scriptlet injections, like denyallow can be done with CSP, popup can be done with CSP but there is also a scriptlet called window-close-if, which can do the closing like popup does, the problem is Brave uses uBlock lists so they should add support for popup so the rules are compatible.
But as you can see not much has to be supported, Procedural Cosmetics is a big world to support anyway, with so many Procedurals that are available, so in that Area it is still a lot of to do but not in Network filters.
About adguard URL tracking protection list, well, $removeparam, the thing is if you take ||example.com^$removeparam=whatever it will work, and that syntax is used by lists.
but for some reason anything else needs $document,removeparam=whatever
to work, so most rules will not work if they are generic or are anything but ||domain^
.
Of course, editing the file and add the $document takes few seconds, but you have to manually do it.
So I reported it because it’s important to bring compatibility, so lists just work, but for now manually editing lists is the only way of getting almost full removeparam support (excluding the ones with regex on them)
Edit: Crashes were fixed already by @antonok already, it works great now! so thanks to him for that.
Edit2: @chh_68 the fixed are being pushed quickly to stable as well, since it can hard crash in Brave.
Removeparm works great, so once the changes are pushed (to avoid crashes), all you need to do (continuing with what I said about compatibility) it’s to load the list Adguard removeparam list locally, and all you do is find $removeparam and replace it for $document,removeparam
which even Notepad can do in 1 second. This is the only way to make those rules work, and you can easily update it from time to time, select all, paste, find, replace and save.