Arkenfox user.js for Firefox

Documentation built by DwarfMaster.

0000: TOPLEVEL

0000: disable about:config warning

browser.aboutConfig.showWarning false
0100: STARTUP

0102: set startup page [SETUP-CHROME]

0=blank, 1=home, 2=last visited page, 3=resume previous session

NOTE
Session Restore is cleared with history (2811), and not used in Private Browsing mode
SETTING
General>Startup>Restore previous session

browser.startup.page 0
0103: set HOME+NEWWINDOW page

about:home=Firefox Home (default, see 0105), custom URL, about:blank

SETTING
Home>New Windows and Tabs>Homepage and new windows

browser.startup.homepage "about:blank"
0104: set NEWTAB page

true=Firefox Home (default, see 0105), false=blank page

SETTING
Home>New Windows and Tabs>New tabs

browser.newtabpage.enabled false
0105: disable sponsored content on Firefox Home (Activity Stream)

SETTING
Home>Firefox Home Content

browser.newtabpage.activity-stream.showSponsored false
browser.newtabpage.activity-stream.showSponsoredTopSites false
0106: clear default topsites

NOTE
This does not block you from adding your own

browser.newtabpage.activity-stream.default.sites ""
0200: GEOLOCATION

0202: disable using the OS's geolocation service

geo.provider.ms-windows-location false
geo.provider.use_corelocation false
geo.provider.use_geoclue false
0300: QUIETER FOX

0320: disable recommendation pane in about:addons (uses Google Analytics)

extensions.getAddons.showPane false
0321: disable recommendations in about:addons' Extensions and Themes panes [FF68+]

extensions.htmlaboutaddons.recommendations.enabled false
0322: disable personalized Extension Recommendations in about:addons and AMO [FF65+]

NOTE
This pref has no effect when Health Reports (0331) are disabled
SETTING
Privacy & Security>Firefox Data Collection & Use>Allow Firefox to make personalized extension recommendations

browser.discovery.enabled false
0323: disable shopping experience [FF116+]
browser.shopping.experience2023.enabled false
0330: disable new data submission [FF41+]

If disabled, no policy is shown or upload takes place, ever

datareporting.policy.dataSubmissionEnabled false
0331: disable Health Reports

SETTING
Privacy & Security>Firefox Data Collection & Use>Allow Firefox to send technical... data

datareporting.healthreport.uploadEnabled false
0332: disable telemetry

The "unified" pref affects the behavior of the "enabled" pref - If "unified" is false then "enabled" controls the telemetry module - If "unified" is true then "enabled" only controls whether to record extended data

NOTE
"toolkit.telemetry.enabled" is now LOCKED to reflect prerelease (true) or release builds (false) [2]

toolkit.telemetry.unified false
toolkit.telemetry.enabled false
toolkit.telemetry.server "data:,"
toolkit.telemetry.archive.enabled false
toolkit.telemetry.newProfilePing.enabled false
toolkit.telemetry.shutdownPingSender.enabled false
toolkit.telemetry.updatePing.enabled false
toolkit.telemetry.bhrPing.enabled false
toolkit.telemetry.firstShutdownPing.enabled false
0333: disable Telemetry Coverage
toolkit.telemetry.coverage.opt-out true
toolkit.coverage.opt-out true
toolkit.coverage.endpoint.base ""
0335: disable Firefox Home (Activity Stream) telemetry

browser.newtabpage.activity-stream.feeds.telemetry false
browser.newtabpage.activity-stream.telemetry false
0340: disable Studies

SETTING
Privacy & Security>Firefox Data Collection & Use>Allow Firefox to install and run studies

app.shield.optoutstudies.enabled false
0341: disable Normandy/Shield [FF60+]

Shield is a telemetry system that can push and test "recipes"

app.normandy.enabled false
app.normandy.api_url ""
0350: disable Crash Reports

breakpad.reportURL ""
browser.tabs.crashReporting.sendReport false
browser.crashReports.unsubmittedCheck.enabled false
0351: enforce no submission of backlogged Crash Reports [FF58+]

SETTING
Privacy & Security>Firefox Data Collection & Use>Allow Firefox to send backlogged crash reports

browser.crashReports.unsubmittedCheck.autoSubmit2 false
0360: disable Captive Portal detection
captivedetect.canonicalURL ""
network.captive-portal-service.enabled false
0361: disable Network Connectivity checks [FF65+]
network.connectivity-service.enabled false
0400: SAFE BROWSING (SB)

SB has taken many steps to preserve privacy. If required, a full url is never sent to Google, only a part-hash of the prefix, hidden with noise of other real part-hashes. Firefox takes measures such as stripping out identifying parameters and since SBv4 (FF57+) doesn't even use cookies. (#Turn on browser.safebrowsing.debug to monitor this activity)

0401: disable SB (Safe Browsing)

SETTING
Privacy & Security>Security>... Block dangerous and deceptive content
WARNING
Do this at your own risk! These are the master switches

browser.safebrowsing.malware.enabled false
browser.safebrowsing.phishing.enabled false
0402: disable SB checks for downloads (both local lookups + remote)

This is the master switch for the safebrowsing.downloads* prefs (0403, 0404)

SETTING
Privacy & Security>Security>... "Block dangerous downloads"

browser.safebrowsing.downloads.enabled false
0403: disable SB checks for downloads (remote)

To verify the safety of certain executable files, Firefox may submit some information about the file, including the name, origin, size and a cryptographic hash of the contents, to the Google Safe Browsing service which helps Firefox determine whether or not the file should be blocked

SETUP-SECURITY
If you do not understand this, or you want this protection, then override this

browser.safebrowsing.downloads.remote.enabled false
browser.safebrowsing.downloads.remote.url ""
0404: disable SB checks for unwanted software

SETTING
Privacy & Security>Security>... "Warn you about unwanted and uncommon software"

browser.safebrowsing.downloads.remote.block_potentially_unwanted false
browser.safebrowsing.downloads.remote.block_uncommon false
0405: disable "ignore this warning" on SB warnings [FF45+]

If clicked, it bypasses the block for that session. This is a means for admins to enforce SB

TEST
see https://github.com/arkenfox/user.js/wiki/Appendix-A-Test-Sites#-mozilla

browser.safebrowsing.allowOverride false
0600: BLOCK IMPLICIT OUTBOUND [not explicitly asked for - e.g. clicked on]

0601: disable link prefetching
network.prefetch-next false
0602: disable DNS prefetching
network.dns.disablePrefetch true
network.dns.disablePrefetchFromHTTPS true
0603: disable predictor / prefetching

network.predictor.enabled false
network.predictor.enable-prefetch false
0604: disable link-mouseover opening connection to linked server
network.http.speculative-parallel-limit 0
0605: disable mousedown speculative connections on bookmarks and history [FF98+]

browser.places.speculativeConnect.enabled false
0610: enforce no "Hyperlink Auditing" (click tracking)
browser.send_pings false
0700: DNS / DoH / PROXY / SOCKS

0702: set the proxy server to do any DNS lookups when using SOCKS

e.g. in Tor, this stops your local DNS server from knowing your Tor destination as a remote Tor node will handle the DNS request

network.proxy.socks_remote_dns true
0703: disable using UNC (Uniform Naming Convention) paths [FF61+]

SETUP-CHROME
Can break extensions for profiles on network shares

network.file.disable_unc_paths true
0704: disable GIO as a potential proxy bypass vector

Gvfs/GIO has a set of supported protocols like obex, network, archive, computer, dav, cdda, gphoto2, trash, etc. From FF87-117, by default only sftp was accepted

network.gio.supported-protocols ""
0705: disable proxy direct failover for system requests [FF91+]

SETUP-CHROME
If you use a proxy and you trust your extensions
WARNING
Default true is a security feature against malicious extensions [1]

network.proxy.failover_direct false
0706: disable proxy bypass for system request failures [FF95+]

RemoteSettings, UpdateService, Telemetry [1]

SETUP-CHROME
If you use a proxy and you understand the security impact
WARNING
If false, this will break the fallback for some security features

network.proxy.allow_bypass false
0710: enable DNS-over-HTTPS (DoH) [FF60+]

0=default, 2=increased (TRR (Trusted Recursive Resolver) first), 3=max (TRR only), 5=off (no rollout) see "doh-rollout.home-region": USA 2019, Canada 2021, Russia/Ukraine 2022 [3]

SETTING
Privacy & Security>DNS over HTTPS

network.trr.mode 3
0712: set DoH provider

The custom uri is the value shown when you "Choose provider>Custom>"

NOTE
If you USE custom then "network.trr.uri" should be set the same
SETTING
Privacy & Security>DNS over HTTPS>Increased/Max>Choose provider

network.trr.uri "https://example.dns"
network.trr.custom_uri "https://example.dns"
0800: LOCATION BAR / SEARCH BAR / SUGGESTIONS / HISTORY / FORMS

0801: disable location bar making speculative connections [FF56+]
browser.urlbar.speculativeConnect.enabled false
0802: disable location bar contextual suggestions

NOTE
The UI is controlled by the .enabled pref
SETTING
Search>Address Bar>Suggestions from...

browser.urlbar.quicksuggest.enabled false
browser.urlbar.suggest.quicksuggest.nonsponsored false
browser.urlbar.suggest.quicksuggest.sponsored false
0803: disable live search suggestions

NOTE
Both must be true for live search to work in the location bar
SETTING
Search>Show search suggestions | Show search suggestions in address bar results
SETUP-CHROME
Override these if you trust and use a privacy respecting search engine

browser.search.suggest.enabled false
browser.urlbar.suggest.searches false
0805: disable urlbar trending search suggestions [FF118+]

SETTING
Search>Search Suggestions>Show trending search suggestions (FF119)

browser.urlbar.trending.featureGate false
0806: disable urlbar suggestions

browser.urlbar.addons.featureGate false
browser.urlbar.mdn.featureGate false
browser.urlbar.pocket.featureGate false
browser.urlbar.weather.featureGate false
browser.urlbar.yelp.featureGate false
0807: disable urlbar clipboard suggestions [FF118+]

browser.urlbar.clipboard.featureGate false
0808: disable recent searches [FF120+]

NOTE
Recent searches are cleared with history (2811)

browser.urlbar.recentsearches.featureGate false
0810: disable search and form history

NOTE
We also clear formdata on exit (2811)
SETTING
Privacy & Security>History>Custom Settings>Remember search and form history
SETUP-WEB
Be aware that autocomplete form data can be read by third parties [1][2]

browser.formfill.enable false
0815: disable tab-to-search [FF85+]

Alternatively, you can exclude on a per-engine basis by unchecking them in Options>Search

SETTING
Search>Address Bar>When using the address bar, suggest>Search engines

browser.urlbar.suggest.engines false
0820: disable coloring of visited links

redraw timing attacks were largely mitigated in FF77+ [3]. Using RFP (4501) further hampers timing attacks. Don't forget clearing history on exit (2811). However, social engineering [2#limits][4][5] and advanced targeted timing attacks could still produce usable results

SETUP-HARDEN
Bulk rapid history sniffing was mitigated in 2010 [1][2]. Slower and more expensive

layout.css.visited_links_enabled false
0830: enable separate default search engine in Private Windows and its UI setting

SETTING
Search>Default Search Engine>Choose a different default search engine for Private Windows only

browser.search.separatePrivateDefault true
browser.search.separatePrivateDefault.ui.enabled true
0900: PASSWORDS
0903: disable auto-filling username & password form fields

can leak in cross-site forms *and* be spoofed

NOTE
Username & password is still available when you enter the field
SETTING
Privacy & Security>Logins and Passwords>Autofill logins and passwords

signon.autofillForms false
0904: disable formless login capture for Password Manager [FF51+]

signon.formlessCapture.enabled false
0905: limit (or disable) HTTP authentication credentials dialogs triggered by sub-resources [FF41+]

hardens against potential credentials phishing 0 = don't allow sub-resources to open HTTP authentication credentials dialogs 1 = don't allow cross-origin sub-resources to open HTTP authentication credentials dialogs 2 = allow sub-resources to open HTTP authentication credentials dialogs (default)

network.auth.subresource-http-auth-allow 1
0906: enforce no automatic authentication on Microsoft sites [FF91+] [WINDOWS 10+]

SETTING
Privacy & Security>Logins and Passwords>Allow Windows single sign-on for...

network.http.windows-sso.enabled false
1000: DISK AVOIDANCE

1001: disable disk cache

NOTE
We also clear cache on exit (2811)
SETUP-CHROME
If you think disk cache helps perf, then feel free to override this

browser.cache.disk.enable false
1002: disable media cache from writing to disk in Private Browsing

NOTE
MSE (Media Source Extensions) are already stored in-memory in PB

browser.privatebrowsing.forceMediaMemoryCache true
media.memory_cache_max_size 65536
1003: disable storing extra session data [SETUP-CHROME]

define on which sites to save extra session data such as form content, cookies and POST data 0=everywhere, 1=unencrypted sites, 2=nowhere

browser.sessionstore.privacy_level 2
1005: disable automatic Firefox start and session restore after reboot [FF62+] [WINDOWS]
toolkit.winRegisterApplicationRestart false
1006: disable favicons in shortcuts [WINDOWS]

URL shortcuts use a cached randomly named .ico file which is stored in your profile/shortcutCache directory. The .ico remains after the shortcut is deleted If set to false then the shortcuts use a generic Firefox icon

browser.shell.shortcutFavicons false
1200: HTTPS (SSL/TLS / OCSP / CERTS / HPKP)

Your cipher and other settings can be used in server side fingerprinting

TEST
https://ja3er.com/

1201: require safe negotiation

Blocks connections to servers that don't support RFC 5746 [2] as they're potentially vulnerable to a MiTM attack [3]. A server without RFC 5746 can be safe from the attack if it disables renegotiations but the problem is that the browser can't know that. Setting this pref to true is the only way for the browser to ensure there will be no unsafe renegotiations on the channel between the browser and the server

SETUP-WEB
SSL_ERROR_UNSAFE_NEGOTIATION: is it worth overriding this for that one site?
STATS
SSL Labs (May 2024) reports over 99.7% of top sites have secure renegotiation [4]

security.ssl.require_safe_negotiation true
1206: disable TLS1.3 0-RTT (round-trip time) [FF51+]

This data is not forward secret, as it is encrypted solely under keys derived using the offered PSK. There are no guarantees of non-replay between connections

security.tls.enable_0rtt_data false
1211: enforce OCSP fetching to confirm current validity of certificates

0=disabled, 1=enabled (default), 2=enabled for EV certificates only OCSP (non-stapled) leaks information about the sites you visit to the CA (cert authority) It's a trade-off between security (checking) and privacy (leaking info to the CA)

NOTE
This pref only controls OCSP fetching and does not affect OCSP stapling
SETTING
Privacy & Security>Security>Certificates>Query OCSP responder servers...

security.OCSP.enabled 1
1212: set OCSP fetch failures (non-stapled, see 1211) to hard-fail

When a CA cannot be reached to validate a cert, Firefox just continues the connection (=soft-fail) Setting this pref to true tells Firefox to instead terminate the connection (=hard-fail) It is pointless to soft-fail when an OCSP fetch fails: you cannot confirm a cert is still valid (it could have been revoked) and/or you could be under attack (e.g. malicious blocking of OCSP servers)

SETUP-WEB
SEC_ERROR_OCSP_SERVER_ERROR

security.OCSP.require true
1223: enable strict PKP (Public Key Pinning)

0=disabled, 1=allow user MiTM (default; such as your antivirus), 2=strict

SETUP-WEB
MOZILLA_PKIX_ERROR_KEY_PINNING_FAILURE

security.cert_pinning.enforcement_level 2
1224: enable CRLite [FF73+]

0 = disabled 1 = consult CRLite but only collect telemetry 2 = consult CRLite and enforce both "Revoked" and "Not Revoked" results 3 = consult CRLite and enforce "Not Revoked" results, but defer to OCSP for "Revoked" (default)

security.remote_settings.crlite_filters.enabled true
security.pki.crlite_mode 2
1241: disable insecure passive content (such as images) on https pages

security.mixed_content.block_display_content true
1244: enable HTTPS-Only mode in all windows

When the top-level is HTTPS, insecure subresources are also upgraded (silent fail)

SETTING
Privacy & Security>HTTPS-Only Mode (and manage exceptions)
TEST
http://example.com [upgrade]
TEST] http://httpforever.com/ | http://http.rip [no upgrade
***/

dom.security.https_only_mode true
dom.security.https_only_mode_pbm true
1245: enable HTTPS-Only mode for local resources [FF77+]

dom.security.https_only_mode.upgrade_local true
1246: disable HTTP background requests [FF82+]

When attempting to upgrade, if the server doesn't respond within 3 seconds, Firefox sends a top-level HTTP request without path in order to check if the server supports HTTPS or not This is done to avoid waiting for a timeout which takes 90 seconds

dom.security.https_only_mode_send_http_background_request false
1270: display warning on the padlock for "broken security" (if 1201 is false)

Bug: warning padlock not indicated for subresources on a secure page! [2]

security.ssl.treat_unsafe_negotiation_as_broken true
1272: display advanced information on Insecure Connection warning pages

only works when it's possible to add an exception i.e. it doesn't work for HSTS discrepancies (https://subdomain.preloaded-hsts.badssl.com/)

TEST
https://expired.badssl.com/

browser.xul.error_pages.expert_bad_cert true
1600: REFERERS

full URI: https://example.com:8888/foo/bar.html?id=1234 scheme+host+port+path: https://example.com:8888/foo/bar.html scheme+host+port: https://example.com:8888

1602: control the amount of cross-origin information to send [FF52+]

0=send full URI (default), 1=scheme+host+port+path, 2=scheme+host+port

network.http.referer.XOriginTrimmingPolicy 2
1700: CONTAINERS

1701: enable Container Tabs and its UI setting [FF50+]

https://wiki.mozilla.org/Security/Contextual_Identity_Project/Containers

SETTING
General>Tabs>Enable Container Tabs

privacy.userContext.enabled true
privacy.userContext.ui.enabled true
1702: set behavior on "+ Tab" button to display container menu on left click [FF74+]

NOTE
The menu is always shown on long press and right click
SETTING
General>Tabs>Enable Container Tabs>Settings>Select a container for each new tab

privacy.userContext.newTabContainerOnLeftClick.enabled true
1703: set external links to open in site-specific containers [FF123+]

true=Firefox will not choose a container (so your extension can) false=Firefox will choose the container/no-container (default)

SETUP-WEB
Depending on your container extension(s) and their settings

browser.link.force_default_user_context_id_for_external_opens true
2000: PLUGINS / MEDIA / WEBRTC

2002: force WebRTC inside the proxy [FF70+]

media.peerconnection.ice.proxy_only_if_behind_proxy true
2003: force a single network interface for ICE candidates generation [FF42+]
media.peerconnection.ice.default_address_only true
2004: force exclusion of private IPs from ICE candidates [FF51+]

grant device access, but often results in breakage on video-conferencing platforms

SETUP-HARDEN
This will protect your private IP even in TRUSTED scenarios after you

media.peerconnection.ice.no_host true
2020: disable GMP (Gecko Media Plugins)
media.gmp-provider.enabled false
2400: DOM (DOCUMENT OBJECT MODEL)

2402: prevent scripts from moving and resizing open windows

dom.disable_window_move_resize true
2600: MISCELLANEOUS

2603: remove temp files opened from non-PB windows with an external application
browser.download.start_downloads_in_tmp_dir true
browser.helperApps.deleteTempFileOnExit true
2606: disable UITour backend so there is no chance that a remote page can use it

browser.uitour.enabled false
browser.uitour.url ""
2608: reset remote debugging to disabled
devtools.debugger.remote-enabled false
2615: disable websites overriding Firefox's keyboard shortcuts [FF58+]

0 (default) or 1=allow, 2=block

SETTING
to add site exceptions: Ctrl+I>Permissions>Override Keyboard Shortcuts

permissions.default.shortcuts 2
2616: remove special permissions for certain mozilla domains [FF35+]
permissions.manager.defaultsUrl ""
2617: remove webchannel whitelist

webchannel.allowObject.urlWhitelist ""
2619: use Punycode in Internationalized Domain Names to eliminate possible spoofing

SETUP-WEB
Might be undesirable for non-latin alphabet users since legitimate IDN's are also punycoded
TEST
https://www.xn--80ak6aa92e.com/ (www.apple.com)

network.IDN_show_punycode true
2620: enforce PDFJS, disable PDFJS scripting

This setting controls if the option "Display in Firefox" is available in the setting below and by effect controls whether PDFs are handled in-browser or externally ("Ask" or "Open With") It doesn't break "state separation" of browser content (by not sharing with OS, independent apps). It maintains disk avoidance and application data isolation. It's convenient. You can still save to disk.

NOTE
JS can still force a pdf to open in-browser by bundling its own code
SETTING
General>Applications>Portable Document Format (PDF)
SETUP-CHROME
You may prefer a different pdf reader for security/workflow reasons
WHY
pdfjs is lightweight, open source, and secure: the last exploit was June 2015 [1]

pdfjs.disabled false
pdfjs.enableScripting false
2624: disable middle click on new tab button opening URLs or searches using clipboard [FF115+] */

browser.tabs.searchclipboardfor.middleclick false
2630: disable content analysis by DLP (Data Loss Prevention) agents

DLP agents are background processes on managed computers that allow enterprises to monitor locally running applications for data exfiltration events, which they can allow/block based on customer defined DLP policies. 0=Block all requests, 1=Warn on all requests (which lets the user decide), 2=Allow all requests

browser.contentanalysis.enabled false
browser.contentanalysis.default_result 0
2651: enable user interaction for security by always asking where to download

SETTING
General>Downloads>Always ask you where to save files
SETUP-CHROME
On Android this blocks longtapping and saving images

browser.download.useDownloadDir false
2652: disable downloads panel opening on every download [FF96+]

browser.download.alwaysOpenPanel false
2653: disable adding downloads to the system's "recent documents" list

browser.download.manager.addToRecentDocs false
2654: enable user interaction for security by always asking how to handle new mimetypes [FF101+]

SETTING
General>Files and Applications>What should Firefox do with other files

browser.download.always_ask_before_handling_new_types true
2660: limit allowed extension directories

1=profile, 2=user, 4=application, 8=system, 16=temporary, 31=all The pref value represents the sum: e.g. 5 would be profile and application directories

SETUP-CHROME
Breaks usage of files which are installed outside allowed directories

extensions.enabledScopes 5
extensions.autoDisableScopes 15
2661: disable bypassing 3rd party extension install prompts [FF82+]
extensions.postDownloadThirdPartyPrompt false
2662: disable webextension restrictions on certain mozilla domains (you also need 4503) [FF60+]
extensions.webextensions.restrictedDomains ""
2700: ETP (ENHANCED TRACKING PROTECTION)

2701: enable ETP Strict Mode [FF86+]

ETP Strict Mode enables Total Cookie Protection (TCP) cross-site state tracking e.g. exceptions for SiteA and SiteB means PartyC on both sites is shared

NOTE
Adding site exceptions disables all ETP protections for that site and increases the risk of
SETTING
to manage site exceptions: Options>Privacy & Security>Enhanced Tracking Protection>Manage Exceptions

browser.contentblocking.category "strict"
2702: disable ETP web compat features [FF93+]

Opener and redirect heuristics are granted for 30 days, see [3]

SETUP-HARDEN
Includes skip lists, heuristics (SmartBlock) and automatic grants

privacy.antitracking.enableWebcompat false
2800: SHUTDOWN & SANITIZING

2810: enable Firefox to clear items on shutdown

via history (2830), will no longer remove sanitize on shutdown "cookie and site data" site exceptions (2815)

NOTE
In FF129+ clearing "siteSettings" on shutdown (2811), or manually via site data (2820) and
SETTING
Privacy & Security>History>Custom Settings>Clear history when Firefox closes | Settings

privacy.sanitize.sanitizeOnShutdown true
2811: set/enforce what items to clear on shutdown (if 2810 is true) [SETUP-CHROME]

NOTE
If "history" is true, downloads will also be cleared

privacy.clearOnShutdown.cache true
privacy.clearOnShutdown_v2.cache true
privacy.clearOnShutdown.downloads true
privacy.clearOnShutdown.formdata true
privacy.clearOnShutdown.history true
privacy.clearOnShutdown_v2.historyFormDataAndDownloads true
privacy.clearOnShutdown.siteSettings false
privacy.clearOnShutdown_v2.siteSettings false
2812: set Session Restore to clear on shutdown (if 2810 is true) [FF34+]

NOTE
If true, this prevents resuming from crashes (also see 5008)

privacy.clearOnShutdown.openWindows true
2815: set "Cookies" and "Site Data" to clear on shutdown (if 2810 is true) [SETUP-CHROME]

add exceptions for both sites e.g. https://www.youtube.com (site) + https://accounts.google.com (single sign on)

NOTE
"sessions": Active Logins (has no site exceptions): refers to HTTP Basic Authentication [1], not logins via cookies
SETTING
to manage site exceptions: Options>Privacy & Security>Permissions>Settings
WARNING
Be selective with what sites you "Allow", as they also disable partitioning (1767271)

privacy.clearOnShutdown.cookies true
privacy.clearOnShutdown.offlineApps true
privacy.clearOnShutdown.sessions true
privacy.clearOnShutdown_v2.cookiesAndStorage true
2820: set manual "Clear Data" items [SETUP-CHROME] [FF128+]

Firefox remembers your last choices. This will reset them when you start Firefox

SETTING
Privacy & Security>Browser Privacy>Cookies and Site Data>Clear Data

privacy.clearSiteData.cache true
privacy.clearSiteData.cookiesAndStorage false
privacy.clearSiteData.historyFormDataAndDownloads true
privacy.clearSiteData.siteSettings false
2830: set manual "Clear History" items, also via Ctrl-Shift-Del [SETUP-CHROME]

Firefox remembers your last choices. This will reset them when you start Firefox for "Clear Recent History" is opened, it is synced to the same as "history"

NOTE
Regardless of what you set "downloads" to, as soon as the dialog
SETTING
Privacy & Security>History>Custom Settings>Clear History

privacy.cpd.cache true
privacy.clearHistory.cache true
privacy.cpd.formdata true
privacy.cpd.history true
privacy.cpd.downloads true
privacy.clearHistory.historyFormDataAndDownloads true
privacy.cpd.cookies false
privacy.cpd.sessions true
privacy.cpd.offlineApps false
privacy.clearHistory.cookiesAndStorage false
privacy.cpd.openWindows false
privacy.cpd.passwords false
privacy.cpd.siteSettings false
privacy.clearHistory.siteSettings false
2840: set "Time range to clear" for "Clear Data" (2820) and "Clear History" (2830)

Firefox remembers your last choice. This will reset the value when you start Firefox 0=everything, 1=last hour, 2=last two hours, 3=last four hours, 4=today which will display a blank value, and are not guaranteed to work

NOTE
Values 5 (last 5 minutes) and 6 (last 24 hours) are not listed in the dropdown,

privacy.sanitize.timeSpan 0
4000: FPP (fingerprintingProtection)

RFP (4501) overrides FPP In FF118+ FPP is on by default in private windows (4001) and in FF119+ is controlled by ETP (2701). FPP will also use Remote Services in future to relax FPP protections on a per site basis for compatibility (4004). https://searchfox.org/mozilla-central/source/toolkit/components/resistfingerprinting/RFPTargetsDefault.inc 1826408 - restrict fonts to system (kBaseFonts + kLangPackFonts) (Windows, Mac, some Linux) https://searchfox.org/mozilla-central/search?path=StandardFonts*.inc 1858181 - subtly randomize canvas per eTLD+1, per session and per window-mode (FF120+)

4001: enable FPP in PB mode [FF114+]

NOTE
In FF119+, FPP for all modes (7016) is enabled with ETP Strict (2701)

privacy.fingerprintingProtection.pbmode true
4002: set global FPP overrides [FF114+]

uses "RFPTargets" [1] which despite the name these are not used by RFP e.g. "+AllTargets,-CSSPrefersColorScheme,-JSDateTimeUTC" = all targets but allow prefers-color-scheme and do not change timezone e.g. "-AllTargets,+CanvasRandomization,+JSDateTimeUTC" = no targets but do use FPP canvas and change timezone

NOTE
Not supported by arkenfox. Either use RFP or FPP at defaults

privacy.fingerprintingProtection.overrides ""
4003: set granular FPP overrides

JSON format: e.g."[{\"firstPartyDomain\": \"netflix.com\", \"overrides\": \"-CanvasRandomization,-FrameRate,\"}]"

NOTE
Not supported by arkenfox. Either use RFP or FPP at defaults

privacy.fingerprintingProtection.granularOverrides ""
4004: disable remote FPP overrides [FF127+]

privacy.fingerprintingProtection.remoteOverrides.enabled false
4500: OPTIONAL RFP (resistFingerprinting)

RFP overrides FPP (4000) FF128+ Arkenfox by default uses FPP (automatically enabled with ETP Strict). For most people this is all you need. To use RFP instead, add RFP (4501) to your overrides, and optionally add letterboxing (4504), spoof_english (4506), and webgl (4520). RFP is an all-or-nothing buy in: you cannot pick and choose what parts you want 418986 - limit window.screen & CSS media queries (FF41) 1281949 - spoof screen orientation (FF50) 1360039 - spoof navigator.hardwareConcurrency as 2 (FF55) FF56 1333651 - spoof User Agent & Navigator API version: android version spoofed as ESR (FF119 or lower) OS: JS spoofed as Windows 10, OS 10.15, Android 10, or Linux | HTTP Headers spoofed as Windows or Android 1369319 - disable device sensor API 1369357 - disable site specific zoom 1337161 - hide gamepads from content 1372072 - spoof network information API as "unknown" when dom.netinfo.enabled = true 1333641 - reduce fingerprinting in WebSpeech API FF57 1369309 - spoof media statistics 1382499 - reduce screen co-ordinate fingerprinting in Touch API 1217290 & 1409677 - enable some fingerprinting resistance for WebGL 1354633 - limit MediaError.message to a whitelist FF58+ 1372073 - spoof/block fingerprinting in MediaDevices API (FF59) Spoof: enumerate devices as one "Internal Camera" and one "Internal Microphone" Block: suppresses the ondevicechange event 1039069 - warn when language prefs are not set to "en*" (FF59) 1222285 & 1433592 - spoof keyboard events and suppress keyboard modifier events (FF59) Spoofing mimics the content language of the document. Currently it only supports en-US. Modifier events suppressed are SHIFT and both ALT keys. Chrome is not affected. 1337157 - disable WebGL debug renderer info (FF60) 1459089 - disable OS locale in HTTP Accept-Language headers (ANDROID) (FF62) 1479239 - return "no-preference" with prefers-reduced-motion (FF63) 1363508 - spoof/suppress Pointer Events (FF64) 1492766 - spoof pointerEvent.pointerid (FF65) 1485266 - disable exposure of system colors to CSS or canvas (FF67) 1494034 - return "light" with prefers-color-scheme (FF67) 1564422 - spoof audioContext outputLatency (FF70) 1595823 - return audioContext sampleRate as 44100 (FF72) 1607316 - spoof pointer as coarse and hover as none (ANDROID) (FF74) 1621433 - randomize canvas (previously FF58+ returned an all-white canvas) (FF78) 1506364 - return "no-preference" with prefers-contrast (FF80) 1653987 - limit font visibility to bundled and "Base Fonts" (Windows, Mac, some Linux) (FF80) 1461454 - spoof smooth=true and powerEfficient=false for supported media in MediaCapabilities (FF82) 531915 - use fdlibm's sin, cos and tan in jsmath (FF93, ESR91.1) 1756280 - enforce navigator.pdfViewerEnabled as true and plugins/mimeTypes as hard-coded values (FF100-115) 1692609 - reduce JS timing precision to 16.67ms (previously FF55+ was 100ms) (FF102) 1422237 - return "srgb" with color-gamut (FF110) 1794628 - return "none" with inverted-colors (FF114) 1554751 - return devicePixelRatio as 2 (previously FF41+ was 1) (FF127) 1787790 - normalize system fonts (FF128) 1835987 - spoof timezone as Atlantic/Reykjavik (previously FF55+ was UTC) (FF128)

TEST
https://arkenfox.github.io/TZP/tzp.html
WARNING
DO NOT USE extensions to alter RFP protected metrics

4501: enable RFP

RFP also has a few side effects: mainly that timezone is GMT, and websites will prefer light theme

NOTE
pbmode applies if true and the original pref is false
SETUP-WEB
RFP can cause some website breakage: mainly canvas, use a canvas site exception via the urlbar.

privacy.resistFingerprinting true
privacy.resistFingerprinting.pbmode true
4502: set RFP new window size max rounded values [FF55+]

SETUP-CHROME
sizes round down in hundreds: width to 200s and height to 100s, to fit your screen

privacy.window.maxInnerWidth 1600
privacy.window.maxInnerHeight 900
4503: disable mozAddonManager Web API [FF57+]

NOTE
To allow extensions to work on AMO, you also need 2662

privacy.resistFingerprinting.block_mozAddonManager true
4504: enable letterboxing [FF67+]

Dynamically resizes the inner window by applying margins in stepped ranges [2] If you use the dimension pref, then it will only apply those resolutions. The format is "width1xheight1, width2xheight2, ..." (e.g. "800x600, 1000x1000") dislike the margins, then flip this pref, keeping in mind that it is effectively fingerprintable

SETUP-WEB
This is independent of RFP (4501). If you're not using RFP, or you are but
WARNING
DO NOT USE: the dimension pref is only meant for testing

privacy.resistFingerprinting.letterboxing true
privacy.resistFingerprinting.letterboxing.dimensions ""
4505: disable RFP by domain [FF91+]

privacy.resistFingerprinting.exemptedDomains "*.example.invalid"
4506: disable RFP spoof english prompt [FF59+]

0=prompt, 1=disabled, 2=enabled

NOTE
When changing from value 2, preferred languages ('intl.accept_languages') is not reset.
SETTING
General>Language>Choose your preferred language for displaying pages>Choose>Request English...
SETUP-WEB
when enabled, sets 'en-US, en' for displaying pages and 'en-US' as locale.

privacy.spoof_english 1
4510: disable using system colors

SETTING
General>Language and Appearance>Fonts and Colors>Colors>Use system colors

browser.display.use_system_colors false
4512: enforce links targeting new windows to open in a new tab instead

1=most recent window or tab, 2=new window, 3=new tab Stops malicious window sizes and some screen resolution leaks. You can still right-click a link and open in a new window

SETTING
General>Tabs>Open links in tabs instead of new windows
TEST
https://arkenfox.github.io/TZP/tzp.html#screen

browser.link.open_newwindow 3
4513: set all open window methods to abide by "browser.link.open_newwindow" (4512)
browser.link.open_newwindow.restriction 0
4520: disable WebGL (Web Graphics Library)

webgl.disabled true
5000: OPTIONAL OPSEC

Disk avoidance, application data isolation, eyeballs...

5001: start Firefox in PB (Private Browsing) mode

caches, searches, cookies, localStorage, IndexedDB etc (which you can achieve in normal mode). In fact, PB mode limits or removes the ability to control some of these, and you need to quit Firefox to clear them. PB is best used as a one off window (Menu>New Private Window) to provide a temporary self-contained new session. Close all private windows to clear the PB session.

NOTE
The P in PB mode can be misleading: it means no "persistent" disk state such as history,
SETTING
Privacy & Security>History>Custom Settings>Always use private browsing mode

browser.privatebrowsing.autostart true
5002: disable memory cache

capacity: -1=determine dynamically (default), 0=none, n=memory capacity in kibibytes

browser.cache.memory.enable false
browser.cache.memory.capacity 0
5003: disable saving passwords

NOTE
This does not clear any passwords already saved
SETTING
Privacy & Security>Logins and Passwords>Ask to save logins and passwords for websites

signon.rememberSignons false
5004: disable permissions manager from writing to disk [FF41+] [RESTART]

NOTE
This means any permission changes are session only

permissions.memory_only true
5005: disable intermediate certificate caching [FF41+] [RESTART]

Saved logins and passwords are not available. Reset the pref and restart to return them

NOTE
This affects login/cert/key dbs. The effect is all credentials are session-only.

security.nocertdb true
5006: disable favicons in history and bookmarks

actual history (and bookmarks) already do. Your history is more detailed, so control that instead; e.g. disable history, clear history on exit, use PB mode

NOTE
favicons.sqlite is sanitized on Firefox close

browser.chrome.site_icons false
5007: exclude "Undo Closed Tabs" in Session Restore

browser.sessionstore.max_tabs_undo 0
5008: disable resuming session from crash

TEST
about:crashparent

browser.sessionstore.resume_from_crash false
5009: disable "open with" in download dialog [FF50+]

Application data isolation [1]

browser.download.forbid_open_with true
5010: disable location bar suggestion types

SETTING
Search>Address Bar>When using the address bar, suggest

browser.urlbar.suggest.history false
browser.urlbar.suggest.bookmark false
browser.urlbar.suggest.openpage false
browser.urlbar.suggest.topsites false
5011: disable location bar dropdown

This value controls the total number of entries to appear in the location bar dropdown

browser.urlbar.maxRichResults 0
5012: disable location bar autofill
browser.urlbar.autoFill false
5013: disable browsing and download history

NOTE
We also clear history and downloads on exit (2811)
SETTING
Privacy & Security>History>Custom Settings>Remember browsing and download history

places.history.enabled false
5014: disable Windows jumplist [WINDOWS]

browser.taskbar.lists.enabled false
browser.taskbar.lists.frequent.enabled false
browser.taskbar.lists.recent.enabled false
browser.taskbar.lists.tasks.enabled false
5016: discourage downloading to desktop

0=desktop, 1=downloads (default), 2=custom

SETTING
To set your custom default "downloads": General>Downloads>Save files to

browser.download.folderList 2
5017: disable Form Autofill

If .supportedCountries includes your region (browser.search.region) and .supported is "detect" (default), then the UI will show. Stored data is not secure, uses JSON

SETTING
Privacy & Security>Forms and Autofill>Autofill addresses

extensions.formautofill.addresses.enabled false
extensions.formautofill.creditCards.enabled false
5018: limit events that can cause a pop-up

dom.popup_allowed_events "click dblclick mousedown pointerdown"
5019: disable page thumbnail collection

browser.pagethumbnails.capturing_disabled true
5020: disable Windows native notifications and use app notications instead [FF111+] [WINDOWS]

alerts.useSystemBackend.windows.notificationserver.enabled false
5021: disable location bar using search

Don't leak URL typos to a search engine, give an error message instead Examples: "secretplace,com", "secretplace/com", "secretplace com", "secret place.com" dropdown, or using keyword search shortcuts you configure in options (e.g. "d" for DuckDuckGo)

NOTE
This does not affect explicit user action such as using search buttons in the

keyword.enabled false
5500: OPTIONAL HARDENING

Not recommended. Overriding these can cause breakage and performance issues, they are mostly fingerprintable, and the threat model is practically nonexistent

5501: disable MathML (Mathematical Markup Language) [FF51+]
mathml.disabled true
5502: disable in-content SVG (Scalable Vector Graphics) [FF53+]
svg.disabled true
5505: disable Ion and baseline JIT to harden against JS exploits [RESTART]

is enabled, then Ion can still be used by extensions (1599226)

NOTE
When both Ion and JIT are disabled, and trustedprincipals

javascript.options.ion false
javascript.options.baselinejit false
javascript.options.jit_trustedprincipals true
5506: disable WebAssembly [FF52+]

Vulnerabilities [1] have increasingly been found, including those known and fixed in native programs years ago [2]. WASM has powerful low-level access, making certain attacks (brute-force) and vulnerabilities more possible

STATS
~0.2% of websites, about half of which are for cryptomining / malvertising [2][3]

javascript.options.wasm false
5507: disable rendering of SVG OpenType fonts

gfx.font_rendering.opentype_svg.enabled false
5508: disable all DRM content (EME: Encryption Media Extension)

Optionally hide the UI setting which also disables the DRM prompt

SETTING
General>DRM Content>Play DRM-controlled content
TEST
https://bitmovin.com/demos/drm

media.eme.enabled false
browser.eme.ui.enabled false
5509: disable IPv6 if using a VPN

This is an application level fallback. Disabling IPv6 is best done at an OS/network level, and/or configured properly in system wide VPN setups.

NOTE
PHP defaults to IPv6 with "localhost". Use "php -S 127.0.0.1:PORT"
SETUP-WEB
PR_CONNECT_RESET_ERROR
TEST
https://ipleak.org/

network.dns.disableIPv6 true
5510: control when to send a cross-origin referer

0=always (default), 1=only if base domains match, 2=only if hosts match

NOTE
Will cause breakage: older modems/routers and some sites e.g banks, vimeo, icloud, instagram

network.http.referer.XOriginPolicy 2
5511: set DoH bootstrap address [FF89+]

Firefox uses the system DNS to initially resolve the IP address of your DoH server. When set to a valid, working value that matches your "network.trr.uri" (0712) Firefox won't use the system DNS. If the IP doesn't match then DoH won't work

network.trr.bootstrapAddr "10.0.0.1"
6000: DON'T TOUCH

6001: enforce Firefox blocklist
extensions.blocklist.enabled true
6002: enforce no referer spoofing

WHY
Spoofing can affect CSRF (Cross-Site Request Forgery) protections

network.http.referer.spoofSource false
6004: enforce a security delay on some confirmation dialogs such as install, open/save
security.dialog_enable_delay 1000
6008: enforce no First Party Isolation [FF51+]

disables those. FPI is no longer maintained except at Tor Project for Tor Browser's config

WARNING
Replaced with network partitioning (FF85+) and TCP (2701), and enabling FPI

privacy.firstparty.isolate false
6009: enforce SmartBlock shims (about:compat) [FF81+]
extensions.webcompat.enable_shims true
6010: enforce no TLS 1.0/1.1 downgrades

TEST
https://tls-v1-1.badssl.com:1010/

security.tls.version.enable-deprecated false
6011: enforce disabling of Web Compatibility Reporter [FF56+]

Web Compatibility Reporter adds a "Report Site Issue" button to send data to Mozilla

WHY
To prevent wasting Mozilla's time with a custom setup

extensions.webcompat-reporter.enabled false
6012: enforce Quarantined Domains [FF115+]

WHY
https://support.mozilla.org/kb/quarantined-domains */

extensions.quarantinedDomains.enabled true
6050: prefsCleaner: previously active items removed from arkenfox 115-127

accessibility.force_disabled ""
browser.urlbar.dnsResolveSingleWordsAfterSearch ""
geo.provider.network.url ""
geo.provider.network.logging.enabled ""
geo.provider.use_gpsd ""
network.protocol-handler.external.ms-windows-store ""
privacy.partition.always_partition_third_party_non_cookie_storage ""
privacy.partition.always_partition_third_party_non_cookie_storage.exempt_sessionstorage ""
privacy.partition.serviceWorkers ""
7000: DON'T BOTHER

7001: disable APIs

Location-Aware Browsing, Full Screen Geo is behind a prompt (7002). Full screen requires user interaction

WHY
The API state is easily fingerprintable.

geo.enabled false
full-screen-api.enabled false
7002: set default permissions

Location, Camera, Microphone, Notifications [FF58+] Virtual Reality [FF73+] 0=always ask (default), 1=allow, 2=block exceptions as allow/block for frequently visited/annoying sites: i.e. not global

SETTING
to manage site exceptions: Options>Privacy & Security>Permissions>Settings
WHY
These are fingerprintable via Permissions API, except VR. Just add site

permissions.default.geo 0
permissions.default.camera 0
permissions.default.microphone 0
permissions.default.desktop-notification 0
permissions.default.xr 0
7003: disable non-modern cipher suites [1]

WHY
Passive fingerprinting. Minimal/non-existent threat of downgrade attacks

security.ssl3.ecdhe_ecdsa_aes_128_sha false
security.ssl3.ecdhe_ecdsa_aes_256_sha false
security.ssl3.ecdhe_rsa_aes_128_sha false
security.ssl3.ecdhe_rsa_aes_256_sha false
security.ssl3.rsa_aes_128_gcm_sha256 false
security.ssl3.rsa_aes_256_gcm_sha384 false
security.ssl3.rsa_aes_128_sha false
security.ssl3.rsa_aes_256_sha false
7004: control TLS versions

WHY
Passive fingerprinting and security

security.tls.version.min 3
security.tls.version.max 4
7005: disable SSL session IDs [FF36+]

and isolated with network partitioning (FF85+) and/or containers

WHY
Passive fingerprinting and perf costs. These are session-only

security.ssl.disable_session_identifiers true
7006: onions

WHY
Firefox doesn't support hidden services. Use Tor Browser

dom.securecontext.allowlist_onions true
network.http.referer.hideOnionSource true
7007: referers

WHY
Only cross-origin referers (1602, 5510) matter

network.http.sendRefererHeader 2
network.http.referer.trimmingPolicy 0
7008: set the default Referrer Policy [FF59+]

0=no-referer, 1=same-origin, 2=strict-origin-when-cross-origin, 3=no-referrer-when-downgrade

WHY
Defaults are fine. They can be overridden by a site-controlled Referrer Policy

network.http.referer.defaultPolicy 2
network.http.referer.defaultPolicy.pbmode 2
7010: disable HTTP Alternative Services [FF37+]

WHY
Already isolated with network partitioning (FF85+)

network.http.altsvc.enabled false
7011: disable website control over browser right-click context menu

WHY
Just use Shift-Right-Click

dom.event.contextmenu.enabled false
7012: disable icon fonts (glyphs) and local fallback rendering

WHY
Breakage, font fallback is equivalency, also RFP

gfx.downloadable_fonts.enabled false
gfx.downloadable_fonts.fallback_delay -1
7013: disable Clipboard API

interaction, and paste is limited to focused editable fields

WHY
Fingerprintable. Breakage. Cut/copy/paste require user

dom.event.clipboardevents.enabled false
7014: disable System Add-on updates

WHY
It can compromise security. System addons ship with prefs, use those

extensions.systemAddon.update.enabled false
extensions.systemAddon.update.url ""
7015: enable the DNT (Do Not Track) HTTP header

WHY
DNT is enforced with Tracking Protection which is used in ETP Strict (2701)

privacy.donottrackheader.enabled true
7016: customize ETP settings

NOTE
FPP (fingerprintingProtection) is ignored when RFP (4501) is enabled
WHY
Arkenfox only supports strict (2701) which sets these at runtime

network.cookie.cookieBehavior 5
privacy.fingerprintingProtection true
network.http.referer.disallowCrossSiteRelaxingDefault true
network.http.referer.disallowCrossSiteRelaxingDefault.top_navigation true
privacy.partition.network_state.ocsp_cache true
privacy.query_stripping.enabled true
privacy.trackingprotection.enabled true
privacy.trackingprotection.socialtracking.enabled true
privacy.trackingprotection.cryptomining.enabled true
privacy.trackingprotection.fingerprinting.enabled true
7017: disable service workers

WHY
Already isolated with TCP (2701) behind a pref (2710)

dom.serviceWorkers.enabled false
7018: disable Web Notifications [FF22+]

WHY
Web Notifications are behind a prompt (7002)

dom.webnotifications.enabled false
7019: disable Push Notifications [FF44+]

NOTE
To remove all subscriptions, reset "dom.push.userAgentID"
WHY
Website "push" requires subscription, and the API is required for CRLite (1224)

dom.push.enabled false
7020: disable WebRTC (Web Real-Time Communication)

required in TRUSTED scenarios; i.e. after you grant device (microphone or camera) access

TEST
https://browserleaks.com/webrtc
WHY
Firefox desktop uses mDNS hostname obfuscation and the private IP is never exposed until

media.peerconnection.enabled false
7021: enable GPC (Global Privacy Control) in non-PB windows

in ETP Strict (2701) and sanitizing on close (2800s)

WHY
Passive and active fingerprinting. Mostly redundant with Tracking Protection

privacy.globalprivacycontrol.enabled true
8000: DON'T BOTHER: FINGERPRINTING

WARNING
DO NOT USE with RFP. RFP already covers these and they can interfere
WHY
They are insufficient to help anti-fingerprinting and do more harm than good

8001: prefsCleaner: reset items useless for anti-fingerprinting

browser.display.use_document_fonts ""
browser.zoom.siteSpecific ""
device.sensors.enabled ""
dom.enable_performance ""
dom.enable_resource_timing ""
dom.gamepad.enabled ""
dom.maxHardwareConcurrency ""
dom.w3c_touch_events.enabled ""
dom.webaudio.enabled ""
font.system.whitelist ""
general.appname.override ""
general.appversion.override ""
general.buildID.override ""
general.oscpu.override ""
general.platform.override ""
general.useragent.override ""
media.navigator.enabled ""
media.ondevicechange.enabled ""
media.video_stats.enabled ""
media.webspeech.synth.enabled ""
ui.use_standins_for_native_colors ""
webgl.enable-debug-renderer-info ""
9000: NON-PROJECT RELATED

9000: PERSONAL

9001: disable welcome notices

browser.startup.homepage_override.mstone "ignore"
9002: disable General>Browsing>Recommend extensions/features as you browse [FF67+]

browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons false
browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features false
9004: disable search terms [FF110+]

SETTING
Search>Search Bar>Use the address bar for search and navigation>Show search terms instead of URL...

browser.urlbar.showSearchTerms.enabled false