diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..7952030 --- /dev/null +++ b/Makefile @@ -0,0 +1,13 @@ +rebuild_parser: + @echo '(Re-)building parser' + @shards build --production --release --no-debug + +generate: + @echo 'Generating librewolf.cfg and docs.' + @./bin/librewolf_parser + +clean: + @echo 'Cleaning up dist and bin.' + @shards prune + @rm -rf dist + @rm -rf bin diff --git a/bin/librewolf_parser b/bin/librewolf_parser new file mode 100755 index 0000000..90d9f3c Binary files /dev/null and b/bin/librewolf_parser differ diff --git a/dist/docs/settings/controversial.md b/dist/docs/settings/controversial.md new file mode 100644 index 0000000..bdb6748 --- /dev/null +++ b/dist/docs/settings/controversial.md @@ -0,0 +1,64 @@ +--- +title: Controversial +--- + + +## `dom.indexedDB.enabled` + +Status: **locked** + +Value: `true` + + +## `dom.indexedDB.logging.details` + +**Unused Setting** + +Status: **locked** + +Value: `false` + + +## `dom.indexedDB.logging.enabled` + +**Unused Setting** + +Status: **locked** + +Value: `false` + + +## `dom.w3c_pointer_events.enabled` + +Status: **locked** + +Value: `false` + + +## `network.http.spdy.enabled` + +**Unused Setting** + +Status: **locked** + +Value: `false` + + +## `network.http.spdy.enabled.deps` + +**Unused Setting** + +Status: **locked** + +Value: `false` + + +## `network.http.spdy.enabled.http2` + +**Unused Setting** + +Status: **locked** + +Value: `false` + + diff --git a/dist/docs/settings/defaulting.md b/dist/docs/settings/defaulting.md new file mode 100644 index 0000000..213979b --- /dev/null +++ b/dist/docs/settings/defaulting.md @@ -0,0 +1,216 @@ +--- +title: Defaulting +--- + + +## `privacy.spoof_english` + +Status: **unlocked** + +Value: `2` + + +## `intl.accept_languages` + +**Unused Setting** + +Status: **unlocked** + +Value: `"en-US, en"` + + +## `network.http.referer.defaultPolicy` + +Status: **unlocked** + +Value: `3` + + +## `network.http.referer.defaultPolicy.pbmode` + +Status: **unlocked** + +Value: `2` + + +## `privacy.userContext.ui.enabled` + +Status: **unlocked** + +Value: `true` + + +## `privacy.userContext.enabled` + +Status: **unlocked** + +Value: `true` + + +## `privacy.userContext.longPressBehavior` + +Status: **unlocked** + +Value: `2` + + +## `browser.download.autohideButton` + +Status: **unlocked** + +Value: `false` + + +## `accessibility.typeaheadfind` + +Status: **unlocked** + +Value: `true` + + +## `clipboard.autocopy` + +Status: **unlocked** + +Value: `false` + + +## `layout.spellcheckDefault` + +Status: **unlocked** + +Value: `2` + + +## `browser.tabs.closeWindowWithLastTab` + +Status: **unlocked** + +Value: `false` + + +## `general.autoScroll` + +Status: **unlocked** + +Value: `false` + + +## `network.http.sendRefererHeader` + +**Unused Setting** + +Status: **unlocked** + +Value: `1` + + +## `pdfjs.disabled` + +Status: **unlocked** + +Value: `false` + + +## `dom.disable_open_during_load` + +Status: **unlocked** + +Value: `true` + + +## `browser.link.open_newwindow` + +Status: **unlocked** + +Value: `3` + + +## `browser.link.open_newwindow.restriction` + +Status: **unlocked** + +Value: `0` + + +## `network.proxy.autoconfig_url` + +Status: **unlocked** + +Value: `""` + + +## `network.proxy.autoconfig_url.include_path` + +Status: **unlocked** + +Value: `false` + + +## `network.proxy.socks_remote_dns` + +Status: **unlocked** + +Value: `true` + + +## `network.proxy.socks_version` + +Status: **unlocked** + +Value: `5` + + +## `browser.tabs.loadBookmarksInTabs` + +Status: **unlocked** + +Value: `true` + + +## `devtools.debugger.remote-enabled` + +Status: **unlocked** + +Value: `false` + + +## `devtools.chrome.enabled` + +Status: **unlocked** + +Value: `false` + + +## `general.useragent.site_specific_overrides` + +Status: **unlocked** + +Value: `false` + + +## `extensions.ui.experiment.hidden` + +Status: **unlocked** + +Value: `false` + + +## `extensions.ui.dictionary.hidden` + +**Unused Setting** + +Status: **unlocked** + +Value: `false` + + +## `extensions.ui.locale.hidden` + +**Unused Setting** + +Status: **unlocked** + +Value: `false` + + diff --git a/dist/docs/settings/deprecated/_index.md b/dist/docs/settings/deprecated/_index.md new file mode 100644 index 0000000..52e2543 --- /dev/null +++ b/dist/docs/settings/deprecated/_index.md @@ -0,0 +1,2 @@ +--- +title: Deprecated--- diff --git a/dist/docs/settings/deprecated/active.md b/dist/docs/settings/deprecated/active.md new file mode 100644 index 0000000..c1dea95 --- /dev/null +++ b/dist/docs/settings/deprecated/active.md @@ -0,0 +1,278 @@ +--- +title: Active +--- + + +## `browser.onboarding.enabled` + +Status: **locked** + +Value: `false` + + +## `devtools.webide.autoinstallADBHelper` + +Status: **locked** + +Value: `false` + + +## `dom.mozTCPSocket.enabled` + +Status: **locked** + +Value: `false` + + +## `app.update.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.bookmarks.max_backups` + +Status: **locked** + +Value: `2` + + +## `browser.casting.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.newtabpage.activity-stream.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.newtabpage.directory.ping` + +Status: **locked** + +Value: `"data:text/plain,"` + + +## `browser.newtabpage.directory.source` + +Status: **locked** + +Value: `"data:text/plain,"` + + +## `browser.newtabpage.enhanced` + +Status: **locked** + +Value: `false` + + +## `browser.pocket.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.selfsupport.url` + +Status: **locked** + +Value: `""` + + +## `browser.startup.homepage_override.mstone` + +Status: **locked** + +Value: `"ignore"` + + +## `camera.control.face_detection.enabled` + +Status: **locked** + +Value: `false` + + +## `datareporting.healthreport.about.reportUrl` + +Status: **locked** + +Value: `"data:,"` + + +## `datareporting.healthreport.service.enabled` + +Status: **locked** + +Value: `false` + + +## `device.sensors.enabled` + +Status: **locked** + +Value: `false` + + +## `devtools.webide.autoinstallFxdtAdapters` + +Status: **locked** + +Value: `false` + + +## `devtools.webide.adaptersAddonURL` + +Status: **locked** + +Value: `""` + + +## `dom.enable_resource_timing` + +Status: **locked** + +Value: `false` + + +## `dom.flyweb.enabled` + +Status: **locked** + +Value: `false` + + +## `dom.gamepad.enabled` + +Status: **locked** + +Value: `false` + + +## `dom.netinfo.enabled` + +Status: **locked** + +Value: `false` + + +## `dom.push.udp.wakeupEnabled` + +Status: **locked** + +Value: `false` + + +## `dom.telephony.enabled` + +Status: **locked** + +Value: `false` + + +## `extensions.shield-recipe-client.enabled` + +Status: **locked** + +Value: `false` + + +## `loop.logDomains` + +Status: **locked** + +Value: `false` + + +## `media.video_stats.enabled` + +Status: **locked** + +Value: `false` + + +## `network.websocket.enabled` + +Status: **locked** + +Value: `false` + + +## `reader.parse-on-load.enabled` + +Status: **locked** + +Value: `false` + + +## `security.xpconnect.plugin.unrestricted` + +Status: **locked** + +Value: `false` + + +## `social.directories` + +Status: **locked** + +Value: `""` + + +## `social.remote-install.enabled` + +Status: **locked** + +Value: `false` + + +## `social.whitelist` + +Status: **locked** + +Value: `""` + + +## `security.ssl3.ecdhe_ecdsa_rc4_128_sha` + +Status: **locked** + +Value: `false` + + +## `security.ssl3.ecdhe_rsa_rc4_128_sha` + +Status: **locked** + +Value: `false` + + +## `security.ssl3.rsa_rc4_128_md5` + +Status: **locked** + +Value: `false` + + +## `security.ssl3.rsa_rc4_128_sha` + +Status: **locked** + +Value: `false` + + +## `security.tls.unrestricted_rc4_fallback` + +Status: **locked** + +Value: `false` + + diff --git a/dist/docs/settings/deprecated/inactive.md b/dist/docs/settings/deprecated/inactive.md new file mode 100644 index 0000000..c488dbf --- /dev/null +++ b/dist/docs/settings/deprecated/inactive.md @@ -0,0 +1,26 @@ +--- +title: Inactive +--- + + +## `xpinstall.signatures.required` + +Status: **unlocked** + +Value: `true` + + +## `toolkit.legacyUserProfileCustomizations.stylesheets` + +Status: **unlocked** + +Value: `false` + + +## `devtools.selfxss.count` + +Status: **unlocked** + +Value: `0` + + diff --git a/dist/docs/settings/disabled-on-off.md b/dist/docs/settings/disabled-on-off.md new file mode 100644 index 0000000..79711a2 --- /dev/null +++ b/dist/docs/settings/disabled-on-off.md @@ -0,0 +1,39 @@ +--- +title: Disabled On/Off +--- + + +## `network.dns.blockDotOnion` + +Status: **locked** + +Value: `true` + +*Tor settings* + + +## `network.http.referer.hideOnionSource` + +Status: **locked** + +Value: `true` + + +## `network.http.referer.XOriginPolicy` + +Status: **locked** + +Value: `1` + +*CROSS ORIGIN: control when to send a referer* + + +## `security.tls.version.max` + +Status: **locked** + +Value: `4` + +*Only allow TLS 1.[0-3]* + + diff --git a/dist/docs/settings/esr-60.md b/dist/docs/settings/esr-60.md new file mode 100644 index 0000000..961f726 --- /dev/null +++ b/dist/docs/settings/esr-60.md @@ -0,0 +1,141 @@ +--- +title: ESR 60 +--- + + +## `browser.search.countryCode` + +Status: **locked** + +Value: `"US"` + +*Geolocation* + + +## `experiments.activeExperiment` + +Status: **locked** + +Value: `false` + + +## `experiments.enabled` + +Status: **locked** + +Value: `false` + +*Disable Mozilla telemetry/experiments* + + + +### References + +[https://wiki.mozilla.org/Platform/Features/Telemetry](https://wiki.mozilla.org/Platform/Features/Telemetry) + +[https://wiki.mozilla.org/Privacy/Reviews/Telemetry](https://wiki.mozilla.org/Privacy/Reviews/Telemetry) + +[https://wiki.mozilla.org/Telemetry](https://wiki.mozilla.org/Telemetry) + +[https://www.mozilla.org/en-US/legal/privacy/firefox.html#telemetry](https://www.mozilla.org/en-US/legal/privacy/firefox.html#telemetry) + +[https://support.mozilla.org/t5/Firefox-crashes/Mozilla-Crash-Reporter/ta-p/1715](https://support.mozilla.org/t5/Firefox-crashes/Mozilla-Crash-Reporter/ta-p/1715) + +[https://wiki.mozilla.org/Security/Reviews/Firefox6/ReviewNotes/telemetry](https://wiki.mozilla.org/Security/Reviews/Firefox6/ReviewNotes/telemetry) + +[https://gecko.readthedocs.io/en/latest/browser/experiments/experiments/manifest.html](https://gecko.readthedocs.io/en/latest/browser/experiments/experiments/manifest.html) + +[https://wiki.mozilla.org/Telemetry/Experiments](https://wiki.mozilla.org/Telemetry/Experiments) + +[https://support.mozilla.org/en-US/questions/1197144](https://support.mozilla.org/en-US/questions/1197144) + + +## `experiments.manifest.uri` + +Status: **locked** + +Value: `""` + + +## `experiments.supported` + +Status: **locked** + +Value: `false` + + +## `network.jar.block-remote-files` + +Status: **locked** + +Value: `true` + +*Disable remote JAR files being opened, regardless of content type (FF42+)* + + + +### References + +[https://bugzilla.mozilla.org/1173171](https://bugzilla.mozilla.org/1173171) + +[https://www.fxsitecompat.com/en-CA/docs/2015/jar-protocol-support-has-been-disabled-by-default/](https://www.fxsitecompat.com/en-CA/docs/2015/jar-protocol-support-has-been-disabled-by-default/) + +[https://bugzilla.mozilla.org/1427726](https://bugzilla.mozilla.org/1427726) + + +## `network.jar.open-unsafe-types` + +Status: **locked** + +Value: `false` + +*Disable JAR from opening Unsafe File Types* + + + +### References + +[https://bugzilla.mozilla.org/1427726](https://bugzilla.mozilla.org/1427726) + + +## `plugin.state.java` + +Status: **locked** + +Value: `0` + +*Disable Java NPAPI plugin* + + +## `services.blocklist.update_enabled` + +Status: **locked** + +Value: `false` + +*Enable Kinto blocklist updates (FF50+)* + + + +### References + +[https://wiki.mozilla.org/Firefox/Kinto#Specifications](https://wiki.mozilla.org/Firefox/Kinto#Specifications) + +[https://bugzilla.mozilla.org/1458917](https://bugzilla.mozilla.org/1458917) + + +## `shield.savant.enabled` + +Status: **locked** + +Value: `false` + +*Disable 'Savant' Shield study (FF61+)* + + + +### References + +[https://bugzilla.mozilla.org/1457226](https://bugzilla.mozilla.org/1457226) + + diff --git a/dist/docs/settings/extensions.md b/dist/docs/settings/extensions.md new file mode 100644 index 0000000..5d61734 --- /dev/null +++ b/dist/docs/settings/extensions.md @@ -0,0 +1,75 @@ +--- +title: Extensions +--- + + +## `extensions.webextensions.restrictedDomains` + +Status: **unlocked** + +Value: `""` + + +## `extensions.webextensions.identity.redirectDomain` + +Status: **locked** + +Value: `""` + + +## `extensions.webextensions.base-content-security-policy` + +Status: **unlocked** + +Value: `"script-src 'self' https://* moz-extension: blob: filesystem: 'unsafe-eval' 'unsafe-inline'; object-src 'self' https://* moz-extension: blob: filesystem:;"` + + +## `security.csp.enable` + +Status: **locked** + +Value: `true` + + +## `security.csp.experimentalEnabled` + +Status: **locked** + +Value: `true` + + +## `security.csp.enable_violation_events` + +Status: **locked** + +Value: `false` + + +## `extensions.webextensions.tabhide.enabled` + +Status: **unlocked** + +Value: `false` + + +## `extensions.webcompat-reporter.newIssueEndpoint` + +Status: **locked** + +Value: `""` + + +## `extensions.webcompat-reporter.enabled` + +Status: **locked** + +Value: `false` + + +## `extensions.webextensions.background-delayed-startup` + +Status: **unlocked** + +Value: `true` + + diff --git a/dist/docs/settings/fingerprinting.md b/dist/docs/settings/fingerprinting.md new file mode 100644 index 0000000..07543ae --- /dev/null +++ b/dist/docs/settings/fingerprinting.md @@ -0,0 +1,19 @@ +--- +title: Fingerprinting +--- + + +## `privacy.resistFingerprinting` + +Status: **unlocked** + +Value: `true` + + +## `privacy.resistFingerprinting.block_mozAddonManager` + +Status: **unlocked** + +Value: `true` + + diff --git a/dist/docs/settings/general.md b/dist/docs/settings/general.md new file mode 100644 index 0000000..17c8344 --- /dev/null +++ b/dist/docs/settings/general.md @@ -0,0 +1,2384 @@ +--- +title: General +--- + + +## `browser.onboarding.notification.finished` + +Status: **locked** + +Value: `true` + +*Onboarding tour disabled because of included telemetry* + + +## `browser.onboarding.tour.onboarding-tour-customize.completed` + +Status: **locked** + +Value: `true` + + +## `browser.onboarding.tour.onboarding-tour-performance.completed` + +Status: **locked** + +Value: `true` + + +## `devtools.onboarding.telemetry.logged` + +Status: **locked** + +Value: `false` + + +## `services.sync.engine.addresses.available` + +Status: **locked** + +Value: `false` + + +## `browser.bookmarks.restore_default_bookmarks` + +Status: **locked** + +Value: `false` + + +## `pdfjs.previousHandler.alwaysAskBeforeHandling` + +Status: **locked** + +Value: `true` + + +## `pdfjs.enabledCache.state` + +Status: **locked** + +Value: `false` + +*Caching for integrated PDF* + + +## `pref.general.disable_button.default_browser` + +Status: **locked** + +Value: `false` + + +## `pref.privacy.disable_button.view_passwords` + +Status: **locked** + +Value: `false` + + +## `identity.mobilepromo.android` + +Status: **locked** + +Value: `""` + + +## `extensions.systemAddon.update.url` + +Status: **locked** + +Value: `""` + + +## `datareporting.healthreport.infoURL` + +Status: **locked** + +Value: `""` + + +## `browser.urlbar.daysBeforeHidingSuggestionsPrompt` + +Status: **locked** + +Value: `0` + + +## `browser.urlbar.searchSuggestionsChoice` + +Status: **locked** + +Value: `false` + + +## `browser.urlbar.timesBeforeHidingSuggestionsHint` + +Status: **locked** + +Value: `0` + + +## `browser.shell.didSkipDefaultBrowserCheckOnFirstRun` + +Status: **locked** + +Value: `true` + + +## `app.feedback.baseURL` + +Status: **locked** + +Value: `""` + + +## `app.normandy.enabled` + +Status: **locked** + +Value: `false` + + +## `app.normandy.api_url` + +Status: **locked** + +Value: `""` + + +## `app.normandy.first_run` + +Status: **locked** + +Value: `false` + + +## `app.normandy.user_id` + +Status: **locked** + +Value: `""` + + +## `app.releaseNotesURL` + +Status: **locked** + +Value: `""` + + +## `app.update.auto` + +Status: **locked** + +Value: `false` + + +## `extensions.update.autoUpdateDefault` + +Status: **unlocked** + +Value: `false` + + +## `app.update.staging.enabled` + +Status: **locked** + +Value: `false` + + +## `app.update.silent` + +Status: **locked** + +Value: `false` + + +## `app.update.lastUpdateTime.telemetry_modules_ping` + +Status: **locked** + +Value: `0` + + +## `app.update.url.details` + +Status: **locked** + +Value: `""` + + +## `app.update.url.manual` + +Status: **locked** + +Value: `""` + + +## `app.vendorURL` + +Status: **locked** + +Value: `""` + + +## `breakpad.reportURL` + +Status: **locked** + +Value: `""` + + +## `browser.chrome.errorReporter.submitUrl` + +Status: **locked** + +Value: `""` + + +## `browser.chrome.errorReporter.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.ping-centre.staging.endpoint` + +Status: **locked** + +Value: `""` + + +## `browser.ping-centre.telemetry` + +Status: **locked** + +Value: `false` + + +## `browser.safebrowsing.id` + +Status: **locked** + +Value: `""` + +*Google Safe Browsing (blocks dangerous and deceptive contents)* + + +## `browser.safebrowsing.provider.google4.pver` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.mozilla.pver` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.allowOverride` + +Status: **locked** + +Value: `false` + + +## `browser.safebrowsing.blockedURIs.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.safebrowsing.downloads.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.safebrowsing.downloads.remote.block_dangerous` + +Status: **locked** + +Value: `false` + + +## `browser.safebrowsing.downloads.remote.block_dangerous_host` + +Status: **locked** + +Value: `false` + + +## `browser.safebrowsing.downloads.remote.block_potentially_unwanted` + +Status: **locked** + +Value: `false` + + +## `browser.safebrowsing.downloads.remote.block_uncommon` + +Status: **locked** + +Value: `false` + + +## `browser.safebrowsing.downloads.remote.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.safebrowsing.downloads.remote.url` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.malware.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.safebrowsing.passwords.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.safebrowsing.phishing.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.safebrowsing.provider.google4.advisoryURL` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google4.dataSharing.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.safebrowsing.provider.google4.dataSharingURL` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google4.gethashURL` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google4.lists` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google4.reportMalwareMistakeURL` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google4.reportPhishMistakeURL` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google4.reportURL` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google4.updateURL` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google4.lastupdatetime` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google4.nextupdatetime` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google.advisoryURL` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google.gethashURL` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google.lastupdatetime` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google.lists` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google.nextupdatetime` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google.pver` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google.reportMalwareMistakeURL` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google.reportPhishMistakeURL` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google.reportURL` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google.updateURL` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.mozilla.gethashURL` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.mozilla.lastupdatetime` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.mozilla.nextupdatetime` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.mozilla.updateURL` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.reportPhishURL` + +Status: **locked** + +Value: `""` + + +## `browser.search.suggest.enabled` + +Status: **locked** + +Value: `false` + + +## `captivedetect.canonicalURL` + +Status: **locked** + +Value: `""` + + +## `datareporting.policy.firstRunURL` + +Status: **locked** + +Value: `""` + + +## `devtools.devedition.promo.url` + +Status: **locked** + +Value: `""` + + +## `devtools.devices.url` + +Status: **locked** + +Value: `""` + + +## `devtools.gcli.imgurUploadURL` + +Status: **locked** + +Value: `""` + + +## `devtools.gcli.jquerySrc` + +Status: **locked** + +Value: `""` + + +## `devtools.gcli.underscoreSrc` + +Status: **locked** + +Value: `""` + + +## `devtools.telemetry.supported_performance_marks` + +Status: **locked** + +Value: `""` + + +## `devtools.telemetry.tools.opened.version` + +**Unused Setting** + +Status: **locked** + +Value: `""` + +*Fix ESR Devtools* + + +## `dom.battery.enabled` + +Status: **locked** + +Value: `false` + + +## `dom.permissions.enabled` + +Status: **locked** + +Value: `false` + + +## `dom.popup_maximum` + +Status: **locked** + +Value: `4` + +*Maximum popups that may be launched at the same time* + + +## `dom.registerProtocolHandler.insecure.enabled` + +Status: **locked** + +Value: `true` + + +## `extensions.blocklist.detailsURL` + +Status: **locked** + +Value: `""` + + +## `extensions.blocklist.itemURL` + +Status: **locked** + +Value: `""` + + +## `extensions.blocklist.url` + +Status: **locked** + +Value: `""` + +*Block list url disabled* + + +## `extensions.update.background.url` + +Status: **unlocked** + +Value: `""` + + +## `extensions.getAddons.showPane` + +Status: **unlocked** + +Value: `false` + + +## `extensions.webservice.discoverURL` + +Status: **locked** + +Value: `""` + + +## `gecko.handlerService.schemes.mailto.0.uriTemplate` + +Status: **locked** + +Value: `""` + + +## `gecko.handlerService.schemes.mailto.1.uriTemplate` + +Status: **locked** + +Value: `""` + + +## `gecko.handlerService.schemes.webcal.0.uriTemplate` + +Status: **locked** + +Value: `""` + + +## `geo.enabled` + +Status: **locked** + +Value: `false` + + +## `geo.wifi.uri` + +Status: **locked** + +Value: `""` + + +## `identity.fxaccounts.auth.uri` + +Status: **locked** + +Value: `""` + + +## `identity.fxaccounts.remote.oauth.uri` + +Status: **locked** + +Value: `""` + + +## `identity.fxaccounts.remote.profile.uri` + +Status: **locked** + +Value: `""` + + +## `identity.mobilepromo.ios` + +Status: **locked** + +Value: `""` + + +## `layout.css.visited_links_enabled` + +Status: **locked** + +Value: `false` + + +## `lpbmode.enabled` + +Status: **locked** + +Value: `true` + + +## `mailnews.messageid_browser.url` + +Status: **locked** + +Value: `""` + + +## `mailnews.mx_service_url` + +Status: **locked** + +Value: `""` + + +## `network.predictor.enabled` + +Status: **locked** + +Value: `false` + +*Disable predictor / prefetching* + + +## `network.predictor.cleaned-up` + +Status: **locked** + +Value: `true` + + +## `network.predictor.enable-prefetch` + +Status: **locked** + +Value: `false` + + +## `plugins.crash.supportUrl` + +Status: **locked** + +Value: `""` + + +## `services.sync.clients.lastSync` + +Status: **locked** + +Value: `"0"` + + +## `services.sync.clients.lastSyncLocal` + +Status: **locked** + +Value: `"0"` + + +## `services.sync.declinedEngines` + +Status: **locked** + +Value: `""` + + +## `services.sync.enabled` + +Status: **locked** + +Value: `false` + + +## `services.sync.globalScore` + +Status: **locked** + +Value: `0` + + +## `services.sync.jpake.serverURL` + +Status: **locked** + +Value: `""` + + +## `services.sync.migrated` + +Status: **locked** + +Value: `true` + + +## `services.sync.nextSync` + +Status: **locked** + +Value: `0` + + +## `services.sync.prefs.sync.browser.safebrowsing.downloads.enabled` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.safebrowsing.malware.enabled` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.safebrowsing.passwords.enabled` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.safebrowsing.phishing.enabled` + +Status: **locked** + +Value: `false` + + +## `services.sync.serverURL` + +Status: **locked** + +Value: `""` + + +## `services.sync.tabs.lastSync` + +Status: **locked** + +Value: `"0"` + + +## `services.sync.tabs.lastSyncLocal` + +Status: **locked** + +Value: `"0"` + + +## `sync.enabled` + +Status: **locked** + +Value: `false` + + +## `sync.jpake.serverURL` + +Status: **locked** + +Value: `""` + + +## `sync.serverURL` + +Status: **locked** + +Value: `""` + + +## `toolkit.crashreporter.infoURL` + +Status: **locked** + +Value: `""` + + +## `toolkit.telemetry.archive.enabled` + +Status: **locked** + +Value: `false` + +*Disable telemetry* + + +## `toolkit.telemetry.updatePing.enabled` + +Status: **locked** + +Value: `false` + +*Disable telemetry* + + +## `toolkit.telemetry.bhrPing.enabled` + +Status: **locked** + +Value: `false` + +*Disable telemetry* + + +## `toolkit.telemetry.cachedClientID` + +Status: **locked** + +Value: `""` + + +## `toolkit.telemetry.enabled` + +Status: **locked** + +Value: `false` + +*Disable telemetry* + + +## `toolkit.telemetry.firstShutdownPing.enabled` + +Status: **locked** + +Value: `false` + +*Disable telemetry* + + +## `toolkit.telemetry.hybridContent.enabled` + +Status: **locked** + +Value: `false` + +*Disable telemetry* + + +## `toolkit.telemetry.infoURL` + +Status: **locked** + +Value: `""` + + +## `toolkit.telemetry.newProfilePing.enabled` + +Status: **locked** + +Value: `false` + +*Disable telemetry* + + +## `toolkit.telemetry.previousBuildID` + +Status: **locked** + +Value: `""` + + +## `toolkit.telemetry.prompted` + +Status: **locked** + +Value: `2` + + +## `toolkit.telemetry.rejected` + +Status: **locked** + +Value: `true` + + +## `toolkit.telemetry.reportingpolicy.firstRun` + +Status: **locked** + +Value: `false` + + +## `toolkit.telemetry.server` + +Status: **locked** + +Value: `"data:,"` + + +## `toolkit.telemetry.server_owner` + +Status: **locked** + +Value: `""` + + +## `toolkit.telemetry.shutdownPingSender.enabled` + +Status: **locked** + +Value: `false` + +*Disable telemetry* + + +## `toolkit.telemetry.unified` + +Status: **locked** + +Value: `false` + + +## `toolkit.telemetry.coverage.opt-out` + +Status: **locked** + +Value: `true` + +*Disable telemetry* + + +## `webextensions.storage.sync.serverURL` + +Status: **locked** + +Value: `""` + + +## `extensions.screenshots.upload-disabled` + +Status: **locked** + +Value: `true` + + +## `network.http.referer.trimmingPolicy` + +Status: **locked** + +Value: `0` + +*Referer: ALL: control the amount of information to send* + + +## `browser.tabs.closeTabByDblclick` + +Status: **locked** + +Value: `true` + +*Close tab* + + +## `datareporting.healthreport.uploadEnabled` + +Status: **locked** + +Value: `false` + +*Disable collection/sending of the health report (healthreport.sqlite*)* + + + +### References + +[https://support.mozilla.org/en-US/kb/firefox-health-report-understand-your-browser-perf](https://support.mozilla.org/en-US/kb/firefox-health-report-understand-your-browser-perf) + +[https://gecko.readthedocs.org/en/latest/toolkit/components/telemetry/telemetry/preferences.html](https://gecko.readthedocs.org/en/latest/toolkit/components/telemetry/telemetry/preferences.html) + + +## `datareporting.policy.dataSubmissionEnabled` + +Status: **locked** + +Value: `false` + + +## `dom.event.contextmenu.enabled` + +Status: **locked** + +Value: `false` + +*Disable right-click menu manipulation via JavaScript (disabled)* + + +## `dom.event.clipboardevents.enabled` + +Status: **locked** + +Value: `false` + +*Disable clipboard event detection (onCut/onCopy/onPaste) via Javascript* + + + +### References + +[https://developer.mozilla.org/en-US/docs/Mozilla/Preferences/Preference_reference/dom.event.clipboardevents.enabled](https://developer.mozilla.org/en-US/docs/Mozilla/Preferences/Preference_reference/dom.event.clipboardevents.enabled) + + +## `network.IDN_show_punycode` + +Status: **locked** + +Value: `true` + +*Force Punycode for Internationalized Domain Names* + + + +### References + +[http://kb.mozillazine.org/Network.IDN_show_punycode](http://kb.mozillazine.org/Network.IDN_show_punycode) + +[https://www.xudongz.com/blog/2017/idn-phishing/](https://www.xudongz.com/blog/2017/idn-phishing/) + +[https://wiki.mozilla.org/IDN_Display_Algorithm](https://wiki.mozilla.org/IDN_Display_Algorithm) + +[https://en.wikipedia.org/wiki/IDN_homograph_attack](https://en.wikipedia.org/wiki/IDN_homograph_attack) + +[https://www.mozilla.org/en-US/security/advisories/mfsa2017-02/](https://www.mozilla.org/en-US/security/advisories/mfsa2017-02/) + + +## `extensions.pocket.enabled` + +Status: **locked** + +Value: `false` + +*Disable Pocket* + + + +### References + +[https://support.mozilla.org/en-US/kb/save-web-pages-later-pocket-firefox](https://support.mozilla.org/en-US/kb/save-web-pages-later-pocket-firefox) + +[https://github.com/pyllyukko/user.js/issues/143](https://github.com/pyllyukko/user.js/issues/143) + + +## `extensions.pocket.site` + +Status: **locked** + +Value: `""` + + +## `extensions.pocket.oAuthConsumerKey` + +Status: **locked** + +Value: `""` + + +## `extensions.pocket.api` + +Status: **locked** + +Value: `""` + + +## `browser.aboutHomeSnippets.updateUrl` + +Status: **locked** + +Value: `""` + +*Disable downloading homepage snippets/messages from Mozilla* + + + +### References + +[https://support.mozilla.org/en-US/kb/how-stop-firefox-making-automatic-connections#w_mozilla-content](https://support.mozilla.org/en-US/kb/how-stop-firefox-making-automatic-connections#w_mozilla-content) + +[https://wiki.mozilla.org/Firefox/Projects/Firefox_Start/Snippet_Service](https://wiki.mozilla.org/Firefox/Projects/Firefox_Start/Snippet_Service) + + +## `general.buildID.override` + +Status: **locked** + +Value: `"20100101"` + +*Don't reveal build ID* + + + +### References + +[https://bugzilla.mozilla.org/show_bug.cgi?id=583181](https://bugzilla.mozilla.org/show_bug.cgi?id=583181) + + +## `browser.startup.homepage_override.buildID` + +Status: **locked** + +Value: `"20100101"` + +*Don't reveal build ID* + + + +### References + +[https://bugzilla.mozilla.org/show_bug.cgi?id=583181](https://bugzilla.mozilla.org/show_bug.cgi?id=583181) + + +## `browser.send_pings` + +Status: **locked** + +Value: `false` + +*Disable pinging URIs specified in HTML ping= attributes* + + + +### References + +[http://kb.mozillazine.org/Browser.send_pings](http://kb.mozillazine.org/Browser.send_pings) + + +## `browser.send_pings.require_same_host` + +Status: **locked** + +Value: `true` + +*When browser pings are enabled, only allow pinging the origin page's host* + + + +### References + +[http://kb.mozillazine.org/Browser.send_pings.require_same_host](http://kb.mozillazine.org/Browser.send_pings.require_same_host) + + +## `browser.cache.offline.enable` + +Status: **locked** + +Value: `false` + +*Do not download URLs for the offline cache* + + + +### References + +[http://kb.mozillazine.org/Browser.cache.offline.enable](http://kb.mozillazine.org/Browser.cache.offline.enable) + + +## `network.prefetch-next` + +Status: **locked** + +Value: `false` + +*Disable prefetching of URLs* + + + +### References + +[http://kb.mozillazine.org/Network.prefetch-next](http://kb.mozillazine.org/Network.prefetch-next) + +[https://developer.mozilla.org/en-US/docs/Web/HTTP/Link_prefetching_FAQ#Is_there_a_preference_to_disable_link_prefetching.3F](https://developer.mozilla.org/en-US/docs/Web/HTTP/Link_prefetching_FAQ#Is_there_a_preference_to_disable_link_prefetching.3F) + + +## `network.http.speculative-parallel-limit` + +Status: **locked** + +Value: `0` + +*Disable speculative pre-connections* + + + +### References + +[https://support.mozilla.org/en-US/kb/how-stop-firefox-making-automatic-connections#w_speculative-pre-connections](https://support.mozilla.org/en-US/kb/how-stop-firefox-making-automatic-connections#w_speculative-pre-connections) + +[https://bugzilla.mozilla.org/show_bug.cgi?id=814169](https://bugzilla.mozilla.org/show_bug.cgi?id=814169) + + +## `media.peerconnection.enabled` + +Status: **locked** + +Value: `false` + + +## `dom.enable_performance` + +Status: **locked** + +Value: `false` + + +## `dom.enable_performance_navigation_timing` + +Status: **locked** + +Value: `false` + +*Disable DOM timing API* + + + +### References + +[https://wiki.mozilla.org/Security/Reviews/Firefox/NavigationTimingAPI](https://wiki.mozilla.org/Security/Reviews/Firefox/NavigationTimingAPI) + +[https://www.w3.org/TR/navigation-timing/#privacy](https://www.w3.org/TR/navigation-timing/#privacy) + + +## `dom.enable_user_timing` + +Status: **locked** + +Value: `false` + +*Make sure the User Timing API does not provide a new high resolution timestamp* + + + +### References + +[https://trac.torproject.org/projects/tor/ticket/16336](https://trac.torproject.org/projects/tor/ticket/16336) + +[https://www.w3.org/TR/2013/REC-user-timing-20131212/#privacy-security](https://www.w3.org/TR/2013/REC-user-timing-20131212/#privacy-security) + + +## `dom.webaudio.enabled` + +Status: **locked** + +Value: `false` + +*Disable Web Audio API* + + + +### References + +[https://bugzilla.mozilla.org/show_bug.cgi?id=1288359](https://bugzilla.mozilla.org/show_bug.cgi?id=1288359) + + +## `geo.wifi.logging.enabled` + +Status: **locked** + +Value: `true` + +*When geolocation is enabled, don't log geolocation requests to the console* + + +## `beacon.enabled` + +Status: **locked** + +Value: `false` + +*Disable 'beacon' asynchronous HTTP transfers (used for analytics)* + + + +### References + +[https://developer.mozilla.org/en-US/docs/Web/API/navigator.sendBeacon](https://developer.mozilla.org/en-US/docs/Web/API/navigator.sendBeacon) + + +## `media.webspeech.recognition.enable` + +Status: **locked** + +Value: `false` + +*Disable speech recognition* + + + +### References + +[https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html](https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html) + +[https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition](https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition) + +[https://wiki.mozilla.org/HTML5_Speech_API](https://wiki.mozilla.org/HTML5_Speech_API) + + +## `dom.vr.enabled` + +Status: **locked** + +Value: `false` + +*Disable virtual reality devices APIs* + + + +### References + +[https://developer.mozilla.org/en-US/Firefox/Releases/36#Interfaces.2FAPIs.2FDOM](https://developer.mozilla.org/en-US/Firefox/Releases/36#Interfaces.2FAPIs.2FDOM) + +[https://developer.mozilla.org/en-US/docs/Web/API/WebVR_API≈](https://developer.mozilla.org/en-US/docs/Web/API/WebVR_API≈) + + +## `dom.vibrator.enabled` + +Status: **locked** + +Value: `false` + +*Disable vibrator API* + + +## `browser.search.region` + +Status: **locked** + +Value: `"US"` + +*Disable GeoIP lookup on your address to set default search engine region* + + + +### References + +[https://trac.torproject.org/projects/tor/ticket/16254](https://trac.torproject.org/projects/tor/ticket/16254) + +[https://support.mozilla.org/en-US/kb/how-stop-firefox-making-automatic-connections#w_geolocation-for-default-search-engine](https://support.mozilla.org/en-US/kb/how-stop-firefox-making-automatic-connections#w_geolocation-for-default-search-engine) + + +## `browser.search.geoip.url` + +Status: **locked** + +Value: `""` + + +## `browser.search.geoSpecificDefaults.url` + +Status: **locked** + +Value: `""` + + +## `browser.search.geoSpecificDefaults` + +Status: **locked** + +Value: `false` + +*Don't use Mozilla-provided location-specific search engines* + + +## `browser.urlbar.trimURLs` + +Status: **locked** + +Value: `false` + +*Don't trim HTTP from URLs in the address bar* + + + +### References + +[https://bugzilla.mozilla.org/show_bug.cgi?id=665580](https://bugzilla.mozilla.org/show_bug.cgi?id=665580) + + +## `browser.fixup.alternate.enabled` + +Status: **locked** + +Value: `false` + +*Don't try to guess domain names when entering an invalid domain name in URL bar* + + + +### References + +[http://www-archive.mozilla.org/docs/end-user/domain-guessing.html](http://www-archive.mozilla.org/docs/end-user/domain-guessing.html) + + +## `browser.fixup.hide_user_pass` + +Status: **locked** + +Value: `true` + +*Strip password from 'user:password@...' URLs* + + + +### References + +[https://github.com/pyllyukko/user.js/issues/290#issuecomment-303560851](https://github.com/pyllyukko/user.js/issues/290#issuecomment-303560851) + + +## `network.manage-offline-status` + +Status: **locked** + +Value: `false` + +*Don't monitor OS online/offline connection state* + + + +### References + +[https://trac.torproject.org/projects/tor/ticket/18945](https://trac.torproject.org/projects/tor/ticket/18945) + + +## `security.fileuri.strict_origin_policy` + +Status: **locked** + +Value: `true` + +*Set File URI Origin Policy* + + + +### References + +[http://kb.mozillazine.org/Security.fileuri.strict_origin_policy](http://kb.mozillazine.org/Security.fileuri.strict_origin_policy) + + +## `gfx.font_rendering.opentype_svg.enabled` + +Status: **locked** + +Value: `false` + +*Disable SVG in OpenType fonts* + + + +### References + +[https://wiki.mozilla.org/SVGOpenTypeFonts](https://wiki.mozilla.org/SVGOpenTypeFonts) + +[https://github.com/iSECPartners/publications/tree/master/reports/Tor%20Browser%20Bundle](https://github.com/iSECPartners/publications/tree/master/reports/Tor%20Browser%20Bundle) + + +## `network.protocol-handler.warn-external-default` + +Status: **locked** + +Value: `true` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.external.http` + +Status: **locked** + +Value: `false` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.external.https` + +Status: **locked** + +Value: `false` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.external.javascript` + +Status: **locked** + +Value: `false` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.external.moz-extension` + +Status: **locked** + +Value: `false` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.external.ftp` + +Status: **locked** + +Value: `false` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.external.file` + +Status: **locked** + +Value: `false` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.external.about` + +Status: **locked** + +Value: `false` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.external.chrome` + +Status: **locked** + +Value: `false` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.external.blob` + +Status: **locked** + +Value: `false` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.external.data` + +Status: **locked** + +Value: `false` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.expose-all` + +Status: **locked** + +Value: `false` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.expose.http` + +Status: **locked** + +Value: `true` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.expose.https` + +Status: **locked** + +Value: `true` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.expose.javascript` + +Status: **locked** + +Value: `true` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.expose.moz-extension` + +Status: **locked** + +Value: `true` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.expose.ftp` + +Status: **locked** + +Value: `true` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.expose.file` + +Status: **locked** + +Value: `true` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.expose.about` + +Status: **locked** + +Value: `true` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.expose.chrome` + +Status: **locked** + +Value: `true` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.expose.blob` + +Status: **locked** + +Value: `true` + +*Enable only whitelisted URL protocol handlers* + + +## `network.protocol-handler.expose.data` + +Status: **locked** + +Value: `true` + +*Enable only whitelisted URL protocol handlers* + + +## `security.dialog_enable_delay` + +Status: **locked** + +Value: `700` + +*Ensure there is a security delay when installing add-ons (milliseconds)* + + + +### References + +[http://kb.mozillazine.org/Disable_extension_install_delay_-_Firefox](http://kb.mozillazine.org/Disable_extension_install_delay_-_Firefox) + +[http://www.squarefree.com/2004/07/01/race-conditions-in-security-dialogs/](http://www.squarefree.com/2004/07/01/race-conditions-in-security-dialogs/) + + +## `extensions.getAddons.cache.enabled` + +Status: **unlocked** + +Value: `false` + +*Opt-out of add-on metadata updates* + + + +### References + +[https://blog.mozilla.org/addons/how-to-opt-out-of-add-on-metadata-updates/](https://blog.mozilla.org/addons/how-to-opt-out-of-add-on-metadata-updates/) + + +## `lightweightThemes.update.enabled` + +Status: **locked** + +Value: `false` + +*Opt-out of theme (Persona) updates* + + + +### References + +[https://support.mozilla.org/t5/Firefox/how-do-I-prevent-autoamtic-updates-in-a-50-user-environment/td-p/144287](https://support.mozilla.org/t5/Firefox/how-do-I-prevent-autoamtic-updates-in-a-50-user-environment/td-p/144287) + + +## `lightweightThemes.persisted.headerURL` + +Status: **locked** + +Value: `false` + + +## `lightweightThemes.persisted.footerURL` + +Status: **locked** + +Value: `false` + + +## `plugin.state.flash` + +Status: **locked** + +Value: `0` + +*Disable Flash Player NPAPI plugin* + + + +### References + +[http://kb.mozillazine.org/Flash_plugin](http://kb.mozillazine.org/Flash_plugin) + + +## `dom.ipc.plugins.flash.subprocess.crashreporter.enabled` + +Status: **locked** + +Value: `false` + +*Disable sending Flash Player crash reports* + + +## `dom.ipc.plugins.reportCrashURL` + +Status: **locked** + +Value: `false` + +*When Flash Player crash reports are enabled, don't send the visited URL in the crash report* + + +## `shumway.disabled` + +Status: **locked** + +Value: `true` + +*Disable Shumway (Mozilla Flash renderer)* + + + +### References + +[https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Shumway](https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Shumway) + + +## `plugin.state.libgnome-shell-browser-plugin` + +Status: **locked** + +Value: `0` + +*Disable Gnome Shell Integration NPAPI plugin* + + +## `plugins.click_to_play` + +Status: **locked** + +Value: `true` + +*Enable click-to-play plugin* + + + +### References + +[https://wiki.mozilla.org/Firefox/Click_To_Play](https://wiki.mozilla.org/Firefox/Click_To_Play) + +[https://blog.mozilla.org/security/2012/10/11/click-to-play-plugins-blocklist-style/](https://blog.mozilla.org/security/2012/10/11/click-to-play-plugins-blocklist-style/) + + +## `plugin.sessionPermissionNow.intervalInMinutes` + +Status: **locked** + +Value: `0` + + +## `extensions.update.enabled` + +Status: **unlocked** + +Value: `false` + +*Update addons automatically* + + + +### References + +[https://blog.mozilla.org/addons/how-to-turn-off-add-on-updates/](https://blog.mozilla.org/addons/how-to-turn-off-add-on-updates/) + + +## `extensions.blocklist.enabled` + +Status: **locked** + +Value: `false` + +*Enable add-on and certificate blocklists (OneCRL) from Mozilla* + + +## `extensions.systemAddon.update.enabled` + +Status: **locked** + +Value: `false` + +*Disable system add-on updates (hidden & always-enabled add-ons from Mozilla)* + + +## `devtools.webide.enabled` + +Status: **locked** + +Value: `false` + +*Disable WebIDE Web Debug* + + + +### References + +[https://trac.torproject.org/projects/tor/ticket/16222](https://trac.torproject.org/projects/tor/ticket/16222) + +[https://developer.mozilla.org/docs/Tools/WebIDE](https://developer.mozilla.org/docs/Tools/WebIDE) + + +## `devtools.webide.autoinstallADBExtension` + +Status: **locked** + +Value: `false` + + +## `devtools.remote.adb.extensionURL` + +Status: **locked** + +Value: `""` + + +## `devtools.remote.adb.extensionID` + +Status: **locked** + +Value: `""` + + +## `devtools.debugger.force-local` + +Status: **locked** + +Value: `true` + +*Disable remote debugging* + + + +### References + +[https://developer.mozilla.org/en-US/docs/Tools/Remote_Debugging/Debugging_Firefox_Desktop](https://developer.mozilla.org/en-US/docs/Tools/Remote_Debugging/Debugging_Firefox_Desktop) + +[https://developer.mozilla.org/en-US/docs/Tools/Tools_Toolbox#Advanced_settings](https://developer.mozilla.org/en-US/docs/Tools/Tools_Toolbox#Advanced_settings) + + +## `network.allow-experiments` + +Status: **locked** + +Value: `false` + +*Disallow Necko to do A/B testing* + + + +### References + +[https://trac.torproject.org/projects/tor/ticket/13170](https://trac.torproject.org/projects/tor/ticket/13170) + + +## `browser.tabs.crashReporting.sendReport` + +Status: **locked** + +Value: `false` + +*Disable sending reports of tab crashes to Mozilla (about:tabcrashed)* + + + +### References + +[https://hg.mozilla.org/mozilla-central/file/tip/browser/app/profile/firefox.js](https://hg.mozilla.org/mozilla-central/file/tip/browser/app/profile/firefox.js) + + +## `browser.crashReports.unsubmittedCheck.enabled` + +Status: **locked** + +Value: `false` + +*Don't nag user about unsent crash reports* + + +## `browser.crashReports.unsubmittedCheck.autoSubmit2` + +Status: **locked** + +Value: `false` + + +## `app.shield.optoutstudies.enabled` + +Status: **locked** + +Value: `false` + +*Disable SHIELD* + + + +### References + +[https://support.mozilla.org/en-US/kb/shield](https://support.mozilla.org/en-US/kb/shield) + +[https://bugzilla.mozilla.org/show_bug.cgi?id=1370801](https://bugzilla.mozilla.org/show_bug.cgi?id=1370801) + + +## `browser.newtabpage.activity-stream.feeds.section.topstories` + +Status: **locked** + +Value: `false` + + +## `browser.newtabpage.activity-stream.section.highlights.includePocket` + +Status: **locked** + +Value: `false` + + +## `browser.newtabpage.activity-stream.showSponsored` + +Status: **locked** + +Value: `false` + + +## `browser.newtabpage.activity-stream.aboutHome.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.newtabpage.activity-stream.asrouter.messageProviders` + +Status: **locked** + +Value: `""` + + +## `browser.newtabpage.activity-stream.asrouter.devtoolsEnableds` + +Status: **locked** + +Value: `true` + + +## `browser.newtabpage.activity-stream.telemetry` + +Status: **locked** + +Value: `false` + + +## `browser.newtabpage.activity-stream.telemetry.ping.endpoint` + +Status: **locked** + +Value: `""` + + +## `browser.newtabpage.activity-stream.feeds.telemetry` + +Status: **locked** + +Value: `false` + + +## `browser.newtabpage.activity-stream.feeds.snippets` + +Status: **locked** + +Value: `false` + + +## `browser.newtabpage.activity-stream.disableSnippets` + +Status: **locked** + +Value: `true` + + +## `browser.newtabpage.activity-stream.default.sites` + +Status: **locked** + +Value: `""` + + +## `browser.newtabpage.activity-stream.discoverystream.config` + +Status: **locked** + +Value: `""` + + +## `browser.newtabpage.activity-stream.discoverystream.endpoints` + +Status: **locked** + +Value: `""` + + +## `browser.newtabpage.activity-stream.feeds.asrouterfeed` + +Status: **locked** + +Value: `false` + + +## `browser.newtabpage.activity-stream.feeds.discoverystreamfeed` + +Status: **locked** + +Value: `false` + + +## `browser.newtabpage.activity-stream.feeds.newtabinit` + +Status: **locked** + +Value: `false` + + +## `browser.newtabpage.activity-stream.feeds.places` + +Status: **locked** + +Value: `false` + + +## `browser.newtabpage.activity-stream.feeds.systemtick` + +Status: **locked** + +Value: `false` + + +## `browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar` + +Status: **locked** + +Value: `false` + + +## `browser.newtab.preload` + +Status: **locked** + +Value: `false` + + +## `browser.urlbar.suggest.searches` + +Status: **locked** + +Value: `false` + +*Disable 'Show search suggestions in location bar results'* + + +## `browser.urlbar.userMadeSearchSuggestionsChoice` + +Status: **locked** + +Value: `true` + +*Disable 'Show search suggestions in location bar results'* + + +## `browser.search.update` + +Status: **locked** + +Value: `false` + +*Never check for updates to search engines* + + + +### References + +[https://support.mozilla.org/en-US/kb/how-stop-firefox-making-automatic-connections#w_auto-update-checking](https://support.mozilla.org/en-US/kb/how-stop-firefox-making-automatic-connections#w_auto-update-checking) + + +## `network.captive-portal-service.enabled` + +Status: **locked** + +Value: `false` + +*Disable automatic captive portal detection* + + + +### References + +[https://support.mozilla.org/en-US/questions/1157121](https://support.mozilla.org/en-US/questions/1157121) + + +## `network.negotiate-auth.allow-insecure-ntlm-v1` + +Status: **locked** + +Value: `false` + +*Disallow NTLMv1* + + +## `network.negotiate-auth.allow-insecure-ntlm-v1-https` + +Status: **locked** + +Value: `false` + +*Disallow NTLMv1 over HTTPS too* + + + +### References + +[https://bugzilla.mozilla.org/show_bug.cgi?id=828183](https://bugzilla.mozilla.org/show_bug.cgi?id=828183) + + +## `signon.formlessCapture.enabled` + +Status: **locked** + +Value: `false` + +*Disable formless login capture* + + + +### References + +[https://bugzilla.mozilla.org/show_bug.cgi?id=1166947](https://bugzilla.mozilla.org/show_bug.cgi?id=1166947) + + +## `browser.helperApps.deleteTempFileOnExit` + +Status: **locked** + +Value: `true` + +*Delete temporary files on exit* + + + +### References + +[https://bugzilla.mozilla.org/show_bug.cgi?id=238789](https://bugzilla.mozilla.org/show_bug.cgi?id=238789) + + +## `browser.pagethumbnails.capturing_disabled` + +Status: **locked** + +Value: `true` + +*Do not create screenshots of visited pages (relates to the 'new tab page' feature)* + + + +### References + +[https://support.mozilla.org/en-US/questions/973320](https://support.mozilla.org/en-US/questions/973320) + +[https://developer.mozilla.org/en-US/docs/Mozilla/Preferences/Preference_reference/browser.pagethumbnails.capturing_disabled](https://developer.mozilla.org/en-US/docs/Mozilla/Preferences/Preference_reference/browser.pagethumbnails.capturing_disabled) + + diff --git a/dist/docs/settings/ghacks-user.md b/dist/docs/settings/ghacks-user.md new file mode 100644 index 0000000..28b6560 --- /dev/null +++ b/dist/docs/settings/ghacks-user.md @@ -0,0 +1,439 @@ +--- +title: ghacks user.js +--- + + +## `toolkit.coverage.endpoint.base` + +Status: **locked** + +Value: `""` + + +## `toolkit.coverage.opt-out` + +Status: **locked** + +Value: `true` + + +## `browser.download.manager.addToRecentDocs` + +Status: **locked** + +Value: `false` + + +## `browser.download.hide_plugins_without_extensions` + +Status: **locked** + +Value: `false` + + +## `webchannel.allowObject.urlWhitelist` + +Status: **locked** + +Value: `""` + + +## `browser.cache.offline.insecure.enable` + +Status: **locked** + +Value: `false` + + +## `network.http.redirection-limit` + +Status: **locked** + +Value: `10` + + +## `offline-apps.allow_by_default` + +Status: **locked** + +Value: `false` + + +## `extensions.enabledScopes` + +Status: **locked** + +Value: `5` + + +## `extensions.autoDisableScopes` + +Status: **locked** + +Value: `11` + + +## `xpinstall.whitelist.required` + +Status: **locked** + +Value: `true` + + +## `dom.push.enabled` + +Status: **locked** + +Value: `false` + + +## `dom.push.connection.enabled` + +Status: **locked** + +Value: `false` + + +## `dom.push.serverURL` + +Status: **locked** + +Value: `""` + + +## `dom.push.userAgentID` + +Status: **locked** + +Value: `""` + + +## `security.data_uri.block_toplevel_data_uri_navigations` + +Status: **locked** + +Value: `true` + + +## `ui.use_standins_for_native_colors` + +Status: **locked** + +Value: `true` + + +## `services.blocklist.onecrl.collection` + +Status: **locked** + +Value: `""` + + +## `services.blocklist.addons.collection` + +Status: **locked** + +Value: `""` + + +## `services.blocklist.plugins.collection` + +Status: **locked** + +Value: `""` + + +## `services.blocklist.gfx.collection` + +Status: **locked** + +Value: `""` + + +## `browser.startup.blankWindow` + +Status: **locked** + +Value: `false` + + +## `dom.event.highrestimestamp.enabled` + +Status: **locked** + +Value: `true` + + +## `privacy.trackingprotection.introURL` + +Status: **locked** + +Value: `""` + + +## `network.http.altsvc.enabled` + +Status: **locked** + +Value: `false` + + +## `network.http.altsvc.oe` + +Status: **locked** + +Value: `false` + + +## `network.file.disable_unc_paths` + +Status: **locked** + +Value: `true` + + +## `network.gio.supported-protocols` + +Status: **locked** + +Value: `""` + + +## `browser.urlbar.usepreloadedtopurls.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.urlbar.speculativeConnect.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.urlbar.oneOffSearches` + +Status: **locked** + +Value: `false` + + +## `network.auth.subresource-img-cross-origin-http-auth-allow` + +Status: **locked** + +Value: `false` + + +## `browser.shell.shortcutFavicons` + +Status: **locked** + +Value: `false` + + +## `alerts.showFavicons` + +Status: **locked** + +Value: `false` + + +## `security.ssl.require_safe_negotiation` + +Status: **locked** + +Value: `true` + + +## `security.tls.enable_0rtt_data` + +Status: **locked** + +Value: `false` + + +## `browser.xul.error_pages.expert_bad_cert` + +Status: **locked** + +Value: `true` + + +## `font.blacklist.underline_offset` + +Status: **locked** + +Value: `""` + + +## `gfx.font_rendering.graphite.enabled` + +Status: **locked** + +Value: `false` + + +## `network.http.referer.XOriginTrimmingPolicy` + +Status: **locked** + +Value: `0` + + +## `network.http.referer.spoofSource` + +Status: **locked** + +Value: `false` + + +## `plugin.default.state` + +Status: **locked** + +Value: `1` + + +## `plugin.defaultXpi.state` + +Status: **locked** + +Value: `1` + + +## `canvas.capturestream.enabled` + +Status: **locked** + +Value: `false` + + +## `dom.imagecapture.enabled` + +Status: **locked** + +Value: `false` + + +## `gfx.offscreencanvas.enabled` + +Status: **locked** + +Value: `false` + + +## `dom.disable_window_open_feature.close` + +Status: **locked** + +Value: `true` + + +## `dom.disable_window_open_feature.location` + +Status: **locked** + +Value: `true` + + +## `dom.disable_window_open_feature.menubar` + +Status: **locked** + +Value: `true` + + +## `dom.disable_window_open_feature.minimizable` + +Status: **locked** + +Value: `true` + + +## `dom.disable_window_open_feature.personalbar` + +Status: **locked** + +Value: `true` + + +## `dom.disable_window_open_feature.resizable` + +Status: **locked** + +Value: `true` + + +## `dom.disable_window_open_feature.status` + +Status: **locked** + +Value: `true` + + +## `dom.disable_window_open_feature.titlebar` + +Status: **locked** + +Value: `true` + + +## `dom.disable_window_open_feature.toolbar` + +Status: **locked** + +Value: `true` + + +## `dom.disable_window_move_resize` + +Status: **locked** + +Value: `true` + + +## `dom.IntersectionObserver.enabled` + +Status: **locked** + +Value: `false` + + +## `accessibility.force_disabled` + +Status: **locked** + +Value: `1` + + +## `browser.uitour.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.uitour.url` + +Status: **locked** + +Value: `""` + + +## `middlemouse.contentLoadURL` + +Status: **locked** + +Value: `false` + + +## `permissions.manager.defaultsUrl` + +Status: **locked** + +Value: `""` + + diff --git a/dist/docs/settings/ijwytsu.md b/dist/docs/settings/ijwytsu.md new file mode 100644 index 0000000..9bd2d54 --- /dev/null +++ b/dist/docs/settings/ijwytsu.md @@ -0,0 +1,1111 @@ +--- +title: Ijwytsu – I just want you to shut up +--- + + +## `devtools.performance.recording.ui-base-url` + +Status: **locked** + +Value: `""` + + +## `gecko.handlerService.schemes.irc.0.uriTemplate` + +Status: **locked** + +Value: `""` + + +## `gecko.handlerService.schemes.ircs.0.uriTemplate` + +Status: **locked** + +Value: `""` + + +## `toolkit.coverage.enabled` + +Status: **locked** + +Value: `false` + + +## `extensions.webapi.testing` + +Status: **locked** + +Value: `false` + + +## `browser.newtabpage.activity-stream.asrouter.userprefs.cfr` + +Status: **locked** + +Value: `false` + + +## `extensions.htmlaboutaddons.recommendations.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.newtabpage.activity-stream.asrouter.providers.cfr` + +Status: **locked** + +Value: `""` + + +## `browser.newtabpage.activity-stream.asrouter.providers.cfr-fxa` + +Status: **locked** + +Value: `""` + + +## `browser.newtabpage.activity-stream.asrouter.providers.onboarding` + +Status: **locked** + +Value: `""` + + +## `browser.newtabpage.activity-stream.asrouter.providers.snippets` + +Status: **locked** + +Value: `""` + + +## `browser.onboarding.notification.tour-ids-queue` + +Status: **locked** + +Value: `""` + + +## `lightweightThemes.getMoreURL` + +Status: **locked** + +Value: `""` + + +## `devtools.gcli.lodashSrc` + +Status: **locked** + +Value: `""` + + +## `media.decoder-doctor.new-issue-endpoint` + +Status: **locked** + +Value: `""` + + +## `identity.sync.tokenserver.uri` + +Status: **locked** + +Value: `""` + + +## `devtools.webide.templatesURL` + +Status: **locked** + +Value: `""` + + +## `browser.ping-centre.production.endpoint` + +Status: **locked** + +Value: `""` + + +## `browser.translation.engine` + +Status: **locked** + +Value: `""` + + +## `network.trr.confirmationNS` + +Status: **locked** + +Value: `""` + + +## `gecko.handlerService.schemes.mailto.1.name` + +Status: **locked** + +Value: `""` + + +## `gecko.handlerService.schemes.irc.0.name` + +Status: **locked** + +Value: `""` + + +## `gecko.handlerService.schemes.ircs.0.name` + +Status: **locked** + +Value: `""` + + +## `gecko.handlerService.schemes.mailto.0.name` + +Status: **locked** + +Value: `""` + + +## `services.sync.lastversion` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.mozilla.lists.base` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.mozilla.lists.content` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google.advisoryName` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.google4.advisoryName` + +Status: **locked** + +Value: `""` + + +## `browser.safebrowsing.provider.mozilla.lists` + +Status: **locked** + +Value: `""` + + +## `identity.fxaccounts.remote.root` + +Status: **locked** + +Value: `""` + + +## `services.settings.server` + +Status: **locked** + +Value: `""` + + +## `services.sync.fxa.privacyURL` + +Status: **locked** + +Value: `""` + + +## `services.sync.fxa.termsURL` + +Status: **locked** + +Value: `""` + + +## `services.blocklist.addons.signer` + +Status: **locked** + +Value: `""` + + +## `services.blocklist.gfx.signer` + +Status: **locked** + +Value: `""` + + +## `services.blocklist.onecrl.signer` + +Status: **locked** + +Value: `""` + + +## `services.blocklist.pinning.signer` + +Status: **locked** + +Value: `""` + + +## `services.blocklist.plugins.signer` + +Status: **locked** + +Value: `""` + + +## `services.settings.default_signer` + +Status: **locked** + +Value: `""` + + +## `accessibility.support.url` + +Status: **locked** + +Value: `""` + + +## `app.normandy.shieldLearnMoreUrl` + +Status: **locked** + +Value: `""` + + +## `app.productInfo.baseURL` + +Status: **locked** + +Value: `""` + + +## `app.support.baseURL` + +Status: **locked** + +Value: `""` + + +## `browser.chrome.errorReporter.infoURL` + +Status: **locked** + +Value: `""` + + +## `browser.dictionaries.download.url` + +Status: **locked** + +Value: `""` + + +## `browser.geolocation.warning.infoURL` + +Status: **locked** + +Value: `""` + + +## `browser.search.searchEnginesURL` + +Status: **locked** + +Value: `""` + + +## `browser.uitour.themeOrigin` + +Status: **locked** + +Value: `""` + + +## `devtools.webide.adbAddonURL` + +Status: **locked** + +Value: `""` + + +## `extensions.getAddons.compatOverides.url` + +Status: **locked** + +Value: `""` + + +## `extensions.getAddons.get.url` + +Status: **unlocked** + +Value: `""` + + +## `extensions.getAddons.langpacks.url` + +Status: **unlocked** + +Value: `""` + + +## `extensions.getAddons.link.url` + +Status: **unlocked** + +Value: `""` + + +## `extensions.getAddons.search.browseURL` + +Status: **unlocked** + +Value: `""` + + +## `extensions.getAddons.themes.browseURL` + +Status: **locked** + +Value: `""` + + +## `services.sync.addons.trustedSourceHostnames` + +Status: **locked** + +Value: `""` + + +## `toolkit.datacollection.infoURL` + +Status: **locked** + +Value: `""` + + +## `xpinstall.signatures.devInfoURL` + +Status: **locked** + +Value: `""` + + +## `browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.searchEngines` + +Status: **locked** + +Value: `""` + + +## `browser.newtabpage.activity-stream.fxaccounts.endpoint` + +Status: **locked** + +Value: `""` + + +## `extensions.update.url` + +Status: **unlocked** + +Value: `""` + + +## `browser.newtabpage.activity-stream.feeds.section.topstories.options` + +Status: **locked** + +Value: `""` + + +## `lightweightThemes.recommendedThemes` + +Status: **locked** + +Value: `""` + + +## `services.sync.maxResyncs` + +Status: **locked** + +Value: `0` + + +## `services.sync.telemetry.maxPayloadCount` + +Status: **locked** + +Value: `0` + + +## `services.sync.addons.ignoreUserEnabledChanges` + +Status: **locked** + +Value: `true` + + +## `services.sync.engine.addons` + +Status: **locked** + +Value: `false` + + +## `services.sync.engine.addresses` + +Status: **locked** + +Value: `false` + + +## `services.sync.engine.bookmarks` + +Status: **locked** + +Value: `false` + + +## `services.sync.engine.bookmarks.buffer` + +Status: **locked** + +Value: `false` + + +## `services.sync.engine.creditcards` + +Status: **locked** + +Value: `false` + + +## `services.sync.engine.creditcards.available` + +Status: **locked** + +Value: `false` + + +## `services.sync.engine.history` + +Status: **locked** + +Value: `false` + + +## `services.sync.engine.passwords` + +Status: **locked** + +Value: `false` + + +## `services.sync.engine.prefs` + +Status: **locked** + +Value: `false` + + +## `services.sync.engine.tabs` + +Status: **locked** + +Value: `false` + + +## `services.sync.log.appender.file.logOnError` + +Status: **locked** + +Value: `false` + + +## `services.sync.log.appender.file.logOnSuccess` + +Status: **locked** + +Value: `false` + + +## `services.sync.log.cryptoDebug` + +Status: **locked** + +Value: `false` + + +## `services.sync.sendVersionInfo` + +Status: **locked** + +Value: `false` + + +## `services.sync.syncedTabs.showRemoteIcons` + +Status: **locked** + +Value: `true` + + +## `services.sync.prefs.sync.accessibility.blockautorefresh` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.accessibility.browsewithcaret` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.accessibility.typeaheadfind` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.accessibility.typeaheadfind.linksonly` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.addons.ignoreUserEnabledChanges` + +Status: **locked** + +Value: `true` + + +## `services.sync.prefs.sync.browser.contentblocking.enabled` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.ctrlTab.recentlyUsedOrder` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.download.useDownloadDir` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.formfill.enable` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.link.open_newwindow` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.newtabpage.enabled` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.newtabpage.pinned` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includePocket` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includeVisited` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includeBookmarks` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.offline-apps.notify` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.search.update` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.sessionstore.restore_on_demand` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.startup.homepage` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.startup.page` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.tabs.loadInBackground` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.tabs.warnOnClose` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.tabs.warnOnOpen` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.urlbar.autocomplete.enabled` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.urlbar.matchBuckets` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.urlbar.maxRichResults` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.urlbar.suggest.bookmark` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.urlbar.suggest.history` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.urlbar.suggest.history.onlyTyped` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.urlbar.suggest.openpage` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.browser.urlbar.suggest.searches` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.dom.disable_open_during_load` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.dom.disable_window_flip` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.dom.disable_window_move_resize` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.dom.event.contextmenu.enabled` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.extensions.personas.current` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.extensions.update.enabled` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.intl.accept_languages` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.layout.spellcheckDefault` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.lightweightThemes.selectedThemeID` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.lightweightThemes.usedThemes` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.network.cookie.cookieBehavior` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.network.cookie.lifetimePolicy` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.network.cookie.thirdparty.sessionOnly` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.permissions.default.image` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.pref.advanced.images.disable_button.view_image` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.pref.advanced.javascript.disable_button.advanced` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.pref.downloads.disable_button.edit_actions` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.pref.privacy.disable_button.cookie_exceptions` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.privacy.clearOnShutdown.cache` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.privacy.clearOnShutdown.cookies` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.privacy.clearOnShutdown.downloads` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.privacy.clearOnShutdown.formdata` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.privacy.clearOnShutdown.history` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.privacy.clearOnShutdown.offlineApps` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.privacy.clearOnShutdown.sessions` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.privacy.clearOnShutdown.siteSettings` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.privacy.donottrackheader.enabled` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.privacy.reduceTimerPrecision` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.privacy.resistFingerprinting` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.privacy.resistFingerprinting.reduceTimerPrecision.jitter` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.privacy.resistFingerprinting.reduceTimerPrecision.microseconds` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.privacy.sanitize.sanitizeOnShutdown` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.privacy.trackingprotection.enabled` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.privacy.trackingprotection.pbmode.enabled` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.security.OCSP.enabled` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.security.OCSP.require` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.security.default_personal_cert` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.security.tls.version.max` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.security.tls.version.min` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.services.sync.syncedTabs.showRemoteIcons` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.spellchecker.dictionary` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.xpinstall.whitelist.required` + +Status: **locked** + +Value: `false` + + +## `browser.chrome.errorReporter.publicKey` + +Status: **locked** + +Value: `""` + + +## `prio.publicKeyA` + +Status: **locked** + +Value: `""` + + +## `prio.publicKeyB` + +Status: **locked** + +Value: `""` + + diff --git a/dist/docs/settings/locale-time-ua.md b/dist/docs/settings/locale-time-ua.md new file mode 100644 index 0000000..67408a0 --- /dev/null +++ b/dist/docs/settings/locale-time-ua.md @@ -0,0 +1,68 @@ +--- +title: Locale, Time, UA +--- + + +## `dom.forms.datetime` + +Status: **locked** + +Value: `false` + + +## `javascript.use_us_english_locale` + +Status: **locked** + +Value: `true` + + +## `intl.regional_prefs.use_os_locales` + +Status: **locked** + +Value: `false` + + +## `intl.locale.requested` + +Status: **unlocked** + +Value: `"en-US"` + + +## `general.useragent.override` + +Status: **unlocked** + +Value: `"Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Firefox/45.0, 45"` + + +## `general.appname.override` + +Status: **unlocked** + +Value: `"Netscape"` + + +## `general.appversion.override` + +Status: **unlocked** + +Value: `"5.0 (Windows)"` + + +## `general.platform.override` + +Status: **unlocked** + +Value: `"Win32"` + + +## `general.oscpu.override` + +Status: **unlocked** + +Value: `"Windows NT 6.1"` + + diff --git a/dist/docs/settings/performance.md b/dist/docs/settings/performance.md new file mode 100644 index 0000000..f47eaa5 --- /dev/null +++ b/dist/docs/settings/performance.md @@ -0,0 +1,268 @@ +--- +title: Performance +--- + + +## `layout.frame_rate.precise` + +Status: **unlocked** + +Value: `true` + +*Increases animation speed* + + +## `webgl.force-enabled` + +Status: **unlocked** + +Value: `true` + +*Enable Hardware Acceleration and Off Main Thread Compositing (OMTC)* + + +## `layers.acceleration.force-enabled` + +Status: **unlocked** + +Value: `true` + +*Enable Hardware Acceleration and Off Main Thread Compositing (OMTC)* + + +## `gfx.direct2d.disabled` + +Status: **unlocked** + +Value: `false` + +*Disable hardware acceleration to reduce graphics fingerprinting* + + + +### References + +[https://wiki.mozilla.org/Platform/GFX/HardwareAcceleration](https://wiki.mozilla.org/Platform/GFX/HardwareAcceleration) + + +## `layers.acceleration.disabled` + +Status: **unlocked** + +Value: `false` + +*Disable hardware acceleration to reduce graphics fingerprinting* + + + +### References + +[https://wiki.mozilla.org/Platform/GFX/HardwareAcceleration](https://wiki.mozilla.org/Platform/GFX/HardwareAcceleration) + + +## `html5.offmainthread` + +Status: **unlocked** + +Value: `true` + + +## `layers.offmainthreadcomposition.enabled` + +Status: **unlocked** + +Value: `true` + + +## `layers.offmainthreadcomposition.async-animations` + +Status: **unlocked** + +Value: `true` + + +## `layers.async-video.enabled` + +Status: **unlocked** + +Value: `true` + + +## `browser.tabs.animate` + +Status: **unlocked** + +Value: `false` + + +## `browser.download.animateNotifications` + +**Unused Setting** + +Status: **unlocked** + +Value: `false` + + +## `dom.maxHardwareConcurrency` + +**Unused Setting** + +Status: **unlocked** + +Value: `8` + +*Spoof CPU Core Def 16* + + +## `javascript.options.mem.high_water_mark` + +**Unused Setting** + +Status: **locked** + +Value: `96` + +*Tell garbage collector to start running when javascript is using xx MB of memory.* + + +## `javascript.options.wasm` + +**Unused Setting** + +Status: **locked** + +Value: `false` + +*Disable WebAssembly* + + + +### References + +[https://webassembly.org/](https://webassembly.org/) + +[https://en.wikipedia.org/wiki/WebAssembly](https://en.wikipedia.org/wiki/WebAssembly) + +[https://trac.torproject.org/projects/tor/ticket/21549](https://trac.torproject.org/projects/tor/ticket/21549) + + +## `browser.display.use_document_fonts` + +**Unused Setting** + +Status: **locked** + +Value: `0` + +*Prevent font fingerprinting* + + + +### References + +[https://browserleaks.com/fonts](https://browserleaks.com/fonts) + +[https://github.com/pyllyukko/user.js/issues/120](https://github.com/pyllyukko/user.js/issues/120) + + +## `webgl.disabled` + +Status: **unlocked** + +Value: `false` + + +## `webgl.enable-webgl2` + +Status: **locked** + +Value: `false` + +*This prevents WebGL data leaks* + + +## `webgl.min_capability_mode` + +Status: **locked** + +Value: `true` + +*This prevents WebGL data leaks* + + +## `pdfjs.enableWebGL` + +Status: **locked** + +Value: `false` + + +## `webgl.disable-extensions` + +Status: **locked** + +Value: `true` + + +## `webgl.disable-fail-if-major-performance-caveat` + +Status: **locked** + +Value: `true` + + +## `webgl.enable-debug-renderer-info` + +Status: **locked** + +Value: `false` + + +## `javascript.options.asmjs` + +**Unused Setting** + +Status: **locked** + +Value: `false` + +*Disable asm.js* + + + +### References + +[http://asmjs.org/](http://asmjs.org/) + +[https://www.mozilla.org/en-US/security/advisories/mfsa2015-29/](https://www.mozilla.org/en-US/security/advisories/mfsa2015-29/) + +[https://www.mozilla.org/en-US/security/advisories/mfsa2015-50/](https://www.mozilla.org/en-US/security/advisories/mfsa2015-50/) + +[https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-2712](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-2712) + + +## `javascript.options.shared_memory` + +Status: **locked** + +Value: `false` + +*JS Shared Memory* + + + +### References + +[https://github.com/MrAlex94/Waterfox/issues/356](https://github.com/MrAlex94/Waterfox/issues/356) + + +## `dom.serviceWorkers.enabled` + +Status: **locked** + +Value: `false` + +*Disable service workers* + + diff --git a/dist/docs/settings/protection.md b/dist/docs/settings/protection.md new file mode 100644 index 0000000..78dfbba --- /dev/null +++ b/dist/docs/settings/protection.md @@ -0,0 +1,12 @@ +--- +title: Protection +--- + + +## `general.config.filename` + +Status: **locked** + +Value: `"librewolf.cfg"` + + diff --git a/dist/docs/settings/security.md b/dist/docs/settings/security.md new file mode 100644 index 0000000..20f8fd3 --- /dev/null +++ b/dist/docs/settings/security.md @@ -0,0 +1,387 @@ +--- +title: Security +--- + + +## `security.insecure_password.ui.enabled` + +Status: **locked** + +Value: `true` + +*Enable insecure password warnings (login forms in non-HTTPS pages)* + + + +### References + +[https://blog.mozilla.org/tanvi/2016/01/28/no-more-passwords-over-http-please/](https://blog.mozilla.org/tanvi/2016/01/28/no-more-passwords-over-http-please/) + +[https://bugzilla.mozilla.org/show_bug.cgi?id=1319119](https://bugzilla.mozilla.org/show_bug.cgi?id=1319119) + +[https://bugzilla.mozilla.org/show_bug.cgi?id=1217156](https://bugzilla.mozilla.org/show_bug.cgi?id=1217156) + + +## `security.insecure_field_warning.contextual.enabled` + +Status: **locked** + +Value: `true` + +*Show in-content login form warning UI for insecure login fields* + + + +### References + +[https://hg.mozilla.org/integration/mozilla-inbound/rev/f0d146fe7317](https://hg.mozilla.org/integration/mozilla-inbound/rev/f0d146fe7317) + + +## `network.stricttransportsecurity.preloadlist` + +Status: **locked** + +Value: `false` + +*Disable HSTS preload list (pre-set HSTS sites list provided by Mozilla)* + + + +### References + +[https://blog.mozilla.org/security/2012/11/01/preloading-hsts/](https://blog.mozilla.org/security/2012/11/01/preloading-hsts/) + +[https://wiki.mozilla.org/Privacy/Features/HSTS_Preload_List](https://wiki.mozilla.org/Privacy/Features/HSTS_Preload_List) + +[https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security](https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security) + + +## `security.ssl.disable_session_identifiers` + +Status: **locked** + +Value: `true` + +*Disable TLS Session Tickets* + + + +### References + +[https://www.blackhat.com/us-13/briefings.html#NextGen](https://www.blackhat.com/us-13/briefings.html#NextGen) + +[https://media.blackhat.com/us-13/US-13-Daigniere-TLS-Secrets-Slides.pdf](https://media.blackhat.com/us-13/US-13-Daigniere-TLS-Secrets-Slides.pdf) + +[https://media.blackhat.com/us-13/US-13-Daigniere-TLS-Secrets-WP.pdf](https://media.blackhat.com/us-13/US-13-Daigniere-TLS-Secrets-WP.pdf) + +[https://bugzilla.mozilla.org/show_bug.cgi?id=917049](https://bugzilla.mozilla.org/show_bug.cgi?id=917049) + +[https://bugzilla.mozilla.org/show_bug.cgi?id=967977](https://bugzilla.mozilla.org/show_bug.cgi?id=967977) + + +## `network.dns.localDomains` + +Status: **unlocked** + +Value: `"librefox.com"` + +*Blocking GD Parking Scam Site* + + +## `security.tls.version.fallback-limit` + +Status: **locked** + +Value: `3` + +*Disable insecure TLS version fallback* + + + +### References + +[https://bugzilla.mozilla.org/show_bug.cgi?id=1084025](https://bugzilla.mozilla.org/show_bug.cgi?id=1084025) + +[https://github.com/pyllyukko/user.js/pull/206#issuecomment-280229645](https://github.com/pyllyukko/user.js/pull/206#issuecomment-280229645) + + +## `security.tls.version.min` + +Status: **locked** + +Value: `2` + +*Only allow TLS 1.[0-3]* + + + +### References + +[http://kb.mozillazine.org/Security.tls.version.*](http://kb.mozillazine.org/Security.tls.version.*) + + +## `security.cert_pinning.enforcement_level` + +Status: **locked** + +Value: `2` + +*Enfore Public Key Pinning* + + + +### References + +[https://en.wikipedia.org/wiki/HTTP_Public_Key_Pinning](https://en.wikipedia.org/wiki/HTTP_Public_Key_Pinning) + +[https://wiki.mozilla.org/SecurityEngineering/Public_Key_Pinning](https://wiki.mozilla.org/SecurityEngineering/Public_Key_Pinning) + + +## `security.pki.sha1_enforcement_level` + +Status: **locked** + +Value: `1` + +*Disallow SHA-1* + + + +### References + +[https://bugzilla.mozilla.org/show_bug.cgi?id=1302140](https://bugzilla.mozilla.org/show_bug.cgi?id=1302140) + +[https://shattered.io/](https://shattered.io/) + + +## `security.ssl.treat_unsafe_negotiation_as_broken` + +Status: **locked** + +Value: `true` + +*Warn the user when server doesn't support RFC 5746 ('safe' renegotiation)* + + + +### References + +[https://wiki.mozilla.org/Security:Renegotiation#security.ssl.treat_unsafe_negotiation_as_broken](https://wiki.mozilla.org/Security:Renegotiation#security.ssl.treat_unsafe_negotiation_as_broken) + +[https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-3555](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-3555) + + +## `browser.ssl_override_behavior` + +Status: **locked** + +Value: `1` + +*Pre-populate the current URL but do not pre-fetch the certificate in the 'Add Security Exception' dialog* + + + +### References + +[http://kb.mozillazine.org/Browser.ssl_override_behavior](http://kb.mozillazine.org/Browser.ssl_override_behavior) + +[https://github.com/pyllyukko/user.js/issues/210](https://github.com/pyllyukko/user.js/issues/210) + + +## `security.ssl.errorReporting.automatic` + +Status: **locked** + +Value: `false` + + +## `security.ssl.errorReporting.url` + +Status: **locked** + +Value: `""` + + +## `security.OCSP.enabled` + +Status: **locked** + +Value: `0` + + +## `security.OCSP.require` + +Status: **locked** + +Value: `false` + + +## `security.ssl.enable_ocsp_stapling` + +Status: **locked** + +Value: `true` + + + +### References + +[https://blog.mozilla.org/security/2013/07/29/ocsp-stapling-in-firefox/](https://blog.mozilla.org/security/2013/07/29/ocsp-stapling-in-firefox/) + + +## `security.ssl.errorReporting.enabled` + +Status: **locked** + +Value: `false` + + +## `security.disable_button.openCertManager` + +**Unused Setting** + +Status: **locked** + +Value: `false` + +*Manage certificates button* + + +## `security.disable_button.openDeviceManager` + +**Unused Setting** + +Status: **locked** + +Value: `false` + +*Manage security devices button* + + +## `security.mixed_content.upgrade_display_content` + +Status: **locked** + +Value: `true` + + +## `security.mixed_content.block_object_subrequest` + +Status: **locked** + +Value: `true` + + +## `security.mixed_content.block_display_content` + +Status: **locked** + +Value: `true` + + +## `security.mixed_content.block_active_content` + +Status: **locked** + +Value: `true` + + +## `security.insecure_connection_icon.enabled` + +Status: **locked** + +Value: `true` + + +## `security.insecure_connection_icon.pbmode.enabled` + +Status: **locked** + +Value: `true` + + +## `security.insecure_connection_text.enabled` + +Status: **locked** + +Value: `true` + + +## `security.ssl3.rsa_des_ede3_sha` + +Status: **locked** + +Value: `false` + + +## `security.ssl3.rsa_aes_256_sha` + +Status: **locked** + +Value: `false` + + +## `security.ssl3.rsa_aes_128_sha` + +Status: **locked** + +Value: `false` + + +## `security.ssl3.ecdh_ecdsa_rc4_128_sha` + +Status: **locked** + +Value: `false` + +*Disable RC4* + + + +### References + +[https://developer.mozilla.org/en-US/Firefox/Releases/38#Security](https://developer.mozilla.org/en-US/Firefox/Releases/38#Security) + +[https://bugzilla.mozilla.org/show_bug.cgi?id=1138882](https://bugzilla.mozilla.org/show_bug.cgi?id=1138882) + +[https://rc4.io/](https://rc4.io/) + +[https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-2566](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-2566) + + +## `security.ssl3.ecdh_rsa_rc4_128_sha` + +Status: **locked** + +Value: `false` + +*Disable RC4* + + + +### References + +[https://developer.mozilla.org/en-US/Firefox/Releases/38#Security](https://developer.mozilla.org/en-US/Firefox/Releases/38#Security) + +[https://bugzilla.mozilla.org/show_bug.cgi?id=1138882](https://bugzilla.mozilla.org/show_bug.cgi?id=1138882) + +[https://rc4.io/](https://rc4.io/) + +[https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-2566](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-2566) + + +## `security.ssl3.rsa_seed_sha` + +Status: **locked** + +Value: `false` + +*Disable SEED cipher* + + + +### References + +[https://en.wikipedia.org/wiki/SEED](https://en.wikipedia.org/wiki/SEED) + + diff --git a/dist/docs/settings/user_settings/_index.md b/dist/docs/settings/user_settings/_index.md new file mode 100644 index 0000000..e21e126 --- /dev/null +++ b/dist/docs/settings/user_settings/_index.md @@ -0,0 +1,2 @@ +--- +title: User Settings--- diff --git a/dist/docs/settings/user_settings/auto-play.md b/dist/docs/settings/user_settings/auto-play.md new file mode 100644 index 0000000..b5ce78d --- /dev/null +++ b/dist/docs/settings/user_settings/auto-play.md @@ -0,0 +1,12 @@ +--- +title: Autoplay +--- + + +## `media.autoplay.default` + +Status: **locked** + +Value: `2` + + diff --git a/dist/docs/settings/user_settings/autofill.md b/dist/docs/settings/user_settings/autofill.md new file mode 100644 index 0000000..b6dae9e --- /dev/null +++ b/dist/docs/settings/user_settings/autofill.md @@ -0,0 +1,65 @@ +--- +title: Autofill +--- + + +## `extensions.formautofill.addresses.enabled` + +Status: **unlocked** + +Value: `false` + + +## `extensions.formautofill.available` + +Status: **unlocked** + +Value: `"off"` + + +## `extensions.formautofill.creditCards.enabled` + +Status: **unlocked** + +Value: `false` + + +## `extensions.formautofill.heuristics.enabled` + +Status: **unlocked** + +Value: `false` + + +## `signon.autofillForms` + +Status: **locked** + +Value: `false` + + +## `signon.autofillForms.http` + +Status: **locked** + +Value: `false` + + +## `browser.urlbar.autoFill` + +**Unused Setting** + +Status: **locked** + +Value: `false` + + +## `browser.urlbar.autoFill.typed` + +**Unused Setting** + +Status: **locked** + +Value: `false` + + diff --git a/dist/docs/settings/user_settings/cookies.md b/dist/docs/settings/user_settings/cookies.md new file mode 100644 index 0000000..52fc0b4 --- /dev/null +++ b/dist/docs/settings/user_settings/cookies.md @@ -0,0 +1,47 @@ +--- +title: Cookies +--- + + +## `network.cookie.cookieBehavior` + +Status: **unlocked** + +Value: `1` + + +## `network.cookie.lifetimePolicy` + +Status: **unlocked** + +Value: `2` + + +## `network.cookie.same-site.enabled` + +Status: **locked** + +Value: `true` + + +## `network.cookie.leave-secure-alone` + +Status: **locked** + +Value: `true` + + +## `network.cookie.thirdparty.sessionOnly` + +Status: **unlocked** + +Value: `true` + + +## `network.cookie.thirdparty.nonsecureSessionOnly` + +Status: **locked** + +Value: `true` + + diff --git a/dist/docs/settings/user_settings/default-browser.md b/dist/docs/settings/user_settings/default-browser.md new file mode 100644 index 0000000..7459be1 --- /dev/null +++ b/dist/docs/settings/user_settings/default-browser.md @@ -0,0 +1,12 @@ +--- +title: Default Browser +--- + + +## `browser.shell.checkDefaultBrowser` + +Status: **locked** + +Value: `false` + + diff --git a/dist/docs/settings/user_settings/dns.md b/dist/docs/settings/user_settings/dns.md new file mode 100644 index 0000000..690b9b2 --- /dev/null +++ b/dist/docs/settings/user_settings/dns.md @@ -0,0 +1,47 @@ +--- +title: DNS +--- + + +## `network.trr.mode` + +Status: **locked** + +Value: `5` + + +## `network.trr.bootstrapAddress` + +Status: **locked** + +Value: `""` + + +## `network.trr.uri` + +Status: **locked** + +Value: `""` + + +## `network.dns.disableIPv6` + +Status: **locked** + +Value: `true` + + +## `network.dns.disablePrefetch` + +Status: **locked** + +Value: `true` + + +## `network.dns.disablePrefetchFromHTTPS` + +Status: **locked** + +Value: `true` + + diff --git a/dist/docs/settings/user_settings/dnt.md b/dist/docs/settings/user_settings/dnt.md new file mode 100644 index 0000000..e82077a --- /dev/null +++ b/dist/docs/settings/user_settings/dnt.md @@ -0,0 +1,19 @@ +--- +title: Do Not Track +--- + + +## `privacy.donottrackheader.enabled` + +Status: **locked** + +Value: `true` + + +## `privacy.donottrackheader.value` + +Status: **locked** + +Value: `1` + + diff --git a/dist/docs/settings/user_settings/drm-cdm.md b/dist/docs/settings/user_settings/drm-cdm.md new file mode 100644 index 0000000..1273489 --- /dev/null +++ b/dist/docs/settings/user_settings/drm-cdm.md @@ -0,0 +1,119 @@ +--- +title: DRM/CDM +--- + + +## `media.eme.enabled` + +Status: **locked** + +Value: `false` + + +## `media.gmp-provider.enabled` + +Status: **locked** + +Value: `false` + + +## `media.gmp-manager.url` + +Status: **locked** + +Value: `"data:text/plain,"` + + +## `media.gmp-manager.url.override` + +Status: **locked** + +Value: `"data:text/plain,"` + + +## `media.gmp-manager.updateEnabled` + +Status: **locked** + +Value: `false` + + +## `media.gmp.trial-create.enabled` + +Status: **locked** + +Value: `false` + + +## `media.gmp-widevinecdm.visible` + +Status: **locked** + +Value: `false` + + +## `media.gmp-widevinecdm.enabled` + +Status: **locked** + +Value: `false` + + +## `media.gmp-widevinecdm.autoupdate` + +Status: **locked** + +Value: `false` + + +## `media.gmp-gmpopenh264.enabled` + +Status: **locked** + +Value: `false` + + +## `media.gmp-gmpopenh264.autoupdate` + +Status: **locked** + +Value: `false` + + +## `media.peerconnection.video.enabled` + +Status: **unlocked** + +Value: `false` + + +## `media.gmp-eme-adobe.enabled` + +Status: **locked** + +Value: `false` + + +## `media.gmp-manager.certs.2.commonName` + +Status: **locked** + +Value: `""` + + +## `media.gmp-manager.certs.1.commonName` + +Status: **locked** + +Value: `""` + + +## `media.peerconnection.video.h264` + +**Unused Setting** + +Status: **locked** + +Value: `true` + + diff --git a/dist/docs/settings/user_settings/history.md b/dist/docs/settings/user_settings/history.md new file mode 100644 index 0000000..baf5129 --- /dev/null +++ b/dist/docs/settings/user_settings/history.md @@ -0,0 +1,166 @@ +--- +title: History +--- + + +## `browser.sessionhistory.max_entries` + +Status: **locked** + +Value: `20` + + +## `browser.urlbar.filter.javascript` + +Status: **locked** + +Value: `true` + + +## `browser.uiCustomization.state` + +Status: **unlocked** + +Value: `"{"placements":{"widget-overflow-fixed-list":[],"nav-bar":["home-button","downloads-button","back-button","forward-button","stop-reload-button","urlbar-container","add-ons-button","preferences-button","fxa-toolbar-menu-button"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["tabbrowser-tabs","new-tab-button","alltabs-button"],"PersonalToolbar":["personal-bookmarks"]},"seen":["developer-button"],"dirtyAreaCache":["nav-bar","toolbar-menubar","TabsToolbar","PersonalToolbar"],"currentVersion":16,"newElementCount":3}"` + + +## `browser.uidensity` + +Status: **unlocked** + +Value: `2` + + +## `browser.tabs.drawInTitlebar` + +Status: **unlocked** + +Value: `true` + + +## `startup.homepage_override_url` + +Status: **unlocked** + +Value: `"about:blank"` + + +## `startup.homepage_welcome_url` + +Status: **unlocked** + +Value: `"about:blank"` + + +## `startup.homepage_welcome_url.additional` + +Status: **unlocked** + +Value: `""` + + +## `privacy.clearOnShutdown.offlineApps` + +Status: **unlocked** + +Value: `true` + + +## `privacy.cpd.offlineApps` + +Status: **unlocked** + +Value: `true` + +*Offline Website Data* + + +## `privacy.sanitize.timeSpan` + +Status: **unlocked** + +Value: `0` + + +## `browser.formfill.enable` + +Status: **unlocked** + +Value: `false` + + +## `privacy.sanitize.sanitizeOnShutdown` + +Status: **unlocked** + +Value: `true` + + +## `places.history.enabled` + +Status: **unlocked** + +Value: `false` + + +## `places.history.expiration.max_pages` + +Status: **unlocked** + +Value: `2147483647` + + +## `privacy.history.custom` + +Status: **unlocked** + +Value: `true` + + +## `privacy.cpd.openWindows` + +**Unused Setting** + +Status: **unlocked** + +Value: `true` + +*Clear session data* + + +## `privacy.clearOnShutdown.openWindows` + +**Unused Setting** + +Status: **unlocked** + +Value: `true` + + +## `privacy.sanitize.pending` + +**Unused Setting** + +Status: **unlocked** + +Value: `"[{"id":"shutdown","itemsToClear":["cache","cookies","history","formdata","downloads"],"options":{}}]"` + + +## `permissions.memory_only` + +**Unused Setting** + +Status: **locked** + +Value: `true` + + +## `browser.formfill.expire_days` + +**Unused Setting** + +Status: **locked** + +Value: `0` + + diff --git a/dist/docs/settings/user_settings/miscellaneous.md b/dist/docs/settings/user_settings/miscellaneous.md new file mode 100644 index 0000000..ea6565e --- /dev/null +++ b/dist/docs/settings/user_settings/miscellaneous.md @@ -0,0 +1,19 @@ +--- +title: Miscellaneous +--- + + +## `dom.disable_beforeunload` + +Status: **locked** + +Value: `true` + + +## `permissions.default.geo` + +Status: **locked** + +Value: `2` + + diff --git a/dist/docs/settings/user_settings/password-manager.md b/dist/docs/settings/user_settings/password-manager.md new file mode 100644 index 0000000..a0cfd76 --- /dev/null +++ b/dist/docs/settings/user_settings/password-manager.md @@ -0,0 +1,44 @@ +--- +title: Password Manager +--- + + +## `signon.rememberSignons` + +Status: **locked** + +Value: `false` + + +## `services.sync.prefs.sync.signon.rememberSignons` + +Status: **locked** + +Value: `false` + + +## `signon.storeWhenAutocompleteOff` + +Status: **locked** + +Value: `false` + + +## `security.ask_for_password` + +**Unused Setting** + +Status: **locked** + +Value: `2` + + +## `security.password_lifetime` + +**Unused Setting** + +Status: **locked** + +Value: `5` + + diff --git a/dist/docs/settings/user_settings/proxy.md b/dist/docs/settings/user_settings/proxy.md new file mode 100644 index 0000000..21abd2d --- /dev/null +++ b/dist/docs/settings/user_settings/proxy.md @@ -0,0 +1,23 @@ +--- +title: Proxy +--- + + +## `network.proxy.autoconfig_url.include_path` + +**Unused Setting** + +Status: **locked** + +Value: `false` + + +## `network.proxy.socks_remote_dns` + +**Unused Setting** + +Status: **locked** + +Value: `true` + + diff --git a/dist/docs/settings/user_settings/session.md b/dist/docs/settings/user_settings/session.md new file mode 100644 index 0000000..93183e0 --- /dev/null +++ b/dist/docs/settings/user_settings/session.md @@ -0,0 +1,19 @@ +--- +title: Session +--- + + +## `browser.sessionstore.privacy_level` + +Status: **locked** + +Value: `2` + + +## `browser.sessionstore.interval` + +Status: **locked** + +Value: `60000` + + diff --git a/dist/docs/settings/user_settings/start-page.md b/dist/docs/settings/user_settings/start-page.md new file mode 100644 index 0000000..bb9a320 --- /dev/null +++ b/dist/docs/settings/user_settings/start-page.md @@ -0,0 +1,40 @@ +--- +title: Start Page +--- + + +## `browser.newtabpage.activity-stream.feeds.section.highlights` + +Status: **locked** + +Value: `false` + + +## `browser.newtabpage.activity-stream.section.highlights.includeBookmarks` + +Status: **locked** + +Value: `false` + + +## `browser.newtabpage.activity-stream.section.highlights.includeDownloads` + +Status: **locked** + +Value: `false` + + +## `browser.newtabpage.activity-stream.section.highlights.includeVisited` + +Status: **locked** + +Value: `false` + + +## `browser.newtabpage.activity-stream.prerender` + +Status: **locked** + +Value: `false` + + diff --git a/dist/docs/settings/user_settings/theming.md b/dist/docs/settings/user_settings/theming.md new file mode 100644 index 0000000..a3adb94 --- /dev/null +++ b/dist/docs/settings/user_settings/theming.md @@ -0,0 +1,41 @@ +--- +title: Theming +--- + + +## `widget.content.gtk-theme-override` + +**Unused Setting** + +Status: **locked** + +Value: `"Adwaita:light"` + + +## `browser.devedition.theme.enabled` + +**Unused Setting** + +Status: **locked** + +Value: `true` + + +## `devtools.theme` + +**Unused Setting** + +Status: **locked** + +Value: `"dark"` + + +## `browser.devedition.theme.showCustomizeButton` + +**Unused Setting** + +Status: **locked** + +Value: `true` + + diff --git a/dist/docs/settings/user_settings/tracking-protection.md b/dist/docs/settings/user_settings/tracking-protection.md new file mode 100644 index 0000000..a76a9a1 --- /dev/null +++ b/dist/docs/settings/user_settings/tracking-protection.md @@ -0,0 +1,179 @@ +--- +title: Tracking Protection +--- + + +## `privacy.trackingprotection.enabled` + +Status: **locked** + +Value: `false` + + +## `privacy.trackingprotection.annotate_channels` + +Status: **locked** + +Value: `false` + + +## `privacy.trackingprotection.lower_network_priority` + +Status: **locked** + +Value: `false` + + +## `privacy.trackingprotection.pbmode.enabled` + +Status: **locked** + +Value: `false` + + +## `urlclassifier.trackingTable` + +Status: **locked** + +Value: `""` + + +## `pref.privacy.disable_button.change_blocklist` + +Status: **locked** + +Value: `true` + + +## `browser.contentblocking.reportBreakage.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.contentblocking.reportBreakage.url` + +Status: **locked** + +Value: `""` + + +## `browser.contentblocking.rejecttrackers.reportBreakage.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.contentblocking.rejecttrackers.ui.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.contentblocking.trackingprotection.control-center.ui.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.contentblocking.trackingprotection.ui.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.contentblocking.global-toggle.enabled` + +**Unused Setting** + +Status: **locked** + +Value: `false` + + +## `browser.contentblocking.rejecttrackers.ui.recommended` + +**Unused Setting** + +Status: **locked** + +Value: `false` + + +## `browser.contentblocking.fastblock.ui.enabled` + +**Unused Setting** + +Status: **locked** + +Value: `false` + + +## `browser.contentblocking.fastblock.control-center.ui.enabled` + +**Unused Setting** + +Status: **locked** + +Value: `false` + + +## `browser.contentblocking.allowlist.annotations.enabled` + +**Unused Setting** + +Status: **locked** + +Value: `false` + + +## `browser.contentblocking.allowlist.storage.enabled` + +**Unused Setting** + +Status: **locked** + +Value: `false` + + +## `pref.privacy.disable_button.tracking_protection_exceptions` + +**Unused Setting** + +Status: **locked** + +Value: `false` + + +## `browser.contentblocking.rejecttrackers.control-center.ui.enabled` + +**Unused Setting** + +Status: **locked** + +Value: `false` + + +## `browser.contentblocking.ui.enabled` + +**Unused Setting** + +Status: **locked** + +Value: `false` + + +## `browser.contentblocking.enabled` + +**Unused Setting** + +Status: **locked** + +Value: `false` + + diff --git a/dist/docs/settings/user_settings/webrtc.md b/dist/docs/settings/user_settings/webrtc.md new file mode 100644 index 0000000..f1b2cb2 --- /dev/null +++ b/dist/docs/settings/user_settings/webrtc.md @@ -0,0 +1,89 @@ +--- +title: WebRTC +--- + + +## `media.navigator.enabled` + +Status: **unlocked** + +Value: `false` + + +## `media.navigator.video.enabled` + +Status: **unlocked** + +Value: `false` + + +## `media.getusermedia.browser.enabled` + +Status: **unlocked** + +Value: `false` + + +## `media.getusermedia.screensharing.enabled` + +Status: **unlocked** + +Value: `false` + + +## `media.getusermedia.audiocapture.enabled` + +Status: **unlocked** + +Value: `false` + + +## `media.peerconnection.use_document_iceservers` + +Status: **unlocked** + +Value: `false` + + +## `media.peerconnection.identity.enabled` + +Status: **unlocked** + +Value: `false` + + +## `media.peerconnection.identity.timeout` + +Status: **unlocked** + +Value: `1` + + +## `media.peerconnection.turn.disable` + +Status: **unlocked** + +Value: `true` + + +## `media.peerconnection.ice.tcp` + +Status: **unlocked** + +Value: `false` + + +## `media.peerconnection.ice.default_address_only` + +Status: **unlocked** + +Value: `true` + + +## `media.peerconnection.ice.no_host` + +Status: **unlocked** + +Value: `true` + + diff --git a/dist/docs/settings/windows.md b/dist/docs/settings/windows.md new file mode 100644 index 0000000..8211221 --- /dev/null +++ b/dist/docs/settings/windows.md @@ -0,0 +1,116 @@ +--- +title: Windows +--- + + +## `webgl.dxgl.enabled` + +Status: **locked** + +Value: `false` + +*Other WebGl [WINDOWS]* + + +## `plugin.scan.plid.all` + +Status: **locked** + +Value: `false` + +*Disable scanning for plugins [WINDOWS]* + + +## `browser.taskbar.lists.enabled` + +Status: **locked** + +Value: `false` + +*Disable Windows jumplist [WINDOWS]* + + +## `browser.taskbar.lists.frequent.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.taskbar.lists.recent.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.taskbar.lists.tasks.enabled` + +Status: **locked** + +Value: `false` + + +## `browser.taskbar.previews.enable` + +Status: **locked** + +Value: `false` + +*Disable Windows taskbar preview [WINDOWS]* + + +## `network.protocol-handler.external.ms-windows-store` + +Status: **locked** + +Value: `false` + +*Disable links launching Windows Store on Windows 8/8.1/10 [WINDOWS]* + + + +### References + +[https://www.ghacks.net/2016/03/25/block-firefox-chrome-windows-store/](https://www.ghacks.net/2016/03/25/block-firefox-chrome-windows-store/) + + +## `app.update.service.enabled` + +Status: **locked** + +Value: `false` + +*Disable background update service [WINDOWS]* + + +## `toolkit.winRegisterApplicationRestart` + +Status: **locked** + +Value: `false` + +*Disable automatic Firefox start and session restore after reboot [WINDOWS] (FF62+)* + + + +### References + +[https://bugzilla.mozilla.org/603903](https://bugzilla.mozilla.org/603903) + + +## `security.family_safety.mode` + +Status: **locked** + +Value: `0` + +*Disable Windows 8.1's Microsoft Family Safety cert [WINDOWS] (FF50+)* + + + +### References + +[https://trac.torproject.org/projects/tor/ticket/21686](https://trac.torproject.org/projects/tor/ticket/21686) + + diff --git a/dist/librewolf.cfg b/dist/librewolf.cfg new file mode 100644 index 0000000..23c5bd6 --- /dev/null +++ b/dist/librewolf.cfg @@ -0,0 +1,854 @@ +// Locale, Time, UA + +lockPref("dom.forms.datetime", ""); +lockPref("javascript.use_us_english_locale", ""); +lockPref("intl.regional_prefs.use_os_locales", ""); +defaultPref("intl.locale.requested", ""); +defaultPref("general.useragent.override", ""); +defaultPref("general.appname.override", ""); +defaultPref("general.appversion.override", ""); +defaultPref("general.platform.override", ""); +defaultPref("general.oscpu.override", ""); + + +// Disabled On/Off + +lockPref("network.dns.blockDotOnion", ""); +lockPref("network.http.referer.hideOnionSource", ""); +lockPref("network.http.referer.XOriginPolicy", ""); +lockPref("security.tls.version.max", ""); + + +// Ijwytsu – I just want you to shut up + +lockPref("devtools.performance.recording.ui-base-url", ""); +lockPref("gecko.handlerService.schemes.irc.0.uriTemplate", ""); +lockPref("gecko.handlerService.schemes.ircs.0.uriTemplate", ""); +lockPref("toolkit.coverage.enabled", ""); +lockPref("extensions.webapi.testing", ""); +lockPref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr", ""); +lockPref("extensions.htmlaboutaddons.recommendations.enabled", ""); +lockPref("browser.newtabpage.activity-stream.asrouter.providers.cfr", ""); +lockPref("browser.newtabpage.activity-stream.asrouter.providers.cfr-fxa", ""); +lockPref("browser.newtabpage.activity-stream.asrouter.providers.onboarding", ""); +lockPref("browser.newtabpage.activity-stream.asrouter.providers.snippets", ""); +lockPref("browser.onboarding.notification.tour-ids-queue", ""); +lockPref("lightweightThemes.getMoreURL", ""); +lockPref("devtools.gcli.lodashSrc", ""); +lockPref("media.decoder-doctor.new-issue-endpoint", ""); +lockPref("identity.sync.tokenserver.uri", ""); +lockPref("devtools.webide.templatesURL", ""); +lockPref("browser.ping-centre.production.endpoint", ""); +lockPref("browser.translation.engine", ""); +lockPref("network.trr.confirmationNS", ""); +lockPref("gecko.handlerService.schemes.mailto.1.name", ""); +lockPref("gecko.handlerService.schemes.irc.0.name", ""); +lockPref("gecko.handlerService.schemes.ircs.0.name", ""); +lockPref("gecko.handlerService.schemes.mailto.0.name", ""); +lockPref("services.sync.lastversion", ""); +lockPref("browser.safebrowsing.provider.mozilla.lists.base", ""); +lockPref("browser.safebrowsing.provider.mozilla.lists.content", ""); +lockPref("browser.safebrowsing.provider.google.advisoryName", ""); +lockPref("browser.safebrowsing.provider.google4.advisoryName", ""); +lockPref("browser.safebrowsing.provider.mozilla.lists", ""); +lockPref("identity.fxaccounts.remote.root", ""); +lockPref("services.settings.server", ""); +lockPref("services.sync.fxa.privacyURL", ""); +lockPref("services.sync.fxa.termsURL", ""); +lockPref("services.blocklist.addons.signer", ""); +lockPref("services.blocklist.gfx.signer", ""); +lockPref("services.blocklist.onecrl.signer", ""); +lockPref("services.blocklist.pinning.signer", ""); +lockPref("services.blocklist.plugins.signer", ""); +lockPref("services.settings.default_signer", ""); +lockPref("accessibility.support.url", ""); +lockPref("app.normandy.shieldLearnMoreUrl", ""); +lockPref("app.productInfo.baseURL", ""); +lockPref("app.support.baseURL", ""); +lockPref("browser.chrome.errorReporter.infoURL", ""); +lockPref("browser.dictionaries.download.url", ""); +lockPref("browser.geolocation.warning.infoURL", ""); +lockPref("browser.search.searchEnginesURL", ""); +lockPref("browser.uitour.themeOrigin", ""); +lockPref("devtools.webide.adbAddonURL", ""); +lockPref("extensions.getAddons.compatOverides.url", ""); +defaultPref("extensions.getAddons.get.url", ""); +defaultPref("extensions.getAddons.langpacks.url", ""); +defaultPref("extensions.getAddons.link.url", ""); +defaultPref("extensions.getAddons.search.browseURL", ""); +lockPref("extensions.getAddons.themes.browseURL", ""); +lockPref("services.sync.addons.trustedSourceHostnames", ""); +lockPref("toolkit.datacollection.infoURL", ""); +lockPref("xpinstall.signatures.devInfoURL", ""); +lockPref("browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.searchEngines", ""); +lockPref("browser.newtabpage.activity-stream.fxaccounts.endpoint", ""); +defaultPref("extensions.update.url", ""); +lockPref("browser.newtabpage.activity-stream.feeds.section.topstories.options", ""); +lockPref("lightweightThemes.recommendedThemes", ""); +lockPref("services.sync.maxResyncs", ""); +lockPref("services.sync.telemetry.maxPayloadCount", ""); +lockPref("services.sync.addons.ignoreUserEnabledChanges", ""); +lockPref("services.sync.engine.addons", ""); +lockPref("services.sync.engine.addresses", ""); +lockPref("services.sync.engine.bookmarks", ""); +lockPref("services.sync.engine.bookmarks.buffer", ""); +lockPref("services.sync.engine.creditcards", ""); +lockPref("services.sync.engine.creditcards.available", ""); +lockPref("services.sync.engine.history", ""); +lockPref("services.sync.engine.passwords", ""); +lockPref("services.sync.engine.prefs", ""); +lockPref("services.sync.engine.tabs", ""); +lockPref("services.sync.log.appender.file.logOnError", ""); +lockPref("services.sync.log.appender.file.logOnSuccess", ""); +lockPref("services.sync.log.cryptoDebug", ""); +lockPref("services.sync.sendVersionInfo", ""); +lockPref("services.sync.syncedTabs.showRemoteIcons", ""); +lockPref("services.sync.prefs.sync.accessibility.blockautorefresh", ""); +lockPref("services.sync.prefs.sync.accessibility.browsewithcaret", ""); +lockPref("services.sync.prefs.sync.accessibility.typeaheadfind", ""); +lockPref("services.sync.prefs.sync.accessibility.typeaheadfind.linksonly", ""); +lockPref("services.sync.prefs.sync.addons.ignoreUserEnabledChanges", ""); +lockPref("services.sync.prefs.sync.browser.contentblocking.enabled", ""); +lockPref("services.sync.prefs.sync.browser.ctrlTab.recentlyUsedOrder", ""); +lockPref("services.sync.prefs.sync.browser.download.useDownloadDir", ""); +lockPref("services.sync.prefs.sync.browser.formfill.enable", ""); +lockPref("services.sync.prefs.sync.browser.link.open_newwindow", ""); +lockPref("services.sync.prefs.sync.browser.newtabpage.enabled", ""); +lockPref("services.sync.prefs.sync.browser.newtabpage.pinned", ""); +lockPref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includePocket", ""); +lockPref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includeVisited", ""); +lockPref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includeBookmarks", ""); +lockPref("services.sync.prefs.sync.browser.offline-apps.notify", ""); +lockPref("services.sync.prefs.sync.browser.search.update", ""); +lockPref("services.sync.prefs.sync.browser.sessionstore.restore_on_demand", ""); +lockPref("services.sync.prefs.sync.browser.startup.homepage", ""); +lockPref("services.sync.prefs.sync.browser.startup.page", ""); +lockPref("services.sync.prefs.sync.browser.tabs.loadInBackground", ""); +lockPref("services.sync.prefs.sync.browser.tabs.warnOnClose", ""); +lockPref("services.sync.prefs.sync.browser.tabs.warnOnOpen", ""); +lockPref("services.sync.prefs.sync.browser.urlbar.autocomplete.enabled", ""); +lockPref("services.sync.prefs.sync.browser.urlbar.matchBuckets", ""); +lockPref("services.sync.prefs.sync.browser.urlbar.maxRichResults", ""); +lockPref("services.sync.prefs.sync.browser.urlbar.suggest.bookmark", ""); +lockPref("services.sync.prefs.sync.browser.urlbar.suggest.history", ""); +lockPref("services.sync.prefs.sync.browser.urlbar.suggest.history.onlyTyped", ""); +lockPref("services.sync.prefs.sync.browser.urlbar.suggest.openpage", ""); +lockPref("services.sync.prefs.sync.browser.urlbar.suggest.searches", ""); +lockPref("services.sync.prefs.sync.dom.disable_open_during_load", ""); +lockPref("services.sync.prefs.sync.dom.disable_window_flip", ""); +lockPref("services.sync.prefs.sync.dom.disable_window_move_resize", ""); +lockPref("services.sync.prefs.sync.dom.event.contextmenu.enabled", ""); +lockPref("services.sync.prefs.sync.extensions.personas.current", ""); +lockPref("services.sync.prefs.sync.extensions.update.enabled", ""); +lockPref("services.sync.prefs.sync.intl.accept_languages", ""); +lockPref("services.sync.prefs.sync.layout.spellcheckDefault", ""); +lockPref("services.sync.prefs.sync.lightweightThemes.selectedThemeID", ""); +lockPref("services.sync.prefs.sync.lightweightThemes.usedThemes", ""); +lockPref("services.sync.prefs.sync.network.cookie.cookieBehavior", ""); +lockPref("services.sync.prefs.sync.network.cookie.lifetimePolicy", ""); +lockPref("services.sync.prefs.sync.network.cookie.thirdparty.sessionOnly", ""); +lockPref("services.sync.prefs.sync.permissions.default.image", ""); +lockPref("services.sync.prefs.sync.pref.advanced.images.disable_button.view_image", ""); +lockPref("services.sync.prefs.sync.pref.advanced.javascript.disable_button.advanced", ""); +lockPref("services.sync.prefs.sync.pref.downloads.disable_button.edit_actions", ""); +lockPref("services.sync.prefs.sync.pref.privacy.disable_button.cookie_exceptions", ""); +lockPref("services.sync.prefs.sync.privacy.clearOnShutdown.cache", ""); +lockPref("services.sync.prefs.sync.privacy.clearOnShutdown.cookies", ""); +lockPref("services.sync.prefs.sync.privacy.clearOnShutdown.downloads", ""); +lockPref("services.sync.prefs.sync.privacy.clearOnShutdown.formdata", ""); +lockPref("services.sync.prefs.sync.privacy.clearOnShutdown.history", ""); +lockPref("services.sync.prefs.sync.privacy.clearOnShutdown.offlineApps", ""); +lockPref("services.sync.prefs.sync.privacy.clearOnShutdown.sessions", ""); +lockPref("services.sync.prefs.sync.privacy.clearOnShutdown.siteSettings", ""); +lockPref("services.sync.prefs.sync.privacy.donottrackheader.enabled", ""); +lockPref("services.sync.prefs.sync.privacy.reduceTimerPrecision", ""); +lockPref("services.sync.prefs.sync.privacy.resistFingerprinting", ""); +lockPref("services.sync.prefs.sync.privacy.resistFingerprinting.reduceTimerPrecision.jitter", ""); +lockPref("services.sync.prefs.sync.privacy.resistFingerprinting.reduceTimerPrecision.microseconds", ""); +lockPref("services.sync.prefs.sync.privacy.sanitize.sanitizeOnShutdown", ""); +lockPref("services.sync.prefs.sync.privacy.trackingprotection.enabled", ""); +lockPref("services.sync.prefs.sync.privacy.trackingprotection.pbmode.enabled", ""); +lockPref("services.sync.prefs.sync.security.OCSP.enabled", ""); +lockPref("services.sync.prefs.sync.security.OCSP.require", ""); +lockPref("services.sync.prefs.sync.security.default_personal_cert", ""); +lockPref("services.sync.prefs.sync.security.tls.version.max", ""); +lockPref("services.sync.prefs.sync.security.tls.version.min", ""); +lockPref("services.sync.prefs.sync.services.sync.syncedTabs.showRemoteIcons", ""); +lockPref("services.sync.prefs.sync.spellchecker.dictionary", ""); +lockPref("services.sync.prefs.sync.xpinstall.whitelist.required", ""); +lockPref("browser.chrome.errorReporter.publicKey", ""); +lockPref("prio.publicKeyA", ""); +lockPref("prio.publicKeyB", ""); + + +// Extensions + +defaultPref("extensions.webextensions.restrictedDomains", ""); +lockPref("extensions.webextensions.identity.redirectDomain", ""); +defaultPref("extensions.webextensions.base-content-security-policy", ""); +lockPref("security.csp.enable", ""); +lockPref("security.csp.experimentalEnabled", ""); +lockPref("security.csp.enable_violation_events", ""); +defaultPref("extensions.webextensions.tabhide.enabled", ""); +lockPref("extensions.webcompat-reporter.newIssueEndpoint", ""); +lockPref("extensions.webcompat-reporter.enabled", ""); +defaultPref("extensions.webextensions.background-delayed-startup", ""); + + +// Performance + +defaultPref("layout.frame_rate.precise", ""); +defaultPref("webgl.force-enabled", ""); +defaultPref("layers.acceleration.force-enabled", ""); +defaultPref("gfx.direct2d.disabled", ""); +defaultPref("layers.acceleration.disabled", ""); +defaultPref("html5.offmainthread", ""); +defaultPref("layers.offmainthreadcomposition.enabled", ""); +defaultPref("layers.offmainthreadcomposition.async-animations", ""); +defaultPref("layers.async-video.enabled", ""); +defaultPref("browser.tabs.animate", ""); +defaultPref("webgl.disabled", ""); +lockPref("webgl.enable-webgl2", ""); +lockPref("webgl.min_capability_mode", ""); +lockPref("pdfjs.enableWebGL", ""); +lockPref("webgl.disable-extensions", ""); +lockPref("webgl.disable-fail-if-major-performance-caveat", ""); +lockPref("webgl.enable-debug-renderer-info", ""); +lockPref("javascript.options.shared_memory", ""); +lockPref("dom.serviceWorkers.enabled", ""); + + +// Security + +lockPref("security.insecure_password.ui.enabled", ""); +lockPref("security.insecure_field_warning.contextual.enabled", ""); +lockPref("network.stricttransportsecurity.preloadlist", ""); +lockPref("security.ssl.disable_session_identifiers", ""); +defaultPref("network.dns.localDomains", ""); +lockPref("security.tls.version.fallback-limit", ""); +lockPref("security.tls.version.min", ""); +lockPref("security.cert_pinning.enforcement_level", ""); +lockPref("security.pki.sha1_enforcement_level", ""); +lockPref("security.ssl.treat_unsafe_negotiation_as_broken", ""); +lockPref("browser.ssl_override_behavior", ""); +lockPref("security.ssl.errorReporting.automatic", ""); +lockPref("security.ssl.errorReporting.url", ""); +lockPref("security.OCSP.enabled", ""); +lockPref("security.OCSP.require", ""); +lockPref("security.ssl.enable_ocsp_stapling", ""); +lockPref("security.ssl.errorReporting.enabled", ""); +lockPref("security.mixed_content.upgrade_display_content", ""); +lockPref("security.mixed_content.block_object_subrequest", ""); +lockPref("security.mixed_content.block_display_content", ""); +lockPref("security.mixed_content.block_active_content", ""); +lockPref("security.insecure_connection_icon.enabled", ""); +lockPref("security.insecure_connection_icon.pbmode.enabled", ""); +lockPref("security.insecure_connection_text.enabled", ""); +lockPref("security.ssl3.rsa_des_ede3_sha", ""); +lockPref("security.ssl3.rsa_aes_256_sha", ""); +lockPref("security.ssl3.rsa_aes_128_sha", ""); +lockPref("security.ssl3.ecdh_ecdsa_rc4_128_sha", ""); +lockPref("security.ssl3.ecdh_rsa_rc4_128_sha", ""); +lockPref("security.ssl3.rsa_seed_sha", ""); + + +// Protection + +lockPref("general.config.filename", ""); + + +// General + +lockPref("browser.onboarding.notification.finished", ""); +lockPref("browser.onboarding.tour.onboarding-tour-customize.completed", ""); +lockPref("browser.onboarding.tour.onboarding-tour-performance.completed", ""); +lockPref("devtools.onboarding.telemetry.logged", ""); +lockPref("services.sync.engine.addresses.available", ""); +lockPref("browser.bookmarks.restore_default_bookmarks", ""); +lockPref("pdfjs.previousHandler.alwaysAskBeforeHandling", ""); +lockPref("pdfjs.enabledCache.state", ""); +lockPref("pref.general.disable_button.default_browser", ""); +lockPref("pref.privacy.disable_button.view_passwords", ""); +lockPref("identity.mobilepromo.android", ""); +lockPref("extensions.systemAddon.update.url", ""); +lockPref("datareporting.healthreport.infoURL", ""); +lockPref("browser.urlbar.daysBeforeHidingSuggestionsPrompt", ""); +lockPref("browser.urlbar.searchSuggestionsChoice", ""); +lockPref("browser.urlbar.timesBeforeHidingSuggestionsHint", ""); +lockPref("browser.shell.didSkipDefaultBrowserCheckOnFirstRun", ""); +lockPref("app.feedback.baseURL", ""); +lockPref("app.normandy.enabled", ""); +lockPref("app.normandy.api_url", ""); +lockPref("app.normandy.first_run", ""); +lockPref("app.normandy.user_id", ""); +lockPref("app.releaseNotesURL", ""); +lockPref("app.update.auto", ""); +defaultPref("extensions.update.autoUpdateDefault", ""); +lockPref("app.update.staging.enabled", ""); +lockPref("app.update.silent", ""); +lockPref("app.update.lastUpdateTime.telemetry_modules_ping", ""); +lockPref("app.update.url.details", ""); +lockPref("app.update.url.manual", ""); +lockPref("app.vendorURL", ""); +lockPref("breakpad.reportURL", ""); +lockPref("browser.chrome.errorReporter.submitUrl", ""); +lockPref("browser.chrome.errorReporter.enabled", ""); +lockPref("browser.ping-centre.staging.endpoint", ""); +lockPref("browser.ping-centre.telemetry", ""); +lockPref("browser.safebrowsing.id", ""); +lockPref("browser.safebrowsing.provider.google4.pver", ""); +lockPref("browser.safebrowsing.provider.mozilla.pver", ""); +lockPref("browser.safebrowsing.allowOverride", ""); +lockPref("browser.safebrowsing.blockedURIs.enabled", ""); +lockPref("browser.safebrowsing.downloads.enabled", ""); +lockPref("browser.safebrowsing.downloads.remote.block_dangerous", ""); +lockPref("browser.safebrowsing.downloads.remote.block_dangerous_host", ""); +lockPref("browser.safebrowsing.downloads.remote.block_potentially_unwanted", ""); +lockPref("browser.safebrowsing.downloads.remote.block_uncommon", ""); +lockPref("browser.safebrowsing.downloads.remote.enabled", ""); +lockPref("browser.safebrowsing.downloads.remote.url", ""); +lockPref("browser.safebrowsing.malware.enabled", ""); +lockPref("browser.safebrowsing.passwords.enabled", ""); +lockPref("browser.safebrowsing.phishing.enabled", ""); +lockPref("browser.safebrowsing.provider.google4.advisoryURL", ""); +lockPref("browser.safebrowsing.provider.google4.dataSharing.enabled", ""); +lockPref("browser.safebrowsing.provider.google4.dataSharingURL", ""); +lockPref("browser.safebrowsing.provider.google4.gethashURL", ""); +lockPref("browser.safebrowsing.provider.google4.lists", ""); +lockPref("browser.safebrowsing.provider.google4.reportMalwareMistakeURL", ""); +lockPref("browser.safebrowsing.provider.google4.reportPhishMistakeURL", ""); +lockPref("browser.safebrowsing.provider.google4.reportURL", ""); +lockPref("browser.safebrowsing.provider.google4.updateURL", ""); +lockPref("browser.safebrowsing.provider.google4.lastupdatetime", ""); +lockPref("browser.safebrowsing.provider.google4.nextupdatetime", ""); +lockPref("browser.safebrowsing.provider.google.advisoryURL", ""); +lockPref("browser.safebrowsing.provider.google.gethashURL", ""); +lockPref("browser.safebrowsing.provider.google.lastupdatetime", ""); +lockPref("browser.safebrowsing.provider.google.lists", ""); +lockPref("browser.safebrowsing.provider.google.nextupdatetime", ""); +lockPref("browser.safebrowsing.provider.google.pver", ""); +lockPref("browser.safebrowsing.provider.google.reportMalwareMistakeURL", ""); +lockPref("browser.safebrowsing.provider.google.reportPhishMistakeURL", ""); +lockPref("browser.safebrowsing.provider.google.reportURL", ""); +lockPref("browser.safebrowsing.provider.google.updateURL", ""); +lockPref("browser.safebrowsing.provider.mozilla.gethashURL", ""); +lockPref("browser.safebrowsing.provider.mozilla.lastupdatetime", ""); +lockPref("browser.safebrowsing.provider.mozilla.nextupdatetime", ""); +lockPref("browser.safebrowsing.provider.mozilla.updateURL", ""); +lockPref("browser.safebrowsing.reportPhishURL", ""); +lockPref("browser.search.suggest.enabled", ""); +lockPref("captivedetect.canonicalURL", ""); +lockPref("datareporting.policy.firstRunURL", ""); +lockPref("devtools.devedition.promo.url", ""); +lockPref("devtools.devices.url", ""); +lockPref("devtools.gcli.imgurUploadURL", ""); +lockPref("devtools.gcli.jquerySrc", ""); +lockPref("devtools.gcli.underscoreSrc", ""); +lockPref("devtools.telemetry.supported_performance_marks", ""); +lockPref("dom.battery.enabled", ""); +lockPref("dom.permissions.enabled", ""); +lockPref("dom.popup_maximum", ""); +lockPref("dom.registerProtocolHandler.insecure.enabled", ""); +lockPref("extensions.blocklist.detailsURL", ""); +lockPref("extensions.blocklist.itemURL", ""); +lockPref("extensions.blocklist.url", ""); +defaultPref("extensions.update.background.url", ""); +defaultPref("extensions.getAddons.showPane", ""); +lockPref("extensions.webservice.discoverURL", ""); +lockPref("gecko.handlerService.schemes.mailto.0.uriTemplate", ""); +lockPref("gecko.handlerService.schemes.mailto.1.uriTemplate", ""); +lockPref("gecko.handlerService.schemes.webcal.0.uriTemplate", ""); +lockPref("geo.enabled", ""); +lockPref("geo.wifi.uri", ""); +lockPref("identity.fxaccounts.auth.uri", ""); +lockPref("identity.fxaccounts.remote.oauth.uri", ""); +lockPref("identity.fxaccounts.remote.profile.uri", ""); +lockPref("identity.mobilepromo.ios", ""); +lockPref("layout.css.visited_links_enabled", ""); +lockPref("lpbmode.enabled", ""); +lockPref("mailnews.messageid_browser.url", ""); +lockPref("mailnews.mx_service_url", ""); +lockPref("network.predictor.enabled", ""); +lockPref("network.predictor.cleaned-up", ""); +lockPref("network.predictor.enable-prefetch", ""); +lockPref("plugins.crash.supportUrl", ""); +lockPref("services.sync.clients.lastSync", ""); +lockPref("services.sync.clients.lastSyncLocal", ""); +lockPref("services.sync.declinedEngines", ""); +lockPref("services.sync.enabled", ""); +lockPref("services.sync.globalScore", ""); +lockPref("services.sync.jpake.serverURL", ""); +lockPref("services.sync.migrated", ""); +lockPref("services.sync.nextSync", ""); +lockPref("services.sync.prefs.sync.browser.safebrowsing.downloads.enabled", ""); +lockPref("services.sync.prefs.sync.browser.safebrowsing.malware.enabled", ""); +lockPref("services.sync.prefs.sync.browser.safebrowsing.passwords.enabled", ""); +lockPref("services.sync.prefs.sync.browser.safebrowsing.phishing.enabled", ""); +lockPref("services.sync.serverURL", ""); +lockPref("services.sync.tabs.lastSync", ""); +lockPref("services.sync.tabs.lastSyncLocal", ""); +lockPref("sync.enabled", ""); +lockPref("sync.jpake.serverURL", ""); +lockPref("sync.serverURL", ""); +lockPref("toolkit.crashreporter.infoURL", ""); +lockPref("toolkit.telemetry.archive.enabled", ""); +lockPref("toolkit.telemetry.updatePing.enabled", ""); +lockPref("toolkit.telemetry.bhrPing.enabled", ""); +lockPref("toolkit.telemetry.cachedClientID", ""); +lockPref("toolkit.telemetry.enabled", ""); +lockPref("toolkit.telemetry.firstShutdownPing.enabled", ""); +lockPref("toolkit.telemetry.hybridContent.enabled", ""); +lockPref("toolkit.telemetry.infoURL", ""); +lockPref("toolkit.telemetry.newProfilePing.enabled", ""); +lockPref("toolkit.telemetry.previousBuildID", ""); +lockPref("toolkit.telemetry.prompted", ""); +lockPref("toolkit.telemetry.rejected", ""); +lockPref("toolkit.telemetry.reportingpolicy.firstRun", ""); +lockPref("toolkit.telemetry.server", ""); +lockPref("toolkit.telemetry.server_owner", ""); +lockPref("toolkit.telemetry.shutdownPingSender.enabled", ""); +lockPref("toolkit.telemetry.unified", ""); +lockPref("toolkit.telemetry.coverage.opt-out", ""); +lockPref("webextensions.storage.sync.serverURL", ""); +lockPref("extensions.screenshots.upload-disabled", ""); +lockPref("network.http.referer.trimmingPolicy", ""); +lockPref("browser.tabs.closeTabByDblclick", ""); +lockPref("datareporting.healthreport.uploadEnabled", ""); +lockPref("datareporting.policy.dataSubmissionEnabled", ""); +lockPref("dom.event.contextmenu.enabled", ""); +lockPref("dom.event.clipboardevents.enabled", ""); +lockPref("network.IDN_show_punycode", ""); +lockPref("extensions.pocket.enabled", ""); +lockPref("extensions.pocket.site", ""); +lockPref("extensions.pocket.oAuthConsumerKey", ""); +lockPref("extensions.pocket.api", ""); +lockPref("browser.aboutHomeSnippets.updateUrl", ""); +lockPref("general.buildID.override", ""); +lockPref("browser.startup.homepage_override.buildID", ""); +lockPref("browser.send_pings", ""); +lockPref("browser.send_pings.require_same_host", ""); +lockPref("browser.cache.offline.enable", ""); +lockPref("network.prefetch-next", ""); +lockPref("network.http.speculative-parallel-limit", ""); +lockPref("media.peerconnection.enabled", ""); +lockPref("dom.enable_performance", ""); +lockPref("dom.enable_performance_navigation_timing", ""); +lockPref("dom.enable_user_timing", ""); +lockPref("dom.webaudio.enabled", ""); +lockPref("geo.wifi.logging.enabled", ""); +lockPref("beacon.enabled", ""); +lockPref("media.webspeech.recognition.enable", ""); +lockPref("dom.vr.enabled", ""); +lockPref("dom.vibrator.enabled", ""); +lockPref("browser.search.region", ""); +lockPref("browser.search.geoip.url", ""); +lockPref("browser.search.geoSpecificDefaults.url", ""); +lockPref("browser.search.geoSpecificDefaults", ""); +lockPref("browser.urlbar.trimURLs", ""); +lockPref("browser.fixup.alternate.enabled", ""); +lockPref("browser.fixup.hide_user_pass", ""); +lockPref("network.manage-offline-status", ""); +lockPref("security.fileuri.strict_origin_policy", ""); +lockPref("gfx.font_rendering.opentype_svg.enabled", ""); +lockPref("network.protocol-handler.warn-external-default", ""); +lockPref("network.protocol-handler.external.http", ""); +lockPref("network.protocol-handler.external.https", ""); +lockPref("network.protocol-handler.external.javascript", ""); +lockPref("network.protocol-handler.external.moz-extension", ""); +lockPref("network.protocol-handler.external.ftp", ""); +lockPref("network.protocol-handler.external.file", ""); +lockPref("network.protocol-handler.external.about", ""); +lockPref("network.protocol-handler.external.chrome", ""); +lockPref("network.protocol-handler.external.blob", ""); +lockPref("network.protocol-handler.external.data", ""); +lockPref("network.protocol-handler.expose-all", ""); +lockPref("network.protocol-handler.expose.http", ""); +lockPref("network.protocol-handler.expose.https", ""); +lockPref("network.protocol-handler.expose.javascript", ""); +lockPref("network.protocol-handler.expose.moz-extension", ""); +lockPref("network.protocol-handler.expose.ftp", ""); +lockPref("network.protocol-handler.expose.file", ""); +lockPref("network.protocol-handler.expose.about", ""); +lockPref("network.protocol-handler.expose.chrome", ""); +lockPref("network.protocol-handler.expose.blob", ""); +lockPref("network.protocol-handler.expose.data", ""); +lockPref("security.dialog_enable_delay", ""); +defaultPref("extensions.getAddons.cache.enabled", ""); +lockPref("lightweightThemes.update.enabled", ""); +lockPref("lightweightThemes.persisted.headerURL", ""); +lockPref("lightweightThemes.persisted.footerURL", ""); +lockPref("plugin.state.flash", ""); +lockPref("dom.ipc.plugins.flash.subprocess.crashreporter.enabled", ""); +lockPref("dom.ipc.plugins.reportCrashURL", ""); +lockPref("shumway.disabled", ""); +lockPref("plugin.state.libgnome-shell-browser-plugin", ""); +lockPref("plugins.click_to_play", ""); +lockPref("plugin.sessionPermissionNow.intervalInMinutes", ""); +defaultPref("extensions.update.enabled", ""); +lockPref("extensions.blocklist.enabled", ""); +lockPref("extensions.systemAddon.update.enabled", ""); +lockPref("devtools.webide.enabled", ""); +lockPref("devtools.webide.autoinstallADBExtension", ""); +lockPref("devtools.remote.adb.extensionURL", ""); +lockPref("devtools.remote.adb.extensionID", ""); +lockPref("devtools.debugger.force-local", ""); +lockPref("network.allow-experiments", ""); +lockPref("browser.tabs.crashReporting.sendReport", ""); +lockPref("browser.crashReports.unsubmittedCheck.enabled", ""); +lockPref("browser.crashReports.unsubmittedCheck.autoSubmit2", ""); +lockPref("app.shield.optoutstudies.enabled", ""); +lockPref("browser.newtabpage.activity-stream.feeds.section.topstories", ""); +lockPref("browser.newtabpage.activity-stream.section.highlights.includePocket", ""); +lockPref("browser.newtabpage.activity-stream.showSponsored", ""); +lockPref("browser.newtabpage.activity-stream.aboutHome.enabled", ""); +lockPref("browser.newtabpage.activity-stream.asrouter.messageProviders", ""); +lockPref("browser.newtabpage.activity-stream.asrouter.devtoolsEnableds", ""); +lockPref("browser.newtabpage.activity-stream.telemetry", ""); +lockPref("browser.newtabpage.activity-stream.telemetry.ping.endpoint", ""); +lockPref("browser.newtabpage.activity-stream.feeds.telemetry", ""); +lockPref("browser.newtabpage.activity-stream.feeds.snippets", ""); +lockPref("browser.newtabpage.activity-stream.disableSnippets", ""); +lockPref("browser.newtabpage.activity-stream.default.sites", ""); +lockPref("browser.newtabpage.activity-stream.discoverystream.config", ""); +lockPref("browser.newtabpage.activity-stream.discoverystream.endpoints", ""); +lockPref("browser.newtabpage.activity-stream.feeds.asrouterfeed", ""); +lockPref("browser.newtabpage.activity-stream.feeds.discoverystreamfeed", ""); +lockPref("browser.newtabpage.activity-stream.feeds.newtabinit", ""); +lockPref("browser.newtabpage.activity-stream.feeds.places", ""); +lockPref("browser.newtabpage.activity-stream.feeds.systemtick", ""); +lockPref("browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar", ""); +lockPref("browser.newtab.preload", ""); +lockPref("browser.urlbar.suggest.searches", ""); +lockPref("browser.urlbar.userMadeSearchSuggestionsChoice", ""); +lockPref("browser.search.update", ""); +lockPref("network.captive-portal-service.enabled", ""); +lockPref("network.negotiate-auth.allow-insecure-ntlm-v1", ""); +lockPref("network.negotiate-auth.allow-insecure-ntlm-v1-https", ""); +lockPref("signon.formlessCapture.enabled", ""); +lockPref("browser.helperApps.deleteTempFileOnExit", ""); +lockPref("browser.pagethumbnails.capturing_disabled", ""); + + +// ghacks user.js + +lockPref("toolkit.coverage.endpoint.base", ""); +lockPref("toolkit.coverage.opt-out", ""); +lockPref("browser.download.manager.addToRecentDocs", ""); +lockPref("browser.download.hide_plugins_without_extensions", ""); +lockPref("webchannel.allowObject.urlWhitelist", ""); +lockPref("browser.cache.offline.insecure.enable", ""); +lockPref("network.http.redirection-limit", ""); +lockPref("offline-apps.allow_by_default", ""); +lockPref("extensions.enabledScopes", ""); +lockPref("extensions.autoDisableScopes", ""); +lockPref("xpinstall.whitelist.required", ""); +lockPref("dom.push.enabled", ""); +lockPref("dom.push.connection.enabled", ""); +lockPref("dom.push.serverURL", ""); +lockPref("dom.push.userAgentID", ""); +lockPref("security.data_uri.block_toplevel_data_uri_navigations", ""); +lockPref("ui.use_standins_for_native_colors", ""); +lockPref("services.blocklist.onecrl.collection", ""); +lockPref("services.blocklist.addons.collection", ""); +lockPref("services.blocklist.plugins.collection", ""); +lockPref("services.blocklist.gfx.collection", ""); +lockPref("browser.startup.blankWindow", ""); +lockPref("dom.event.highrestimestamp.enabled", ""); +lockPref("privacy.trackingprotection.introURL", ""); +lockPref("network.http.altsvc.enabled", ""); +lockPref("network.http.altsvc.oe", ""); +lockPref("network.file.disable_unc_paths", ""); +lockPref("network.gio.supported-protocols", ""); +lockPref("browser.urlbar.usepreloadedtopurls.enabled", ""); +lockPref("browser.urlbar.speculativeConnect.enabled", ""); +lockPref("browser.urlbar.oneOffSearches", ""); +lockPref("network.auth.subresource-img-cross-origin-http-auth-allow", ""); +lockPref("browser.shell.shortcutFavicons", ""); +lockPref("alerts.showFavicons", ""); +lockPref("security.ssl.require_safe_negotiation", ""); +lockPref("security.tls.enable_0rtt_data", ""); +lockPref("browser.xul.error_pages.expert_bad_cert", ""); +lockPref("font.blacklist.underline_offset", ""); +lockPref("gfx.font_rendering.graphite.enabled", ""); +lockPref("network.http.referer.XOriginTrimmingPolicy", ""); +lockPref("network.http.referer.spoofSource", ""); +lockPref("plugin.default.state", ""); +lockPref("plugin.defaultXpi.state", ""); +lockPref("canvas.capturestream.enabled", ""); +lockPref("dom.imagecapture.enabled", ""); +lockPref("gfx.offscreencanvas.enabled", ""); +lockPref("dom.disable_window_open_feature.close", ""); +lockPref("dom.disable_window_open_feature.location", ""); +lockPref("dom.disable_window_open_feature.menubar", ""); +lockPref("dom.disable_window_open_feature.minimizable", ""); +lockPref("dom.disable_window_open_feature.personalbar", ""); +lockPref("dom.disable_window_open_feature.resizable", ""); +lockPref("dom.disable_window_open_feature.status", ""); +lockPref("dom.disable_window_open_feature.titlebar", ""); +lockPref("dom.disable_window_open_feature.toolbar", ""); +lockPref("dom.disable_window_move_resize", ""); +lockPref("dom.IntersectionObserver.enabled", ""); +lockPref("accessibility.force_disabled", ""); +lockPref("browser.uitour.enabled", ""); +lockPref("browser.uitour.url", ""); +lockPref("middlemouse.contentLoadURL", ""); +lockPref("permissions.manager.defaultsUrl", ""); + + +// ESR 60 + +lockPref("browser.search.countryCode", ""); +lockPref("experiments.activeExperiment", ""); +lockPref("experiments.enabled", ""); +lockPref("experiments.manifest.uri", ""); +lockPref("experiments.supported", ""); +lockPref("network.jar.block-remote-files", ""); +lockPref("network.jar.open-unsafe-types", ""); +lockPref("plugin.state.java", ""); +lockPref("services.blocklist.update_enabled", ""); +lockPref("shield.savant.enabled", ""); + + +// Windows + +lockPref("webgl.dxgl.enabled", ""); +lockPref("plugin.scan.plid.all", ""); +lockPref("browser.taskbar.lists.enabled", ""); +lockPref("browser.taskbar.lists.frequent.enabled", ""); +lockPref("browser.taskbar.lists.recent.enabled", ""); +lockPref("browser.taskbar.lists.tasks.enabled", ""); +lockPref("browser.taskbar.previews.enable", ""); +lockPref("network.protocol-handler.external.ms-windows-store", ""); +lockPref("app.update.service.enabled", ""); +lockPref("toolkit.winRegisterApplicationRestart", ""); +lockPref("security.family_safety.mode", ""); + + +// Fingerprinting + +defaultPref("privacy.resistFingerprinting", ""); +defaultPref("privacy.resistFingerprinting.block_mozAddonManager", ""); + + +// Controversial + +lockPref("dom.indexedDB.enabled", ""); +lockPref("dom.w3c_pointer_events.enabled", ""); + + +// Defaulting + +defaultPref("privacy.spoof_english", ""); +defaultPref("network.http.referer.defaultPolicy", ""); +defaultPref("network.http.referer.defaultPolicy.pbmode", ""); +defaultPref("privacy.userContext.ui.enabled", ""); +defaultPref("privacy.userContext.enabled", ""); +defaultPref("privacy.userContext.longPressBehavior", ""); +defaultPref("browser.download.autohideButton", ""); +defaultPref("accessibility.typeaheadfind", ""); +defaultPref("clipboard.autocopy", ""); +defaultPref("layout.spellcheckDefault", ""); +defaultPref("browser.tabs.closeWindowWithLastTab", ""); +defaultPref("general.autoScroll", ""); +defaultPref("pdfjs.disabled", ""); +defaultPref("dom.disable_open_during_load", ""); +defaultPref("browser.link.open_newwindow", ""); +defaultPref("browser.link.open_newwindow.restriction", ""); +defaultPref("network.proxy.autoconfig_url", ""); +defaultPref("network.proxy.autoconfig_url.include_path", ""); +defaultPref("network.proxy.socks_remote_dns", ""); +defaultPref("network.proxy.socks_version", ""); +defaultPref("browser.tabs.loadBookmarksInTabs", ""); +defaultPref("devtools.debugger.remote-enabled", ""); +defaultPref("devtools.chrome.enabled", ""); +defaultPref("general.useragent.site_specific_overrides", ""); +defaultPref("extensions.ui.experiment.hidden", ""); + +// User Settings + +// User Settings: Proxy + + +// User Settings: DRM/CDM + +lockPref("media.eme.enabled", ""); +lockPref("media.gmp-provider.enabled", ""); +lockPref("media.gmp-manager.url", ""); +lockPref("media.gmp-manager.url.override", ""); +lockPref("media.gmp-manager.updateEnabled", ""); +lockPref("media.gmp.trial-create.enabled", ""); +lockPref("media.gmp-widevinecdm.visible", ""); +lockPref("media.gmp-widevinecdm.enabled", ""); +lockPref("media.gmp-widevinecdm.autoupdate", ""); +lockPref("media.gmp-gmpopenh264.enabled", ""); +lockPref("media.gmp-gmpopenh264.autoupdate", ""); +defaultPref("media.peerconnection.video.enabled", ""); +lockPref("media.gmp-eme-adobe.enabled", ""); +lockPref("media.gmp-manager.certs.2.commonName", ""); +lockPref("media.gmp-manager.certs.1.commonName", ""); + +// User Settings: Default Browser + +lockPref("browser.shell.checkDefaultBrowser", ""); + +// User Settings: Autoplay + +lockPref("media.autoplay.default", ""); + +// User Settings: Start Page + +lockPref("browser.newtabpage.activity-stream.feeds.section.highlights", ""); +lockPref("browser.newtabpage.activity-stream.section.highlights.includeBookmarks", ""); +lockPref("browser.newtabpage.activity-stream.section.highlights.includeDownloads", ""); +lockPref("browser.newtabpage.activity-stream.section.highlights.includeVisited", ""); +lockPref("browser.newtabpage.activity-stream.prerender", ""); + +// User Settings: History + +lockPref("browser.sessionhistory.max_entries", ""); +lockPref("browser.urlbar.filter.javascript", ""); +defaultPref("browser.uiCustomization.state", ""); +defaultPref("browser.uidensity", ""); +defaultPref("browser.tabs.drawInTitlebar", ""); +pref("startup.homepage_override_url", ""); +pref("startup.homepage_welcome_url", ""); +pref("startup.homepage_welcome_url.additional", ""); +defaultPref("privacy.clearOnShutdown.offlineApps", ""); +defaultPref("privacy.cpd.offlineApps", ""); +defaultPref("privacy.sanitize.timeSpan", ""); +defaultPref("browser.formfill.enable", ""); +defaultPref("privacy.sanitize.sanitizeOnShutdown", ""); +defaultPref("places.history.enabled", ""); +defaultPref("places.history.expiration.max_pages", ""); +defaultPref("privacy.history.custom", ""); + +// User Settings: Do Not Track + +lockPref("privacy.donottrackheader.enabled", ""); +lockPref("privacy.donottrackheader.value", ""); + +// User Settings: Theming + + +// User Settings: Miscellaneous + +lockPref("dom.disable_beforeunload", ""); +lockPref("permissions.default.geo", ""); + +// User Settings: Tracking Protection + +lockPref("privacy.trackingprotection.enabled", ""); +lockPref("privacy.trackingprotection.annotate_channels", ""); +lockPref("privacy.trackingprotection.lower_network_priority", ""); +lockPref("privacy.trackingprotection.pbmode.enabled", ""); +lockPref("urlclassifier.trackingTable", ""); +lockPref("pref.privacy.disable_button.change_blocklist", ""); +lockPref("browser.contentblocking.reportBreakage.enabled", ""); +lockPref("browser.contentblocking.reportBreakage.url", ""); +lockPref("browser.contentblocking.rejecttrackers.reportBreakage.enabled", ""); +lockPref("browser.contentblocking.rejecttrackers.ui.enabled", ""); +lockPref("browser.contentblocking.trackingprotection.control-center.ui.enabled", ""); +lockPref("browser.contentblocking.trackingprotection.ui.enabled", ""); + +// User Settings: Session + +lockPref("browser.sessionstore.privacy_level", ""); +lockPref("browser.sessionstore.interval", ""); + +// User Settings: Autofill + +defaultPref("extensions.formautofill.addresses.enabled", ""); +defaultPref("extensions.formautofill.available", ""); +defaultPref("extensions.formautofill.creditCards.enabled", ""); +defaultPref("extensions.formautofill.heuristics.enabled", ""); +lockPref("signon.autofillForms", ""); +lockPref("signon.autofillForms.http", ""); + +// User Settings: Password Manager + +lockPref("signon.rememberSignons", ""); +lockPref("services.sync.prefs.sync.signon.rememberSignons", ""); +lockPref("signon.storeWhenAutocompleteOff", ""); + +// User Settings: Cookies + +defaultPref("network.cookie.cookieBehavior", ""); +defaultPref("network.cookie.lifetimePolicy", ""); +lockPref("network.cookie.same-site.enabled", ""); +lockPref("network.cookie.leave-secure-alone", ""); +defaultPref("network.cookie.thirdparty.sessionOnly", ""); +lockPref("network.cookie.thirdparty.nonsecureSessionOnly", ""); + +// User Settings: WebRTC + +defaultPref("media.navigator.enabled", ""); +defaultPref("media.navigator.video.enabled", ""); +defaultPref("media.getusermedia.browser.enabled", ""); +defaultPref("media.getusermedia.screensharing.enabled", ""); +defaultPref("media.getusermedia.audiocapture.enabled", ""); +defaultPref("media.peerconnection.use_document_iceservers", ""); +defaultPref("media.peerconnection.identity.enabled", ""); +defaultPref("media.peerconnection.identity.timeout", ""); +defaultPref("media.peerconnection.turn.disable", ""); +defaultPref("media.peerconnection.ice.tcp", ""); +defaultPref("media.peerconnection.ice.default_address_only", ""); +defaultPref("media.peerconnection.ice.no_host", ""); + +// User Settings: DNS + +lockPref("network.trr.mode", ""); +lockPref("network.trr.bootstrapAddress", ""); +lockPref("network.trr.uri", ""); +lockPref("network.dns.disableIPv6", ""); +lockPref("network.dns.disablePrefetch", ""); +lockPref("network.dns.disablePrefetchFromHTTPS", ""); + +// Deprecated + +// Deprecated: Inactive + +defaultPref("xpinstall.signatures.required", ""); +defaultPref("toolkit.legacyUserProfileCustomizations.stylesheets", ""); +defaultPref("devtools.selfxss.count", ""); + +// Deprecated: Active + +lockPref("browser.onboarding.enabled", ""); +lockPref("devtools.webide.autoinstallADBHelper", ""); +lockPref("dom.mozTCPSocket.enabled", ""); +lockPref("app.update.enabled", ""); +lockPref("browser.bookmarks.max_backups", ""); +lockPref("browser.casting.enabled", ""); +lockPref("browser.newtabpage.activity-stream.enabled", ""); +lockPref("browser.newtabpage.directory.ping", ""); +lockPref("browser.newtabpage.directory.source", ""); +lockPref("browser.newtabpage.enhanced", ""); +lockPref("browser.pocket.enabled", ""); +lockPref("browser.selfsupport.url", ""); +lockPref("browser.startup.homepage_override.mstone", ""); +lockPref("camera.control.face_detection.enabled", ""); +lockPref("datareporting.healthreport.about.reportUrl", ""); +lockPref("datareporting.healthreport.service.enabled", ""); +lockPref("device.sensors.enabled", ""); +lockPref("devtools.webide.autoinstallFxdtAdapters", ""); +lockPref("devtools.webide.adaptersAddonURL", ""); +lockPref("dom.enable_resource_timing", ""); +lockPref("dom.flyweb.enabled", ""); +lockPref("dom.gamepad.enabled", ""); +lockPref("dom.netinfo.enabled", ""); +lockPref("dom.push.udp.wakeupEnabled", ""); +lockPref("dom.telephony.enabled", ""); +lockPref("extensions.shield-recipe-client.enabled", ""); +lockPref("loop.logDomains", ""); +lockPref("media.video_stats.enabled", ""); +lockPref("network.websocket.enabled", ""); +lockPref("reader.parse-on-load.enabled", ""); +lockPref("security.xpconnect.plugin.unrestricted", ""); +lockPref("social.directories", ""); +lockPref("social.remote-install.enabled", ""); +lockPref("social.whitelist", ""); +lockPref("security.ssl3.ecdhe_ecdsa_rc4_128_sha", ""); +lockPref("security.ssl3.ecdhe_rsa_rc4_128_sha", ""); +lockPref("security.ssl3.rsa_rc4_128_md5", ""); +lockPref("security.ssl3.rsa_rc4_128_sha", ""); +lockPref("security.tls.unrestricted_rc4_fallback", ""); diff --git a/librewolf.cr b/librewolf.cr deleted file mode 100644 index 82e65ec..0000000 --- a/librewolf.cr +++ /dev/null @@ -1,133 +0,0 @@ -require "json" -require "ecr" -require "file_utils" - -module LibrewolfParser - - class LibrewolfSettings - include JSON::Serializable - - property name : String - - property subcategory : String - - property notes : String - - property section : Array(SettingsSection) - end - - class SettingsSection - include JSON::Serializable - - property comments : String - - property notes : String? - - @[JSON::Field(key: "type")] - property setting_type : String - - property key : String - - property value : ValueUnion - - property enabled : Bool? - - property references : Array(String)? - end - - alias ValueUnion = Int32 | Bool | String - - def self.parse_json_files(config_directory) - config_jsons = Dir.glob(config_directory.path + "/*.json") - - config_directory.each_child do |child| - child_path = Path[config_directory.path].join(child) - next unless File.directory?(child_path) && !Dir.empty?(child_path.to_s) - - config_jsons += Dir.glob("#{child_path}/*.json") - end - - settings = {} of String => LibrewolfSettings - config_jsons.each { |config| settings[Path[config].basename.chomp(".json")] = LibrewolfSettings.from_json(File.read(config)) } - # settings = config_jsons.map { |config| [LibrewolfSettings.from_json(File.read(config)), Path[config].basename.chomp(".json")] } - # settings = settings_with_filenames.map { |config| config.last } - - main_settings = settings.select { |_fname, setting| setting.subcategory.blank? } - sub_settings = settings.reject { |_fname, setting| setting.subcategory.blank? } - subcategories = sub_settings.map { |_fname, setting| setting.subcategory }.uniq - subcategory_settings = {} of String => typeof(sub_settings) - subcategories.each do |category| - subcategory_settings[category] = sub_settings.select { |_fname, setting| setting.subcategory == category } - end - - [main_settings, subcategory_settings] - end - - def self.build_cfg(main_settings, subcategory_settings) - main_settings = main_settings.map { |_fname, setting| setting } - sub_settings = {} of String => Array(LibrewolfSettings) - subcategory_settings.each do |category, settings| - sub_settings[category] = settings.map { |_fname, setting| setting } - end - - subcategory_settings = sub_settings - - tempfile = File.tempfile("librewolf.cfg") - path = tempfile.path - - ecr = ECR.render("templates/librewolf.cfg.ecr") - tempfile.puts(ecr) - - tempfile.close - path - end - - def self.build_docs(main_settings, subcategory_settings) - tempdir = Dir.tempdir - docs_dir = Path[tempdir].join("docs") - settings_docs_dir = Path[tempdir].join("docs", "settings") - Dir.mkdir_p(settings_docs_dir.to_s) - - main_settings.each do |filename, setting_json| - filename = filename + ".md" - File.open(settings_docs_dir.join(filename).to_s, "w") do |file| - file.puts(ECR.render("templates/doc.md.ecr")) - end - end - - subcategory_settings.each do |category, sub_settings| - title = category - category_dir = settings_docs_dir.join(title.downcase.split(" ").join("_")) - Dir.mkdir_p(category_dir.to_s) - File.open(category_dir.join("_index.md").to_s, "w") do |file| - file.puts(ECR.render("templates/doc_index.md.ecr")) - end - sub_settings.each do |filename, setting_json| - filename = filename + ".md" - File.open(category_dir.join(filename).to_s, "w") do |file| - file.puts(ECR.render("templates/doc.md.ecr")) - end - end - end - docs_dir.to_s - end -end - -config_directory = Dir.new("./librewolf.cfg") -main_settings, subcategory_settings = LibrewolfParser.parse_json_files(config_directory) -exit unless main_settings.is_a?(Hash(String, LibrewolfParser::LibrewolfSettings)) && subcategory_settings.is_a?(Hash(String, Hash(String, LibrewolfParser::LibrewolfSettings))) - - -tempfile = LibrewolfParser.build_cfg(main_settings, subcategory_settings) -tempdir = LibrewolfParser.build_docs(main_settings, subcategory_settings) - -FileUtils.rm_rf("./dist") if Dir.exists?("./dist") -Dir.mkdir_p("./dist") -dist_directory = Dir.new("./dist") -dist_file = Path[dist_directory.path].join("librewolf.cfg") -FileUtils.cp(tempfile, dist_file.to_s) -FileUtils.rm(tempfile) - -# chmod! -FileUtils.cp_r(tempdir, Path[dist_directory.path].join("docs").to_s) -FileUtils.rm_r(tempdir) diff --git a/shard.yml b/shard.yml new file mode 100644 index 0000000..cbb087d --- /dev/null +++ b/shard.yml @@ -0,0 +1,19 @@ +name: librewolf_parser +version: 0.1.0 + +authors: + - ohfp <1813007-ohfp@users.noreply.gitlab.com> + +# dependencies: + # markd: + # github: icyleaf/markd + # tablo: + # github: hutou/tablo + +targets: + librewolf_parser: + main: src/librewolf_parser.cr + +crystal: 0.34.0 + +license: MPL2 diff --git a/src/librewolf_parser.cr b/src/librewolf_parser.cr new file mode 100644 index 0000000..cef2988 --- /dev/null +++ b/src/librewolf_parser.cr @@ -0,0 +1,64 @@ +require "json" +require "ecr" +require "file_utils" +require "./librewolf_parser/parse_json_files.cr" +require "./librewolf_parser/builders.cr" + +module LibrewolfParser + VERSION = "0.1.0" + + class LibrewolfSettings + include JSON::Serializable + + property name : String + + property subcategory : String + + property notes : String + + property section : Array(SettingsSection) + end + + class SettingsSection + include JSON::Serializable + + property comments : String + + property notes : String? + + @[JSON::Field(key: "type")] + property setting_type : String + + property key : String + + property value : ValueUnion + + property enabled : Bool? + + property references : Array(String)? + end + + alias ValueUnion = Int32 | Bool | String +end + +config_directory = Dir.new("./librewolf.cfg") +main_settings, subcategory_settings = LibrewolfParser.parse_json_files(config_directory) + +# help the compiler with inferring some types +exit unless main_settings.is_a?(Hash(String, LibrewolfParser::LibrewolfSettings)) && subcategory_settings.is_a?(Hash(String, Hash(String, LibrewolfParser::LibrewolfSettings))) + +cfg_tempfile = LibrewolfParser.build_cfg(main_settings, subcategory_settings) +docs_tempdir = LibrewolfParser.build_docs(main_settings, subcategory_settings) + +# TODO: should the Makefile do this? +FileUtils.rm_rf("./dist") if Dir.exists?("./dist") +Dir.mkdir_p("./dist") +dist_directory = Dir.new("./dist") +dist_file = Path[dist_directory.path].join("librewolf.cfg") + +FileUtils.cp(cfg_tempfile, dist_file.to_s) +FileUtils.rm(cfg_tempfile) +File.chmod(dist_file.to_s, 0o644) + +FileUtils.cp_r(docs_tempdir, Path[dist_directory.path].join("docs").to_s) +FileUtils.rm_r(docs_tempdir) diff --git a/src/librewolf_parser/builders.cr b/src/librewolf_parser/builders.cr new file mode 100644 index 0000000..2f4e40f --- /dev/null +++ b/src/librewolf_parser/builders.cr @@ -0,0 +1,50 @@ +module LibrewolfParser + def self.build_cfg(main_settings, subcategory_settings) + main_settings = main_settings.map { |_fname, setting| setting } + sub_settings = {} of String => Array(LibrewolfSettings) + subcategory_settings.each do |category, settings| + sub_settings[category] = settings.map { |_fname, setting| setting } + end + + subcategory_settings = sub_settings + + tempfile = File.tempfile("librewolf.cfg") + path = tempfile.path + + ecr = ECR.render("templates/librewolf.cfg.ecr") + tempfile.puts(ecr) + + tempfile.close + path + end + + def self.build_docs(main_settings, subcategory_settings) + tempdir = Dir.tempdir + docs_dir = Path[tempdir].join("docs") + settings_docs_dir = Path[tempdir].join("docs", "settings") + Dir.mkdir_p(settings_docs_dir.to_s) + + main_settings.each do |filename, setting_json| + filename = filename + ".md" + File.open(settings_docs_dir.join(filename).to_s, "w") do |file| + file.puts(ECR.render("templates/doc.md.ecr")) + end + end + + subcategory_settings.each do |category, sub_settings| + title = category + category_dir = settings_docs_dir.join(title.downcase.split(" ").join("_")) + Dir.mkdir_p(category_dir.to_s) + File.open(category_dir.join("_index.md").to_s, "w") do |file| + file.puts(ECR.render("templates/doc_index.md.ecr")) + end + sub_settings.each do |filename, setting_json| + filename = filename + ".md" + File.open(category_dir.join(filename).to_s, "w") do |file| + file.puts(ECR.render("templates/doc.md.ecr")) + end + end + end + docs_dir.to_s + end +end diff --git a/src/librewolf_parser/parse_json_files.cr b/src/librewolf_parser/parse_json_files.cr new file mode 100644 index 0000000..0164a16 --- /dev/null +++ b/src/librewolf_parser/parse_json_files.cr @@ -0,0 +1,25 @@ +module LibrewolfParser + def self.parse_json_files(config_directory) + config_jsons = Dir.glob(config_directory.path + "/*.json") + + config_directory.each_child do |child| + child_path = Path[config_directory.path].join(child) + next unless File.directory?(child_path) && !Dir.empty?(child_path.to_s) + + config_jsons += Dir.glob("#{child_path}/*.json") + end + + settings = {} of String => LibrewolfSettings + config_jsons.each { |config| settings[Path[config].basename.chomp(".json")] = LibrewolfSettings.from_json(File.read(config)) } + + main_settings = settings.select { |_fname, setting| setting.subcategory.blank? } + sub_settings = settings.reject { |_fname, setting| setting.subcategory.blank? } + subcategories = sub_settings.map { |_fname, setting| setting.subcategory }.uniq + subcategory_settings = {} of String => typeof(sub_settings) + subcategories.each do |category| + subcategory_settings[category] = sub_settings.select { |_fname, setting| setting.subcategory == category } + end + + [main_settings, subcategory_settings] + end +end