• 1 Post
  • 36 Comments
Joined 1 year ago
cake
Cake day: June 13th, 2023

help-circle
  • You can modify prefs at runtime and have them persist - except those prefs that are also declared in user.js. The problem arises when folks apply whole list of prefs via user.js from one repository or another, which could be hundreds, without acknowledging what prefs they set and without checking what those prefs do. If they then have some reason to change any one of those prefs - their change won’t persist if that particular pref is in user.js

    A thing you could do is to just start Firefox once with a user.js file, and then remove that file. On that single startup Firefox sets prefs according to user.js, and all those changes persist to prefs.js when Firefox is shutdown. You are then able to also persist changes to all prefs because by removing user.js Firefox won’t try to override the your session saved prefs with user.js at startup.




  • Sure. For simplified example have only the following in your user.js file:

    user_pref("browser.tabs.warnOnClose",true);
    
    1. Start Firefox
    2. Observe that the pref is indeed true
    3. Go to Setting > General, observe that Confirm before closing multiple tabs is checked
    4. Uncheck the option
    5. In about:config observe that browser.tabs.warnOnClose is now false
    6. Restart Firefox
    7. Observe that the pref is again set to true

    The reason is also very simple. Firefox will never write anything to user.js - thus any changes you do at runtime will only be stored to prefs.js. However, user.js always overrides prefs.js at startup.
















  • I guess that kinda depends on what you mean by “upload”. If you simply mean if user can point the extension to load some local file eg. via <input type="file"> then sure, that works just fine.

    It sounds like the issue you mention regarding uBO Lite is not about if it can read a local file, but rather that it can’t use that data to update the active filter lists - perhaps because it already has too many dynamically inserted filter rules, but that’s just a guess.