// This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/.
// Non-static prefs that are specific to desktop Firefox belong in this file // (unless there is a compelling and documented reason for them to belong in // another file). // // Please indent all prefs defined within #ifdef/#ifndef conditions. This // improves readability, particular for conditional blocks that exceed a single // screen.
// The URL for the privacy policy related to recommended extensions.
pref("extensions.recommendations.privacyPolicyUrl", "https://www.mozilla.org/privacy/firefox/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_content=privacy-policy-link#addons"); // The URL for Firefox Color, recommended on the theme page in about:addons.
pref("extensions.recommendations.themeRecommendationUrl", "https://color.firefox.com/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_content=theme-footer-link");
// Disable add-ons that are not installed by the user in all scopes by default. // See the SCOPE constants in AddonManager.sys.mjs for values to use here.
pref("extensions.autoDisableScopes", 15); // Scopes to scan for changes at startup.
pref("extensions.startupScanScopes", 0);
// Disable the deprecated filter applied to the pageAction icon on all channels.
pref("extensions.webextensions.pageActionIconDarkModeFilter.enabled", false);
// Require signed add-ons by default
pref("extensions.langpacks.signatures.required", true);
pref("xpinstall.signatures.required", true);
// Enable data collection permissions.
pref("extensions.dataCollectionPermissions.enabled", true);
// At startup, should we check to see if the installation // date is older than some threshold
pref("app.update.checkInstallTime", true);
// The number of days a binary is permitted to be old without checking is defined in // firefox-branding.js (app.update.checkInstallTime.days)
// The minimum delay in seconds for the timer to fire between the notification // of each consumer of the timer manager. // minimum=30 seconds, default=120 seconds, and maximum=300 seconds
pref("app.update.timerMinimumDelay", 120);
// The minimum delay in milliseconds for the first firing after startup of the timer // to notify consumers of the timer manager. // minimum=10 seconds, default=30 seconds, and maximum=120 seconds
pref("app.update.timerFirstInterval", 30000);
// App-specific update preferences
// The interval to check for updates (app.update.interval) is defined in // firefox-branding.js
// Enables some extra Application Update Logging (can reduce performance)
pref("app.update.log", false); // Causes Application Update Logging to be sent to a file in the profile // directory. This preference is automatically disabled on application start to // prevent it from being left on accidentally. Turning this pref on enables // logging, even if app.update.log is false.
pref("app.update.log.file", false);
// The number of general background check failures to allow before notifying the // user of the failure. User initiated update checks always notify the user of // the failure.
pref("app.update.backgroundMaxErrors", 10);
// How many times we should let downloads fail before prompting the user to // download a fresh installer.
pref("app.update.download.maxAttempts", 2);
// How many times we should let an elevation prompt fail before prompting the user to // download a fresh installer.
pref("app.update.elevate.maxAttempts", 2);
#ifdef NIGHTLY_BUILD // Whether to delay popup notifications when an update is available and // suppress them when an update is installed and waiting for user to restart. // If set to true, these notifications will immediately be shown as banners in // the app menu and as badges on the app menu button. Update available // notifications will not create popup prompts until a week has passed without // the user installing the update. Update restart notifications will not // create popup prompts at all. This doesn't affect update notifications // triggered by errors/failures or manual install prompts.
pref("app.update.suppressPrompts", false);
#endif
// If set to true, a message will be displayed in the hamburger menu while // an update is being downloaded.
pref("app.update.notifyDuringDownload", false);
// If set to true, the Update Service will automatically download updates if the // user can apply updates. This pref is no longer used on Windows, except as the // default value to migrate to the new location that this data is now stored // (which is in a file in the update directory). Because of this, this pref // should no longer be used directly. Instead, getAppUpdateAutoEnabled and // getAppUpdateAutoEnabled from UpdateUtils.sys.mjs should be used.
#ifndef XP_WIN
pref("app.update.auto", true);
#endif
// If set to true, the Update Service will apply updates in the background // when it finishes downloading them.
pref("app.update.staging.enabled", true);
// Update service URL: // app.update.url was removed in Bug 1568994 // app.update.url.manual is in branding section // app.update.url.details is in branding section
// app.update.badgeWaitTime is in branding section // app.update.interval is in branding section // app.update.promptWaitTime is in branding section
// Whether or not to attempt using the service for updates.
#ifdef MOZ_MAINTENANCE_SERVICE
pref("app.update.service.enabled", true);
#endif
#ifdef MOZ_BITS_DOWNLOAD // If set to true, the Update Service will attempt to use Windows BITS to // download updates and will fallback to downloading internally if that fails.
pref("app.update.BITS.enabled", true);
#endif
pref("app.update.langpack.enabled", true);
#if defined(MOZ_UPDATE_AGENT)
pref("app.update.background.loglevel", "error");
pref("app.update.background.timeoutSec", 600); // By default, check for updates when the browser is not running every 7 hours.
pref("app.update.background.interval", 25200); // By default, snapshot Firefox Messaging System targeting for use by the // background update task every 60 minutes.
pref("app.update.background.messaging.targeting.snapshot.intervalSec", 3600); // For historical reasons, the background update process requires the Mozilla // Maintenance Service to be available and enabled via the service registry // key. When this value is `true`, allow the background update process to // update unelevated installations (that are writeable, etc). // // N.b. This feature impacts the `applications: firefox_desktop` Nimbus // application ID (and not the `firefox_desktop_background_task` application // ID). However, the pref will be automatically mirrored to the background // update task profile. This means that experiments and enrollment impact the // Firefox Desktop browsing profile that _schedules_ the background update // task, and then the background update task collects telemetry in accordance // with the mirrored pref.
pref("app.update.background.allowUpdatesForUnelevatedInstallations", false);
#endif
#ifdef XP_MACOSX // If set to true, Firefox will automatically restart if it is left running // with no browser windows open.
pref("app.update.noWindowAutoRestart.enabled", true); // How long to wait after all browser windows are closed before restarting, // in milliseconds. 5 min = 300000 ms
pref("app.update.noWindowAutoRestart.delayMs", 300000);
#endif
#if defined(MOZ_BACKGROUNDTASKS) // The amount of time, in seconds, before background tasks time out and exit. // Tasks can override this default (10 minutes).
pref("toolkit.backgroundtasks.defaultTimeoutSec", 600);
#if defined(ENABLE_TESTS) // Test prefs to verify background tasks inheret and override browser prefs // correctly.
pref("toolkit.backgroundtasks.tests.browserPrefsInherited", 15);
pref("toolkit.backgroundtasks.tests.browserPrefsOverriden", 16);
#endif
#endif
// Symmetric (can be overridden by individual extensions) update preferences. // e.g. // extensions.{GUID}.update.enabled // extensions.{GUID}.update.url // .. etc .. //
pref("extensions.update.enabled", true);
pref("extensions.update.url", "https://versioncheck.addons.mozilla.org/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%");
pref("extensions.update.background.url", "https://versioncheck-bg.addons.mozilla.org/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%");
pref("extensions.update.interval", 86400); // Check for updates to Extensions and // Themes every day
// UI tour experience.
pref("browser.uitour.enabled", true);
pref("browser.uitour.loglevel", "Error");
pref("browser.uitour.url", "https://www.mozilla.org/%LOCALE%/firefox/%VERSION%/tour/"); // How long to show a Hearbeat survey (two hours, in seconds)
pref("browser.uitour.surveyDuration", 7200);
// UI density of the browser chrome. This mostly affects toolbarbutton // and urlbar spacing. The possible values are 0=normal, 1=compact, 2=touch.
pref("browser.uidensity", 0); // Whether Firefox will automatically override the uidensity to "touch" // while the user is in a touch environment (such as Windows tablet mode).
pref("browser.touchmode.auto", true); // Whether Firefox will show the Compact Mode UIDensity option.
pref("browser.compactmode.show", false);
// At startup, check if we're the default browser and prompt user if not.
pref("browser.shell.checkDefaultBrowser", true);
pref("browser.shell.shortcutFavicons",true);
pref("browser.shell.mostRecentDateSetAsDefault", "");
pref("browser.shell.skipDefaultBrowserCheckOnFirstRun", true);
pref("browser.shell.didSkipDefaultBrowserCheckOnFirstRun", false);
pref("browser.shell.defaultBrowserCheckCount", 0);
#if defined(XP_WIN) // Attempt to set the default browser on Windows 10 using the UserChoice registry keys, // before falling back to launching the modern Settings dialog.
pref("browser.shell.setDefaultBrowserUserChoice", true); // When setting default via UserChoice, temporarily rename an ancestor registry key to // prevent kernel drivers from locking the UserChoice subkeys.
pref("browser.shell.setDefaultBrowserUserChoice.regRename", true); // When setting the default browser on Windows 10 using the UserChoice // registry keys, also try to set Firefox as the default PDF handler.
pref("browser.shell.setDefaultPDFHandler", true); // When setting Firefox as the default PDF handler (subject to conditions // above), only set Firefox as the default PDF handler when the existing handler // is a known browser, and not when existing handler is another PDF handler such // as Acrobat Reader or Nitro PDF.
pref("browser.shell.setDefaultPDFHandler.onlyReplaceBrowsers", true); // Whether or not to we are allowed to prompt the user to set Firefox as their // default PDF handler.
pref("browser.shell.checkDefaultPDF", true); // Will be set to `true` if the user indicates that they don't want to be asked // again about Firefox being their default PDF handler any more.
pref("browser.shell.checkDefaultPDF.silencedByUser", false); // Whether or not the user should be shown the guidance notifications when // setting Firefox as their default browser.
pref("browser.shell.setDefaultGuidanceNotifications", true);
pref("browser.shell.focusSetDefaultBrowserButton", false);
// After a failed UserChoice attempt, show the OS "Open with" picker via the // undocumented IOpenWithLauncher API so the user can pick Firefox themselves.
pref("browser.shell.setDefaultPDFHandler.useOpenWith", true); // Delay between invoking a default-handler method (UserChoice / Open with / // modern settings) and sampling whether Firefox is actually the default. // The sample is reported via the set_default_pdf_handler_attempt event.
pref("browser.shell.setDefaultPDFHandler.attemptWaitTimeMs", 30000);
#endif
// 0 = blank, 1 = home (browser.startup.homepage), 2 = last visited page, 3 = resume previous browser session // The behavior of option 3 is detailed at: http://wiki.mozilla.org/Session_Restore
pref("browser.startup.page", 1);
pref("browser.startup.homepage", "about:home");
pref("browser.startup.homepage.abouthome_cache.enabled", true);
pref("browser.startup.homepage.abouthome_cache.loglevel", "Warn");
// Whether we should skip the homepage when opening the first-run page
pref("browser.startup.firstrunSkipsHomepage", true);
// Whether we should show the session-restore infobar on startup
pref("browser.startup.couldRestoreSession.count", 0);
// Show a skeleton UI window prior to loading libxul. Only visible for windows // users as it is not implemented anywhere else.
#if defined(XP_WIN)
pref("browser.startup.preXulSkeletonUI", true);
// Whether the checkbox to enable Windows launch on login is shown
pref("browser.startup.windowsLaunchOnLogin.enabled", true); // Whether to show the launch on login infobar notification
pref("browser.startup.windowsLaunchOnLogin.disableLaunchOnLoginPrompt", false); // Whether new installs default to launching Firefox on Windows login when the // user is not enrolled in Nimbus for this feature. When false, launch-on-login // is enabled only by a Nimbus rollout or experiment; when true, it is enabled // by default for everyone. A Nimbus enrollment overrides this in either // direction.
pref("browser.startup.windowsLaunchOnLogin.defaultEnabled", false);
pref("browser.startup.windowsLaunchOnLogin.alreadyApplied", false);
#endif
// Show an upgrade dialog on major upgrades.
pref("browser.startup.upgradeDialog.enabled", false);
pref("browser.chrome.site_icons", true); // browser.warnOnQuit == false will override all other possible prompts when quitting or restarting
pref("browser.warnOnQuit", true);
// Whether to warn when quitting when using the shortcut key.
#if defined(XP_WIN)
pref("browser.warnOnQuitShortcut", false);
#else
pref("browser.warnOnQuitShortcut", true);
#endif
// TODO bug 1702563: Renable fullscreen autohide by default on macOS.
#ifdef XP_MACOSX
pref("browser.fullscreen.autohide", false);
#else
pref("browser.fullscreen.autohide", true);
#endif
// Whether using `ctrl` or `command` when hitting return/enter // in the URL bar should add prefix 'www.' and suffix // Services.locale.urlFixupSuffix to the URL bar value prior to navigating.
pref("browser.urlbar.ctrlCanonizesURLs", true);
// Whether we announce to screen readers when tab-to-search results are // inserted.
pref("browser.urlbar.accessibility.tabToSearch.announceResults", true);
// Control autoFill behavior
pref("browser.urlbar.autoFill", true);
// Duration in ms to block after backspace penalty. Default: 2 days.
pref("browser.urlbar.autoFill.backspaceBlockDurationMs", 172800000);
// How many times the user must consecutively backspace away an autofill // suggestion before we penalize and temporarily suppress it from autofilling. // The result may still appear as a regular history result.
pref("browser.urlbar.autoFill.backspaceThreshold", 3);
// Duration in ms to block an origin/URL after dismiss. Default: 7 days.
pref("browser.urlbar.autoFill.dismissalBlockDurationMs", 604800000);
// Minimum char length of the user's search string to enable adaptive history // autofill.
pref("browser.urlbar.autoFill.adaptiveHistory.minCharsThreshold", 0);
// Set default suggest intent threshold value of 0.5
pref("browser.urlbar.intentThreshold", "0.5");
// Set default NER threshold value of 0.5
pref("browser.urlbar.nerThreshold", "0.5");
// Whether to warm up network connections for autofill or search results.
pref("browser.urlbar.speculativeConnect.enabled", true);
// Whether bookmarklets should be filtered out of Address Bar matches. // This is enabled for security reasons, when true it is still possible to // search for bookmarklets typing "javascript: " followed by the actual query.
pref("browser.urlbar.filter.javascript", true);
// Focus the content document when pressing the Escape key, if there's no // remaining typed history.
pref("browser.urlbar.focusContentDocumentOnEsc", true);
// Enable a certain level of urlbar logging to the Browser Console. See // ConsoleInstance.webidl.
pref("browser.urlbar.loglevel", "Error");
// The maximum number of mentions to show.
pref("browser.urlbar.mentions.maxResults", 5);
// the maximum number of results to show in autocomplete when doing richResults
pref("browser.urlbar.maxRichResults", 10);
// The maximum number of historical search results to show.
pref("browser.urlbar.maxHistoricalSearchSuggestions", 2);
// The default behavior for the urlbar can be configured to use any combination // of the match filters with each additional filter adding more results (union).
pref("browser.urlbar.suggest.bookmark", true);
pref("browser.urlbar.suggest.clipboard", true);
pref("browser.urlbar.suggest.history", true);
pref("browser.urlbar.suggest.openpage", true);
pref("browser.urlbar.suggest.remotetab", true);
pref("browser.urlbar.suggest.searches", true);
pref("browser.urlbar.suggest.topsites", true);
pref("browser.urlbar.suggest.engines", true);
pref("browser.urlbar.suggest.calculator", true);
pref("browser.urlbar.suggest.recentsearches", true);
pref("browser.urlbar.suggest.quickactions", true);
// Feature gate pref for weather suggestions in the urlbar.
pref("browser.urlbar.weather.featureGate", false);
// Enable clipboard suggestions feature, the pref should be removed once stable.
pref("browser.urlbar.clipboard.featureGate", false);
// Enable context menu on the urlbar.
pref("browser.urlbar.contextMenu.featureGate", false);
// The minimum prefix length of a weather keyword the user must type to trigger // the suggestion. 0 means the min length should be taken from Nimbus or remote // settings.
pref("browser.urlbar.weather.minKeywordLength", 0);
// The UI treatment to use for weather suggestions. Possible values: // 0: (default) Simplest UI with current temperature and location // 1: Simpler UI, adds current conditions, high/low, and URL // 2: Full UI, adds forecast
pref("browser.urlbar.weather.uiTreatment", 0);
// If `browser.urlbar.weather.featureGate` is true, this controls whether // weather suggestions are turned on.
pref("browser.urlbar.suggest.weather", true);
// If `browser.urlbar.trending.featureGate` is true, this controls whether // trending suggestions are turned on.
pref("browser.urlbar.suggest.trending", true);
// Whether results that are part of the Firefox Suggest brand are shown in the // urlbar. This pref is exposed to the user in the UI, and it's sticky so that // its user-branch value persists regardless of whatever Firefox Suggest // scenarios, with their various default-branch values, the user is enrolled in // over time.
pref("browser.urlbar.suggest.quicksuggest.all", false, sticky);
// Whether non-sponsored quick suggest results are shown in the urlbar. This // pref is exposed to the user in the UI, and it's sticky so that its // user-branch value persists regardless of whatever Firefox Suggest scenarios, // with their various default-branch values, the user is enrolled in over time.
pref("browser.urlbar.suggest.quicksuggest.nonsponsored", false, sticky);
// Whether sponsored quick suggest results are shown in the urlbar. This pref is // exposed to the user in the UI, and it's sticky so that its user-branch value // persists regardless of whatever Firefox Suggest scenarios, with their various // default-branch values, the user is enrolled in over time.
pref("browser.urlbar.suggest.quicksuggest.sponsored", false, sticky);
// Whether online Firefox Suggest is available to the user. This is only // relevant when Suggest overall is enabled [1]. // // [1] browser.urlbar.quicksuggest.enabled
pref("browser.urlbar.quicksuggest.online.available", false);
// Whether Firefox Suggest retrieves online suggestions from Merino. This pref // is only relevant when Suggest overall is enabled [1] and online Suggest is // available to the user [2]; otherwise online suggestions are disabled. In // addition, when the relevant Oblivious HTTP (OHTTP) prefs [3, 4] are set, // online suggestions will be fetched over OHTTP. // // This pref corresponds to the online Suggest checkbox in the settings UI. It's // sticky so that user choice is preserved regardless of its default value. // // [1] browser.urlbar.quicksuggest.enabled // [2] browser.urlbar.quicksuggest.online.available // [3] browser.urlbar.merino.ohttpConfigURL // [4] browser.urlbar.merino.ohttpRelayURL
pref("browser.urlbar.quicksuggest.online.enabled", true, sticky);
// Whether the Firefox Suggest contextual opt-in result is enabled.
pref("browser.urlbar.quicksuggest.contextualOptIn", false);
// Number that the user dismissed the Firefox Suggest contextual opt-in result.
pref("browser.urlbar.quicksuggest.contextualOptIn.dismissedCount", 0);
// Period until reshow the Firefox Suggest contextual opt-in result when first dismissed.
pref("browser.urlbar.quicksuggest.contextualOptIn.firstReshowAfterPeriodDays", 7);
// Period until reshow the Firefox Suggest contextual opt-in result when second dismissed.
pref("browser.urlbar.quicksuggest.contextualOptIn.secondReshowAfterPeriodDays", 14);
// Period until reshow the Firefox Suggest contextual opt-in result when third dismissed.
pref("browser.urlbar.quicksuggest.contextualOptIn.thirdReshowAfterPeriodDays", 60);
// Number of impression for the Firefox Suggest contextual opt-in result.
pref("browser.urlbar.quicksuggest.contextualOptIn.impressionCount", 0);
// Limit for impression to dismiss the Firefox Suggest contextual opt-in result.
pref("browser.urlbar.quicksuggest.contextualOptIn.impressionLimit", 20);
// Days until dismiss the Firefox Suggest contextual opt-in result after first impression.
pref("browser.urlbar.quicksuggest.contextualOptIn.impressionDaysLimit", 5);
// Whether the quick suggest feature in the urlbar is enabled.
pref("browser.urlbar.quicksuggest.enabled", false);
// Ranking mode of QuickSuggest. Currently used for relevance ranking // experimentation. It can be any of "default", "interest", and "random".
pref("browser.urlbar.quicksuggest.rankingMode", "default");
// Whether Firefox Suggest will use the new Rust backend instead of the original // JS backend.
pref("browser.urlbar.quicksuggest.rustEnabled", true);
// The index of sponsored Firefox Suggest results within the Firefox Suggest // section when "Show search suggestions ahead of browsing history in address bar // results" is checked. When not checked, the index is hardcoded as -1. Negative // indexes are relative to the end of the section.
pref("browser.urlbar.quicksuggest.sponsoredIndex", 0);
pref("browser.urlbar.quicksuggest.nonSponsoredIndex", -1);
// Whether non-sponsored quick suggest results are subject to impression // frequency caps.
pref("browser.urlbar.quicksuggest.impressionCaps.nonSponsoredEnabled", false);
// Whether sponsored quick suggest results are subject to impression frequency // caps.
pref("browser.urlbar.quicksuggest.impressionCaps.sponsoredEnabled", false);
// When non-zero, this is the character-count threshold (inclusive) for showing // AMP suggestions as top picks. If an AMP suggestion is triggered by a keyword // at least this many characters long, it will be shown as a top pick.
pref("browser.urlbar.quicksuggest.ampTopPickCharThreshold", 5);
// Whether or not use the Nova icon size for AMP suggestion. // Otherwise, use standard rich-suggestion size.
pref("browser.urlbar.quicksuggest.ampTopPickUseNovaIconSize", false);
// The matching strategy for AMP suggestions. Zero is the usual default // exact-keyword strategy. Other values are the integers defined on // `AmpMatchingStrategy` in `RustSuggest.sys.mjs` (corresponding to the // `AmpMatchingStrategy` enum in the Rust component coerced to a 1-based integer // value).
pref("browser.urlbar.quicksuggest.ampMatchingStrategy", 0);
// Comma-separated list of Suggest dynamic suggestion types to enable.
pref("browser.urlbar.quicksuggest.dynamicSuggestionTypes", "");
// Whether Suggest will use the ML backend in addition to Rust.
pref("browser.urlbar.quicksuggest.mlEnabled", false);
// How long to wait in seconds after startup before initializing the Suggest ML // backend.
pref("browser.urlbar.quicksuggest.mlInitDelaySeconds", 0);
// Which Suggest settings to show in the settings UI, when Suggest is enabled. // See `QuickSuggest.SETTINGS_UI` for values.
pref("browser.urlbar.quicksuggest.settingsUi", 1);
// Whether unit conversion is enabled.
pref("browser.urlbar.unitConversion.enabled", true);
// Whether to show search suggestions before general results like history and // bookmarks.
pref("browser.urlbar.showSearchSuggestionsFirst", true);
// As a user privacy measure, don't fetch search suggestions if a pasted string // is longer than this.
pref("browser.urlbar.maxCharsForSearchSuggestions", 100);
// If changed to true, copying the entire URL from the location bar will put the // human readable (percent-decoded) URL on the clipboard.
pref("browser.urlbar.decodeURLsOnCopy", false);
// Whether or not to move tabs into the active window when using the "Switch to // Tab" feature of the awesomebar.
pref("browser.urlbar.switchTabs.adoptIntoActiveWindow", false);
// Whether addresses and search results typed into the address bar // should be opened in new tabs by default.
pref("browser.urlbar.openintab", false);
// Allow the result menu button to be reached with the Tab key.
pref("browser.urlbar.resultMenu.keyboardAccessible", true);
// If true, we show tail suggestions when available.
pref("browser.urlbar.richSuggestions.tail", true);
// If true, top sites may include sponsored ones.
pref("browser.urlbar.sponsoredTopSites", false);
// Global toggle for whether the show search terms feature // can be used at all, and enabled/disabled by the user.
pref("browser.urlbar.showSearchTerms.featureGate", false);
// If true, show the search term in the Urlbar while on // a default search engine results page.
pref("browser.urlbar.showSearchTerms.enabled", true);
// Whether the urlbar displays one-offs to filter searches to history, // bookmarks, or tabs.
pref("browser.urlbar.shortcuts.bookmarks", true);
pref("browser.urlbar.shortcuts.tabs", true);
pref("browser.urlbar.shortcuts.history", true);
// When we send events to Urlbar extensions, we wait this amount of time in // milliseconds for them to respond before timing out.
pref("browser.urlbar.extension.timeout", 400);
// Controls when to DNS resolve single word search strings, after they were // searched for. If the string is resolved as a valid host, show a // "Did you mean to go to 'host'" prompt. // 0 - never resolve; 1 - use heuristics (default); 2 - always resolve
pref("browser.urlbar.dnsResolveSingleWordsAfterSearch", 0);
// Whether the results panel should be kept open during IME composition. // The default value is false because some IME open a picker panel, and we end // up with two panels on top of each other. Since for now we can't detect that // we leave this choice to the user, hopefully in the future this can be flipped // for everyone.
pref("browser.urlbar.keepPanelOpenDuringImeComposition", false);
// Whether Firefox Suggest group labels are shown in the urlbar view.
pref("browser.urlbar.groupLabels.enabled", true);
// Embedding family used by Places semantic history. "static" or "contextual". // Settable via Nimbus (semanticHistoryEmbeddingType).
pref("places.semanticHistory.embeddingType", "static");
// Dev / debug overrides for the contextual engine. Not exposed via Nimbus.
pref("browser.ml.embedGen.textEmbeddingSize", 384);
pref("browser.ml.embedGen.textEmbeddingFeatureModel", "");
// Minimum length threshold for semantic history search
pref("browser.urlbar.suggest.semanticHistory.minLength", 5);
// If `browser.urlbar.addons.featureGate` is true, this controls whether // addons suggestions are turned on.
pref("browser.urlbar.suggest.addons", true);
// Feature gate pref for MDN suggestions in the urlbar.
pref("browser.urlbar.mdn.featureGate", false);
// The minimum prefix length of a mdn keyword the user must type to trigger the // suggestion.
pref("browser.urlbar.mdn.minKeywordLength", 0);
// If `browser.urlbar.mdn.featureGate` is true, this controls whether // mdn suggestions are turned on.
pref("browser.urlbar.suggest.mdn", true);
// Feature gate pref for Yelp suggestions in the urlbar.
pref("browser.urlbar.yelp.featureGate", false);
// The minimum prefix length of a Yelp keyword the user must type to trigger the // suggestion. 0 means the min length should be taken from Nimbus.
pref("browser.urlbar.yelp.minKeywordLength", 4);
// Whether Yelp suggestions should be shown as top picks.
pref("browser.urlbar.yelp.priority", false);
// Whether Yelp suggestions will be served from the Suggest ML backend instead // of Rust.
pref("browser.urlbar.yelp.mlEnabled", false);
// Whether to distinguish service type subjects. If true, we show special titile // for the suggestion.
pref("browser.urlbar.yelp.serviceResultDistinction", false);
// If `browser.urlbar.yelp.featureGate` is true, this controls whether // Yelp suggestions are turned on.
pref("browser.urlbar.suggest.yelp", true);
// Feature gate pref for Fakespot suggestions in the urlbar. // TODO Bug 1982966: Remove this after all experiments and rollouts using it // finish.
pref("browser.urlbar.fakespot.featureGate", false);
// The minimum prefix length of addons keyword the user must type to trigger // the suggestion. 0 means the min length should be taken from Nimbus.
pref("browser.urlbar.addons.minKeywordLength", 0);
// Feature gate pref for AMP suggestions in the urlbar.
pref("browser.urlbar.amp.featureGate", false);
// The minimum prefix length of an AMP keyword the user must type to trigger the // suggestion.
pref("browser.urlbar.amp.minKeywordLength", 0);
// If `browser.urlbar.amp.featureGate` is true, this controls whether AMP // suggestions are turned on.
pref("browser.urlbar.suggest.amp", true);
// Feature gate pref for Wikipedia suggestions in the urlbar (part of Firefox // Suggest).
pref("browser.urlbar.wikipedia.featureGate", false);
// If `browser.urlbar.wikipedia.featureGate` is true, this controls whether // Wikipedia suggestions are turned on.
pref("browser.urlbar.suggest.wikipedia", true);
// Controls whether realtime opt-in suggestions are turned on.
pref("browser.urlbar.suggest.realtimeOptIn", true);
// Feature gate pref for stock market suggestions in the urlbar.
pref("browser.urlbar.market.featureGate", false);
// The minimum prefix length of a market keyword the user must type to trigger // the suggestion. 0 means the min length should be taken from Nimbus or remote // settings.
pref("browser.urlbar.market.minKeywordLength", 0);
// Feature gate pref for important-dates suggestions in the urlbar.
pref("browser.urlbar.importantDates.featureGate", false);
// If `browser.urlbar.importantDates.featureGate` is true, this controls whether // important-dates suggestions are turned on.
pref("browser.urlbar.suggest.importantDates", true);
// Feature gate pref for Yelp realtime suggestions in the urlbar.
pref("browser.urlbar.yelpRealtime.featureGate", false);
// If `browser.urlbar.yelpRealtime.featureGate` is true, this controls whether // Yelp realtime suggestions are turned on.
pref("browser.urlbar.suggest.yelpRealtime", true);
// The minimum prefix length of a Yelp keyword the user must type to trigger // the suggestion. 0 means the min length should be taken from Nimbus or remote // settings.
pref("browser.urlbar.yelpRealtime.minKeywordLength", 0);
// Feature gate pref for flight status suggestions in the urlbar.
pref("browser.urlbar.flightStatus.featureGate", false);
// Feature gate pref for sports suggestions in the urlbar.
pref("browser.urlbar.sports.featureGate", false);
// If `browser.urlbar.sports.featureGate` is true, this controls whether sports // suggestions are turned on.
pref("browser.urlbar.suggest.sports", true);
// Timestamp of the time the user last performed a search via the urlbar // so that experiments can target users who have / have not performed // urlbar searches.
pref("browser.urlbar.lastUrlbarSearchSeconds", 0);
// When selecting and hovering over certain types of urlbar results, replace // their URLs with strings that explain why they're shown.
pref("browser.urlbar.resultExplanations.featureGate", false);
pref("browser.altClickSave", false);
// Number of milliseconds to wait for the http headers (and thus // the Content-Disposition filename) before giving up and falling back to // picking a filename without that info in hand so that the user sees some // feedback from their action.
pref("browser.download.saveLinkAsFilenameTimeout", 4000);
// This records whether or not the panel has been shown at least once.
pref("browser.download.panel.shown", false);
// This records whether or not to show the 'Open in system viewer' context menu item when appropriate
pref("browser.download.openInSystemViewerContextMenuItem", true);
// This records whether or not to show the 'Always open...' context menu item when appropriate
pref("browser.download.alwaysOpenInSystemViewerContextMenuItem", true);
// Open downloaded file types internally for the given types. // This is a comma-separated list, the empty string ("") means no types are // viewable internally.
pref("browser.download.viewableInternally.enabledTypes", "xml,svg,webp,avif,jxl");
// This controls whether the button is automatically shown/hidden depending // on whether there are downloads to show.
pref("browser.download.autohideButton", true);
// Controls whether to open the downloads panel every time a download begins. // The first download ever run in a new profile will still open the panel.
pref("browser.download.alwaysOpenPanel", true);
// Determines the behavior of the "Delete" item in the downloads context menu. // Valid values are 0, 1, and 2. // 0 - Don't remove the download from session list or history. // 1 - Remove the download from session list, but not history. // 2 - Remove the download from both session list and history.
pref("browser.download.clearHistoryOnDelete", 0);
// This controls the visibility of the radio button in the // Unknown Content Type (Helper App) dialog that will open // the content in the browser for PDF and for other // Viewable Internally types // (see browser.download.viewableInternally.enabledTypes)
pref("browser.helperApps.showOpenOptionForPdfJS", true);
pref("browser.helperApps.showOpenOptionForViewableInternally", true);
// search bar results always open in a new tab
pref("browser.search.openintab", false);
// context menu searches open in the foreground
pref("browser.search.context.loadInBackground", false);
// Enables display of the options for the user using a separate default search // engine in private browsing mode.
pref("browser.search.separatePrivateDefault.ui.enabled", false); // The maximum amount of times the private default banner is shown.
pref("browser.search.separatePrivateDefault.ui.banner.max", 0);
// A count of Glean SERP categorization event metrics that have been recorded // but not yet submitted in a ping. Needed to prevent sending a ping with only // experiment info (and not actual SERP categorizations) at startup.
pref("browser.search.serpMetricsRecordedCounter", 0);
// Search Bar removal from the toolbar for users who haven’t used it in 120 // days
pref("browser.search.widget.removeAfterDaysUnused", 120);
// Feature gate for searchbar based on urlbar code.
pref("browser.search.widget.new", true);
// The number of times the search function in the URL bar has been used, // capped at 100.
pref("browser.search.totalSearches", 0);
// Feature gate for visual search.
pref("browser.search.visualSearch.featureGate", true);
// Spin the cursor while the page is loading
pref("browser.spin_cursor_while_busy", false);
// Enable display of contextual-password-manager option in browser sidebar
pref("browser.contextual-password-manager.enabled", true);
// Whether the user has opted-in to recommended settings for data features.
pref("browser.dataFeatureRecommendations.enabled", false);
// Use dark theme variant for PBM windows. This is only supported if the theme // sets darkTheme data.
pref("browser.theme.dark-private-windows", true);
// Whether to override themes in forced-colors mode and just use the // system theme and forced-colors palette to style the chrome.
pref("browser.theme.forced-colors-override.enabled", true);
// Pref to control whether or not Private Browsing windows show up // as separate icons in the Windows taskbar.
pref("browser.privateWindowSeparation.enabled", true);
// Controls visibility of the privacy segmentation preferences section.
pref("browser.privacySegmentation.preferences.show", false);
// Set default fallback values for site permissions we want // the user to be able to globally change.
pref("permissions.default.camera", 0);
pref("permissions.default.microphone", 0);
pref("permissions.default.geo", 0);
pref("permissions.default.loopback-network", 0);
pref("permissions.default.local-network", 0);
pref("permissions.default.xr", 0);
pref("permissions.default.desktop-notification", 0);
pref("permissions.default.shortcuts", 0);
// Site categories for notification permission telemetry // Maps domains to categories for analyzing permission behavior by site type
pref("permissions.desktop-notification.telemetry.siteCategories", '{"facebook.com":"social","instagram.com":"social","twitter.com":"social","x.com":"social","tiktok.com":"social","linkedin.com":"social","reddit.com":"social","pinterest.com":"social","snapchat.com":"social","tumblr.com":"social","slack.com":"chat_communication","discord.com":"chat_communication","teams.microsoft.com":"chat_communication","zoom.us":"chat_communication","whatsapp.com":"chat_communication","telegram.org":"chat_communication","messenger.com":"chat_communication","skype.com":"chat_communication","signal.org":"chat_communication","viber.com":"chat_communication","mail.google.com":"email","gmail.com":"email","outlook.com":"email","outlook.live.com":"email","mail.yahoo.com":"email","yahoo.com":"email","protonmail.com":"email","aol.com":"email","icloud.com":"email","zoho.com":"email","youtube.com":"media_streaming","netflix.com":"media_streaming","twitch.tv":"media_streaming","hulu.com":"media_streaming","disneyplus.com":"media_streaming","hbomax.com":"media_streaming","primevideo.com":"media_streaming","crunchyroll.com":"media_streaming","paramountplus.com":"media_streaming","spotify.com":"media_streaming","soundcloud.com":"media_streaming","pandora.com":"media_streaming","tv.apple.com":"media_streaming","steampowered.com":"gaming","steamcommunity.com":"gaming","store.epicgames.com":"gaming","roblox.com":"gaming","playstation.com":"gaming","xbox.com":"gaming","nintendo.com":"gaming","battle.net":"gaming","itch.io":"gaming","chess.com":"gaming","calendar.google.com":"calendar","outlook.live.com":"calendar","calendar.yahoo.com":"calendar","calendar.com":"calendar","drive.google.com":"productivity_collaboration","docs.google.com":"productivity_collaboration","sheets.google.com":"productivity_collaboration","office.com":"productivity_collaboration","onedrive.live.com":"productivity_collaboration","dropbox.com":"productivity_collaboration","box.com":"productivity_collaboration","notion.so":"productivity_collaboration","trello.com":"productivity_collaboration","asana.com":"productivity_collaboration","monday.com":"productivity_collaboration","atlassian.com":"productivity_collaboration","gitlab.com":"productivity_collaboration","bitbucket.org":"productivity_collaboration","miro.com":"productivity_collaboration","figma.com":"productivity_collaboration","cnn.com":"news_publishers","nytimes.com":"news_publishers","bbc.com":"news_publishers","theguardian.com":"news_publishers","washingtonpost.com":"news_publishers","foxnews.com":"news_publishers","reuters.com":"news_publishers","apnews.com":"news_publishers","bloomberg.com":"news_publishers","wsj.com":"news_publishers","usatoday.com":"news_publishers","nbcnews.com":"news_publishers","abcnews.go.com":"news_publishers","cbsnews.com":"news_publishers","npr.org":"news_publishers","time.com":"news_publishers","newsweek.com":"news_publishers","politico.com":"news_publishers","huffpost.com":"news_publishers","buzzfeednews.com":"news_publishers"}');
pref("permissions.fullscreen.allowed", false);
#ifdef MOZ_WEBRTC // When users grant camera or microphone through a permission prompt // and leave "☐ Remember this decision" unchecked, Gecko persists // their choice to "Always ask" for this permission going forward. // This is exposed to websites through the permissions.query() API // as "granted", to ward off well-meaning attempts to further escalate // permission to always grant, to help sites respect this user choice. // // By default, these permissions are only visible in Tools / Page Info. // But turning this pref on also makes them show up as "Always Ask ✖" // in the more prominent site permissions dropdown.
pref("permissions.media.show_always_ask.enabled", false);
#endif
// Force external link opens into the default user context ID instead of guessing // the most appropriate one based on the URL (https://bugzilla.mozilla.org/show_bug.cgi?id=1874599#c8)
pref("browser.link.force_default_user_context_id_for_external_opens", false);
// handle links targeting new windows // 1=current window/tab, 2=new window, 3=new tab in most recent window
pref("browser.link.open_newwindow", 3);
// handle external links (i.e. links opened from a different application) // default: use browser.link.open_newwindow // 1-3: see browser.link.open_newwindow for interpretation
pref("browser.link.open_newwindow.override.external", -1);
// 0: no restrictions - divert everything // 1: don't divert window.open at all // 2: don't divert window.open with features
pref("browser.link.open_newwindow.restriction", 2);
// If true, this pref causes windows opened by window.open to be forced into new // tabs (rather than potentially opening separate windows, depending on // window.open arguments) when the browser is in fullscreen mode. // We set this differently on Mac because the fullscreen implementation there is // different.
#ifdef XP_MACOSX
pref("browser.link.open_newwindow.disabled_in_fullscreen", true);
#else
pref("browser.link.open_newwindow.disabled_in_fullscreen", false);
#endif
// If true, opening javscript: URLs using middle-click, CTRL+click etc. are blocked.
pref("browser.link.alternative_click.block_javascript", true);
// Tabbed browser
pref("browser.tabs.closeTabByDblclick", false);
pref("browser.tabs.closeWindowWithLastTab", true);
pref("browser.tabs.allowTabDetach", true); // Open related links to a tab, e.g., link in current tab, at next to the // current tab if |insertRelatedAfterCurrent| is true. Otherwise, always // append new tab to the end.
pref("browser.tabs.insertRelatedAfterCurrent", true); // Open all links, e.g., bookmarks, history items at next to current tab // if |insertAfterCurrent| is true. Otherwise, append new tab to the end // for non-related links. Note that if this is set to true, it will trump // the value of browser.tabs.insertRelatedAfterCurrent.
pref("browser.tabs.insertAfterCurrent", false); // When |insertRelatedAfterCurrent| is true opening a link from a pinned tab // results in the tabbar scrolling back to the beginning. Setting // |insertAfterCurrentExceptPinned| to true will add tabs at the end of the // tabbar.
pref("browser.tabs.insertAfterCurrentExceptPinned", false);
pref("browser.tabs.warnOnClose", false);
pref("browser.tabs.warnOnCloseOtherTabs", true);
pref("browser.tabs.warnOnOpen", true);
pref("browser.tabs.maxOpenBeforeWarn", 15);
pref("browser.tabs.loadDivertedInBackground", false);
pref("browser.tabs.loadBookmarksInBackground", false);
pref("browser.tabs.loadBookmarksInTabs", false);
pref("browser.tabs.tabClipWidth", 140);
pref("browser.tabs.tabMinWidth", 76);
// When tabs opened by links in other tabs via a combination of // browser.link.open_newwindow being set to 3 and target="_blank" etc are // closed: // true return to the tab that opened this tab (its owner) // false return to the adjacent tab (old default)
pref("browser.tabs.selectOwnerOnClose", true);
// This should match Chromium's audio indicator delay.
pref("browser.tabs.delayHidingAudioPlayingIconMS", 3000);
// Pref to control whether we use a separate privileged content process // for about: pages. This pref name did not age well: we will have multiple // types of privileged content processes, each with different privileges. // types of privleged content processes, each with different privleges.
pref("browser.tabs.remote.separatePrivilegedContentProcess", true);
#if defined(NIGHTLY_BUILD) && !defined(MOZ_ASAN) // This pref will cause assertions when a remoteType triggers a process switch // to a new remoteType it should not be able to trigger.
pref("browser.tabs.remote.enforceRemoteTypeRestrictions", true);
#endif
// Pref to control whether we use a separate privileged content process // for certain mozilla webpages (which are listed in the pref // browser.tabs.remote.separatedMozillaDomains).
pref("browser.tabs.remote.separatePrivilegedMozillaWebContentProcess", true);
// KMEANS_WITH_ANCHOR or NEAREST_NEIGHBOR or LOGISTIC_REGRESSION
pref("browser.tabs.groups.smart.suggestOtherTabsMethod", "LOGISTIC_REGRESSION");
pref("browser.tabs.groups.smart.topicModelRevision", "latest");
pref("browser.tabs.groups.smart.embeddingModelRevision", "latest"); // value should be <= 1000 to be correctly converted (275 -> 0.275)
pref("browser.tabs.groups.smart.nearestNeighborThresholdInt", 275);
pref("browser.tabs.groups.smart.optin", false);
// Unload tabs when available memory is running low
#if defined(XP_MACOSX) || defined(XP_WIN)
pref("browser.tabs.unloadOnLowMemory", true);
#else
pref("browser.tabs.unloadOnLowMemory", false);
#endif
// Tab Unloader does not unload tabs whose last inactive period is longer than // this value (in milliseconds).
pref("browser.tabs.min_inactive_duration_before_unload", 600000);
// Does middleclick paste of clipboard to new tab button
#ifdef UNIX_BUT_NOT_MAC
pref("browser.tabs.searchclipboardfor.middleclick", true);
#else
pref("browser.tabs.searchclipboardfor.middleclick", false);
#endif
#if defined(XP_MACOSX) // During low memory periods, poll with this frequency (milliseconds) // until memory is no longer low. Changes to the pref take effect immediately. // Browser restart not required. Chosen to be consistent with the windows // implementation, but otherwise the 10s value is arbitrary.
pref("browser.lowMemoryPollingIntervalMS", 10000);
// Pref to control the reponse taken on macOS when the OS is under memory // pressure. Changes to the pref take effect immediately. Browser restart not // required. The pref value is a bitmask: // 0x0: No response (other than recording for telemetry, crash reporting) // 0x1: Use the tab unloading feature to reduce memory use. Requires that // the above "browser.tabs.unloadOnLowMemory" pref be set to true for tab // unloading to occur. // 0x2: Issue the internal "memory-pressure" notification to reduce memory use // 0x3: Both 0x1 and 0x2.
#if defined(NIGHTLY_BUILD)
pref("browser.lowMemoryResponseMask", 3);
#else
pref("browser.lowMemoryResponseMask", 0);
#endif
// Controls which macOS memory-pressure level triggers the browser low memory // response. Changes to the pref take effect immediately. Browser restart not // required. By default, use the "critical" level as that occurs after "warn" // and we only want to trigger the low memory reponse when necessary. // The macOS system memory-pressure level is either none, "warn", or // "critical". The OS notifies the browser when the level changes. A false // value for the pref indicates the low memory response should occur when // reaching the "critical" level. A true value indicates the response should // occur when reaching the "warn" level.
pref("browser.lowMemoryResponseOnWarn", false);
#endif
// By default, do not export HTML at shutdown. // If true, at shutdown the bookmarks in your menu and toolbar will // be exported as HTML to the bookmarks.html file.
pref("browser.bookmarks.autoExportHTML", false);
// The maximum number of daily bookmark backups to // keep in {PROFILEDIR}/bookmarkbackups. Special values: // -1: unlimited // 0: no backups created (and deletes all existing backups)
pref("browser.bookmarks.max_backups", 15);
// Whether menu should close after Ctrl-click, middle-click, etc.
pref("browser.bookmarks.openInTabClosesMenu", true);
// Where new bookmarks go by default. // Use PlacesUIUtils.defaultParentGuid to read this; do NOT read the pref // directly. // The value is one of: // - a bookmarks guid // - "toolbar", "menu" or "unfiled" for those folders. // If we use the pref but the value isn't any of these, we'll fall back to // the bookmarks toolbar as a default.
pref("browser.bookmarks.defaultLocation", "toolbar");
// Scripts & Windows prefs
pref("dom.disable_open_during_load", true);
// allow JS to move and resize existing windows
pref("dom.disable_window_move_resize", false); // prevent JS from monkeying with window focus, etc
pref("dom.disable_window_flip", true);
pref("privacy.popups.showBrowserMessage", true);
pref("privacy.clearOnShutdown.history", true);
pref("privacy.clearOnShutdown.formdata", true);
pref("privacy.clearOnShutdown.downloads", true);
pref("privacy.clearOnShutdown.cookies", true);
pref("privacy.clearOnShutdown.cache", true);
pref("privacy.clearOnShutdown.sessions", true);
pref("privacy.clearOnShutdown.offlineApps", false);
pref("privacy.clearOnShutdown.siteSettings", false);
pref("privacy.clearOnShutdown.openWindows", false); // Clear on shutdown prefs used in the new dialog
// We can't remove the old pref yet since we need to use it to migrate the old // pref values to the new pref values.
pref("privacy.clearOnShutdown_v2.historyFormDataAndDownloads", true);
// clearHistory and clearSiteData pref branches are used to // remember user pref options based on the two different entry points
pref("privacy.clearHistory.historyFormDataAndDownloads", true);
pref("privacy.clearHistory.browsingHistoryAndDownloads", true);
pref("privacy.clearHistory.cookiesAndStorage", true);
pref("privacy.clearHistory.cache", true);
pref("privacy.clearHistory.siteSettings", false);
pref("privacy.clearHistory.formdata", false);
pref("privacy.clearSiteData.historyFormDataAndDownloads", false);
pref("privacy.clearSiteData.browsingHistoryAndDownloads", false);
pref("privacy.clearSiteData.cookiesAndStorage", true);
pref("privacy.clearSiteData.cache", true);
pref("privacy.clearSiteData.siteSettings", false);
pref("privacy.clearSiteData.formdata", false);
pref("privacy.history.custom", false);
// What default should we use for the time span in the sanitizer: // 0 - Clear everything // 1 - Last Hour // 2 - Last 2 Hours // 3 - Last 4 Hours // 4 - Today // 5 - Last 5 minutes // 6 - Last 24 hours
pref("privacy.sanitize.timeSpan", 1);
pref("privacy.sanitize.clearOnShutdown.hasMigratedToNewPrefs2", false);
pref("privacy.sanitize.clearOnShutdown.hasMigratedToNewPrefs3", false); // flags to track migration of clear history dialog prefs, where cpd stands for // clear private data
pref("privacy.sanitize.cpd.hasMigratedToNewPrefs2", false);
pref("privacy.sanitize.cpd.hasMigratedToNewPrefs3", false);
pref("privacy.panicButton.enabled", true);
// Time until temporary permissions expire, in ms
pref("privacy.temporary_permission_expire_time_ms", 3600000);
// Enables protection mechanism against password spoofing for cross domain auth requests // See bug 791594
pref("privacy.authPromptSpoofingProtection", true);
// Enable GPC if the user turns it on in about:preferences
pref("privacy.globalprivacycontrol.functionality.enabled", true);
// Enable GPC in private browsing mode
pref("privacy.globalprivacycontrol.pbmode.enabled", true);
// What custom schemes to treat as accessing digital wallets, comma separated
pref("privacy.wallet_schemes", "openid4vp,mdoc,mdoc-openid4vp,haip,eudi-wallet,eudi-openid4vp,openid-credential-offer");
pref("network.proxy.share_proxy_settings", false); // use the same proxy settings for all protocols
// 0: Nothing happens // 1: Scrolling contents // 2: Go back or go forward, in your history // 3: Zoom in or out (reflowing zoom). // 4: Treat vertical wheel as horizontal scroll // 5: Zoom in or out (pinch zoom).
#ifdef XP_MACOSX // On macOS, if the wheel has one axis only, shift+wheel comes through as a // horizontal scroll event. Thus, we can't assign anything other than normal // scrolling to shift+wheel.
pref("mousewheel.with_shift.action", 1);
pref("mousewheel.with_alt.action", 2);
pref("mousewheel.with_control.action", 1);
#else // On the other platforms (non-macOS), user may use legacy mouse which // supports only vertical wheel but want to scroll horizontally. For such // users, we should provide horizontal scroll with shift+wheel (same as // Chrome). However, shift+wheel was used for navigating history. For users // who want to keep using this feature, let's enable it with alt+wheel. This // is better for consistency with macOS users.
pref("mousewheel.with_shift.action", 4);
pref("mousewheel.with_alt.action", 2);
#endif
// By default, all protocol handlers are exposed. This means that // the browser will respond to openURL commands for all URL types. // It will also try to open link clicks inside the browser before // failing over to the system handlers.
pref("network.protocol-handler.expose-all", true);
pref("network.protocol-handler.expose.mailto", false);
pref("network.protocol-handler.expose.news", false);
pref("network.protocol-handler.expose.snews", false);
pref("network.protocol-handler.expose.nntp", false);
// Whether we had to hide the "Firefox Labs" section because it would be empty.
pref("browser.preferences.experimental.hidden", false); // Whether we show the "More from Mozilla" section.
pref("browser.preferences.moreFromMozilla", true); // Whether we show the "AI Controls" pane.
pref("browser.preferences.aiControls", true); // Whether to show unavailable AI controls regardless of region/locale // restrictions. This is intended for localizers to be able to see the strings.
pref("browser.preferences.aiControls.showUnavailable", false);
// Used by settings to track whether the user customized advanced // performance settings. Not used directly elsewhere. // If set to false, we show advanced performance settings. // If reset to true **by checking the box in the settings page**, // we will revert those to the default settings.
pref("browser.preferences.defaultPerformanceSettings.enabled", true);
pref("browser.proton.toolbar.version", 0);
// Backspace and Shift+Backspace behavior // 0 goes Back/Forward // 1 act like PgUp/PgDown // 2 and other values, nothing
pref("browser.backspace_action", 2);
// Determines the behavior for opening new tab when users resume sessions
pref("browser.sessionstore.newTabOnRestore", false); // Toggles the visibility of the newTabOnRestore setting in about:preferences
pref("browser.sessionstore.newTabOnRestore.showSetting", false);
// Toggle for the behavior to include closed tabs from all windows in // recently-closed tab lists & counts, and re-open tabs into the current window
pref("browser.sessionstore.closedTabsFromAllWindows", true);
pref("browser.sessionstore.closedTabsFromClosedWindows", true);
// Minimal interval between two save operations in milliseconds (while the user is idle).
pref("browser.sessionstore.interval.idle", 3600000); // 1h
// Time (seconds) before we assume that the user is idle and that we don't need to // collect/save the session quite as often.
pref("browser.sessionstore.idleDelay", 180); // 3 minutes
// Fine-grained default logging levels for each log appender
pref("browser.sessionstore.log.appender.console", "Fatal");
pref("browser.sessionstore.log.appender.dump", "Error");
pref("browser.sessionstore.log.appender.file.level", "Trace");
pref("browser.sessionstore.log.appender.file.logOnError", true);
// The default log level for all Session restore logs.
pref("browser.sessionstore.loglevel", "Warn");
#ifdef EARLY_BETA_OR_EARLIER
pref("browser.sessionstore.loglevel", "Debug");
pref("browser.sessionstore.log.appender.file.logOnSuccess", true);
#else
pref("browser.sessionstore.log.appender.file.logOnSuccess", false);
#endif // How old can a log file be before it gets deleted?
pref("browser.sessionstore.log.appender.file.maxErrorAge", 864000); // 10 days
// Max time to wait between flushing any log messages to disk (defaults to 1hr.)
pref("browser.sessionstore.logFlushIntervalSeconds", 3600);
// on which sites to save text data, POSTDATA and cookies // 0 = everywhere, 1 = unencrypted sites, 2 = nowhere
pref("browser.sessionstore.privacy_level", 0); // how many tabs can be reopened (per window)
pref("browser.sessionstore.max_tabs_undo", 25); // how many windows will be saved and can be reopened per session - on non-macOS platforms this // pref may be ignored when dealing with pop-up windows to ensure the user actually gets // at least one window with a menu bar.
pref("browser.sessionstore.max_windows_undo", 5); // number of crashes that can occur before the about:sessionrestore page is displayed // (this pref has no effect if more than 6 hours have passed since the last crash)
pref("browser.sessionstore.max_resumed_crashes", 1); // number of back button session history entries to restore (-1 = all of them)
pref("browser.sessionstore.max_serialize_back", 10); // number of forward button session history entries to restore (-1 = all of them)
pref("browser.sessionstore.max_serialize_forward", -1); // restore_on_demand overrides MAX_CONCURRENT_TAB_RESTORES (sessionstore constant) // and restore_hidden_tabs. When true, tabs will not be restored until they are // focused (also applies to tabs that aren't visible). When false, the values // for MAX_CONCURRENT_TAB_RESTORES and restore_hidden_tabs are respected. // Selected tabs are always restored regardless of this pref.
pref("browser.sessionstore.restore_on_demand", true); // Whether to automatically restore hidden tabs (i.e., tabs in other tab groups) or not
pref("browser.sessionstore.restore_hidden_tabs", false); // If restore_on_demand is set, pinned tabs are restored on startup by default. // When set to true, this pref overrides that behavior, and pinned tabs will only // be restored when they are focused.
pref("browser.sessionstore.restore_pinned_tabs_on_demand", false); // The version at which we performed the latest upgrade backup
pref("browser.sessionstore.upgradeBackup.latestBuildID", ""); // How many upgrade backups should be kept
pref("browser.sessionstore.upgradeBackup.maxUpgradeBackups", 3); // Toggle some debug behavior; end-users should not run sessionstore in debug mode
pref("browser.sessionstore.debug", false); // Forget closed windows/tabs after two weeks
pref("browser.sessionstore.cleanup.forget_closed_after", 1209600000);
// temporary pref that will be removed in a future release, see bug 1836952
pref("browser.sessionstore.persist_closed_tabs_between_sessions", true);
// Don't quit the browser when Ctrl + Q is pressed.
pref("browser.quitShortcut.disabled", false);
// allow META refresh by default
pref("accessibility.blockautorefresh", false);
// Whether history is enabled or not.
pref("places.history.enabled", true);
// The default Places log level.
pref("places.loglevel", "Error");
// Whether or not diacritics must match in history text searches.
pref("places.search.matchDiacritics", false);
// Enables alternative frecency calculation for origins.
pref("places.frecency.origins.alternative.featureGate", false);
// Whether to warm up network connections for places: menus and places: toolbar.
pref("browser.places.speculativeConnect.enabled", true);
// if true, use full page zoom instead of text zoom
pref("browser.zoom.full", true);
// Whether or not to update background tabs to the current zoom level.
pref("browser.zoom.updateBackgroundTabs", true);
// Whether the bookmark panel should be shown when bookmarking a page.
pref("browser.bookmarks.editDialog.showForNewBookmarks", true);
// Don't try to alter this pref, it'll be reset the next time you use the // bookmarking dialog
pref("browser.bookmarks.editDialog.firstEditField", "namePicker");
// The number of recently selected folders in the edit bookmarks dialog.
pref("browser.bookmarks.editDialog.maxRecentFolders", 7);
#if defined(XP_WIN) && defined(MOZ_SANDBOX) // This controls the strength of the Windows content process sandbox for // testing purposes. This will require a restart. // On windows these levels are: // See - security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp // SetSecurityLevelForContentProcess() for what the different settings mean.
pref("security.sandbox.content.level", 9);
// Pref controlling if messages relevant to sandbox violations are logged.
pref("security.sandbox.logging.enabled", false);
#endif
#if defined(XP_MACOSX) && defined(MOZ_SANDBOX) // This pref is discussed in bug 1083344, the naming is inspired from its // Windows counterpart, but on Mac it's an integer which means: // 0 -> "no sandbox" (nightly only) // 1 -> "preliminary content sandboxing enabled: write access to // home directory is prevented" // 2 -> "preliminary content sandboxing enabled with profile protection: // write access to home directory is prevented, read and write access // to ~/Library and profile directories are prevented (excluding // $PROFILE/{extensions,chrome})" // 3 -> "no global read/write access, read access permitted to // $PROFILE/{extensions,chrome}" // This setting is read when the content process is started. On Mac the // content process is killed when all windows are closed, so a change will // take effect when the 1st window is opened.
pref("security.sandbox.content.level", 3);
// Disconnect content processes from the window server. Depends on // out-of-process WebGL and non-native theming. i.e., both in-process WebGL // and native theming depend on content processes having a connection to the // window server. Window server disconnection is automatically disabled (and // this pref overridden) if OOP WebGL is disabled. OOP WebGL is disabled // for some tests.
pref("security.sandbox.content.mac.disconnect-windowserver", true);
// Pref controlling if messages relevant to sandbox violations are logged.
pref("security.sandbox.logging.enabled", false);
#endif
#if defined(XP_LINUX) && defined(MOZ_SANDBOX) // This pref is introduced as part of bug 742434, the naming is inspired from // its Windows/Mac counterpart, but on Linux it's an integer which means: // 0 -> "no sandbox" // 1 -> no longer used; level will be clamped to 2 // 2 -> "seccomp-bpf + write file broker" // 3 -> "seccomp-bpf + read/write file brokering" // 4 -> all of the above + network/socket restrictions + chroot // 5 -> blocks access to GL / DRI / display servers // (formerly the separate pref `security.sandbox.content.headless`) // (side effect: sets MOZ_HEADLESS for content processes) // 6 -> default-deny for ioctl // // The purpose of this setting is to allow Linux users or distros to disable // the sandbox while we fix their problems, or to allow running Firefox with // exotic configurations we can't reasonably support out of the box. //
pref("security.sandbox.content.level", 6);
pref("security.sandbox.content.write_path_whitelist", "");
pref("security.sandbox.content.read_path_whitelist", "");
pref("security.sandbox.content.syscall_whitelist", ""); // Introduced as part of bug 1608558. Linux is currently the only platform // that uses a sandbox level for the socket process. The following levels // are currently defined: // 0 -> "no sandbox" // 1 -> "sandboxed, allows socket operations and reading necessary certs" // 2 -> default-deny for ioctl
pref("security.sandbox.socket.process.level", 2);
#endif
// Preferences to be synced by default. // Preferences with the prefix `services.sync.prefs.sync-seen.` should have // a value of `false`, and means the value of the pref will be synced as soon // as a value for the pref is "seen", even if it is the default, and should be // used for prefs we sync but which have different values on different channels, // platforms or distributions.
pref("services.sync.prefs.sync.accessibility.blockautorefresh", true);
pref("services.sync.prefs.sync.accessibility.browsewithcaret", true);
pref("services.sync.prefs.sync.accessibility.typeaheadfind", true);
pref("services.sync.prefs.sync.accessibility.typeaheadfind.linksonly", true);
pref("services.sync.prefs.sync.addons.ignoreUserEnabledChanges", true);
pref("services.sync.prefs.sync.app.shield.optoutstudies.enabled", true); // The addons prefs related to repository verification are intentionally // not synced for security reasons. If a system is compromised, a user // could weaken the pref locally, install an add-on from an untrusted // source, and this would propagate automatically to other, // uncompromised Sync-connected devices.
pref("services.sync.prefs.sync.browser.contentblocking.category", true);
pref("services.sync.prefs.sync.browser.contentblocking.features.strict", true);
pref("services.sync.prefs.sync.browser.crashReports.unsubmittedCheck.autoSubmit2", true);
pref("services.sync.prefs.sync.browser.ctrlTab.sortByRecentlyUsed", true);
pref("services.sync.prefs.sync.browser.download.useDownloadDir", true);
pref("services.sync.prefs.sync.browser.firefox-view.feature-tour", true);
pref("services.sync.prefs.sync.browser.formfill.enable", true);
pref("services.sync.prefs.sync.browser.link.open_newwindow", true);
pref("services.sync.prefs.sync.browser.menu.showViewImageInfo", true);
pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", true);
pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", true);
pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.showSearch", true);
pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsored", true);
pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSites", true);
pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.topsites", true);
pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.topSitesRows", true);
pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.section.topstories", true);
pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.topstories.rows", true);
pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.section.highlights", true); // Some linux distributions disable all highlights by default.
pref("services.sync.prefs.sync-seen.browser.newtabpage.activity-stream.section.highlights", false);
pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includeVisited", true);
pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includeBookmarks", true);
pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includeDownloads", true);
pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.rows", true);
pref("services.sync.prefs.sync.browser.newtabpage.enabled", true);
pref("services.sync.prefs.sync.browser.newtabpage.pinned", true);
pref("services.sync.prefs.sync.browser.pdfjs.feature-tour", true);
pref("services.sync.prefs.sync.browser.safebrowsing.downloads.enabled", true);
pref("services.sync.prefs.sync.browser.safebrowsing.downloads.remote.block_potentially_unwanted", true);
pref("services.sync.prefs.sync.browser.safebrowsing.malware.enabled", true);
pref("services.sync.prefs.sync.browser.safebrowsing.phishing.enabled", true);
pref("services.sync.prefs.sync.browser.search.update", true);
pref("services.sync.prefs.sync.browser.startup.homepage", true);
pref("services.sync.prefs.sync.browser.startup.page", true);
pref("services.sync.prefs.sync.browser.startup.upgradeDialog.enabled", true);
pref("services.sync.prefs.sync.browser.tabs.loadInBackground", true);
pref("services.sync.prefs.sync.browser.tabs.warnOnClose", true);
pref("services.sync.prefs.sync.browser.tabs.warnOnOpen", true);
pref("services.sync.prefs.sync.browser.taskbar.previews.enable", true);
pref("services.sync.prefs.sync.browser.urlbar.maxRichResults", true);
pref("services.sync.prefs.sync.browser.urlbar.showSearchSuggestionsFirst", true);
pref("services.sync.prefs.sync.browser.urlbar.suggest.bookmark", true);
pref("services.sync.prefs.sync.browser.urlbar.suggest.history", true);
pref("services.sync.prefs.sync.browser.urlbar.suggest.openpage", true);
pref("services.sync.prefs.sync.browser.urlbar.suggest.searches", true);
pref("services.sync.prefs.sync.browser.urlbar.suggest.topsites", true);
pref("services.sync.prefs.sync.browser.urlbar.suggest.engines", true);
pref("services.sync.prefs.sync.dom.disable_open_during_load", true);
pref("services.sync.prefs.sync.dom.disable_window_flip", true);
pref("services.sync.prefs.sync.dom.disable_window_move_resize", true);
pref("services.sync.prefs.sync.dom.event.contextmenu.enabled", true);
pref("services.sync.prefs.sync.dom.security.https_only_mode", true);
pref("services.sync.prefs.sync.dom.security.https_only_mode_ever_enabled", true);
pref("services.sync.prefs.sync.dom.security.https_only_mode_ever_enabled_pbm", true);
pref("services.sync.prefs.sync.dom.security.https_only_mode_pbm", true);
pref("services.sync.prefs.sync.extensions.update.enabled", true);
pref("services.sync.prefs.sync.extensions.activeThemeID", true);
pref("services.sync.prefs.sync.general.autoScroll", true); // general.autoScroll has a different default on Linux vs elsewhere.
pref("services.sync.prefs.sync-seen.general.autoScroll", false); // general.smoothScroll is not synced, bug 1851024
pref("services.sync.prefs.sync.intl.accept_languages", true);
pref("services.sync.prefs.sync.intl.regional_prefs.use_os_locales", true);
pref("services.sync.prefs.sync.layout.spellcheckDefault", true);
pref("services.sync.prefs.sync.media.autoplay.default", true);
pref("services.sync.prefs.sync.media.eme.enabled", true); // Some linux distributions disable eme by default.
pref("services.sync.prefs.sync-seen.media.eme.enabled", false);
pref("services.sync.prefs.sync.media.videocontrols.picture-in-picture.video-toggle.enabled", true);
pref("services.sync.prefs.sync.network.cookie.cookieBehavior", true);
pref("services.sync.prefs.sync.nimbus.rollouts.enabled", true);
pref("services.sync.prefs.sync.permissions.default.image", true);
pref("services.sync.prefs.sync.pref.downloads.disable_button.edit_actions", true);
pref("services.sync.prefs.sync.pref.privacy.disable_button.cookie_exceptions", true);
pref("services.sync.prefs.sync.privacy.clearOnShutdown.cache", true);
pref("services.sync.prefs.sync.privacy.clearOnShutdown_v2.cache", true);
pref("services.sync.prefs.sync.privacy.clearOnShutdown.cookies", true);
pref("services.sync.prefs.sync.privacy.clearOnShutdown_v2.cookiesAndStorage", true);
pref("services.sync.prefs.sync.privacy.clearOnShutdown.downloads", true);
pref("services.sync.prefs.sync.privacy.clearOnShutdown_v2.downloads", true);
pref("services.sync.prefs.sync.privacy.clearOnShutdown.formdata", true);
pref("services.sync.prefs.sync.privacy.clearOnShutdown_v2.formdata", true);
pref("services.sync.prefs.sync.privacy.clearOnShutdown.history", true); // We can't clear the old history pref until we're sure all clients have // migrated to the new pref.
pref("services.sync.prefs.sync.privacy.clearOnShutdown_v2.historyFormDataAndDownloads", true);
pref("services.sync.prefs.sync.privacy.clearOnShutdown_v2.browsingHistoryAndDownloads", true);
pref("services.sync.prefs.sync.privacy.clearOnShutdown.offlineApps", true);
pref("services.sync.prefs.sync.privacy.clearOnShutdown.sessions", true);
pref("services.sync.prefs.sync.privacy.clearOnShutdown.siteSettings", true);
pref("services.sync.prefs.sync.privacy.clearOnShutdown_v2.siteSettings", true);
pref("services.sync.prefs.sync.privacy.donottrackheader.enabled", true);
pref("services.sync.prefs.sync.privacy.globalprivacycontrol.enabled", true);
pref("services.sync.prefs.sync.privacy.sanitize.sanitizeOnShutdown", true);
pref("services.sync.prefs.sync.privacy.trackingprotection.enabled", true);
pref("services.sync.prefs.sync.privacy.trackingprotection.harmfuladdon.enabled", true);
pref("services.sync.prefs.sync.privacy.trackingprotection.cryptomining.enabled", true);
pref("services.sync.prefs.sync.privacy.trackingprotection.fingerprinting.enabled", true);
pref("services.sync.prefs.sync.privacy.trackingprotection.pbmode.enabled", true); // We do not sync `privacy.resistFingerprinting` by default as it's an undocumented, // not-recommended footgun - see bug 1763278 for more.
pref("services.sync.prefs.sync.privacy.reduceTimerPrecision", true);
pref("services.sync.prefs.sync.privacy.resistFingerprinting.reduceTimerPrecision.microseconds", true);
pref("services.sync.prefs.sync.privacy.resistFingerprinting.reduceTimerPrecision.jitter", true);
pref("services.sync.prefs.sync.privacy.userContext.enabled", true);
pref("services.sync.prefs.sync.privacy.userContext.newTabContainerOnLeftClick.enabled", true);
pref("services.sync.prefs.sync.security.default_personal_cert", true);
pref("services.sync.prefs.sync.services.sync.syncedTabs.showRemoteIcons", true);
pref("services.sync.prefs.sync.signon.autofillForms", true);
pref("services.sync.prefs.sync.signon.generation.enabled", true);
pref("services.sync.prefs.sync.signon.management.page.breach-alerts.enabled", true);
pref("services.sync.prefs.sync.signon.rememberSignons", true);
pref("services.sync.prefs.sync.spellchecker.dictionary", true);
pref("services.sync.prefs.sync.ui.osk.enabled", true);
// A preference which, if false, means sync will only apply incoming preference // changes if there's already a local services.sync.prefs.sync.* control pref. // If true, all incoming preferences will be applied and the local "control // pref" updated accordingly.
pref("services.sync.prefs.dangerously_allow_arbitrary", false);
// A preference that controls whether we should show the icon for a remote tab. // This pref has no UI but exists because some people may be concerned that // fetching these icons to show remote tabs may leak information about that // user's tabs and bookmarks. Note this pref is also synced.
pref("services.sync.syncedTabs.showRemoteIcons", true);
// A preference (in milliseconds) controlling if we sync after a tab change and // how long to delay before we schedule the sync // Anything <= 0 means disabled
pref("services.sync.syncedTabs.syncDelayAfterTabChange", 5000);
// Whether prompts should be content modal (1) tab modal (2) or window modal(3) by default // This is a fallback value for when prompt callers do not specify a modalType.
pref("prompts.defaultModalType", 3);
// Whether to use the discrete Top Sites component.
pref("browser.topsites.component.enabled", false);
pref("browser.topsites.useRemoteSetting", true); // Fetch sponsored Top Sites from Mozilla Tiles Service (Contile)
pref("browser.topsites.contile.enabled", true);
pref("browser.topsites.contile.endpoint", "https://contile.services.mozilla.com/v1/tiles");
// The base URL for the Quick Suggest anonymizing proxy. To make a request to // the proxy, include a campaign ID in the path.
pref("browser.partnerlink.attributionURL", "https://topsites.services.mozilla.com/cid/");
pref("browser.partnerlink.campaign.topsites", "amzn_2020_a1");
// Activates preloading of the new tab url.
pref("browser.newtab.preload", true);
// Preonboarding is disabled by default on platforms other than Windows and // macOS. For official Mozilla distributions (only for Linux), enabled at // runtime in TelemetryReportingPolicy.
#if !defined(XP_WIN) && !defined(XP_MACOSX)
pref("browser.preonboarding.enabled", false);
#endif
// For further detail on the TOU prefs below, see the `preonboarding` feature in // FeatureManifest.yaml // Version of the TOU that the user last accepted
pref("termsofuse.acceptedVersion", 0); // Stringified timestamp of when the user last accepted the TOU
pref("termsofuse.acceptedDate", "0"); // Stringified timestamp of when the user first accepted the TOU, only set if // they have accepted more than one version.
pref("termsofuse.firstAcceptedDate", "0"); // The most up-to-date version of the TOU, we set the minimum and current // version as 4 to distinguish it from version numbers used in previous TOU // experiments and rollouts
pref("termsofuse.currentVersion", 4); // The minimum version of the TOU that a user must have accepted to not be // presented with the TOU modal
pref("termsofuse.minimumVersion", 4); // Should we bypass the TOU modal notification completely, currently only true // for local/non-official builds
#ifdef MOZILLA_OFFICIAL
pref("termsofuse.bypassNotification", false);
#else
pref("termsofuse.bypassNotification", true);
#endif
// Show "Download Firefox for mobile" QR code modal on newtab
pref("browser.newtabpage.activity-stream.mobileDownloadModal.enabled", false);
pref("browser.newtabpage.activity-stream.mobileDownloadModal.variant-a", false);
pref("browser.newtabpage.activity-stream.mobileDownloadModal.variant-b", false);
pref("browser.newtabpage.activity-stream.mobileDownloadModal.variant-c", false);
// Mozilla Ad Routing Service (MARS) unified ads service
pref("browser.newtabpage.activity-stream.unifiedAds.tiles.enabled", true);
pref("browser.newtabpage.activity-stream.unifiedAds.spocs.enabled", true);
pref("browser.newtabpage.activity-stream.unifiedAds.endpoint", "https://ads.mozilla.org/");
pref("browser.newtabpage.activity-stream.unifiedAds.adsFeed.enabled", false);
pref("browser.newtabpage.activity-stream.unifiedAds.ohttp.enabled", true);
// enable location search for newtab weather widget
pref("browser.newtabpage.activity-stream.weather.locationSearchEnabled", true);
// List of regions that get weather by default.
pref("browser.newtabpage.activity-stream.discoverystream.region-weather-config", "AT,BE,BG,CA,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LI,LT,LV,MT,NL,NO,PL,PT,RO,SE,SI,SK,US");
// List of locales that weather widget supports.
pref("browser.newtabpage.activity-stream.discoverystream.locale-weather-config", "bg,cs,da,de,el,en-CA,en-GB,en-US,es-ES,et,fi,fr,hr,hu,is,it,lv,nb-NO,nl,pl,pt-PT,ro,sk,sl,sv-SE,tr");
// Preference to enable wallpaper selection in the Customize Menu of new tab page
pref("browser.newtabpage.activity-stream.newtabWallpapers.enabled", true);
pref("browser.newtabpage.activity-stream.newtabWallpapers.customColor.enabled", true);
pref("browser.newtabpage.activity-stream.newtabWallpapers.customWallpaper.enabled", true);
// Current new tab page background images.
pref("browser.newtabpage.activity-stream.newtabWallpapers.wallpaper", "");
// Preference to show feature highlight about wallpaper on new tab page
pref("browser.newtabpage.activity-stream.newtabWallpapers.highlightEnabled", false);
pref("browser.newtabpage.activity-stream.newtabWallpapers.highlightDismissed", false);
pref("browser.newtabpage.activity-stream.newtabWallpapers.highlightSeenCounter", 0);
pref("browser.newtabpage.activity-stream.newtabWallpapers.highlightHeaderText", "");
pref("browser.newtabpage.activity-stream.newtabWallpapers.highlightContentText", "");
pref("browser.newtabpage.activity-stream.newtabWallpapers.highlightCtaText", "");
// Activity Stream prefs that control to which page to redirect
#ifndef RELEASE_OR_BETA
pref("browser.newtabpage.activity-stream.debug", false);
#endif
// The remote FxA root content URL for the Activity Stream firstrun page.
pref("browser.newtabpage.activity-stream.fxaccounts.endpoint", "https://accounts.firefox.com/");
// The pref that controls if the search shortcuts experiment is on
pref("browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts", true);
// ASRouter user prefs
pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", true);
pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", true);
pref("messaging-system.askForFeedback", true);
// The pref that controls if ASRouter uses the remote fluent files. // It's enabled by default, but could be disabled to force ASRouter to use the local files.
pref("browser.newtabpage.activity-stream.asrouter.useRemoteL10n", true);
// For both spoc and tiles, count corresponds to the matching placement. So the first placement in an array corresponds to the first count.
pref("browser.newtabpage.activity-stream.discoverystream.placements.spocs", "newtab_stories_1, newtab_stories_2, newtab_stories_3, newtab_stories_4, newtab_stories_5, newtab_stories_6");
pref("browser.newtabpage.activity-stream.discoverystream.placements.spocs.counts", "1,1,1,1,1,1");
pref("browser.newtabpage.activity-stream.discoverystream.placements.contextualSpocs", "newtab_stories_1, newtab_stories_2, newtab_stories_3, newtab_stories_4, newtab_stories_5, newtab_stories_6");
pref("browser.newtabpage.activity-stream.discoverystream.placements.contextualSpocs.counts", "1, 1, 1, 1, 1, 1");
pref("browser.newtabpage.activity-stream.discoverystream.placements.tiles", "newtab_tile_1, newtab_tile_2, newtab_tile_3");
pref("browser.newtabpage.activity-stream.discoverystream.placements.tiles.counts", "1, 1, 1");
pref("browser.newtabpage.activity-stream.discoverystream.placements.contextualBanners", "");
pref("browser.newtabpage.activity-stream.discoverystream.placements.contextualBanners.counts", "");
// This is a 0-based index, for consistency with the other position CSVs, // but Contile positions are a 1-based index, so we end up adding 1 to these before using them.
pref("browser.newtabpage.activity-stream.discoverystream.contile-topsites-positions", "0,1,2");
pref("browser.newtabpage.activity-stream.discoverystream.widget-positions", "");
pref("browser.newtabpage.activity-stream.discoverystream.spocs-endpoint", "");
pref("browser.newtabpage.activity-stream.discoverystream.spocs-endpoint-query", "");
// List of regions that do not get stories, regardless of locale-list-config.
pref("browser.newtabpage.activity-stream.discoverystream.region-stories-block", ""); // List of locales that get stories, regardless of region-stories-config.
#ifdef NIGHTLY_BUILD
pref("browser.newtabpage.activity-stream.discoverystream.locale-list-config", "en-US,en-CA,en-GB");
#else
pref("browser.newtabpage.activity-stream.discoverystream.locale-list-config", "");
#endif // List of regions that get stories by default.
pref("browser.newtabpage.activity-stream.discoverystream.region-stories-config", "US,DE,CA,GB,IE,CH,AT,BE,IN,FR,IT,ES");
// List of regions that get topics selection by default.
pref("browser.newtabpage.activity-stream.discoverystream.topicSelection.region-topics-config", "");
pref("browser.newtabpage.activity-stream.discoverystream.topicSelection.onboarding.enabled", false);
// List of locales that get topics selection by default.
pref("browser.newtabpage.activity-stream.discoverystream.topicLabels.region-topic-label-config", "US, CA");
pref("browser.newtabpage.activity-stream.discoverystream.topicSelection.locale-topics-config", "en-US, en-GB, en-CA");
pref("browser.newtabpage.activity-stream.discoverystream.topicLabels.locale-topic-label-config", "en-US, en-GB, en-CA");
// List of locales that get section layout by default
pref("browser.newtabpage.activity-stream.discoverystream.sections.locale-content-config", "en-US,en-CA,en-GB"); // List of regions that get section layout by default
pref("browser.newtabpage.activity-stream.discoverystream.sections.region-content-config", "US,GB,CA,IE");
// List of regions that use inferred personalization.
pref("browser.newtabpage.activity-stream.discoverystream.sections.personalization.inferred.region-config", ""); // List of locales that use inferred personalization.
pref("browser.newtabpage.activity-stream.discoverystream.sections.personalization.inferred.locale-config", "en-US,en-GB,en-CA");
// Override inferred personalization model JSON string that typically comes from rec API. Or "TEST" for a test model.
pref("browser.newtabpage.activity-stream.discoverystream.sections.personalization.inferred.model.override", "");
// List of regions for contextual ads.
pref("browser.newtabpage.activity-stream.discoverystream.sections.contextualAds.region-config", ""); // List of locales for contextual ads.
pref("browser.newtabpage.activity-stream.discoverystream.sections.contextualAds.locale-config", "en-US,en-GB,en-CA");
// List of regions that get spocs by default.
pref("browser.newtabpage.activity-stream.discoverystream.region-spocs-config", "US,CA,DE,GB,FR,IT,ES"); // List of regions that don't get the 7 row layout.
pref("browser.newtabpage.activity-stream.discoverystream.region-basic-config", "");
// List of locales that get thumbs up/down on recommended stories by default.
pref("browser.newtabpage.activity-stream.discoverystream.thumbsUpDown.locale-thumbs-config", "en-US, en-GB, en-CA");
// Redacts content interaction ids from original New Tab ping once data processing migrated to the Newtab_content private ping
pref("browser.newtabpage.activity-stream.telemetry.privatePing.redactNewtabPing.enabled", true);
pref("browser.newtabpage.activity-stream.telemetry.privatePing.maxSubmissionDelayMs", 5000);
// Include differentialy private inferred New Tab interests with New Tab content Ping. Only used when user has enabled personalization.
pref("browser.newtabpage.activity-stream.telemetry.privatePing.inferredInterests.enabled", false);
// surface ID sent from merino to the client from the curated-recommendations request
pref("browser.newtabpage.activity-stream.telemetry.surfaceId", "");
// List of regions that get thumbs up/down on recommended stories by default.
#ifdef EARLY_BETA_OR_EARLIER
pref("browser.newtabpage.activity-stream.discoverystream.thumbsUpDown.region-thumbs-config", "US, CA");
#else
pref("browser.newtabpage.activity-stream.discoverystream.thumbsUpDown.region-thumbs-config", "US");
#endif
// Shows users compact layout of Home New Tab page. Also requires region-thumbs-config.
pref("browser.newtabpage.activity-stream.discoverystream.thumbsUpDown.searchTopsitesCompact", true);
// Displays publisher favicons on recommended stories of New Tab page
pref("browser.newtabpage.activity-stream.discoverystream.publisherFavicon.enabled", true);
// The pref controls if search hand-off is enabled for Activity Stream.
pref("browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar", true);
// URLs from the user's history that contain this search param will be hidden // from the top sites. The value is a string with one of the following forms: // - "" (empty) - Disable this feature // - "key" - Search param named "key" with any or no value // - "key=" - Search param named "key" with no value // - "key=value" - Search param named "key" with value "value"
pref("browser.newtabpage.activity-stream.hideTopSitesWithSearchParam", "mfadid=adm");
// Communicates to AboutNewTabChild whether or not it should load the classic scripts or do nothing.
pref("browser.newtabpage.activity-stream.selfLoading.enabled", true);
// Enables the Nova UI refresh for the new tab page.
pref("browser.newtabpage.activity-stream.nova.enabled", true);
// Set to true to enable debug logging for AboutNewTabResourceMapping.
pref("browser.newtabpage.resource-mapping.log", false);
// Separate about welcome
pref("browser.aboutwelcome.enabled", true); // Used to set multistage welcome UX
pref("browser.aboutwelcome.screens", ""); // Whether to gate loading about:welcome on Nimbus experiments having loaded. // Enable the Nimbus experiments gate on Mac and Windows. The gate shows a splash // screen while experiments load, then auto-advances. On platforms where experiments // are already loaded when the modal opens, skipSplashIfLoaded (true by default) // causes the splash to be skipped via screen targeting.
#if defined(XP_MACOSX) || defined(XP_WIN)
pref("browser.aboutwelcome.experimentsGate.enabled", true);
#endif // Whether to skip showing the experiment loading splash screen if Nimbus is // already initialized when the preonboarding modal's screen targeting is // evaluated.
pref("browser.aboutwelcome.experimentsGate.skipSplashIfLoaded", true); // Minimum and maximum time (ms) to display the experiment-loading splash screen.
pref("browser.aboutwelcome.experimentsGate.minDisplayMs", 3000);
pref("browser.aboutwelcome.experimentsGate.maxDisplayMs", 8000);
// Global Nova enabled pref
pref("browser.nova.enabled", false);
// Experiment Manager // See Console.sys.mjs LOG_LEVELS for all possible values
pref("messaging-system.log", "warn");
pref("messaging-system.rsexperimentloader.collection_id", "nimbus-desktop-experiments");
pref("nimbus.debug", false);
pref("nimbus.validation.enabled", true);
pref("nimbus.firstUpdateComplete", false);
// Should Nimbus write to the shared ProfilesDatastoreService? Only used by tests. // TODO(bug 1967779): Require the ProfileDatastoreService by default and remove // this pref.
pref("nimbus.profilesdatastoreservice.enabled", true);
// Should Nimbus read from the shared ProfilesDatastoreService? // TODO(bug 2032586): Remove this pref.
pref("nimbus.profilesdatastoreservice.read.enabled", true);
// Should Nimbus sync experiment unenrollments from other profiles? // TODO(bug 2032586): Remove this pref.
pref("nimbus.profilesdatastoreservice.sync.enabled", true);
// Enable Rollouts by default.
pref("nimbus.rollouts.enabled", true);
// Nimbus QA prefs. Used to monitor pref-setting test experiments.
pref("nimbus.qa.pref-1", "default");
pref("nimbus.qa.pref-2", "default");
// Startup Crash Tracking // number of startup crashes that can occur before starting into safe mode automatically // (this pref has no effect if more than 6 hours have passed since the last crash)
pref("toolkit.startup.max_resumed_crashes", 3);
// Whether to use RegisterApplicationRestart to restart the browser and resume // the session on next Windows startup
#if defined(XP_WIN)
pref("toolkit.winRegisterApplicationRestart", true);
#endif
// The values of preferredAction and alwaysAskBeforeHandling before pdf.js // became the default.
pref("pdfjs.previousHandler.preferredAction", 0);
pref("pdfjs.previousHandler.alwaysAskBeforeHandling", false);
// Try to convert PDFs sent as octet-stream
pref("pdfjs.handleOctetStream", true);
// Is the sidebar positioned ahead of the content browser
pref("sidebar.position_start", true);
#ifdef NIGHTLY_BUILD
pref("sidebar.revamp", true);
#else
pref("sidebar.revamp", false);
#endif
pref("sidebar.revamp.round-content-area", true);
pref("sidebar.animation.enabled", true);
pref("sidebar.animation.duration-ms", 200);
pref("sidebar.animation.expand-on-hover.duration-ms", 400);
pref("sidebar.animation.expand-on-hover.delay-duration-ms", 200);
// This pref is used to store user customized tools in the sidebar launcher and shouldn't be changed. // See https://firefox-source-docs.mozilla.org/browser/components/sidebar/docs/index.html for ways // you can introduce a new tool to the sidebar launcher.
pref("sidebar.main.tools", "");
pref("sidebar.installed.extensions", "");
pref("sidebar.verticalTabs", false);
pref("sidebar.verticalTabs.dragToPinPromo.dismissed", false);
pref("sidebar.visibility", "always-show"); // Sidebar UI state is stored per-window via session restore. Use this pref // as a backup to restore the sidebar UI state when a user has PPB mode on // or has history cleared on browser close.
pref("sidebar.backupState", "{}");
pref("sidebar.expandOnHover", true);
pref("sidebar.old-sidebar.has-used", false);
pref("sidebar.new-sidebar.has-used", false);
pref("sidebar.history.sortOption", "date");
pref("sidebar.updatedBookmarks.enabled", false);
pref("sidebar.openTabsPanel.enabled", false);
// Block insecure active content on https pages
pref("security.mixed_content.block_active_content", true);
// Show "Not Secure" text for http pages.
pref("security.insecure_connection_text.enabled", true);
pref("security.insecure_connection_text.pbmode.enabled", true);
// If this turns true, Moz*Gesture events are not called stopPropagation() // before content.
pref("dom.debug.propagate_gesture_events_through_content", false);
// CustomizableUI state of the browser's user interface
pref("browser.uiCustomization.state", "");
// If set to false, FxAccounts and Sync will be unavailable. // A restart is mandatory after flipping that preference.
pref("identity.fxaccounts.enabled", true);
// The remote FxA root content URL. Must use HTTPS.
pref("identity.fxaccounts.remote.root", "https://accounts.firefox.com/");
// The value of the context query parameter passed in fxa requests.
pref("identity.fxaccounts.contextParam", "oauth_webchannel_v1");
// Auto-config URL for FxA self-hosters, makes an HTTP request to // [identity.fxaccounts.autoconfig.uri]/.well-known/fxa-client-configuration // This is now the prefered way of pointing to a custom FxA server, instead // of making changes to "identity.fxaccounts.*.uri".
pref("identity.fxaccounts.autoconfig.uri", "");
// How often should we try to fetch missed FxA commands on sync (in seconds). // Default is 24 hours.
pref("identity.fxaccounts.commands.missed.fetch_interval", 86400);
// Controls whether this client can send and receive "close tab" // commands from other FxA clients
pref("identity.fxaccounts.commands.remoteTabManagement.enabled", true);
// Controls whether or not the client association ping has values set on it // when the sync-ui-state:update notification fires.
pref("identity.fxaccounts.telemetry.clientAssociationPing.enabled", true);
// Note: when media.gmp-*.visible is true, provided we're running on a // supported platform/OS version, the corresponding CDM appears in the // plugins list, Firefox will download the GMP/CDM if enabled, and our // UI to re-enable EME prompts the user to re-enable EME if it's disabled // and script requests EME. If *.visible is false, we won't show the UI // to enable the CDM if its disabled; it's as if the keysystem is completely // unsupported.
pref("media.contextmenu.video-overlay-detection", true); // TODO (Bug 1817084) - This pref is used for managing translation preferences // in the Firefox Translations addon. It should be removed when the addon is // removed.
pref("browser.translation.neverForLanguages", "");
// Enable Firefox translations powered by the Bergamot translations // engine https://browser.mt/.
pref("browser.translations.enable", true);
// Enable the Translations QuickAction in the URL bar.
pref("browser.translations.quickAction.enabled", true);
// Telemetry settings. // Determines if Telemetry pings can be archived locally.
pref("toolkit.telemetry.archive.enabled", true); // Enables sending the shutdown ping when Firefox shuts down.
pref("toolkit.telemetry.shutdownPingSender.enabled", true); // Enables using the `pingsender` background task.
pref("toolkit.telemetry.shutdownPingSender.backgroundtask.enabled", false); // Enables sending the shutdown ping using the pingsender from the first session.
pref("toolkit.telemetry.shutdownPingSender.enabledFirstSession", false); // Enables sending a duplicate of the first shutdown ping from the first session.
pref("toolkit.telemetry.firstShutdownPing.enabled", true); // Enables sending the 'new-profile' ping on new profiles.
pref("toolkit.telemetry.newProfilePing.enabled", true); // Enables sending 'update' pings on Firefox updates.
pref("toolkit.telemetry.updatePing.enabled", true); // Enables sending 'bhr' pings when the browser hangs.
pref("toolkit.telemetry.bhrPing.enabled", true);
// Enable GMP support in the addon manager.
pref("media.gmp-provider.enabled", true);
// Enable Dynamic First-Party Isolation by default (BEHAVIOR_PARTITION_FOREIGN).
pref("network.cookie.cookieBehavior", 5);
// Enable Dynamic First-Party Isolation in the private browsing mode (BEHAVIOR_PARTITION_FOREIGN).
pref("network.cookie.cookieBehavior.pbmode", 5);
// Enable harmful addon URL blocking by default for all channels, only on desktop.
pref("privacy.trackingprotection.harmfuladdon.enabled", true);
// Enable fingerprinting blocking by default for all channels, only on desktop.
pref("privacy.trackingprotection.fingerprinting.enabled", true);
// Enable cryptomining blocking by default for all channels, only on desktop.
pref("privacy.trackingprotection.cryptomining.enabled", true);
// Skip earlyBlankFirstPaint by default if resistFingerprinting is enabled.
pref("privacy.resistFingerprinting.skipEarlyBlankFirstPaint", true);
// Enable Strip on Share by default on desktop
pref("privacy.query_stripping.strip_on_share.enabled", true);
pref("browser.contentblocking.cryptomining.preferences.ui.enabled", true);
pref("browser.contentblocking.fingerprinting.preferences.ui.enabled", true); // Enable cookieBehavior = BEHAVIOR_PARTITION_FOREIGN as an option in the custom category ui
pref("browser.contentblocking.reject-and-isolate-cookies.preferences.ui.enabled", true);
// Possible values for browser.contentblocking.features.strict pref: // Tracking Protection: // "tp": tracking protection enabled // "-tp": tracking protection disabled // Tracking Protection in private windows: // "tpPrivate": tracking protection in private windows enabled // "-tpPrivate": tracking protection in private windows disabled // Fingerprinting: // "fp": fingerprinting blocking enabled // "-fp": fingerprinting blocking disabled // Cryptomining Tracking Protection: // "cryptoTP": cryptomining blocking enabled // "-cryptoTP": cryptomining blocking disabled // Social Tracking Protection: // "stp": social tracking protection enabled // "-stp": social tracking protection disabled // Email Tracking Protection: // "emailTP": email tracking protection enabled // "-emailTP": email tracking protection disabled // Email Tracking Protection in private windows: // "emailTPPrivate": email tracking protection in private windows enabled // "-emailTPPrivate": email tracking protection in private windows disabled // Consent Manager Skipping: // "consentmanagerSkip": consent manager skipping enabled // "-consentmanagerSkip": consent manager skipping disabled // Consent Manager Skipping in private windows: // "consentmanagerSkipPrivate": consent manager skipping in private windows enabled // "-consentmanagerSkipPrivate": consent manager skipping in private windows disabled // Level 2 Tracking list in normal windows: // "lvl2": Level 2 tracking list enabled // "-lvl2": Level 2 tracking list disabled // Restrict relaxing default referrer policy: // "rp": Restrict relaxing default referrer policy enabled // "-rp": Restrict relaxing default referrer policy disabled // Restrict relaxing default referrer policy for top navigation: // "rpTop": Restrict relaxing default referrer policy enabled // "-rpTop": Restrict relaxing default referrer policy disabled // Query parameter stripping: // "qps": Query parameter stripping enabled // "-qps": Query parameter stripping disabled // Query parameter stripping for private windows: // "qpsPBM": Query parameter stripping enabled in private windows // "-qpsPBM": Query parameter stripping disabled in private windows // Fingerprinting Protection: // "fpp": Fingerprinting Protection enabled // "-fpp": Fingerprinting Protection disabled // Fingerprinting Protection for private windows: // "fppPrivate": Fingerprinting Protection enabled in private windows // "-fppPrivate": Fingerprinting Protection disabled in private windows // Cookie behavior: // "cookieBehavior0": cookie behaviour BEHAVIOR_ACCEPT // "cookieBehavior1": cookie behaviour BEHAVIOR_REJECT_FOREIGN // "cookieBehavior2": cookie behaviour BEHAVIOR_REJECT // "cookieBehavior3": cookie behaviour BEHAVIOR_LIMIT_FOREIGN // "cookieBehavior4": cookie behaviour BEHAVIOR_REJECT_TRACKER // "cookieBehavior5": cookie behaviour BEHAVIOR_PARTITION_FOREIGN // Cookie behavior for private windows: // "cookieBehaviorPBM0": cookie behaviour BEHAVIOR_ACCEPT // "cookieBehaviorPBM1": cookie behaviour BEHAVIOR_REJECT_FOREIGN // "cookieBehaviorPBM2": cookie behaviour BEHAVIOR_REJECT // "cookieBehaviorPBM3": cookie behaviour BEHAVIOR_LIMIT_FOREIGN // "cookieBehaviorPBM4": cookie behaviour BEHAVIOR_REJECT_TRACKER // "cookieBehaviorPBM5": cookie behaviour BEHAVIOR_PARTITION_FOREIGN // Third-party cookie deprecation behavior: // "3pcd": Third-party cookie deprecation enabled // "-3pcd": Third-party cookie deprecation disabled // Bounce Tracking Protection: // "btp": BTP enabled // "-btp": BTP disabled // Local Network Access Restrictions: // "lna": LNA enabled // "-lna": LNA disabled // One value from each section must be included in the browser.contentblocking.features.strict pref.
pref("browser.contentblocking.features.strict", "tp,tpPrivate,cookieBehavior5,cookieBehaviorPBM5,cryptoTP,fp,stp,emailTP,emailTPPrivate,-consentmanagerSkip,-consentmanagerSkipPrivate,lvl2,rp,rpTop,qps,qpsPBM,fpp,fppPrivate,btp,lna");
// Enable Protections report's Lockwise card by default.
pref("browser.contentblocking.report.lockwise.enabled", true);
// Disable rotections report's Monitor card by default. The new Monitor API does // not support this feature as of now. See Bug 1815751.
pref("browser.contentblocking.report.monitor.enabled", false);
// Avoid advertising in certain regions. Comma separated string of two letter ISO 3166-1 country codes.
pref("browser.vpn_promo.disallowed_regions", "ae,by,cn,cu,iq,ir,kp,om,ru,sd,sy,tm,tr");
// Default to enabling VPN promo messages to be shown when specified and allowed
pref("browser.vpn_promo.enabled", true); // Only show vpn card to certain regions. Comma separated string of two letter ISO 3166-1 country codes. // The most recent list of supported countries can be found at https://support.mozilla.org/en-US/kb/mozilla-vpn-countries-available-subscribe // The full lists of supported country codes can also be found at https://github.com/mozilla/bedrock/search?q=VPN_COUNTRY_CODES and https://github.com/mozilla/bedrock/search?q=VPN_MOBILE_SUB_COUNTRY_CODES
pref("browser.contentblocking.report.vpn_regions", "as,at,au,bd,be,bg,br,ca,ch,cl,co,cy,cz,de,dk,ee,eg,es,fi,fr,gb,gg,gr,hr,hu,id,ie,im,in,io,it,je,ke,kr,lt,lu,lv,ma,mp,mt,mx,my,ng,nl,no,nz,pl,pr,pt,ro,sa,se,sg,si,sk,sn,th,tr,tw,ua,ug,uk,um,us,vg,vi,vn,za");
// Avoid advertising Focus in certain regions. Comma separated string of two letter // ISO 3166-1 country codes.
pref("browser.promo.focus.disallowed_regions", "cn");
// Default to enabling focus promos to be shown where allowed.
pref("browser.promo.focus.enabled", true);
// Default to enabling pin promos to be shown where allowed.
pref("browser.promo.pin.enabled", true);
// Default to enabling cookie banner reduction promos to be shown where allowed. // Set to true for Fx113 (see bug 1808611)
pref("browser.promo.cookiebanners.enabled", false);
pref("browser.contentblocking.cfr-milestone.enabled", true);
pref("browser.contentblocking.cfr-milestone.milestone-achieved", 0); // Milestones should always be in increasing order
pref("browser.contentblocking.cfr-milestone.milestones", "[1000, 5000, 10000, 25000, 50000, 100000, 250000, 314159, 500000, 750000, 1000000, 1250000, 1500000, 1750000, 2000000, 2250000, 2500000, 8675309]");
// Controls the initial state of the protections panel collapsible info message.
pref("browser.protections_panel.infoMessage.seen", false);
// Always enable newtab segregation using containers
pref("privacy.usercontext.about_newtab_segregation.enabled", true); // Enable Contextual Identity Containers
pref("privacy.userContext.enabled", true);
pref("privacy.userContext.ui.enabled", true);
pref("privacy.userContext.extension", ""); // allows user to open container menu on a left click instead of a new // tab in the default container
pref("privacy.userContext.newTabContainerOnLeftClick.enabled", false);
// Set to true to allow the user to silence all notifications when // sharing the screen.
pref("privacy.webrtc.allowSilencingNotifications", true);
pref("privacy.webrtc.hideGlobalIndicator", false);
// Set to true to add toggles to the WebRTC indicator for globally // muting the camera and microphone.
pref("privacy.webrtc.globalMuteToggles", false);
// Set to true to enable a warning displayed when attempting // to switch tabs in a window that's being shared over WebRTC.
pref("privacy.webrtc.sharedTabWarning", false);
// Defines a grace period after camera or microphone use ends, where permission // is granted (even past navigation) to this tab + origin + device. This avoids // re-prompting without the user having to persist permission to the site, in a // common case of a web conference asking them for the camera in a lobby page, // before navigating to the actual meeting room page. Doesn't survive tab close.
pref("privacy.webrtc.deviceGracePeriodTimeoutMs", 3600000);
// Bug 1857254 - MacOS 14 displays two (microphone/camera/screen share) icons in the menu bar // This pref can be used to hide the firefox camera icon on macos 14 and above to avoid // duplicating the macos camera icon. We show the icon by default, users can choose to flip // the pref to hide the icons
pref("privacy.webrtc.showIndicatorsOnMacos14AndAbove", true);
// Testing pref: adds artificial delay (in ms) to gUM requests in webrtc-preview. // Used for testing abort logic. 0 means no delay.
pref("privacy.webrtc.preview.testGumDelayMs", 0);
// Enable including the content in the window title. // PBM users might want to disable this to avoid a possible source of disk // leaks.
pref("privacy.exposeContentTitleInWindow", true);
pref("privacy.exposeContentTitleInWindow.pbm", true);
// Run media transport in a separate process?
pref("media.peerconnection.mtransport_process", true);
// For speculatively warming up tabs to improve perceived // performance while using the async tab switcher.
pref("browser.tabs.remote.warmup.enabled", true);
// Caches tab layers to improve perceived performance // of tab switches.
pref("browser.tabs.remote.tabCacheSize", 0);
// For the about:tabcrashed page
pref("browser.tabs.crashReporting.sendReport", true);
pref("browser.tabs.crashReporting.includeURL", false);
// Enables the "Unload Tab" context menu item
pref("browser.tabs.unloadTabInContextMenu", true);
// Whether tabs that have been explicitly unloaded // are faded out in the tab bar.
pref("browser.tabs.fadeOutExplicitlyUnloadedTabs", true);
// Whether unloaded tabs (either from session restore or because // they are explicitly unloaded) are faded out in the tab bar.
pref("browser.tabs.fadeOutUnloadedTabs", false);
// Whether tabs can be "split" or displayed side by side at once.
pref("browser.tabs.splitView.enabled", true);
pref("browser.tabs.splitview.hasUsed", false);
// Whether SVG favicons should be safely re-encoded using the moz-remote-image:// protocol.
pref("browser.tabs.remoteSVGIconDecoding", true);
// If true, unprivileged extensions may use experimental APIs on // nightly and developer edition.
pref("extensions.experiments.enabled", false);
// Don't limit how many nodes we care about on desktop:
pref("reader.parse-node-limit", 0);
// On desktop, we want the URLs to be included here for ease of debugging, // and because (normally) these errors are not persisted anywhere.
pref("reader.errors.includeURLs", true);
pref("view_source.tab", true);
// These are the thumbnail width/height set in about:newtab. // If you change this, ENSURE IT IS THE SAME SIZE SET // by about:newtab. These values are in CSS pixels.
pref("toolkit.pageThumbs.minWidth", 280);
pref("toolkit.pageThumbs.minHeight", 190);
pref("browser.migrate.chrome.enabled", true); // See comments in bug 1340115 on how we got to this number.
pref("browser.migrate.chrome.history.limit", 2000);
pref("browser.migrate.chrome.payment_methods.enabled", true);
pref("browser.migrate.chrome.extensions.enabled", true);
pref("browser.migrate.chrome.get_permissions.enabled", true);
// Values can be: "default", "autoclose", "standalone", "embedded".
pref("browser.migrate.content-modal.about-welcome-behavior", "embedded");
// The maximum age of history entries we'll import, in days.
pref("browser.migrate.history.maxAgeInDays", 180);
// These following prefs are set to true if the user has at some // point in the past migrated one of these resource types from // another browser. We also attempt to transfer these preferences // across profile resets.
pref("browser.migrate.interactions.bookmarks", false);
pref("browser.migrate.interactions.csvpasswords", false);
pref("browser.migrate.interactions.history", false);
pref("browser.migrate.interactions.passwords", false);
// "available" - user can see feature offer. // "offered" - we have offered feature to user and they have not yet made a decision. // "enabled" - user opted in to the feature. // "disabled" - user opted out of the feature.
pref("signon.firefoxRelay.feature", "available");
pref("signon.management.page.breach-alerts.enabled", true);
pref("signon.management.page.vulnerable-passwords.enabled", true);
pref("signon.management.page.sort", "name");
// The utm_creative value is appended within the code (specific to the location on // where it is clicked). Be sure that if these two prefs are updated, that // the utm_creative param be last.
pref("signon.management.page.breachAlertUrl", "https://monitor.firefox.com/breach-details/");
pref("signon.passwordEditCapture.enabled", true);
pref("signon.relatedRealms.enabled", false);
pref("signon.showAutoCompleteFooter", true);
pref("signon.showAutoCompleteImport", "import");
pref("signon.suggestImportCount", 3);
// Whether or not the browser should scan for unsubmitted // crash reports, and then show a notification for submitting // those reports.
#ifdef NIGHTLY_BUILD
pref("browser.crashReports.unsubmittedCheck.enabled", true);
#else
pref("browser.crashReports.unsubmittedCheck.enabled", false);
#endif
// chancesUntilSuppress is how many times we'll show the unsubmitted // crash report notification across different days and shutdown // without a user choice before we suppress the notification for // some number of days.
pref("browser.crashReports.unsubmittedCheck.chancesUntilSuppress", 4);
pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false);
// Whether the browser should periodically prune stale crash-related files // (InstallTime markers, old submitted/pending reports, and the pending-report // cap).
pref("browser.crashReports.cleanupCheck.enabled", true);
// Preferences for the form autofill toolkit component. // Checkbox in sync options for credit card data sync service
pref("services.sync.engine.creditcards.available", true);
// Whether or not to restore a session with lazy-browser tabs.
pref("browser.sessionstore.restore_tabs_lazily", true);
// Preference that determines whether Screenshots uses the dedicated browser component
pref("screenshots.browser.component.enabled", true);
// Preference that determines what button to focus
pref("screenshots.browser.component.last-saved-method", "download");
// Preference that prevents events from reaching the content page.
pref("screenshots.browser.component.preventContentEvents", true);
// Determines the default save location for screenshots // Valid values are 0, 1, 2, 3 and 4. // 0 - Use the desktop as the default save location. // 1 - Use the system's downloads folder as the default save location. // 2 - Use the folder set in browser.screenshots.dir as the default save location. // 3 - Use system's screenshot folder as the default save location. // 4 - Use browser.download.folderList // Options 2 and 3 will fallback to the system downloads folder if their specified folder is not found.
pref("browser.screenshots.folderList", 4);
pref("browser.screenshots.dir", "");
// DoH Rollout: whether to clear the mode value at shutdown.
pref("doh-rollout.clearModeOnShutdown", false);
// DoH UI: default the fallback checkbox to on.
pref("network.trr_ui.fallback_was_checked", true);
// Multi-lingual preferences: // *.enabled - Are langpacks available for the build of Firefox? // *.downloadEnabled - Langpacks are allowed to be downloaded from AMO. AMO only serves // langpacks for release and beta. Unsupported releases (like Nightly) can be // manually tested with the following preference: // extensions.getAddons.langpacks.url: https://mock-amo-language-tools.glitch.me/?app=firefox&type=language&appversion=%VERSION% // *.liveReload - Switching a langpack will change the language without a restart. // *.liveReloadBidirectional - Allows switching when moving between LTR and RTL // languages without a full restart. // *.aboutWelcome.languageMismatchEnabled - Enables an onboarding menu in about:welcome // to allow a user to change their language when there is a language mismatch between // the app and browser.
#if defined(RELEASE_OR_BETA) && !defined(MOZ_DEV_EDITION)
pref("intl.multilingual.enabled", true);
pref("intl.multilingual.downloadEnabled", true);
pref("intl.multilingual.liveReload", true);
pref("intl.multilingual.liveReloadBidirectional", false);
pref("intl.multilingual.aboutWelcome.languageMismatchEnabled", true);
#else
pref("intl.multilingual.enabled", false);
pref("intl.multilingual.downloadEnabled", false);
pref("intl.multilingual.liveReload", false);
pref("intl.multilingual.liveReloadBidirectional", false);
pref("intl.multilingual.aboutWelcome.languageMismatchEnabled", false);
#endif
// Coverage ping is disabled by default.
pref("toolkit.coverage.enabled", false);
pref("toolkit.coverage.endpoint.base", "https://coverage.mozilla.org");
// The visibility of the bookmarks toolbar. // "newtab": Show on the New Tab Page // "always": Always show // "never": Never show
pref("browser.toolbars.bookmarks.visibility", "newtab");
// Visibility of the "Show Other Bookmarks" menuitem in the // bookmarks toolbar contextmenu.
pref("browser.toolbars.bookmarks.showOtherBookmarks", true);
// Toggles the availability of the share tab button. // If preffed off, it makes it so that the button is no longer // available on the toolbar or in the customize section. Requires a // restart to reflect state changes.
pref("browser.toolbars.share-button.enabled", true);
// Prefs to control the Firefox Account toolbar menu. // This pref will surface existing Firefox Account information // as a button next to the hamburger menu. It allows // quick access to sign-in and manage your Firefox Account.
pref("identity.fxaccounts.toolbar.enabled", true);
pref("identity.fxaccounts.toolbar.accessed", false);
pref("identity.fxaccounts.toolbar.defaultVisible", true);
// Prefs to control Firefox Account panels that shows call to actions // for other supported Mozilla products
pref("identity.fxaccounts.toolbar.pxiToolbarEnabled", true);
pref("identity.fxaccounts.toolbar.pxiToolbarEnabled.monitorEnabled", true);
pref("identity.fxaccounts.toolbar.pxiToolbarEnabled.relayEnabled", true);
pref("identity.fxaccounts.toolbar.pxiToolbarEnabled.vpnEnabled", true);
// Prefs to control Mozilla account panels that shows an updated flow // for users who don't have sync enabled
pref("identity.fxaccounts.toolbar.syncSetup.panelAccessed", false);
// Toolbox preferences
pref("devtools.toolbox.footer.height", 250);
pref("devtools.toolbox.sidebar.width", 500);
pref("devtools.toolbox.host", "bottom");
pref("devtools.toolbox.previousHost", "right");
pref("devtools.toolbox.selectedTool", "inspector");
pref("devtools.toolbox.zoomValue", "1");
pref("devtools.toolbox.splitconsole.enabled", true);
pref("devtools.toolbox.splitconsole.open", false);
pref("devtools.toolbox.splitconsoleHeight", 100);
pref("devtools.toolbox.tabsOrder", ""); // This is only used for local Web Extension debugging, // and allows to keep the window on top of all others, // so that you can debug the Firefox window, while keeping the devtools // always visible
pref("devtools.toolbox.alwaysOnTop", true);
// When the Multiprocess Browser Toolbox is enabled, you can configure the scope of it: // - "everything" will enable debugging absolutely everything in the browser // All processes, all documents, all workers, all add-ons. // - "parent-process" will restrict debugging to the parent process // All privileged javascript, documents and workers running in the parent process.
pref("devtools.browsertoolbox.scope", "parent-process");
// Controls the hability to debug popups from the same DevTools // of the original tab the popups are coming from
pref("devtools.popups.debug", false);
// Inspector preferences // Enable the Inspector
pref("devtools.inspector.enabled", true); // What was the last active sidebar in the inspector
pref("devtools.inspector.selectedSidebar", "layoutview");
pref("devtools.inspector.activeSidebar", "layoutview");
// Enable the 3 pane mode in the inspector
pref("devtools.inspector.three-pane-enabled", true); // Enable the 3 pane mode in the chrome inspector
pref("devtools.inspector.chrome.three-pane-enabled", false); // Collapse pseudo-elements by default in the rule-view
pref("devtools.inspector.show_pseudo_elements", false); // The default size for image preview tooltips in the rule-view/computed-view/markup-view
pref("devtools.inspector.imagePreviewTooltipSize", 300); // Enable user agent style inspection in rule-view
pref("devtools.inspector.showUserAgentStyles", false); // Show native anonymous content and user agent shadow roots
pref("devtools.inspector.showAllAnonymousContent", false); // Enable overflow debugging in the inspector.
pref("devtools.overflow.debugging.enabled", true); // Enable drag to edit properties in the inspector rule view.
pref("devtools.inspector.draggable_properties", true);
// Grid highlighter preferences
pref("devtools.gridinspector.gridOutlineMaxColumns", 50);
pref("devtools.gridinspector.gridOutlineMaxRows", 50);
pref("devtools.gridinspector.showGridAreas", false);
pref("devtools.gridinspector.showGridLineNumbers", false);
pref("devtools.gridinspector.showInfiniteLines", false); // Max number of grid highlighters that can be displayed
pref("devtools.gridinspector.maxHighlighters", 3);
// Whether or not simplified highlighters should be used when // prefers-reduced-motion is enabled.
pref("devtools.inspector.simple-highlighters-reduced-motion", false); // Wheter or not Enter on inplace editor in the Rules view moves focus and activates // next inplace editor.
pref("devtools.inspector.rule-view.focusNextOnEnter", true); // Enable Rules view CSS explainers
pref("devtools.inspector.css-explainers", false);
// Whether or not the box model panel is opened in the layout view
pref("devtools.layout.boxmodel.opened", true); // Whether or not the flexbox panel is opened in the layout view
pref("devtools.layout.flexbox.opened", true); // Whether or not the flexbox container panel is opened in the layout view
pref("devtools.layout.flex-container.opened", true); // Whether or not the flexbox item panel is opened in the layout view
pref("devtools.layout.flex-item.opened", true); // Whether or not the grid inspector panel is opened in the layout view
pref("devtools.layout.grid.opened", true);
// Enable hovering Box Model values and jumping to their source CSS rule in the // rule-view.
#if defined(NIGHTLY_BUILD)
pref("devtools.layout.boxmodel.highlightProperty", true);
#else
pref("devtools.layout.boxmodel.highlightProperty", false);
#endif
// By how many times eyedropper will magnify pixels
pref("devtools.eyedropper.zoom", 6);
// Enable to collapse attributes that are too long.
pref("devtools.markup.collapseAttributes", true); // Length to collapse attributes
pref("devtools.markup.collapseAttributeLength", 120); // Enable the display of comment nodes in the markup view.
pref("devtools.markup.showComments", true); // Whether to auto-beautify the HTML on copy.
pref("devtools.markup.beautifyOnCopy", false);
// DevTools default color unit
pref("devtools.defaultColorUnit", "authored");
// Enable the Memory tools
pref("devtools.memory.enabled", true);
// Enable the Application panel
pref("devtools.application.enabled", true);
pref("devtools.application.selectedSidebar", "service-workers");
// The internal Anti tracking debugging panel
pref("devtools.anti-tracking.enabled", false);
// Session History panel
pref("devtools.application.sessionHistory.enabled", false);
// Enable the custom formatters feature // This preference represents the user's choice to enable the custom formatters feature. // While the preference above will be removed once the feature is stable, this one is menat to stay.
pref("devtools.custom-formatters.enabled", false);
// Set to true to eagerly show the results of webconsole terminal evaluations // when they don't have side effects.
pref("devtools.webconsole.input.eagerEvaluation", true);
// Max number of inputs to store in web console history.
pref("devtools.webconsole.inputHistoryCount", 300);
// Persistent logging: |true| if you want the relevant tool to keep all of the // logged messages after reloading the page, |false| if you want the output to // be cleared each time page navigation happens.
pref("devtools.webconsole.persistlog", false);
pref("devtools.netmonitor.persistlog", false);
// Web Console timestamp: |true| if you want the logs and instructions // in the Web Console to display a timestamp, or |false| to not display // any timestamps.
pref("devtools.webconsole.timestampMessages", false);
// Enable the webconsole sidebar toggle in Nightly builds.
#if defined(NIGHTLY_BUILD)
pref("devtools.webconsole.sidebarToggle", true);
#else
pref("devtools.webconsole.sidebarToggle", false);
#endif
// Saved editor mode state in the console.
pref("devtools.webconsole.input.editor", false);
pref("devtools.browserconsole.input.editor", false);
// Editor width for webconsole and browserconsole.
pref("devtools.webconsole.input.editorWidth", 0);
pref("devtools.browserconsole.input.editorWidth", 0);
// Display an onboarding UI for the Editor mode.
pref("devtools.webconsole.input.editorOnboarding", true);
// Enable grouping/repeating similar messages in the console, true by default
pref("devtools.webconsole.groupSimilarMessages", true);
// Enable codemirror 6 for the JSTerminal in the console
pref("devtools.webconsole.codemirrorNext", false);
// Enable client-side mapping service for source maps
pref("devtools.source-map.client-service.enabled", true);
// The number of lines that are displayed in the web console.
pref("devtools.hud.loglimit", 10000);
// The developer tools editor configuration: // - tabsize: how many spaces to use when a Tab character is displayed. // - expandtab: expand Tab characters to spaces. // - keymap: which keymap to use (can be 'default', 'emacs' or 'vim') // - autoclosebrackets: whether to permit automatic bracket/quote closing. // - detectindentation: whether to detect the indentation from the file // - enableCodeFolding: Whether to enable code folding or not.
pref("devtools.editor.tabsize", 2);
pref("devtools.editor.expandtab", true);
pref("devtools.editor.keymap", "default");
pref("devtools.editor.autoclosebrackets", true);
pref("devtools.editor.detectindentation", true);
pref("devtools.editor.enableCodeFolding", true);
pref("devtools.editor.autocomplete", true);
// The angle of the viewport.
pref("devtools.responsive.viewport.angle", 0); // The width of the viewport.
pref("devtools.responsive.viewport.width", 320); // The height of the viewport.
pref("devtools.responsive.viewport.height", 480); // The pixel ratio of the viewport.
pref("devtools.responsive.viewport.pixelRatio", 0); // Whether or not the viewports are left aligned.
pref("devtools.responsive.leftAlignViewport.enabled", false); // Whether to reload when touch simulation is toggled
pref("devtools.responsive.reloadConditions.touchSimulation", false); // Whether to reload when user agent is changed
pref("devtools.responsive.reloadConditions.userAgent", false); // Whether to show the notification about reloading to apply emulation
pref("devtools.responsive.reloadNotification.enabled", true); // Whether or not touch simulation is enabled.
pref("devtools.responsive.touchSimulation.enabled", false); // The user agent of the viewport.
pref("devtools.responsive.userAgent", ""); // Show the custom user agent input by default
pref("devtools.responsive.showUserAgentInput", true); // Whether to show the RDM dynamic toolbar
pref("devtools.responsive.dynamicToolbar.enabled", false); // Whether the RDM dynamic toolbar is on the top (false = on bottom)
pref("devtools.responsive.dynamicToolbar.onTop", false);
// Show tab debug targets for This Firefox (on by default for local builds).
#ifdef MOZILLA_OFFICIAL
pref("devtools.aboutdebugging.local-tab-debugging", false);
#else
pref("devtools.aboutdebugging.local-tab-debugging", true);
#endif
// Show process debug targets.
pref("devtools.aboutdebugging.process-debugging", true); // Stringified array of network locations that users can connect to.
pref("devtools.aboutdebugging.network-locations", "[]"); // Debug target pane collapse/expand settings.
pref("devtools.aboutdebugging.collapsibilities.installedExtension", false);
pref("devtools.aboutdebugging.collapsibilities.otherWorker", false);
pref("devtools.aboutdebugging.collapsibilities.serviceWorker", false);
pref("devtools.aboutdebugging.collapsibilities.sharedWorker", false);
pref("devtools.aboutdebugging.collapsibilities.tab", false);
pref("devtools.aboutdebugging.collapsibilities.temporaryExtension", false);
// about:debugging: only show system and hidden extensions in local builds by // default.
#ifdef MOZILLA_OFFICIAL
pref("devtools.aboutdebugging.showHiddenAddons", false);
#else
pref("devtools.aboutdebugging.showHiddenAddons", true);
#endif
// Add some extra logging to the console, for debugging
pref("devtools.aboutdebugging.showReduxActionsInConsole", false);
// Map top-level await expressions in the console
pref("devtools.debugger.features.map-await-expression", true);
// This relies on javascript.options.asyncstack as well or it has no effect.
pref("devtools.debugger.features.async-captured-stacks", true);
pref("devtools.debugger.features.async-live-stacks", false);
// This supports showing stylesheet sources in the debugger
pref("devtools.debugger.features.stylesheets-in-debugger", false);
// When debugging a website, this pref controls if extension content scripts applied // to the currently debugged page should be shown in the Debugger Source Tree
pref("devtools.debugger.show-content-scripts", false);
// Disable autohide for DevTools popups and tooltips. // This is currently not exposed by any UI to avoid making // about:devtools-toolbox tabs unusable by mistake.
pref("devtools.popup.disable_autohide", false);
// Add support for high contrast mode
#if defined(NIGHTLY_BUILD)
pref("devtools.high-contrast-mode-support", true);
#else
pref("devtools.high-contrast-mode-support", false);
#endif
// FirstStartup service time-out in ms
pref("first-startup.timeout", 30000);
pref("first-startup.category-tasks-enabled", true);
// Enable the default browser agent. // The agent still runs as scheduled if this pref is disabled, // but it exits immediately before taking any action.
#ifdef XP_WIN
pref("default-browser-agent.enabled", true);
#endif
// Test Prefs that do nothing for testing
#if defined(EARLY_BETA_OR_EARLIER)
pref("app.normandy.test-prefs.bool", false);
pref("app.normandy.test-prefs.integer", 0);
pref("app.normandy.test-prefs.string", "");
#endif
// Shows 'View Image Info' item in the image context menu
#ifdef MOZ_DEV_EDITION
pref("browser.menu.showViewImageInfo", true);
#else
pref("browser.menu.showViewImageInfo", false);
#endif
// Handing URLs to external apps via the "Share URL" menu item could allow a proxy bypass
#ifdef MOZ_PROXY_BYPASS_PROTECTION
pref("browser.menu.share_url.allow", false);
#endif
pref("browser.shareqrcode.enabled", true);
// Whether to embed a logo in the center of generated QR codes.
pref("browser.shareqrcode.embed_logo", true);
// Mozilla-controlled domains that are allowed to use non-standard // context properties for SVG images for use in the browser UI. Please // keep this list short. This preference (and SVG `context-` keyword support) // are expected to go away once a standardized alternative becomes // available.
pref("svg.context-properties.content.allowed-domains", "profile.accounts.firefox.com,profile.stage.mozaws.net");
// Preference that allows individual users to disable Firefox Translations.
#ifdef NIGHTLY_BUILD
pref("extensions.translations.disabled", true);
#endif
// Turn on interaction measurements
pref("browser.places.interactions.enabled", true);
// If the user has seen the Firefox View feature tour this value reflects // the id of the last screen they saw and whether they completed the tour
pref("browser.firefox-view.feature-tour", "{\"screen\":\"FIREFOX_VIEW_SPOTLIGHT\",\"complete\":false}"); // Number of times the user visited about:firefoxview via the button/hidden tab in the past 30 days
pref("browser.firefox-view.button-clicks", "{\"count\":0,\"lastCountTime\":\"\"}");
// Enables virtual list functionality in Firefox View.
pref("browser.firefox-view.virtual-list.enabled", true);
// If the user has seen the pdf.js feature tour this value reflects the tour // message id, the id of the last screen they saw, and whether they completed the tour
pref("browser.pdfjs.feature-tour", "{\"screen\":\"\",\"complete\":false}");
// When true, shows a one-time feature callout for cookie banner blocking.
pref("cookiebanners.ui.desktop.showCallout", false);
// Parameters for the swipe-to-navigation icon. // // `navigation-icon-{start|end}-position` is the start or the end position of // the icon movement in response to the user's swipe gesture. `0` means the icon // positions at the left edge of the browser window. For example on Mac, when // the user started swipe gesture left to right, the icon appears at a point // where left side 20px of the icon is outside of the browser window's view. // // `navigation-icon-{min|max}-radius` is the minimum or the maximum radius of // the icon's outer circle size in response to the user's swipe gesture. `-1` // means that the circle radius never changes.
#ifdef XP_MACOSX
pref("browser.swipe.navigation-icon-start-position", -20);
pref("browser.swipe.navigation-icon-end-position", 0);
pref("browser.swipe.navigation-icon-min-radius", -1);
pref("browser.swipe.navigation-icon-max-radius", -1);
#else
pref("browser.swipe.navigation-icon-start-position", -40);
pref("browser.swipe.navigation-icon-end-position", 60);
pref("browser.swipe.navigation-icon-min-radius", 12);
pref("browser.swipe.navigation-icon-max-radius", 20);
#endif
// Whether the reset private browsing panel should ask for confirmation before // performing the clear action.
pref("browser.privatebrowsing.resetPBM.showConfirmationDialog", true);
// the preferences related to the Nimbus experiment, to activate and deactivate // the the entire rollout (see: bug 1864216 - two prompts, 1877500 - set two in one prompt)
pref("browser.mailto.dualPrompt", false); // Display a reminder prompt for known webmailers if the prompt was not // dismissed before the next visit of that webmailer.
pref("browser.mailto.dualPrompt.onLocationChange", false); // configures after how many minutes is the prompt shown again after it was // dismissed. This differs from clicking the 'x' button and 'not now' (forever=0)
pref("browser.mailto.dualPrompt.dismissNotNowMinutes", 525600); // one year
pref("browser.mailto.dualPrompt.dismissXClickMinutes", 1440); // one day
// Pref to initialize the BackupService soon after startup.
pref("browser.backup.enabled", true); // Pref to control whether scheduled backups run or not.
pref("browser.backup.scheduled.enabled", false);
// Prefs to control visibility and usability of the create backup and restore from backup features.
#ifndef XP_MACOSX
pref("browser.backup.archive.enabled", true);
pref("browser.backup.restore.enabled", true);
#else
pref("browser.backup.archive.enabled", false);
pref("browser.backup.restore.enabled", false);
#endif
// The number of SQLite database pages to backup per step.
pref("browser.backup.sqlite.pages_per_step", 50); // The delay between SQLite database backup steps in milliseconds.
pref("browser.backup.sqlite.step_delay_ms", 50);
pref("browser.backup.scheduled.idle-threshold-seconds", 15);
pref("browser.backup.scheduled.minimum-time-between-backups-seconds", 86400);
pref("browser.backup.template.fallback-download.release", "https://www.firefox.com/?utm_medium=firefox-desktop&utm_source=html-backup");
pref("browser.backup.template.fallback-download.beta", "https://www.firefox.com/channel/desktop/?utm_medium=firefox-desktop&utm_source=html-backup");
pref("browser.backup.template.fallback-download.aurora", "https://www.firefox.com/channel/desktop/?utm_medium=firefox-desktop&utm_source=html-backup");
pref("browser.backup.template.fallback-download.nightly", "https://www.firefox.com/channel/desktop/?utm_medium=firefox-desktop&utm_source=html-backup");
pref("browser.backup.template.fallback-download.esr", " https://www.firefox.com/download/all/desktop-esr/?utm_medium=firefox-desktop&utm_source=html-backup");
pref("browser.backup.errorCode", 0);
pref("browser.backup.backup-retry-limit", 10);
pref("browser.backup.disabled-on-idle-backup-retry", false); // Limit of number of unremovable staging directories and archives that are // permitted before backup will stop making additional backups. Unremovable // staging directories/archives are ones that the file system prevents us from // removing for any reason.
pref("browser.backup.max-num-unremovable-staging-items", 5);
pref("browser.backup.scheduled.user-disabled", false); // How many milliseconds to wait for tab state to flush before continuing the // backup process.
pref("browser.backup.tab-flush-timeout", 5000);
pref("browser.backup.enabled_on.profiles", "[]");
// Pref to enable the new profiles
pref("browser.profiles.enabled", true);
pref("browser.profiles.profile-name.updated", false); // Whether to allow the user to merge profile data
pref("browser.profiles.sync.allow-danger-merge", false);
pref("startup.homepage_override_url_nimbus", ""); // These prefs are referring to the Fx update version
pref("startup.homepage_override_nimbus_maxVersion", "");
pref("startup.homepage_override_nimbus_minVersion", ""); // Pref to disable all What's New pages
pref("startup.homepage_override_nimbus_disable_wnp", false);
// Pref to enable the content relevancy feature.
pref("toolkit.contentRelevancy.enabled", false); // Pref to enable the ingestion through the Rust component.
pref("toolkit.contentRelevancy.ingestEnabled", false); // Pref to enable extra logging for the content relevancy feature
pref("toolkit.contentRelevancy.log", false);
// The number of days after which to rotate the context ID. 0 means to disable // rotation altogether.
pref("browser.contextual-services.contextId.rotation-in-days", 3);
pref("browser.contextual-services.contextId.rust-component.enabled", true); // Pref to block feature callout messages related to IP protection
pref("browser.ipProtection.blockIPProtectionCallouts", false); // Pref to enable the IP protection feature
pref("browser.ipProtection.enabled", false); // Pref to track whether the user has opted out of using IP Protection
pref("browser.ipProtection.optedOut", false); // Pref to enable the autoStart feature
pref("browser.ipProtection.features.autoStart", false); // Prefs to track the user turning on autostart preference
pref("browser.ipProtection.autoStartEnabled", false);
pref("browser.ipProtection.autoStartPrivateEnabled", false);
pref("browser.ipProtection.autoRestoreEnabled", false); // Pref to track whether the user has turned IP protection on
pref("browser.ipProtection.userEnabled", false); // Pref to track the number of times the user has enabled IP protection (max 3)
pref("browser.ipProtection.userEnableCount", 0); // Pref to track if user has ever opened the VPN panel
pref("browser.ipProtection.everOpenedPanel", false); // Pref to track if user has opened the VPN panel since location controls were introduced
pref("browser.ipProtection.openedPanelWithLocation", false); // Pref to enable support for site exceptions
pref("browser.ipProtection.features.siteExceptions", true); // Pref to show confirmation hints for site exceptions
pref("browser.ipProtection.siteExceptionsHintsEnabled", true);
pref("browser.ipProtection.log", false);
pref("browser.ipProtection.guardian.endpoint", "https://vpn.mozilla.org/");
pref("browser.ipProtection.added", false); // Pref to track whether the user has upgraded to Mozilla VPN
pref("browser.ipProtection.hasUpgraded", false); // Pref to disable upgrade-related messaging when VPN upgrade is not available
pref("browser.ipProtection.upgradeNotAvailable", false); // Pref that enables bandwidth usage feature
pref("browser.ipProtection.bandwidth.enabled", true); // Pref for messaging the maximum bandwidth allowance in GB
pref("browser.ipProtection.bandwidth.maxInGb", 50); // Pref that stores the current egress location for the VPN
pref("browser.ipProtection.egressLocation", ""); // Pref that flips at 50%, 75%, and 90% bandwidth usage thresholds
pref("browser.ipProtection.bandwidthThreshold", 0); // Tracks the highest bandwidth warning threshold (75 or 90) dismissed per surface. // Stored as JSON: { infobar: <number>, panel: <number> }. Reset when bandwidth resets.
pref("browser.ipProtection.bandwidthWarningDismissedThreshold", ""); // Pref to track if the "NEW" badge on the location selection button should be visible.
pref("browser.ipProtection.locationButtonBadgeDismissed", false); // Pref to use the FxA activate flow as the auth provider.
pref("browser.ipProtection.fxa.useActivateFlow", true);
// Pref to enable aboug:glean redesign.
pref("about.glean.redesign.enabled", false);
// Forward Rust component logs to the JS console (comma separate list of crate names) // The empty string defaults to forwarding error-level messages. // If your crate needs to log more by default, for example persistent logging to a file like Sync, // contact the application-services developers and we can work with you to implement this.
pref("toolkit.rust-components.logging.crates", "");
// Log level for the internal logs in `AppServicesTracing.sys.mjs`
pref("toolkit.rust-components.logging.internal-level", "Warn");
// A preference that will be locked to reflect whether this build has support // for XDG Config Home handling. Mostly used to be able to keep tests around // in case of a backout of the feature
#if defined(MOZ_WIDGET_GTK)
pref("widget.support-xdg-config", true, locked);
#endif
// A preference that enables Content Sharing
pref("browser.contentsharing.enabled", false);
// When enabled, Firefox ignores the distribution.ini file if global.id is MozillaOnline.
pref("distribution.mozillaonline.ignore", true);
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.101Bemerkung:
(vorverarbeitet am 2026-08-24)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.