Reminder that Firefox has a pathway to specifying some settings, including ones not exposed to users any other way, with a config file stored on disk.

They call it enterprise policies but anyone can use it by just putting a file in the location indicated on that site.

You can disable entire features, opt out of Telemetry before your first launch of Firefox on a new install, declare you never want to be part of studies, turn off their ML integration and keep it off, force about:config preferences in a way that can't be "accidentally" reverted, etc.

policy-templates

Policy Templates for Firefox

policy-templates

This is mine at the moment. I throw out a lot of stuff; be familiar with what everything does by cross-referencing it with the site in the last post, or a preferences list, before just using this because it turns off auto-updating, half of Firefox's features, and changes the UI in ways.

You can't comment JSON 🙃

{ "policies": { "AppAutoUpdate": false, "AutofillCreditCardEnabled": false, "BackgroundAppUpdate": false, "CaptivePortal": false, "DisableAccounts": true, "DisableFeedbackCommands": true, "DisableFirefoxAccounts": true, "DisableFirefoxScreenshots": true, "DisableFirefoxStudies": true, "DisablePocket": true, "DisableTelemetry": true, "DontCheckDefaultBrowser": true, "FirefoxHome": { "SponsoredTopSites": false, "Highlights": false, "Pocket": false, "SponsoredPocket": false, "Snippets": false }, "FirefoxSuggest": { "WebSuggestions": false, "SponsoredSuggestions": false, "ImproveSuggest": false }, "ManualAppUpdateOnly": true, "OfferToSaveLogins": false, "PasswordManagerEnabled": false, "PictureInPicture": { "Enabled": false }, "Preferences": { "browser.ml.chat.enabled": false, "browser.uidensity": 1, "dom.private-attribution.submission.enabled": false, "browser.translations.enable": false, "app.normandy.enabled": false }, "SearchSuggestEnabled": false, "UserMessaging": { "WhatsNew": false, "ExtensionRecommendations": false, "FeatureRecommendations": false, "UrlbarInterventions": false, "SkipOnboarding": true, "MoreFromMozilla": false } } }

@trysdyn you can indeed comment json if the schema isn't restricted and you are willing to be silly enough 😁

```
{
"thing": "foo",
"//": "you can comment json",
"// ": "provided that you have no shame",
}
```

@ojensen @trysdyn
Yep
‘“[objectname]Comment”:”This is a comment”,
…’

@dahukanna @trysdyn : ☝️ wise.

For anyone who doesn't see the value of this format: this keeps the comment adjacent to the thing you're commenting, even if the structure goes through a decode/encode cycle (provided the keys get alphabetized, which is pretty common). Few things are more frustrating than picking up a line comment and moving it arbitrarily away from the thing it refers to.