Documentation built by DwarfMaster.
| browser.aboutConfig.showWarning | false |
0=blank, 1=home, 2=last visited page, 3=resume previous session
| browser.startup.page | 0 |
about:home=Firefox Home (default, see 0105), custom URLs..., Blank Page
| browser.startup.homepage | "chrome://browser/content/blanktab.html" |
true=Firefox Home (default, see 0105), false=blank page
| browser.newtabpage.enabled | false |
| browser.newtabpage.activity-stream.showSponsored | false | |
| browser.newtabpage.activity-stream.showSponsoredTopSites | false | |
| browser.newtabpage.activity-stream.showSponsoredCheckboxes | false |
| browser.newtabpage.activity-stream.default.sites | "" |
| geo.provider.ms-windows-location | false | |
| geo.provider.use_corelocation | false | |
| geo.provider.use_geoclue | false |
| extensions.getAddons.showPane | false |
| extensions.htmlaboutaddons.recommendations.enabled | false |
| browser.discovery.enabled | false |
| browser.newtabpage.activity-stream.feeds.telemetry | false | |
| browser.newtabpage.activity-stream.telemetry | false |
| app.shield.optoutstudies.enabled | false |
Shield is a telemetry system that can push and test "recipes"
| app.normandy.enabled | false | |
| app.normandy.api_url | "" |
| breakpad.reportURL | "" | |
| browser.tabs.crashReporting.sendReport | false | |
| browser.crashReports.unsubmittedCheck.enabled | false |
| browser.crashReports.unsubmittedCheck.autoSubmit2 | false |
| captivedetect.canonicalURL | "" | |
| network.captive-portal-service.enabled | false |
| network.connectivity-service.enabled | false |
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)
| browser.safebrowsing.malware.enabled | false | |
| browser.safebrowsing.phishing.enabled | false |
This is the master switch for the safebrowsing.downloads* prefs (0403, 0404)
| browser.safebrowsing.downloads.enabled | false |
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
| browser.safebrowsing.downloads.remote.enabled | false | |
| browser.safebrowsing.downloads.remote.url | "" |
| browser.safebrowsing.downloads.remote.block_potentially_unwanted | false | |
| browser.safebrowsing.downloads.remote.block_uncommon | false |
If clicked, it bypasses the block for that session. This is a means for admins to enforce SB
| browser.safebrowsing.allowOverride | false |
| network.prefetch-next | false |
| network.dns.disablePrefetch | true | |
| network.dns.disablePrefetchFromHTTPS | true |
| network.predictor.enabled | false | |
| network.predictor.enable-prefetch | false |
| network.http.speculative-parallel-limit | 0 |
| browser.places.speculativeConnect.enabled | false |
| browser.send_pings | false |
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 |
| network.file.disable_unc_paths | true |
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 | "" |
| network.proxy.failover_direct | false |
RemoteSettings, UpdateService, Telemetry [1]
| network.proxy.allow_bypass | false |
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]
| network.trr.mode | 3 |
The custom uri is the value shown when you "Choose provider>Custom>"
| network.trr.uri | "https://example.dns" | |
| network.trr.custom_uri | "https://example.dns" |
| browser.urlbar.speculativeConnect.enabled | false |
| browser.urlbar.quicksuggest.enabled | false | |
| browser.urlbar.suggest.quicksuggest.nonsponsored | false | |
| browser.urlbar.suggest.quicksuggest.sponsored | false |
| browser.search.suggest.enabled | false | |
| browser.urlbar.suggest.searches | false |
| browser.urlbar.trending.featureGate | false |
| browser.urlbar.addons.featureGate | false | |
| browser.urlbar.amp.featureGate | false | |
| browser.urlbar.fakespot.featureGate | false | |
| browser.urlbar.mdn.featureGate | false | |
| browser.urlbar.weather.featureGate | false | |
| browser.urlbar.wikipedia.featureGate | false | |
| browser.urlbar.yelp.featureGate | false |
| browser.urlbar.clipboard.featureGate | false |
| browser.urlbar.recentsearches.featureGate | false |
| browser.formfill.enable | false |
Alternatively, you can exclude on a per-engine basis by unchecking them in Options>Search
| browser.urlbar.suggest.engines | false |
redraw timing attacks were largely mitigated in FF77+ [3]. Using RFP (4501) further hampers timing attacks. History can also be cleared on exit (2811+). However, social engineering [2#limits][4][5] and advanced targeted timing attacks could still produce usable results
| layout.css.visited_links_enabled | false |
| browser.search.separatePrivateDefault | true | |
| browser.search.separatePrivateDefault.ui.enabled | true |
can leak in cross-site forms *and* be spoofed
| signon.autofillForms | false |
| signon.formlessCapture.enabled | false |
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 |
| network.http.windows-sso.enabled | false |
On macOS, SSO only works on corporate devices
| network.http.microsoft-entra-sso.enabled | false |
| browser.cache.disk.enable | false |
| browser.privatebrowsing.forceMediaMemoryCache | true | |
| media.memory_cache_max_size | 65536 |
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 |
| toolkit.winRegisterApplicationRestart | false |
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 |
Your cipher and other settings can be used in server side fingerprinting
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
| security.ssl.require_safe_negotiation | true |
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 |
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)
| security.OCSP.enabled | 1 |
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)
| security.OCSP.require | true |
0=disabled, 1=allow user MiTM (default; such as your antivirus), 2=strict
| security.cert_pinning.enforcement_level | 2 |
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 |
| security.mixed_content.block_display_content | true |
When the top-level is HTTPS, insecure subresources are also upgraded (silent fail)
| dom.security.https_only_mode | true | |
| dom.security.https_only_mode_pbm | true |
| dom.security.https_only_mode.upgrade_local | true |
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 |
Bug: warning padlock not indicated for subresources on a secure page! [2]
| security.ssl.treat_unsafe_negotiation_as_broken | true |
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/)
| browser.xul.error_pages.expert_bad_cert | true |
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
0=send full URI (default), 1=scheme+host+port+path, 2=scheme+host+port
| network.http.referer.XOriginTrimmingPolicy | 2 |
https://wiki.mozilla.org/Security/Contextual_Identity_Project/Containers
| privacy.userContext.enabled | true | |
| privacy.userContext.ui.enabled | true |
| privacy.userContext.newTabContainerOnLeftClick.enabled | true |
true=Firefox will not choose a container (so your extension can) false=Firefox will choose the container/no-container (default)
| browser.link.force_default_user_context_id_for_external_opens | true |
| media.peerconnection.ice.proxy_only_if_behind_proxy | true |
When using a system-wide proxy, it uses the proxy interface
| media.peerconnection.ice.default_address_only | true |
grant device access, but often results in breakage on video-conferencing platforms
| media.peerconnection.ice.no_host | true |
| media.gmp-provider.enabled | false |
| dom.disable_window_move_resize | true |
| browser.download.start_downloads_in_tmp_dir | true | |
| browser.helperApps.deleteTempFileOnExit | true |
| browser.uitour.enabled | false | |
| browser.uitour.url | "" |
| devtools.debugger.remote-enabled | false |
0 (default) or 1=allow, 2=block
| permissions.default.shortcuts | 2 |
| permissions.manager.defaultsUrl | "" |
| network.IDN_show_punycode | true |
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.
| pdfjs.disabled | false | |
| pdfjs.enableScripting | false |
| browser.tabs.searchclipboardfor.middleclick | false |
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 |
| privacy.antitracking.isolateContentScriptResources | true |
| security.csp.reporting.enabled | false |
| browser.download.useDownloadDir | false |
| browser.download.alwaysOpenPanel | false |
| browser.download.manager.addToRecentDocs | false |
| browser.download.always_ask_before_handling_new_types | true |
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
| extensions.enabledScopes | 5 | |
| extensions.autoDisableScopes | 15 |
| extensions.postDownloadThirdPartyPrompt | false |
| extensions.webextensions.restrictedDomains | "" |
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
| browser.contentblocking.category | "strict" |
Opener and redirect heuristics are granted for 30 days, see [3]
| privacy.antitracking.enableWebcompat | false |
We enable sanitizeOnShutdown to help prevent 1st party website tracking across sessions. We consider history/downloads, which are not accessible to websites, as orthogonal and exempt these
via history (2830), will no longer remove sanitize on shutdown "cookie and site data" site exceptions (2815)
| privacy.sanitize.sanitizeOnShutdown | true |
| privacy.clearOnShutdown_v2.cache | true | |
| privacy.clearOnShutdown_v2.historyFormDataAndDownloads | false | |
| privacy.clearOnShutdown_v2.siteSettings | false |
| privacy.clearOnShutdown_v2.browsingHistoryAndDownloads | false | |
| privacy.clearOnShutdown_v2.downloads | false | |
| privacy.clearOnShutdown_v2.formdata | true |
| privacy.clearOnShutdown.openWindows | true |
e.g. https://www.youtube.com (site) + https://accounts.google.com (single sign on)
| privacy.clearOnShutdown_v2.cookiesAndStorage | true |
Firefox remembers your last choices. This will reset them when you start Firefox
| privacy.clearSiteData.cache | true | |
| privacy.clearSiteData.cookiesAndStorage | false | |
| privacy.clearSiteData.historyFormDataAndDownloads | false | |
| privacy.clearSiteData.siteSettings | false |
| privacy.clearSiteData.browsingHistoryAndDownloads | false | |
| privacy.clearSiteData.formdata | true |
Firefox remembers your last choices. This will reset them when you start Firefox
| privacy.clearHistory.cache | true | |
| privacy.clearHistory.cookiesAndStorage | false | |
| privacy.clearHistory.historyFormDataAndDownloads | false | |
| privacy.clearHistory.siteSettings | false |
| privacy.clearHistory.browsingHistoryAndDownloads | false | |
| privacy.clearHistory.formdata | true |
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
| privacy.sanitize.timeSpan | 0 |
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 - e.g. FrameRate can only be controlled per process, not per origin 1826408 - restrict to system fonts (kBaseFonts + kLangPackFonts) (Windows, Mac, some Linux) (FF119+) 1928705: android (FF134+) https://searchfox.org/mozilla-central/search?path=StandardFonts*.inc 1858181 - subtly randomize canvas per eTLD+1, per session and per window-mode (FF120+) 1887682 - use fdlibm's sin, cos and tan in jsmath (FF134+) 1954194 - available screen resolution: return a fixed offset height from screen per platform when not full screen (FF143+) 1984333 - hardwareConcurrency: less than 8 return 4 else return 8 (FF143+) 1977836 - maxTouchPoints: return multi-touch as 5 (FF143+) 1917607 - subtly randomize WebGL's readPixels (FF145+)
| privacy.fingerprintingProtection.pbmode | true |
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
| privacy.fingerprintingProtection.overrides | "" |
JSON format: e.g."[{\"firstPartyDomain\": \"netflix.com\", \"overrides\": \"-CanvasRandomization,-FrameRate,\"}]"
| privacy.fingerprintingProtection.granularOverrides | "" |
| privacy.fingerprintingProtection.remoteOverrides.enabled | false |
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) FF56 1333651 - spoof User Agent & Navigator API JS: spoofed as Windows 10, OS X 10.15, Android 10, or Linux HTTP Header: spoofed as Windows 10 or Android 10 until FF136 then matches JS spoof 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. 1459089 - disable OS locale in HTTP Accept-Language headers (ANDROID) (FF62) 1479239 - return "no-preference" with prefers-reduced-motion (FF63) 1363508 & 1826051 & 1957658 - spoof/suppress Pointer Events, spoof maxTouchPoints (FF64, FF132, FF143, ESR140.2) FF64: maxTouchPoints: 0 = desktop FF132: maxTouchPoints: 0 = mac | 10 = windows, linux, mobile FF143/140.2: maxTouchPoints: 0 = mac, linux | 10 = windows | 5 = mobile 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) 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) 1787790 - normalize system fonts (FF128) 1835987 - spoof timezone as Atlantic/Reykjavik (previously FF55+ was UTC) (FF128) 1656377 - spoof pointerEvents azimuthAngle and altitudeAngle (FF131) 1834307 - always use smooth scrolling (FF132) 1918202 - spoof screen orientation based on spoofed screen size and platform (FF132) previously FF50+ it always returned landscape-primary and an angle of 0 1390465 - load all subtitles in WebVTT (Video Text Tracks) (FF133) 1873382 - make spoofed devicePixelRatio and CSS media queries match (FF133) previously FF41+ devicePixelRatio was hardcoded as 1 and FF127+ as 2 previously FF41+ CSS media queries were spoofed as zoom level at a devicePixelRatio of 1 1955425 - return 128 for WebGPU subgroupMaxSize (FF138) 1966860 - spoof WebGL debug renderer info (FF140) previously FF60+ it was disabled 1781277 - return 10GiB for storage estimate until persistent-storage granted (FF142, ESR140.1) 1972600 - spoof network connection for HTMLMediaElement preload (FF142, ESR140.1) 1975851 - return true for navigator.onLine (FF142, ESR140.1) 1973265 - disable WebCodecs API (FF142) 1984333 - spoof navigator.hardwareConcurrency as 4 except mac return 8 (FF143+) previously FF55+ it returned 2
RFP also has a few side effects: mainly that timezone is GMT, and websites will prefer light theme
| privacy.resistFingerprinting | true | |
| privacy.resistFingerprinting.pbmode | true |
| privacy.window.maxInnerWidth | 1600 | |
| privacy.window.maxInnerHeight | 900 |
| privacy.resistFingerprinting.block_mozAddonManager | true |
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") margins, then don't enable this pref, keeping in mind that it is effectively fingerprintable
| privacy.resistFingerprinting.letterboxing | true | |
| privacy.resistFingerprinting.letterboxing.dimensions | "" |
[NOTE]: The pref takes comma separated values: e.g. "*domain1.tld, *domain2.tld" Working domain examples: "arkenfox.github.io", "*github.io" Non-working domain examples: "https://arkenfox.github.io", "github.io", "*arkenfox.github.io"
| privacy.resistFingerprinting.exemptedDomains | "*.example.invalid" |
0=prompt, 1=disabled, 2=enabled
| privacy.spoof_english | 1 |
| privacy.resistFingerprinting.skipEarlyBlankFirstPaint | true |
0=automatic, 1=off, 2=custom
| browser.display.document_color_use | 1 |
| widget.non-native-theme.use-theme-accent | false |
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
| browser.link.open_newwindow | 3 |
| browser.link.open_newwindow.restriction | 0 |
| webgl.disabled | true |
Disk avoidance, application data isolation, eyeballs...
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.
| browser.privatebrowsing.autostart | true |
capacity: -1=determine dynamically (default), 0=none, n=memory capacity in kibibytes
| browser.cache.memory.enable | false | |
| browser.cache.memory.capacity | 0 |
| signon.rememberSignons | false |
| permissions.memory_only | true |
Saved logins and passwords are not available. Reset the pref and restart to return them
| security.nocertdb | true |
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
| browser.chrome.site_icons | false |
| browser.sessionstore.max_tabs_undo | 0 |
| browser.sessionstore.resume_from_crash | false |
Application data isolation [1]
| browser.download.forbid_open_with | true |
| browser.urlbar.suggest.history | false | |
| browser.urlbar.suggest.bookmark | false | |
| browser.urlbar.suggest.openpage | false | |
| browser.urlbar.suggest.topsites | false |
This value controls the total number of entries to appear in the location bar dropdown
| browser.urlbar.maxRichResults | 0 |
| browser.urlbar.autoFill | false |
| places.history.enabled | false |
| browser.taskbar.lists.enabled | false | |
| browser.taskbar.lists.frequent.enabled | false | |
| browser.taskbar.lists.recent.enabled | false | |
| browser.taskbar.lists.tasks.enabled | false |
0=desktop, 1=downloads (default), 2=custom
| browser.download.folderList | 2 |
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
| extensions.formautofill.addresses.enabled | false | |
| extensions.formautofill.creditCards.enabled | false |
| dom.popup_allowed_events | "click dblclick mousedown pointerdown" |
| browser.pagethumbnails.capturing_disabled | true |
| alerts.useSystemBackend.windows.notificationserver.enabled | false |
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)
| keyword.enabled | false |
Not recommended. Overriding these can cause breakage and performance issues, they are mostly fingerprintable, and the threat model is practically nonexistent
| mathml.disabled | true |
| svg.disabled | true |
| gfx.font_rendering.graphite.enabled | false |
| javascript.options.asmjs | false |
is enabled, then Ion can still be used by extensions (1599226)
| javascript.options.ion | false | |
| javascript.options.baselinejit | false | |
| javascript.options.jit_trustedprincipals | true |
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
| javascript.options.wasm | false |
| gfx.font_rendering.opentype_svg.enabled | false |
Optionally hide the UI setting which also disables the DRM prompt
| media.eme.enabled | false | |
| browser.eme.ui.enabled | false |
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.
| network.dns.disableIPv6 | true |
0=always (default), 1=only if base domains match, 2=only if hosts match
| network.http.referer.XOriginPolicy | 2 |
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" |
| extensions.blocklist.enabled | true |
| network.http.referer.spoofSource | false |
| security.dialog_enable_delay | 1000 |
disables those. FPI is no longer maintained except at Tor Project for Tor Browser's config
| privacy.firstparty.isolate | false |
| extensions.webcompat.enable_shims | true |
| security.tls.version.enable-deprecated | false |
Web Compatibility Reporter adds a "Report Site Issue" button to send data to Mozilla
| extensions.webcompat-reporter.enabled | false |
| extensions.quarantinedDomains.enabled | true |
| privacy.clearOnShutdown.cache | "" | |
| privacy.clearOnShutdown.cookies | "" | |
| privacy.clearOnShutdown.downloads | "" | |
| privacy.clearOnShutdown.formdata | "" | |
| privacy.clearOnShutdown.history | "" | |
| privacy.clearOnShutdown.offlineApps | "" | |
| privacy.clearOnShutdown.sessions | "" | |
| privacy.cpd.cache | "" | |
| privacy.cpd.cookies | "" | |
| privacy.cpd.formdata | "" | |
| privacy.cpd.history | "" | |
| privacy.cpd.offlineApps | "" | |
| privacy.cpd.sessions | "" |
| browser.display.use_system_colors | "" |
Location-Aware Browsing, Full Screen Geo is behind a prompt (7002). Full screen requires user interaction
| geo.enabled | false | |
| full-screen-api.enabled | false |
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
| permissions.default.geo | 0 | |
| permissions.default.camera | 0 | |
| permissions.default.microphone | 0 | |
| permissions.default.desktop-notification | 0 | |
| permissions.default.xr | 0 |
| 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 |
| security.tls.version.min | 3 | |
| security.tls.version.max | 4 |
and isolated with network partitioning (FF85+) and/or containers
| security.ssl.disable_session_identifiers | true |
| network.http.sendRefererHeader | 2 | |
| network.http.referer.trimmingPolicy | 0 |
0=no-referer, 1=same-origin, 2=strict-origin-when-cross-origin, 3=no-referrer-when-downgrade
| network.http.referer.defaultPolicy | 2 | |
| network.http.referer.defaultPolicy.pbmode | 2 |
| network.http.altsvc.enabled | false |
| dom.event.contextmenu.enabled | false |
| gfx.downloadable_fonts.enabled | false | |
| gfx.downloadable_fonts.fallback_delay | -1 |
interaction, and paste is limited to focused editable fields
| dom.event.clipboardevents.enabled | false |
| extensions.systemAddon.update.enabled | false | |
| extensions.systemAddon.update.url | "" |
| privacy.donottrackheader.enabled | true |
| network.cookie.cookieBehavior | 5 | |
| network.cookie.cookieBehavior.optInPartitioning | true | |
| network.http.referer.disallowCrossSiteRelaxingDefault | true | |
| network.http.referer.disallowCrossSiteRelaxingDefault.top_navigation | true | |
| privacy.bounceTrackingProtection.mode | 1 | |
| privacy.fingerprintingProtection | 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 |
| dom.serviceWorkers.enabled | false |
| dom.webnotifications.enabled | false |
| dom.push.enabled | false |
required in TRUSTED scenarios; i.e. after you grant device (microphone or camera) access
| media.peerconnection.enabled | false |
in ETP Strict (2701) and sanitizing on close (2800s)
| privacy.globalprivacycontrol.enabled | true |
| 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.video_stats.enabled | "" | |
| media.webspeech.synth.enabled | "" | |
| ui.use_standins_for_native_colors | "" | |
| webgl.enable-debug-renderer-info | "" |
Arkenfox does not consider Firefox telemetry to be a privacy or security concern - comments below. But since most arkenfox users prefer it disabled, we'll do that rather than cause overrides. Opt-out - Telemetry is essential: a browser engine is a _very_ large complex beast costing billions to maintain - Opt-in telemetry _does not_ work and results in data that is unrepresentative and may be misleading Choice - Every new profile on first use provides data collection/use policy and the abillty to opt-out - It can be disabled at any time (Settings>Privacy & Security>Data Collection and Use) Data - no PII (Personally Identifiable Information) - can be viewed in about:telemetry - uses Prio [1][2][3], Glean [4], Oblivious HTTP [5][6]
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
| 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 |
If disabled, no policy is shown or upload takes place, ever
| datareporting.policy.dataSubmissionEnabled | false |
| datareporting.healthreport.uploadEnabled | false |
| toolkit.telemetry.coverage.opt-out | true | |
| toolkit.coverage.opt-out | true | |
| toolkit.coverage.endpoint.base | "" |
| browser.startup.homepage_override.mstone | "ignore" |
| browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons | false | |
| browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features | false |
| browser.urlbar.showSearchTerms.enabled | false |