Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upFunctionality of uMatrix/RequestPolicy/uBlock/Policeman #692
Comments
|
There's Policeman, which can do it in the same way, but much closer to RPC. |
|
I was going to open discussion on this, you beat me to it. There is a lot of overlap in functionality between RP, Policeman, uMatrix, uBlock... I find RP more user-friendly than uMatrix, while uMatrix has more fine-grained control in some areas (blocking resource types - issue for this is #547). Also keep in mind that resource types can just be guessed, see #256 (comment) It was also suggested to import common adblock format domain blocking lists to subscriptions (see RequestPolicyContinued/subscriptions#28), which may or may not be a good idea. Overall I think the overlap "problem" can not be fixed as this is something inherent to Free Software projects (different software for different use cases). Input welcome. |
|
RPc is definitely more accessible, and obvious as to what means what. It took me a while on Opera to figure out how to actually use uMatrix. uBlock gets "talked about" on slashdot when AdBlock et al come up... but it is functionally crippled compared to pretty much all its other brethren, as its also mentioned how to use uB with uM. RPc also has the ability to allow|deny an IP-address|Domain that is a secondary or tertiary call... Personally my biggest (maybe only) problem with RPc is trying to manage rules from the config - in that case all the "fall-through" logic|mechanics of RPc is lost, and the rules are a random unrelated mess. I really like uMatrix's ability to allow|deny resources regardless of origin (CSS especially). Or block iFrames - unless force overridden (even when an origin is allowed). |
Would this be solved/related to #688? (see comment #688 (comment) - UI options to block from full/base domain/full path) |
Yes, thanks for mentioning that. It's difficult if not impossible to put all the information in one matrix.
I don't get what you mean – do you want to manage the rules directly in the config file? Suggestions are always welcome.
This is possible in RP. Add a rule
Yes, I think iFrames are a good point – but iirc NoScript can do that as well, and I'd recommend to always use NoScript.
No, #688 is nothing about content types. They are used by policeman and uMatrix. Regarding RP see #547. @nodiscc I see you gave this issue the „unconfirmed“ label. I am confused – how do you understand this label? I'd say „unconfirmed“ is for bugs which are not reproducible. |
|
@myrdd I added the |
|
Hi, I've been experimenting with different addon combinations. I was previously using RequestPolicy Continued + µBlock Origin. It seems that with appropriate settings, uBlock alone can reproduce RP's behavior (let the user control cross-site requests): For the equivalent of Default Deny in RP, the trick is to set
I believe this blocks all 3rd-party resources. Legitimate destinations have to be whitelisted on a per-site basis in the right column (here shown in green), like in RPc. The UI is not very clear (missing column headers, missing tooltips when hovering a rule, and I think you need to click the padlock icon after editing if you want to make your changes permanent), so this is not a full replacement for RP (very straightforward to use), but it allows running only one addon, which simplifies usage (what addon filters first? what exactly is filtered? need to check both addons to adjust filtering, etc.).
What is the difference between these? I'm still experimenting, can someone confirm my findings? @myrdd @gorhill does uBlock actually have equivalence with RequestPolicy when set up this way? Update: https://github.com/gorhill/uBlock/wiki/Dynamic-filtering:-quick-guide is the main resource. It seems that destination domains should be whitelisted using the |
|
Thank you nodiscc for your description! I did not know uBlock's dynamic filtering. I like it more than the UI of uMatrix.
Yes, you need to read the documentation first. However, after reading the docs, I find the deny/noop/allow colors intuitive.
That's correct, but you can directly create a permenent rule by holding
The main, inherent difference between RP and all other blockers I know is the "other origins" feature. [tech details] As far as I can tell only extensions to Gecko-based browsers are able to have an "other origins" feature. Unfortunately, Mozilla didn't add the "origin URI" to the WebRequest API yet. [/tech details] Besides that, RequestPolicy aims at being intuitive and easy to learn for what it does. Since the focus of uBlock and uMatrix is elsewhere, RequestPolicy will continue to be a separate add-on. However, it would be nice if RP communicated with other blocker add-ons like uBlock so that using both at the same time gets more convenient. So, if you want to use uBlock in the way RequestPolicy works, you should block anything third-party and then set a noop (!) rule on any domain you want to allow. Use noop instead of allow so that uBlock's static rules still apply. |
|
Thanks, added https://github.com/RequestPolicyContinued/requestpolicy/wiki/FAQ#using-ublock-like-requestpolicy. uBlock does not block server or client redirects (gorhill/uBlock#226), whereas RPc does. |
|
uBlock's rule storage file is formatted like:
@myrdd Moving to this storage format for import/export/subscriptions would be great (as well as supporting It would largely decrease maintenance of "official" subscriptions (if RP is made able to download custom lists). uBlock and RPc lists/subscriptions would not need to be maintained separately anymore (both At this point I'm only using uBlock and custom Firefox preferences, and am slowly rebuilding whitelists. Only 1 blocker with only 1 control panel, better temp/permanent rules management, priorities, strictness controls... Only things missing are redirect controls, request count, image placeholders and other origins. I will keep maintaining the subscriptions repo and get the website fixed, but am not currently using RPc (actively) anymore. |
This would be a breaking change, so something for v2.0. However, we could add support for uBlock lists / AdBlock lists in a 1.0 version. Feel free to create issues. Having ternary rules (allow/block/noop) would be as well something for 2.0.
True. After that, it'll be easier to improve the subscription capabilities.
An intermediate step could be a script that converts the lists into lists readable by RP, on a daily or hourly basis. Thanks @nodiscc for your continuous help! |
|
I may be a bit late to the party, but it seems that uMatrix is fundamentally different from RP in the sense that rules are always interpreted in the context of the main website, while RP allows to define individual rules for third parties. For example, I do not want to enable youtube.com everywhere, but when I do, I want youtube.com to be able to reach googlevideo.com. With RP, I just add the permanent setting that youtube can access googlevideo. Whenever I temporarily enable youtube for a given website, it works immediately because it can access googlevideo. With umatrix, you need to enable youtube and googlevideo on every website where you want youtube videos. RP has a notion of hierarchy among third parties, while umatrix has none. In that context, while RP rules can be exported in the same format as umatrix, but they do not mean the same thing. The rule |
|
To dump it: |
|
from #704 (comment):
@YtvwlD Do you mean the "3rd-party" line? As far as I understand, it's not the same as in RP: |
|
It's not the same. Yet I can't think of a single instance where I would need the RPC version
In the latter case, you still get the Primary Domain's context, and allowing "Site3" doesn't whitelist it for every other site, unless you explicitly do so. These days on the desktop I find uMatrix easiest to manage, with a handful of glob|regexp♰ exceptions done with uBlock. While on mobile, I just use Firefox Focus. ♰ Which RPC was not inclined to add. |
|
Consider these cases: Sites may embed youtube, and youtube can pull in required resources from other google domains, but sites cannot normally access anything from google. Same as above, but you only allow youtube temporarily on a case-by-case basis, but because youtube's dependencies are grouped with youtube, you only need to enable one domain and the rest come with it. |
|
I don't allow sites to "embed Youtube", that's an iFrame, and they are hard blocked by default. Such videos show as a empty png box with the video-link-text at the top, e.g. |
I allow YouTube for certain sites. |

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.






Has anyone taken a look at GorHill's uMatix?
It's what I wound up using in Opera (as it beat the pants offa its closest unmaintained competitor).
So I've been testing it in FireFox for the last few months. I really like the fine-grained control - wherein you can allow/deny different types of content from domains. As opposed to blocking/allowing ALL from a given domain.