this post was submitted on 14 Jul 2024
180 points (95.5% liked)

Privacy

32120 readers
352 users here now

A place to discuss privacy and freedom in the digital world.

Privacy has become a very important issue in modern society, with companies and governments constantly abusing their power, more and more people are waking up to the importance of digital privacy.

In this community everyone is welcome to post links and discuss topics related to privacy.

Some Rules

Related communities

much thanks to @gary_host_laptop for the logo design :)

founded 5 years ago
MODERATORS
 

I prefer Librewolf as it is easier and simpler to use

you are viewing a single comment's thread
view the rest of the comments
[–] MrOtherGuy@lemmy.world 2 points 4 months ago (2 children)

In addition, if you use user.js then you essentially cannot change those settings at runtime (via about:config or otherwise), because your user.js will override the settings on next startup. Maybe that's desired for some, but good to keep in mind nonetheless.

[–] kadotux@sopuli.xyz 4 points 4 months ago (1 children)

There's the provided user-overrides.js that's meant to do this

[–] MrOtherGuy@lemmy.world 1 points 4 months ago (1 children)

I don't think that could work. Not unless we are talking about different things, or unless you run their updater script everytime before starting Firefox.

[–] Shredder1750@lemmy.ml 1 points 4 months ago (1 children)

If you use user-overrides.js, it adds your custom preferences at the bottom of the user.js, as the prefs are read from top to bottom, if a new duplicate exist in your user-overrides.js but with a different value the new value would be used as it is at the bottom.

[–] MrOtherGuy@lemmy.world 1 points 4 months ago (1 children)

Yes, but that is not what I'm talking about. What I mean is that when Firefox is running and you go to change some setting in say, Settings page, then the new value for that preference is stored into prefs.js (at latest on Firefox shutdown, it might remain only in-memory for some time I'm not sure). Anyway, the new value persists only for that browser session, because on next startup whatever value was set by user.js will override it.

[–] laughterlaughter@lemmy.world 1 points 4 months ago (1 children)

Have you independently confirmed this?

What is preventing user.js from doing exactly what you're describing right now on your system?

[–] MrOtherGuy@lemmy.world 2 points 4 months ago (1 children)

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.

[–] laughterlaughter@lemmy.world 1 points 4 months ago* (last edited 4 months ago) (1 children)

Understood, thanks. So on a clean install, I'm assuming user.js is either empty or missing, correct?

[–] MrOtherGuy@lemmy.world 2 points 4 months ago

Yes. Firefox doesn't create user.js file itself - if you want one then you need to create it yourself either manually or with some tool. Also, I've seen some "security" software create user.js file without notifying the user about it...

[–] Lemongrab@lemmy.one 1 points 4 months ago (2 children)

That is not how Arkenfox works. You apply the patch using the script, and then re-run this patch everytime Arkenfox receives an update. In between running, you can change settings in about:config and settings, but it will be overwritten if a different value is included in the user.js. A more permanent solution is using the user-overrides.js file required by the script before patching to create a persistent config.

Something like: user_prefs("privacy.resistFingerprinting.letterboxing" , "false");

More details about user overrides can be found here.

[–] Lemongrab@lemmy.one 1 points 4 months ago* (last edited 4 months ago)

I have independently tested you can change settings before. I will test again tomorrow if I remember to.

[–] MrOtherGuy@lemmy.world 1 points 4 months ago (1 children)

What I'm trying to point out here, is that prefs declared in user.js (whether they are put there using scripting or otherwise) cannot be persistently modified at runtime from within Firefox. That may or may not be a huge problem, but something to be aware of.

[–] Lemongrab@lemmy.one 1 points 4 months ago (1 children)

Yes, I understand. I am pretty sure that is incorrect. With an Arkenfox profile, I have modified my prefs in about:config and retained those changes persistently.

[–] MrOtherGuy@lemmy.world 1 points 4 months ago

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.