• 0 Posts
  • 11 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.