gorhill / uMatrix

uMatrix: Point and click matrix to filter net requests according to source, destination and type
GNU General Public License v3.0
4.55k stars 470 forks source link

behind-the-scene inheritance #883

Open dezhavu opened 6 years ago

dezhavu commented 6 years ago

Is it possible to add an option for advanced users, so that behind-the-scene and other schemes (file-scheme, about-scheme, data-scheme etc) do NOT inherit from Global Scope (*), as for me I use Legacy uMatrix in unbranded build of FF 57 and it's very inconvenient to block those rules (or parse them thus increasing config file size for no reason) A little option could be usefull in future.

Thanks for your work & time.

dezhavu commented 6 years ago

imagebam.com

imagebam.com

gorhill commented 6 years ago

More generally, you propose the ability to isolate a scope from the parent one.

dezhavu commented 6 years ago

As you could have noticed on the pictures attached, i use dynamic ruleset, so actually it's not a big deal to block those Global Scope domains for behind-the-scene, but the idea is that behind-the-scene should't inherit from Global Scope, IF there's a rule for that scheme:

For instance:

* * * block
* vimeo.com * allow
* vimeo.com frame allow
behind-the-scene * * block

Now vimeo.com doesn't care about behind-the-scene block, because it's allowed in Global Scope.. I saw numerous of samples like this in the logger, when requests from the webpage somehow appear in the behind-the-scene scheme, and if it inherits from global, omitting it's own scheme rules, thats no good for no good reason.

dezhavu commented 6 years ago

More generally, you propose the ability to isolate a scope from the parent one.

could be something like this if to look at it in more global, would be even more flexible, but keeping in mind of "no new feature request" didn't structure it like this, the idea is great though

gorhill commented 6 years ago
* * * block
behind-the-scene * * block

Using the all cell to decide whether a scope is isolated or not is an interesting idea -- I like it.

Currently the UI does not work for this though, as the all cell can toggle only between block and allow, so addressing this point would allow the proposal be implemented seamlessly in the core filtering code, the idea fits well with what is already in there.

theWalkingDuck commented 6 years ago

What about using matrix-off: behind-the-scene false instead of behind-the-scene * * block ?

gorhill commented 6 years ago

What about using matrix-off: behind-the-scene false instead of behind-the-scene block ?

He wants the ability to modify the way rules propagate on the z axis (from broader scopes to narrower ones), the matrix-off switch is to toggle on/off matrix filtering, I don't find this a good match for modifying z-propagation. The all cell however is a good choice, there currently is no such thing as scope * * inherit, this rule means nothing in uMatrix. So it is available for leverage -- the inherit action is already used in other cells to prevent looking up a rule from a broader scope, i.e. as a way to disable z-propagation -- something which he already uses, but he has to do it for every single allow rules added in the global scope, I can see the inconvenience.

uBlock-user commented 6 years ago

What about using matrix-off: behind-the-scene false instead of behind-the-scene block ?

Removing the matrix-off rule itself would block all behind the scenes requests unless you whitelist a cell.

dezhavu commented 6 years ago

Removing the matrix-off rule itself would block all behind the scenes requests unless you whitelist a cell.

Yep, it takes some time to get the whole thing, could be a bit complicated at first.

There's another issue that came up when I tried updating from 1.1.17rc0 (that was post rc0, about 4 commits after it, as far as i remember). Legacy doesn't work in FF5602, neither in FF57. Webextension works in both.

Console on install:

TypeError: vAPI.messaging.send is not a function[Learn More]  popup.js:1462:9
    <anonymous> chrome://umatrix/content/js/popup.js:1462:9
    matrixSnapshotPoller< chrome://umatrix/content/js/popup.js:1441:6
    <anonymous> chrome://umatrix/content/js/popup.js:1358:29
    <anonymous> chrome://umatrix/content/js/popup.js:30:2

Dashboard available only by directly going to chrome://umatrix/content/dashboard.html Logger available only by directly going to chrome://umatrix/content/logger-ui.html

Every option is clear inside, no checkboxes, no rules, no hosts files, even nothing in About (no version) Console:

TypeError: vAPI.messaging.send is not a function[Learn More]  about.js:133:5
    <anonymous> chrome://umatrix/content/js/about.js:133:5
    <anonymous> chrome://umatrix/content/js/about.js:122:2

TypeError: vAPI.messaging.send is not a function[Learn More]  settings.js:154:1
    <anonymous> chrome://umatrix/content/js/settings.js:154:1
    <anonymous> chrome://umatrix/content/js/settings.js:28:2

TypeError: vAPI.messaging.addListener is not a function[Learn More]  hosts-files.js:39:1
    <anonymous> chrome://umatrix/content/js/hosts-files.js:39:1
    <anonymous> chrome://umatrix/content/js/hosts-files.js:28:2

TypeError: vAPI.messaging.send is not a function[Learn More]  cloud-ui.js:207:1
    <anonymous> chrome://umatrix/content/js/cloud-ui.js:207:1
    <anonymous> chrome://umatrix/content/js/cloud-ui.js:28:2
dezhavu commented 6 years ago

imagebam.com

btw latest uBlock 1.14.22 Legacy works in both

gorhill commented 6 years ago

uMatrix for Legacy Firefox is no longer maintained: see #824.

dezhavu commented 6 years ago

Yeah, well 1.1.17rc0 works at least. Anyway, the subj remains in Logger as requests from webpage, so if you find time pls take a look at it, could be useful, as it happens when viewing saved pages too (file-scheme).

Thanks for your attention.