uBlockOrigin / uBlock-issues

This is the community-maintained issue tracker for uBlock Origin
https://github.com/gorhill/uBlock
944 stars 81 forks source link

Wishlist: `selectedFilterLists` and `dynamicFilteringString` in `userSettings` managed-storage key #2308

Open spikespaz opened 2 years ago

spikespaz commented 2 years ago

Prerequisites

I tried to reproduce the issue when...

Description

I wish to be able to use the keys selectedFilterLists and dynamicFilteringString in the file ~/.mozilla/managed-storage/uBlock0@raymondhill.net.json, with values encoded to a JSON string as they appear from the user configuration backup.

Currently I cannot find a way to specify these values with the current form of managed storage support.

A specific URL where the issue occurs.

Invalid

Steps to Reproduce

  1. Read https://github.com/gorhill/uBlock/wiki/Deploying-uBlock-Origin
  2. Double-check, can the previously-specified keys be added to either userSettings or adminSettings?
    • In the case of selectedFilterLists, yes, one could use toOverride.filterLists, however this does not provide "defaults" and rather enforces the values set.
  3. Review source code and look for areas where keys are scanned and dumped into the corresponding storage.

Expected behavior

The keys that are available in the top-level of an exported user backup should be the same keys that are supported somewhere in the managed storage.

Actual behavior

Nothing happened.

uBO version

1.44.4

Browser name and version

Firefox 105.0.1

Operating System and version

NixOS 22.11.20221003.fd54651

spikespaz commented 2 years ago

What I want can (mostly) be accomplished by the following generated contents for: ~/.mozilla/managed-storage/uBlock0@raymondhill.net.json

{"data":{"adminSettings":"{\"dynamicFilteringString\":\"behind-the-scene * * noop\\nbehind-the-scene * 1p-script noop\\nbehind-the-scene * 3p noop\\nbehind-the-scene * 3p-frame noop\\nbehind-the-scene * 3p-script noop\\nbehind-the-scene * image noop\\nbehind-the-scene * inline-script noop\\n\\n* ajax.googleapis.com * noop\\n* ajax.aspnetcdn.com * noop\\n* ajax.microsoft.com * noop\\n* cdnjs.cloudflare.com * noop\\n* code.jquery.com * noop\\n* cdn.jsdelivr.net * noop\\n* fonts.googleapis.com * noop\\n* yastatic.net * noop\\n* yandex.st * noop\\n* apps.bdimg.com * noop\\n* libs.baidu.com * noop\\n* cdn.staticfile.org * noop\\n* cdn.bootcss.com * noop\\n* mat1.gtimg.com * noop\\n* lib.sinaapp.com * noop\\n* upcdn.b0.upaiyun.com * noop\\n* stackpath.bootstrapcdn.com * noop\\n* maxcdn.bootstrapcdn.com * noop\\n* netdna.bootstrapcdn.com * noop\\n* use.fontawesome.com * noop\\n* ajax.cloudflare.com * noop\\n* akamai-webcdn.kgstatic.net * noop\\n* gitcdn.github.io * noop\\n* vjs.zencdn.net * noop\\n* cdn.plyr.io * noop\\n* cdn.materialdesignicons.com * noop\\n* cdn.ravenjs.com * noop\\n* js.appboycdn.com * noop\\n* cdn.embed.ly * noop\\n* cdn.datatables.net * noop\\n* mathjax.rstudio.com * noop\\n* cdn.mathjax.org * noop\\n* code.createjs.com * noop\\n* sdn.geekzu.org * noop\\n* ajax.proxy.ustclug.org * noop\\n* unpkg.com * noop\\n* pagecdn.io * noop\\n* cdnjs.loli.net * noop\\n* ajax.loli.net * noop\\n* fonts.loli.net * noop\\n* lib.baomitu.com * noop\\n* cdn.bootcdn.net * noop\\n* fonts.gstatic.com * noop\\n* ajax.loli.net.cdn.cloudflare.net * noop\\n* akamai-webcdn.kgstatic.net.edgesuite.net * noop\\n* apps.bdimg.jomodns.com * noop\\n* cdn.bootcdn.net.maoyundns.com * noop\\n* cdn.bootcss.com.maoyundns.com * noop\\n* cdn.embed.ly.cdn.cloudflare.net * noop\\n* cdn.jsdelivr.net.cdn.cloudflare.net * noop\\n* cdnjs.loli.net.cdn.cloudflare.net * noop\\n* cds.s5x3j6q5.hwcdn.net * noop\\n* developer.n.shifen.com * noop\\n* dualstack.osff.map.fastly.net * noop\\n* fonts.loli.net.cdn.cloudflare.net * noop\\n* gateway.cname.ustclug.org * noop\\n* gstaticadssl.l.google.com * noop\\n* iduwdjf.qiniudns.com * noop\\n* lb.sae.sina.com.cn * noop\\n* lib.baomitu.com.qh-cdn.com * noop\\n* mat1.gtimg.com.tegsea.tc.qq.com * noop\\n* materialdesignicons.b-cdn.net * noop\\n* mscomajax.vo.msecnd.net * noop\\n* sdn.inbond.gslb.geekzu.org * noop\\n* use.fontawesome.com.cdn.cloudflare.net * noop\\n* vo.aicdn.com * noop\\n\\n\",\"selectedFilterLists\":[\"user-filters\",\"ublock-filters\",\"ublock-badware\",\"ublock-privacy\",\"ublock-quick-fixes\",\"ublock-abuse\",\"ublock-unbreak\",\"easylist\",\"adguard-spyware\",\"adguard-spyware-url\",\"easyprivacy\",\"urlhaus-1\",\"curben-phishing\",\"curben-pup\",\"adguard-annoyance\",\"adguard-social\",\"fanboy-thirdparty_social\",\"fanboy-cookiemonster\",\"fanboy-annoyance\",\"fanboy-social\",\"ublock-annoyances\",\"dpollock-0\",\"plowe-0\",\"https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts\"],\"userSettings\":{\"advancedUserEnabled\":true,\"dynamicFilteringEnabled\":true,\"externalLists\":\"https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts\",\"importedLists\":[\"https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts\"]}}"},"description":"ignored","name":"uBlock0@raymondhill.net","type":"storage"}

In reality however, I am doing this from Nix so the configuration looks more like this: https://github.com/spikespaz/dotfiles/blob/master/users/jacob/programs/firefox/hosts.nix

gorhill commented 2 years ago

however this does not provide "defaults" and rather enforces the values set

I don't understand that sentence. How would selectedFilterLists be any different?