### User.js Preference Syntax Examples Source: https://github.com/arkenfox/user.js/wiki/2.1-User.js Demonstrates the correct syntax for setting different types of preferences (string, boolean, integer) in user.js. It also shows examples of incorrect syntax, type mismatches, and commented-out lines. ```javascript user_pref("pref.name.string", "i am a string"); // strings require quote marks user_pref("pref.name.boolean", true); user_pref("pref.name.integer", 0); user_pref("pref.name", "value") // this will NOT be applied, it is missing a closing ; user_pref("pref.name.integer", "0"); // this will be applied but NOT do anything (type mismatch) user_pref("browser.startup.page", 0); // this will be applied and actually work user_pref("browser.Startup.page", 0); // this will be applied but NOT do anything (incorrect case) /* this is a multi-line comment user_pref("preference.name", "value") and nothing in it is applied ***/ // two forward slashes indicate a comment // and do not need to be closed at the end // and only apply to the one line from when they are added user_pref("pref.name.example", "value"); // comment starts at // user_pref("pref.name.example", "not commented out"); // this is an ACTIVE pref and will be applied // user_pref("pref.name.example", "commented out"); // this is an INACTIVE pref and will NOT be applied ``` -------------------------------- ### Default arkenfox Preference Source: https://github.com/arkenfox/user.js/wiki/3.1-Overrides This is an example of a preference defined in the live arkenfox `user.js` file. ```javascript user_pref("pref.name.example", "purple") ``` -------------------------------- ### user_pref() Syntax Examples Source: https://context7.com/arkenfox/user.js/llms.txt Demonstrates the correct syntax for `user_pref()` calls, including strings, booleans, integers, and handling of missing semicolons or type mismatches. Commented-out lines are ignored. ```javascript // Strings require double quotes around the value user_pref("pref.name.string", "i am a string"); // Booleans are unquoted user_pref("pref.name.boolean", true); // Integers are unquoted user_pref("pref.name.integer", 0); // Missing semicolon → NOT applied user_pref("pref.name", "value") // Type mismatch → written to prefs.js but ignored by Firefox user_pref("browser.startup.page", "0"); // wrong: string instead of integer // Correct – sets startup page to Blank user_pref("browser.startup.page", 0); // Commented-out (inactive) – will NOT be applied // user_pref("browser.startup.page", 1); /* Multi-line block comment – nothing inside is applied user_pref("preference.name", "value"); ** **/ ``` -------------------------------- ### Example of -merge Functionality Source: https://github.com/arkenfox/user.js/wiki/5.1-Updater-[Options] Illustrates how the -merge option processes preferences from the main user.js file and an override file, showing the resulting merged user.js. ```js /* 0405: disable "ignore this warning" on SB warnings [FF45+] ***/ // user_pref("browser.safebrowsing.allowOverride", false); /* 0801: disable location bar using search ***/ user_pref("keyword.enabled", false); /* 4504: enable RFP letterboxing [FF67+] ***/ user_pref("privacy.resistFingerprinting.letterboxing", true); // [HIDDEN PREF] ``` ```js /*** my user.js overrides ***/ user_pref("browser.safebrowsing.allowOverride", false); // 0405 - remove SB bypass button user_pref("keyword.enabled", true); // 0801 - I use a privacy respecting engine //// --- comment-out --- 'privacy.resistFingerprinting.letterboxing' -4504- too distracting ``` ```js /* 0405: disable "ignore this warning" on SB warnings [FF45+] ***/ // user_pref("browser.safebrowsing.allowOverride", false); /* 0801: disable location bar using search ***/ user_pref("keyword.enabled", true); // 0801 - I use a privacy respecting engine /* 4504: enable RFP letterboxing [FF67+] ***/ //user_pref("privacy.resistFingerprinting.letterboxing", true); // [HIDDEN PREF] /*** my user.js overrides ***/ user_pref("browser.safebrowsing.allowOverride", false); // 0405 - remove SB bypass button //// --- comment-out --- 'privacy.resistFingerprinting.letterboxing' -4504- too distracting ``` -------------------------------- ### Personalize Firefox with user-overrides.js Source: https://context7.com/arkenfox/user.js/llms.txt Demonstrates how to use a user-overrides.js file to customize Firefox preferences, overriding default arkenfox settings. Examples include re-enabling session restore, keeping form history, enabling DoH, and enabling RFP. ```javascript // user-overrides.js – place this file in your Firefox profile folder // EXAMPLE 1: re-enable session restore (arkenfox sets it to 0) user_pref("browser.startup.page", 3); // EXAMPLE 2: keep form history for a productivity site user_pref("browser.formfill.enable", true); // EXAMPLE 3: enable DoH with Cloudflare user_pref("network.trr.mode", 3); user_pref("network.trr.uri", "https://cloudflare-dns.com/dns-query"); user_pref("network.trr.custom_uri", "https://cloudflare-dns.com/dns-query"); // EXAMPLE 4: override binary download check (if you accept the risk) // user_pref("browser.safebrowsing.downloads.remote.enabled", true); // EXAMPLE 5: enable RFP on top of the defaults user_pref("privacy.resistFingerprinting", true); user_pref("privacy.resistFingerprinting.letterboxing", true); ``` -------------------------------- ### Startup Page Configuration Source: https://context7.com/arkenfox/user.js/llms.txt Configures Firefox's startup behavior to display a blank page, disable sponsored content, and clear default top-sites. ```javascript // Startup page: 0=blank, 1=home, 2=last visited, 3=restore previous session user_pref("browser.startup.page", 0); // Home/new-window page → blank user_pref("browser.startup.homepage", "chrome://browser/content/blanktab.html"); // New tab page → blank (not Firefox Home) user_pref("browser.newtabpage.enabled", false); // Disable all sponsored content on Firefox Home user_pref("browser.newtabpage.activity-stream.showSponsored", false); user_pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false); user_pref("browser.newtabpage.activity-stream.showSponsoredCheckboxes", false); // Clear default top-sites (you can still add your own) user_pref("browser.newtabpage.activity-stream.default.sites", ""); ``` -------------------------------- ### Adding Overrides and Parrots to user.js Source: https://github.com/arkenfox/user.js/wiki/5.2-Troubleshooting Demonstrates how to add custom overrides to user.js, including the use of a 'parrot' preference to track the status of overrides. Ensure correct syntax to avoid parsing errors. ```javascript /* my overrides */ user_pref("_overrides.parrot", "overrides: started"); user_pref("pref.name.example", "green"); // I like green user_pref("_overrides.parrot", "overrides: success"); ``` -------------------------------- ### Run prefsCleaner.bat for Windows Source: https://context7.com/arkenfox/user.js/llms.txt The Windows equivalent of `prefsCleaner.sh`. It removes entries from `prefs.js` that are no longer present in `user.js`, allowing Firefox to reset deprecated preferences. ```bat REM Windows equivalent prefsCleaner.bat ``` -------------------------------- ### Enable Optional Resist Fingerprinting (RFP) Source: https://context7.com/arkenfox/user.js/llms.txt Enables the stronger resistFingerprinting engine, which overrides FPP. This may cause site breakage and forces timezone to Atlantic/Reykjavik. Rounded window sizes and blocking of mozAddonManager are included. ```javascript // Enable RFP (add to user-overrides.js if desired) user_pref("privacy.resistFingerprinting", true); // Set rounded max inner window sizes to reduce screen-size fingerprinting user_pref("privacy.window.maxInnerWidth", 1600); user_pref("privacy.window.maxInnerHeight", 900); // Block mozAddonManager Web API to prevent AMO fingerprinting user_pref("privacy.resistFingerprinting.block_mozAddonManager", true); // Force new-window links to open in tabs (stops window-size leaks) user_pref("browser.link.open_newwindow", 3); user_pref("browser.link.open_newwindow.restriction", 0); // Optional: enable letterboxing (adds margins so inner size is always rounded) // user_pref("privacy.resistFingerprinting.letterboxing", true); // RFP spoof-English prompt: 0=prompt, 1=disabled, 2=enabled user_pref("privacy.spoof_english", 1); ``` -------------------------------- ### Run updater.sh for macOS/Linux Source: https://context7.com/arkenfox/user.js/llms.txt Use this script to download the latest user.js from GitHub, back up the old one, and append user-overrides.js. It can also self-update. ```bash # Basic usage – checks for updater update, then updates user.js # Run from within your Firefox profile directory or use -p ./updater.sh ``` ```bash # Silent update (no prompts), keep only one backup, also create a diff ./updater.sh -s -b -c ``` ```bash # Specify a custom profile path and override file ./updater.sh -p "/home/user/.mozilla/firefox/abcdef12.default" \ -o "/home/user/my-overrides.js" ``` ```bash # Use multiple override files or an entire overrides directory ./updater.sh -o "overrides/base.js,overrides/work.js,overrides/extra" ``` ```bash # Auto-update the updater itself without prompting, then run ./updater.sh -u ``` ```bash # Skip updater self-update check ./updater.sh -d ``` ```bash # Preview the latest user.js without applying it ./updater.sh -r ``` ```bash # Activate ESR-specific preferences (for Firefox ESR users) ./updater.sh -e ``` ```bash # Pick Firefox profile from an interactive list ./updater.sh -l ``` ```bash # Full help ./updater.sh -h ``` -------------------------------- ### Configure Download Handling and Security Source: https://context7.com/arkenfox/user.js/llms.txt Manages download behavior to reduce data leakage and prevent spoofing. Downloads are saved to a temporary directory and deleted on exit. Users are always prompted to choose a save location. ```js // Downloads go to a temp dir, deleted on exit (reduces data leakage to other apps) user_pref("browser.download.start_downloads_in_tmp_dir", true); user_pref("browser.helperApps.deleteTempFileOnExit", true); // Disable UITour backend (prevents remote pages from using it) user_pref("browser.uitour.enabled", false); // Display internationalized domain names as punycode (prevents homograph attacks) user_pref("network.IDN_show_punycode", true); // Keep PDF.js enabled but disable JS inside PDFs user_pref("pdfjs.disabled", false); user_pref("pdfjs.enableScripting", false); // Always ask where to save downloads user_pref("browser.download.useDownloadDir", false); user_pref("browser.download.always_ask_before_handling_new_types", true); user_pref("browser.download.manager.addToRecentDocs", false); // Restrict extensions to profile + application directories // 1=profile, 2=user, 4=application, 8=system; 5 = profile+application user_pref("extensions.enabledScopes", 5); // Disable DLP content analysis agents user_pref("browser.contentanalysis.enabled", false); user_pref("browser.contentanalysis.default_result", 0); // Disable CSP Level 2 Reporting user_pref("security.csp.reporting.enabled", false); ``` -------------------------------- ### Format for Commenting Out Preferences Source: https://github.com/arkenfox/user.js/wiki/5.1-Updater-[Options] Specifies the exact format required to instruct the -merge function to comment out a preference. Anything after the closing single quote is optional and can be used for comments. ```js //// --- comment-out --- 'prefname.goes.here' ``` -------------------------------- ### Harden DNS, DoH, Proxy, and SOCKS Settings Source: https://context7.com/arkenfox/user.js/llms.txt Hardens DNS behavior and proxy handling to prevent leaks. Includes settings for SOCKS DNS resolution, disabling UNC path access, and disabling GIO protocols. ```javascript // SOCKS DNS – let the proxy resolve hostnames (critical for Tor) user_pref("network.proxy.socks_remote_dns", true); // Disable UNC path access (potential proxy bypass) user_pref("network.file.disable_unc_paths", true); // Disable GIO protocols (potential proxy bypass on Linux) user_pref("network.gio.supported-protocols", ""); // Optional: DNS-over-HTTPS (uncomment and set your resolver) // 0=default, 2=TRR first, 3=TRR only, 5=off // user_pref("network.trr.mode", 3); // user_pref("network.trr.uri", "https://dns.example.com/dns-query"); // user_pref("network.trr.custom_uri", "https://dns.example.com/dns-query"); ``` -------------------------------- ### Run updater.bat for Windows Source: https://context7.com/arkenfox/user.js/llms.txt This PowerShell-based script is the Windows equivalent for updating user.js. It requires TLS 1.2 for versions 4.13 and later. ```bat REM Basic usage updater.bat ``` ```bat REM Silent, single backup, activate ESR prefs updater.bat -unattended -singleBackup -esr ``` ```bat REM Use a folder of override files (appended alphabetically) updater.bat -MultiOverrides ``` ```bat REM Auto-update the batch script itself updater.bat -updatebatch ``` ```bat REM Merge overrides instead of appending (smart merge, see wiki) updater.bat -Merge ``` ```bat REM Merge + MultiOverrides (also generates user-overrides-merged.js) updater.bat -Merge -MultiOverrides ``` ```bat REM Write console output to log file and open it updater.bat -LogP ``` -------------------------------- ### Enable Enhanced Tracking Protection (ETP) Strict Mode Source: https://context7.com/arkenfox/user.js/llms.txt Enables ETP Strict mode, activating Total Cookie Protection (TCP) and partitioning storage per top-level site. This provides robust protection against cross-site tracking. ```js // ETP Strict enables Total Cookie Protection user_pref("browser.contentblocking.category", "strict"); // Allow-list entries for baseline (major breakage) and convenience (minor breakage) exceptions user_pref("privacy.trackingprotection.allow_list.baseline.enabled", true); user_pref("privacy.trackingprotection.allow_list.convenience.enabled", true); // Optional: disable SmartBlock shims/heuristics for maximum strictness // user_pref("privacy.antitracking.enableWebcompat", false); ``` -------------------------------- ### Run prefsCleaner.sh for macOS/Linux Source: https://context7.com/arkenfox/user.js/llms.txt This script removes entries from `prefs.js` that are no longer in `user.js`, resetting deprecated preferences. Run after every arkenfox release update. Must be run from the Firefox profile directory. ```bash # Interactive menu (macOS/Linux) # Must be run from the Firefox profile directory ./prefsCleaner.sh ``` ```bash # Start immediately without interactive prompt ./prefsCleaner.sh -s ``` ```bash # Skip self-update check ./prefsCleaner.sh -d ``` ```bash # Combined: start immediately, skip update check ./prefsCleaner.sh -s -d ``` -------------------------------- ### Configure TLS/Certificate Behavior Source: https://context7.com/arkenfox/user.js/llms.txt Enforces modern TLS behavior and certificate pinning. Requires safe TLS renegotiation and enables CRLite for efficient certificate revocation checks. HTTPS-Only mode is enforced in all windows. ```js // Require safe TLS renegotiation (RFC 5746) user_pref("security.ssl.require_safe_negotiation", true); // Disable TLS 1.3 0-RTT (replay attack risk) user_pref("security.tls.enable_0rtt_data", false); // Strict Public Key Pinning: 0=off, 1=user MiTM allowed, 2=strict user_pref("security.cert_pinning.enforcement_level", 2); // Enable CRLite for fast, private certificate revocation user_pref("security.remote_settings.crlite_filters.enabled", true); user_pref("security.pki.crlite_mode", 2); // HTTPS-Only Mode in all windows user_pref("dom.security.https_only_mode", true); user_pref("dom.security.https_only_mode_send_http_background_request", false); // Show expert cert info on error pages user_pref("browser.xul.error_pages.expert_bad_cert", true); user_pref("security.ssl.treat_unsafe_negotiation_as_broken", true); ``` -------------------------------- ### Import Custom Filter List in uBlock Origin Source: https://github.com/arkenfox/user.js/wiki/4.1-Extensions Instructions for importing a custom filter list into uBlock Origin. Ensure 'Apply Changes' is clicked after pasting the URL. ```text Apply Changes ``` -------------------------------- ### Configure Referer Header Policy Source: https://context7.com/arkenfox/user.js/llms.txt Reduces the amount of cross-origin referer information sent to websites. Setting the policy to 2 sends only the scheme, host, and port. ```js // 0=full URI (default), 1=scheme+host+port+path, 2=scheme+host+port user_pref("network.http.referer.XOriginTrimmingPolicy", 2); ``` -------------------------------- ### User Override Preference Source: https://github.com/arkenfox/user.js/wiki/3.1-Overrides Define your custom preferences in `user-overrides.js` to override default arkenfox settings. Comments can be added to explain the changes. ```javascript // my overrides user_pref("pref.name.example", "green") // I like green ``` -------------------------------- ### Fingerprinting Protection (FPP) Status Source: https://context7.com/arkenfox/user.js/llms.txt Fingerprinting Protection is automatically enabled in private browsing (FF114+) and for all windows via ETP Strict in FF119+. No user action is needed as it relies on ETP Strict. Custom overrides are not supported. ```javascript // FPP is ON by default in private browsing (FF114+) // In FF119+ it is enabled for all windows via ETP Strict (2701) // No action needed – arkenfox relies on ETP Strict to activate FPP // NOT supported: custom FPP target overrides (use RFP or FPP at defaults) // user_pref("privacy.fingerprintingProtection.overrides", ""); // user_pref("privacy.fingerprintingProtection.granularOverrides", ""); ``` -------------------------------- ### updater.bat Command-Line Parameters Source: https://github.com/arkenfox/user.js/wiki/5.1-Updater-[Options] These parameters customize the behavior of the updater.bat script on Windows. They allow for ESR activation, alternative override handling, unattended execution, and logging. ```batch -esr activate ESR-related preferences **(new in v4.8)**. -MultiOverrides use any and all .js files in a `user.js-overrides` sub-folder as overrides instead of the default `user-overrides.js` file. Files are appended in alphabetical order. -singleBackup use a single backup file and overwrite it on new updates, instead of cumulative backups. This was the default behavior before v4.3 -unattended run the script without user-input -updatebatch the updater will auto-update itself on execution -log write the console output to the logfile `user.js-update-log.txt` -LogP just like `-Log` but also open the logfile after updating -Merge merge overrides instead of appending them - `_user.js.parrot` lines are not merged - Comments are appended normally - Overrides for inactive (commented out) user.js prefs will be appended - When `-Merge` and `-MultiOverrides` are used together, a `user-overrides-merged.js` file is also generated in the root directory for quick reference. It contains only the merged data from override files and can be safely discarded after updating, or used as the new user-overrides.js. - When there are conflicting records for the same pref, the value of the last one declared will be used. - **v4.5+ supports commenting-out active user_pref lines** (see example below) ``` -------------------------------- ### Enable Firefox Container Tabs Source: https://context7.com/arkenfox/user.js/llms.txt Enables Firefox Container Tabs, which provide first-party isolation per tab. This helps in separating browsing sessions and enhancing privacy. ```js user_pref("privacy.userContext.enabled", true); user_pref("privacy.userContext.ui.enabled", true); // Optional: always show container picker on new tab // user_pref("privacy.userContext.newTabContainerOnLeftClick.enabled", true); ``` -------------------------------- ### Harden Password and Passkey Management Source: https://context7.com/arkenfox/user.js/llms.txt Disables autofill and automatic credential capture for passwords and passkeys, and hardens HTTP authentication dialogs. Prevents password autofill from leaking to cross-site forms. ```javascript // Disable password autofill (can leak to cross-site forms) user_pref("signon.autofillForms", false); // Disable formless login capture user_pref("signon.formlessCapture.enabled", false); // Allow HTTP auth dialogs only from same-origin sub-resources // 0=none, 1=same-origin only, 2=all (default) user_pref("network.auth.subresource-http-auth-allow", 1); // No direct attestation in passkeys (FF144+) user_pref("security.webauthn.always_allow_direct_attestation", false); ``` -------------------------------- ### Handle Deprecated Preferences in user.js Source: https://context7.com/arkenfox/user.js/llms.txt This snippet shows how to manage deprecated or renamed preferences using user_pref. PrefsCleaner can reset these to defaults. Note that some preferences are still used by specific Firefox versions like ESR140.x. ```javascript /* ESR140.x still uses all the following prefs */ // FF148: network.predictor prefs deprecated user_pref("network.predictor.enabled", false); // [DEFAULT: false FF144+] user_pref("network.predictor.enable-prefetch", false); // Section 6050 – items removed in arkenfox FF140+ // (prefsCleaner will clear these from prefs.js) // user_pref("browser.display.use_system_colors", ""); // user_pref("browser.urlbar.fakespot.featureGate", ""); // user_pref("security.OCSP.enabled", ""); // user_pref("security.OCSP.require", ""); ``` -------------------------------- ### Merged Preferences After Update Source: https://github.com/arkenfox/user.js/wiki/3.1-Overrides After the updater runs, the `user.js` file in your profile will contain both the original arkenfox preferences and your appended overrides. Firefox applies the last defined value for any given preference. ```javascript user_pref("pref.name.example", "purple") // my overrides user_pref("pref.name.example", "green") // I like green ``` -------------------------------- ### Comment out preferences in user-overrides.js Source: https://context7.com/arkenfox/user.js/llms.txt Use this specific syntax in `user-overrides.js` to disable an active arkenfox preference. This is part of the merge functionality. ```js //// --- comment-out --- 'privacy.resistFingerprinting.letterboxing' ``` -------------------------------- ### updater.sh Optional Arguments Source: https://github.com/arkenfox/user.js/wiki/5.1-Updater-[Options] These arguments modify the behavior of the updater.sh script for Mac and Linux systems. Use them to control update checks, profile selection, override file handling, and more. ```bash Optional Arguments: -h Show this help message and exit -p PROFILE absolute path to your Firefox profile (if different than the dir of this script) IMPORTANT: if the path include spaces, wrap the entire argument in quotes! -l Choose your Firefox profile from a list. (will auto-select the profile if only 1 exists) -u Update updater.sh and execute silently. Do not seek confirmation. -d Do not look for updates to updater.sh -s Silently update user.js. Do not seek confirmation. -b Only keep one backup of user.js -o OVERRIDE Filename(s) and/or path(s) to override file(s) (if different than user-overrides.js). If used with -p, paths should be relative to PROFILE or absolute paths. If given a directory, all *.js files inside will be appended recursively. You can pass multiple files or directories by passing a comma separated list. IMPORTANT: do not add spaces between files/paths! Ex: -o file1.js,file2.js,dir1 IMPORTANT: if any files/paths include spaces, wrap the entire argument in quotes! Ex: -o "override folder" -n Do not append any overrides, even if user-overrides.js exists -c Create a diff file comparing old and new user.js -v Open the resulting user.js file -r Only download user.js to a temporary file and open it -e Activate ESR related preferences ``` -------------------------------- ### Reduce Disk Writes for Forensic Protection Source: https://context7.com/arkenfox/user.js/llms.txt Reduces what Firefox writes to disk to limit forensic exposure. Includes disabling the disk cache, forcing media cache to memory in Private Browsing, and controlling session data storage. ```javascript // Disable disk cache (memory only) user_pref("browser.cache.disk.enable", false); // Force media cache to memory in Private Browsing user_pref("browser.privatebrowsing.forceMediaMemoryCache", true); user_pref("media.memory_cache_max_size", 65536); // Do not store session data on unencrypted sites // 0=everywhere, 1=unencrypted, 2=nowhere user_pref("browser.sessionstore.privacy_level", 2); // Disable auto-restart registration (Windows) user_pref("toolkit.winRegisterApplicationRestart", false); // Disable favicon caching in shortcuts (Windows) user_pref("browser.shell.shortcutFavicons", false); ``` -------------------------------- ### Disable Remote Safe Browsing Checks Source: https://context7.com/arkenfox/user.js/llms.txt Keeps local Safe Browsing enabled but disables remote binary checks that send file hashes to Google. Remote binary checks are disabled by default in arkenfox. ```javascript // Remote binary checks are disabled by default in arkenfox // [SETUP-SECURITY] Override this if you want remote download verification user_pref("browser.safebrowsing.downloads.remote.enabled", false); // Master SB switches are left ENABLED (commented out = not applied) // user_pref("browser.safebrowsing.malware.enabled", false); // DON'T disable // user_pref("browser.safebrowsing.phishing.enabled", false); // DON'T disable ``` -------------------------------- ### Disable Location Bar Speculative Connections and Suggestions Source: https://context7.com/arkenfox/user.js/llms.txt Disables speculative connections from the address bar, live search suggestions, and form history. Also disables Firefox Suggest and various URL bar feature gates. ```javascript user_pref("browser.urlbar.speculativeConnect.enabled", false); // Disable Firefox Suggest (sponsored / contextual suggestions) user_pref("browser.urlbar.quicksuggest.enabled", false); user_pref("browser.urlbar.suggest.quicksuggest.nonsponsored", false); user_pref("browser.urlbar.suggest.quicksuggest.sponsored", false); // Disable live search suggestions user_pref("browser.search.suggest.enabled", false); user_pref("browser.urlbar.suggest.searches", false); // Disable urlbar feature gates (weather, stocks, Yelp, Wikipedia, etc.) user_pref("browser.urlbar.weather.featureGate", false); user_pref("browser.urlbar.yelp.featureGate", false); user_pref("browser.urlbar.wikipedia.featureGate", false); user_pref("browser.urlbar.amp.featureGate", false); user_pref("browser.urlbar.market.featureGate", false); // Disable form/search history autocomplete user_pref("browser.formfill.enable", false); // Separate private-window search engine user_pref("browser.search.separatePrivateDefault", true); user_pref("browser.search.separatePrivateDefault.ui.enabled", true); ``` -------------------------------- ### Enable Firefox Shutdown Sanitizing Source: https://context7.com/arkenfox/user.js/llms.txt Enables clearing of cookies, cache, and form data upon Firefox shutdown. For Firefox 128 and later, specific items can be controlled. History and downloads are kept by default. ```javascript // Enable sanitize on shutdown user_pref("privacy.sanitize.sanitizeOnShutdown", true); // Items cleared on shutdown (FF128+) user_pref("privacy.clearOnShutdown_v2.cache", true); user_pref("privacy.clearOnShutdown_v2.cookiesAndStorage", true); // respects "Allow" exceptions user_pref("privacy.clearOnShutdown_v2.formdata", true); user_pref("privacy.clearOnShutdown_v2.historyFormDataAndDownloads", false); // keep history by default user_pref("privacy.clearOnShutdown_v2.browsingHistoryAndDownloads", false); // Default time range for manual Clear Data / Clear History dialogs // 0=everything, 1=last hour, 2=last 2h, 3=last 4h, 4=today user_pref("privacy.sanitize.timeSpan", 0); // To keep logins for a specific site without changing prefs: // Ctrl+I > Permissions > Cookies > Allow (while on that site) // For cross-domain logins add BOTH origins, e.g.: // https://www.youtube.com + https://accounts.google.com ``` -------------------------------- ### Prevent WebRTC Private IP Exposure Source: https://context7.com/arkenfox/user.js/llms.txt Prevents private IP addresses from being exposed through WebRTC ICE candidates. This configuration forces WebRTC traffic through the proxy when a system proxy is detected and uses a single network interface for ICE. ```js // Force WebRTC through proxy when a system proxy is detected user_pref("media.peerconnection.ice.proxy_only_if_behind_proxy", true); // Single network interface for ICE (uses proxy interface) user_pref("media.peerconnection.ice.default_address_only", true); // Optional: exclude ALL private IPs from ICE (breaks many video-conferencing platforms) // user_pref("media.peerconnection.ice.no_host", true); ``` -------------------------------- ### Disable Geolocation Providers Source: https://context7.com/arkenfox/user.js/llms.txt Disables operating system-level geolocation services on Windows, macOS, and Linux to enhance privacy. ```javascript user_pref("geo.provider.ms-windows-location", false); // Windows user_pref("geo.provider.use_corelocation", false); // macOS user_pref("geo.provider.use_geoclue", false); // Linux (FF102+) ``` -------------------------------- ### Block Implicit Outbound Network Connections Source: https://context7.com/arkenfox/user.js/llms.txt Stops Firefox from making network connections the user did not explicitly request, such as prefetching, speculative DNS lookups, and mousedown connections. ```javascript user_pref("network.prefetch-next", false); // link prefetch user_pref("network.dns.disablePrefetch", true); // DNS prefetch user_pref("network.dns.disablePrefetchFromHTTPS", true); user_pref("network.http.speculative-parallel-limit", 0); // hover pre-connect user_pref("browser.places.speculativeConnect.enabled", false); // bookmark mousedown ``` -------------------------------- ### Disable Telemetry and Studies Source: https://context7.com/arkenfox/user.js/llms.txt Stops Firefox from sending analytics, study data, and crash reports to Mozilla. This includes disabling add-on recommendations, activity stream telemetry, Shield/Normandy studies, and crash reporting services. ```javascript // Disable add-on recommendations panel (uses Google Analytics) user_pref("extensions.getAddons.showPane", false); user_pref("extensions.htmlaboutaddons.recommendations.enabled", false); user_pref("browser.discovery.enabled", false); // Disable Activity Stream telemetry user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false); user_pref("browser.newtabpage.activity-stream.telemetry", false); // Disable Shield/Normandy studies user_pref("app.shield.optoutstudies.enabled", false); user_pref("app.normandy.enabled", false); user_pref("app.normandy.api_url", ""); // Disable crash reports user_pref("breakpad.reportURL", ""); user_pref("browser.tabs.crashReporting.sendReport", false); user_pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false); // Disable captive portal and connectivity checks user_pref("captivedetect.canonicalURL", ""); user_pref("network.captive-portal-service.enabled", false); user_pref("network.connectivity-service.enabled", false); ``` -------------------------------- ### Disable Firefox Telemetry Source: https://context7.com/arkenfox/user.js/llms.txt Disables all Firefox data submission, health reports, and telemetry pipelines. This includes server pings and coverage reporting. ```javascript user_pref("datareporting.policy.dataSubmissionEnabled", false); user_pref("datareporting.healthreport.uploadEnabled", false); user_pref("toolkit.telemetry.unified", false); user_pref("toolkit.telemetry.enabled", false); user_pref("toolkit.telemetry.server", "data:,"); user_pref("toolkit.telemetry.archive.enabled", false); user_pref("toolkit.telemetry.newProfilePing.enabled", false); user_pref("toolkit.telemetry.shutdownPingSender.enabled", false); user_pref("toolkit.telemetry.updatePing.enabled", false); user_pref("toolkit.telemetry.bhrPing.enabled", false); user_pref("toolkit.telemetry.firstShutdownPing.enabled", false); user_pref("toolkit.telemetry.coverage.opt-out", true); user_pref("toolkit.coverage.opt-out", true); user_pref("toolkit.coverage.endpoint.base", ""); ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.