New Firefox Sync causes NoScript settings to reset to default
Thanks very much for your work on this tool, it's really been a great help to me.
I use Firefox Sync to maintain the same add-ons / extensions across multiple devices. It seems to me that whenever I add a new device to my Firefox Sync network, as part of the syncing process between each machine, the settings for NoScript on each device reset to standard. This is really painful as I use, say, 50 websites regularly, which try to load 10 scripts, and each of these websites I manually enable the 3-4 scripts necessary for that particular website to function, so this is a lot of customization.
(I'm not an official NoScirpt person, just someone who has dealt with your problem before)
IMO, this is an issue with Firefox Sync. I got around this in two ways.
1) Export/Import (low-volume method)
If you only add a new device infrequently and you only add new sites to your NoScript infrequently, choose this. IMO, this is the preferred way because it is supported by NoScript.
- On the contributing host, open NoScript using the toolbar, click on "Options...". The NoScript settings will open up.
- Click on Export.
- Save the file somewhere that's accessible by the other hosts. This may be a SpiderOak Hive folder, a Dropbox folder, a Google Drive Sync folder, etc. Or it may be a website you can access.
- On the accepting (new) host, open NoScript using the toolbar, click on "Options...". The NoScript settings will open up.
- Click on Import.
- Select the file.
Drawbacks:
- Mostly good for one-way sync. Not multi-way sync. In my initial use cases, where I had a primary machine with a ton of NoScript settings that I wanted to spread out, this was fine.
- Does not sync any other NoScript settings.
2) Firefox Sync manual expansion (high-volume method)
If you constantly add new devices or you constantly add new sites, this is the method for you. I seriously recommend option number 1 if you can stomach it bc of the downsides and debugging this can be tricky. But it exists.
Because Firefox actually likes their users, there is a way for you to manually override what settings get synced. Even for built-in Firefox settings (BEWARE OF DOING THIS) or third party add-ons.
The Arch Linux wiki uses NoScript as their example while explaining this feature of Firefox. Do not worry if you don't use Arch or Linux at all. This is a capability in Firefox and does not rely at all on Linux.
https://wiki.archlinux.org/title/Firefox#Configuration
Bonus points if you use something like user.js to set these (and other) settings on your new Firefox instances, if you add new devices constantly.
Drawbacks:
- May use a lot of Firefox Sync storage space and bandwidth.
- Not supported by NoScript bc it's outside of their control.
- You can corrupt one or more instance of Firefox connected to that Firefox sync account if you sync something that must be different between instances.
"Official NoScript person" here :smile:
Thank you @KlfJoat for trying to help, your suggestion n. 1 (using NoScript Options export/import) is what I recommend for now, also because NoScript is trying to move completely away from Firefox Sync because of its severe limitations on the amount of data that can be synchronized.
Your suggestion n. 2 is unfortunately unapplied, because that Arch Linux documentation piece is very outdated and refers to NoScript "Classic" (version 5.x), which is incompatible with "modern" browsers.
At this moment NoScript tries hard to compress its setting and make synchronization work as long as it can, but quietly falls back to local storage (making synchronization stop working) as soon the limits are exceeded despite all the work-arounds.
This specific issue of settings being erased when a new device is added does need more investigation and may indeed be due to a Firefox Sync bug, but the long term plan is switching to local storage by default and let user choose a preferred remote storage service of their choice for cross-device synchronization, relying on Firefox Sync only to share an optional end-to-end encryption key.