tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

firefox.js (173976B)


      1 #filter dumbComments emptyLines substitution
      2 
      3 // -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
      4 // This Source Code Form is subject to the terms of the Mozilla Public
      5 // License, v. 2.0. If a copy of the MPL was not distributed with this
      6 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
      7 
      8 // Non-static prefs that are specific to desktop Firefox belong in this file
      9 // (unless there is a compelling and documented reason for them to belong in
     10 // another file).
     11 //
     12 // Please indent all prefs defined within #ifdef/#ifndef conditions. This
     13 // improves readability, particular for conditional blocks that exceed a single
     14 // screen.
     15 
     16 #ifdef XP_UNIX
     17  #ifndef XP_MACOSX
     18    #define UNIX_BUT_NOT_MAC
     19  #endif
     20 #endif
     21 
     22 #ifdef XP_MACOSX
     23  pref("browser.hiddenWindowChromeURL", "chrome://browser/content/hiddenWindowMac.xhtml");
     24 #endif
     25 
     26 // Set add-ons abuse report related prefs specific to Firefox Desktop.
     27 pref("extensions.abuseReport.enabled", true);
     28 
     29 // Enables some extra Extension System Logging (can reduce performance)
     30 pref("extensions.logging.enabled", false);
     31 
     32 // Disables strict compatibility, making addons compatible-by-default.
     33 pref("extensions.strictCompatibility", false);
     34 
     35 pref("extensions.webextOptionalPermissionPrompts", true);
     36 // If enabled, install origin permission verification happens after addons are downloaded.
     37 pref("extensions.postDownloadThirdPartyPrompt", true);
     38 
     39 // Preferences for AMO integration
     40 pref("extensions.getAddons.cache.enabled", true);
     41 pref("extensions.getAddons.get.url", "https://services.addons.mozilla.org/api/v4/addons/search/?guid=%IDS%&lang=%LOCALE%");
     42 pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/firefox/search?q=%TERMS%&platform=%OS%&appver=%VERSION%");
     43 pref("extensions.getAddons.link.url", "https://addons.mozilla.org/%LOCALE%/firefox/");
     44 pref("extensions.getAddons.langpacks.url", "https://services.addons.mozilla.org/api/v4/addons/language-tools/?app=firefox&type=language&appversion=%VERSION%");
     45 pref("extensions.getAddons.discovery.api_url", "https://services.addons.mozilla.org/api/v4/discovery/?lang=%LOCALE%&edition=%DISTRIBUTION%");
     46 pref("extensions.getAddons.browserMappings.url", "https://services.addons.mozilla.org/api/v5/addons/browser-mappings/?browser=%BROWSER%");
     47 
     48 // The URL for the privacy policy related to recommended extensions.
     49 pref("extensions.recommendations.privacyPolicyUrl", "https://www.mozilla.org/privacy/firefox/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_content=privacy-policy-link#addons");
     50 // The URL for Firefox Color, recommended on the theme page in about:addons.
     51 pref("extensions.recommendations.themeRecommendationUrl", "https://color.firefox.com/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_content=theme-footer-link");
     52 
     53 pref("extensions.update.autoUpdateDefault", true);
     54 
     55 // No AUS check for system add-on updates for Tor Browser users.
     56 pref("extensions.systemAddon.update.url", "");
     57 pref("extensions.systemAddon.update.enabled", false);
     58 
     59 // Disable add-ons that are not installed by the user in all scopes by default.
     60 // See the SCOPE constants in AddonManager.sys.mjs for values to use here.
     61 pref("extensions.autoDisableScopes", 15);
     62 // Scopes to scan for changes at startup.
     63 pref("extensions.startupScanScopes", 0);
     64 
     65 pref("extensions.geckoProfiler.acceptedExtensionIds", "geckoprofiler@mozilla.com,quantum-foxfooding@mozilla.com,raptor@mozilla.org");
     66 
     67 
     68 pref("extensions.webextensions.remote", true);
     69 
     70 // Require signed add-ons by default
     71 pref("extensions.langpacks.signatures.required", true);
     72 pref("xpinstall.signatures.required", true);
     73 
     74 // Enable data collection permissions.
     75 pref("extensions.dataCollectionPermissions.enabled", true);
     76 
     77 // Dictionary download preference
     78 pref("browser.dictionaries.download.url", "https://addons.mozilla.org/%LOCALE%/firefox/language-tools/");
     79 
     80 // At startup, should we check to see if the installation
     81 // date is older than some threshold
     82 pref("app.update.checkInstallTime", true);
     83 
     84 // The number of days a binary is permitted to be old without checking is defined in
     85 // firefox-branding.js (app.update.checkInstallTime.days)
     86 
     87 // The minimum delay in seconds for the timer to fire between the notification
     88 // of each consumer of the timer manager.
     89 // minimum=30 seconds, default=120 seconds, and maximum=300 seconds
     90 pref("app.update.timerMinimumDelay", 120);
     91 
     92 // The minimum delay in milliseconds for the first firing after startup of the timer
     93 // to notify consumers of the timer manager.
     94 // minimum=10 seconds, default=30 seconds, and maximum=120 seconds
     95 pref("app.update.timerFirstInterval", 30000);
     96 
     97 // App-specific update preferences
     98 
     99 // The interval to check for updates (app.update.interval) is defined in
    100 // firefox-branding.js
    101 
    102 // Enables some extra Application Update Logging (can reduce performance)
    103 pref("app.update.log", false);
    104 // Causes Application Update Logging to be sent to a file in the profile
    105 // directory. This preference is automatically disabled on application start to
    106 // prevent it from being left on accidentally. Turning this pref on enables
    107 // logging, even if app.update.log is false.
    108 pref("app.update.log.file", false);
    109 
    110 // The number of general background check failures to allow before notifying the
    111 // user of the failure. User initiated update checks always notify the user of
    112 // the failure.
    113 pref("app.update.backgroundMaxErrors", 10);
    114 
    115 // How many times we should let downloads fail before prompting the user to
    116 // download a fresh installer.
    117 pref("app.update.download.maxAttempts", 2);
    118 
    119 // How many times we should let an elevation prompt fail before prompting the user to
    120 // download a fresh installer.
    121 pref("app.update.elevate.maxAttempts", 2);
    122 
    123 #ifdef NIGHTLY_BUILD
    124  // Whether to delay popup notifications when an update is available and
    125  // suppress them when an update is installed and waiting for user to restart.
    126  // If set to true, these notifications will immediately be shown as banners in
    127  // the app menu and as badges on the app menu button. Update available
    128  // notifications will not create popup prompts until a week has passed without
    129  // the user installing the update. Update restart notifications will not
    130  // create popup prompts at all. This doesn't affect update notifications
    131  // triggered by errors/failures or manual install prompts.
    132  pref("app.update.suppressPrompts", false);
    133 #endif
    134 
    135 // If set to true, a message will be displayed in the hamburger menu while
    136 // an update is being downloaded.
    137 pref("app.update.notifyDuringDownload", false);
    138 
    139 // If set to true, the Update Service will automatically download updates if the
    140 // user can apply updates. This pref is no longer used on Windows, except as the
    141 // default value to migrate to the new location that this data is now stored
    142 // (which is in a file in the update directory). Because of this, this pref
    143 // should no longer be used directly. Instead, getAppUpdateAutoEnabled and
    144 // getAppUpdateAutoEnabled from UpdateUtils.sys.mjs should be used.
    145 #ifndef XP_WIN
    146  pref("app.update.auto", true);
    147 #endif
    148 
    149 // If set to true, the Update Service will apply updates in the background
    150 // when it finishes downloading them.
    151 pref("app.update.staging.enabled", true);
    152 
    153 // Update service URL:
    154 // app.update.url was removed in Bug 1568994
    155 // app.update.url.manual is in branding section
    156 // app.update.url.details is in branding section
    157 
    158 // app.update.badgeWaitTime is in branding section
    159 // app.update.interval is in branding section
    160 // app.update.promptWaitTime is in branding section
    161 
    162 // Whether or not to attempt using the service for updates.
    163 #ifdef MOZ_MAINTENANCE_SERVICE
    164  pref("app.update.service.enabled", true);
    165 #endif
    166 
    167 #ifdef MOZ_BITS_DOWNLOAD
    168  // If set to true, the Update Service will attempt to use Windows BITS to
    169  // download updates and will fallback to downloading internally if that fails.
    170  pref("app.update.BITS.enabled", true);
    171 #endif
    172 
    173 pref("app.update.langpack.enabled", true);
    174 
    175 #if defined(MOZ_UPDATE_AGENT)
    176  pref("app.update.background.loglevel", "error");
    177  pref("app.update.background.timeoutSec", 600);
    178  // By default, check for updates when the browser is not running every 7 hours.
    179  pref("app.update.background.interval", 25200);
    180  // By default, snapshot Firefox Messaging System targeting for use by the
    181  // background update task every 60 minutes.
    182  pref("app.update.background.messaging.targeting.snapshot.intervalSec", 3600);
    183  // For historical reasons, the background update process requires the Mozilla
    184  // Maintenance Service to be available and enabled via the service registry
    185  // key.  When this value is `true`, allow the background update process to
    186  // update unelevated installations (that are writeable, etc).
    187  //
    188  // N.b. This feature impacts the `applications: firefox_desktop` Nimbus
    189  // application ID (and not the `firefox_desktop_background_task` application
    190  // ID).  However, the pref will be automatically mirrored to the background
    191  // update task profile. This means that experiments and enrollment impact the
    192  // Firefox Desktop browsing profile that _schedules_ the background update
    193  // task, and then the background update task collects telemetry in accordance
    194  // with the mirrored pref.
    195  pref("app.update.background.allowUpdatesForUnelevatedInstallations", false);
    196 #endif
    197 
    198 #ifdef XP_MACOSX
    199  // If set to true, Firefox will automatically restart if it is left running
    200  // with no browser windows open.
    201  pref("app.update.noWindowAutoRestart.enabled", true);
    202  // How long to wait after all browser windows are closed before restarting,
    203  // in milliseconds. 5 min = 300000 ms
    204  pref("app.update.noWindowAutoRestart.delayMs", 300000);
    205 #endif
    206 
    207 #if defined(MOZ_BACKGROUNDTASKS)
    208  // The amount of time, in seconds, before background tasks time out and exit.
    209  // Tasks can override this default (10 minutes).
    210  pref("toolkit.backgroundtasks.defaultTimeoutSec", 600);
    211 
    212  #if defined(ENABLE_TESTS)
    213    // Test prefs to verify background tasks inheret and override browser prefs
    214    // correctly.
    215    pref("toolkit.backgroundtasks.tests.browserPrefsInherited", 15);
    216    pref("toolkit.backgroundtasks.tests.browserPrefsOverriden", 16);
    217  #endif
    218 #endif
    219 
    220 // Symmetric (can be overridden by individual extensions) update preferences.
    221 // e.g.
    222 //  extensions.{GUID}.update.enabled
    223 //  extensions.{GUID}.update.url
    224 //  .. etc ..
    225 //
    226 pref("extensions.update.enabled", true);
    227 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%&currentAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%");
    228 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%&currentAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%");
    229 pref("extensions.update.interval", 86400);  // Check for updates to Extensions and
    230                                            // Themes every day
    231 
    232 pref("lightweightThemes.getMoreURL", "https://addons.mozilla.org/%LOCALE%/firefox/themes");
    233 
    234 #if defined(MOZ_WIDEVINE_EME)
    235  pref("browser.eme.ui.enabled", true);
    236 #else
    237  pref("browser.eme.ui.enabled", false);
    238 #endif
    239 
    240 // UI tour experience.
    241 pref("browser.uitour.enabled", true);
    242 pref("browser.uitour.loglevel", "Error");
    243 pref("browser.uitour.url", "https://www.mozilla.org/%LOCALE%/firefox/%VERSION%/tour/");
    244 // How long to show a Hearbeat survey (two hours, in seconds)
    245 pref("browser.uitour.surveyDuration", 7200);
    246 
    247 #ifdef UNIX_BUT_NOT_MAC
    248  pref("general.autoScroll", false);
    249 #else
    250  pref("general.autoScroll", true);
    251 #endif
    252 
    253 // UI density of the browser chrome. This mostly affects toolbarbutton
    254 // and urlbar spacing. The possible values are 0=normal, 1=compact, 2=touch.
    255 pref("browser.uidensity", 0);
    256 // Whether Firefox will automatically override the uidensity to "touch"
    257 // while the user is in a touch environment (such as Windows tablet mode).
    258 pref("browser.touchmode.auto", true);
    259 // Whether Firefox will show the Compact Mode UIDensity option.
    260 pref("browser.compactmode.show", false);
    261 
    262 // At startup, check if we're the default browser and prompt user if not.
    263 pref("browser.shell.checkDefaultBrowser", true);
    264 pref("browser.shell.shortcutFavicons",true);
    265 pref("browser.shell.mostRecentDateSetAsDefault", "");
    266 pref("browser.shell.skipDefaultBrowserCheckOnFirstRun", true);
    267 pref("browser.shell.didSkipDefaultBrowserCheckOnFirstRun", false);
    268 pref("browser.shell.defaultBrowserCheckCount", 0);
    269 #if defined(XP_WIN)
    270 // Attempt to set the default browser on Windows 10 using the UserChoice registry keys,
    271 // before falling back to launching the modern Settings dialog.
    272 pref("browser.shell.setDefaultBrowserUserChoice", true);
    273 // When setting default via UserChoice, temporarily rename an ancestor registry key to
    274 // prevent kernel drivers from locking the UserChoice subkeys.
    275 pref("browser.shell.setDefaultBrowserUserChoice.regRename", true);
    276 // When setting the default browser on Windows 10 using the UserChoice
    277 // registry keys, also try to set Firefox as the default PDF handler.
    278 pref("browser.shell.setDefaultPDFHandler", true);
    279 // When setting Firefox as the default PDF handler (subject to conditions
    280 // above), only set Firefox as the default PDF handler when the existing handler
    281 // is a known browser, and not when existing handler is another PDF handler such
    282 // as Acrobat Reader or Nitro PDF.
    283 pref("browser.shell.setDefaultPDFHandler.onlyReplaceBrowsers", true);
    284 // Whether or not to we are allowed to prompt the user to set Firefox as their
    285 // default PDF handler.
    286 pref("browser.shell.checkDefaultPDF", true);
    287 // Will be set to `true` if the user indicates that they don't want to be asked
    288 // again about Firefox being their default PDF handler any more.
    289 pref("browser.shell.checkDefaultPDF.silencedByUser", false);
    290 // Whether or not the user should be shown the guidance notifications when
    291 // setting Firefox as their default browser.
    292 pref("browser.shell.setDefaultGuidanceNotifications", true);
    293 #endif
    294 
    295 
    296 // 0 = blank, 1 = home (browser.startup.homepage), 2 = last visited page, 3 = resume previous browser session
    297 // The behavior of option 3 is detailed at: http://wiki.mozilla.org/Session_Restore
    298 pref("browser.startup.page",                1);
    299 pref("browser.startup.homepage",            "about:home");
    300 pref("browser.startup.homepage.abouthome_cache.enabled", true);
    301 pref("browser.startup.homepage.abouthome_cache.loglevel", "Warn");
    302 
    303 // Whether we should skip the homepage when opening the first-run page
    304 pref("browser.startup.firstrunSkipsHomepage", true);
    305 
    306 // Whether we should show the session-restore infobar on startup
    307 pref("browser.startup.couldRestoreSession.count", 0);
    308 
    309 // Show an about:blank window as early as possible for quick startup feedback.
    310 // Held to nightly on Linux due to bug 1450626.
    311 // Disabled on Mac because the bouncing dock icon already provides feedback.
    312 #if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) && defined(NIGHTLY_BUILD)
    313  pref("browser.startup.blankWindow", true);
    314 #else
    315  pref("browser.startup.blankWindow", false);
    316 #endif
    317 
    318 // Show a skeleton UI window prior to loading libxul. Only visible for windows
    319 // users as it is not implemented anywhere else.
    320 #if defined(XP_WIN)
    321 pref("browser.startup.preXulSkeletonUI", true);
    322 
    323 // Whether the checkbox to enable Windows launch on login is shown
    324 pref("browser.startup.windowsLaunchOnLogin.enabled", true);
    325 // Whether to show the launch on login infobar notification
    326 pref("browser.startup.windowsLaunchOnLogin.disableLaunchOnLoginPrompt", false);
    327 #endif
    328 
    329 // Show an upgrade dialog on major upgrades.
    330 pref("browser.startup.upgradeDialog.enabled", false);
    331 
    332 pref("browser.chrome.site_icons", true);
    333 // browser.warnOnQuit == false will override all other possible prompts when quitting or restarting
    334 pref("browser.warnOnQuit", true);
    335 
    336 // Whether to warn when quitting when using the shortcut key.
    337 #if defined(XP_WIN)
    338  pref("browser.warnOnQuitShortcut", false);
    339 #else
    340  pref("browser.warnOnQuitShortcut", true);
    341 #endif
    342 
    343 // TODO bug 1702563: Renable fullscreen autohide by default on macOS.
    344 #ifdef XP_MACOSX
    345  pref("browser.fullscreen.autohide", false);
    346 #else
    347  pref("browser.fullscreen.autohide", true);
    348 #endif
    349 
    350 pref("browser.overlink-delay", 80);
    351 
    352 #if defined(XP_WIN)
    353  pref("browser.taskbarTabs.enabled", true);
    354 #else
    355  pref("browser.taskbarTabs.enabled", false);
    356 #endif
    357 
    358 // Whether using `ctrl` when hitting return/enter in the URL bar
    359 // (or clicking 'go') should prefix 'www.' and suffix
    360 // browser.fixup.alternate.suffix to the URL bar value prior to
    361 // navigating.
    362 pref("browser.urlbar.ctrlCanonizesURLs", true);
    363 
    364 // Whether we announce to screen readers when tab-to-search results are
    365 // inserted.
    366 pref("browser.urlbar.accessibility.tabToSearch.announceResults", true);
    367 
    368 // Control autoFill behavior
    369 pref("browser.urlbar.autoFill", true);
    370 
    371 // Whether enabling adaptive history autofill.
    372 pref("browser.urlbar.autoFill.adaptiveHistory.enabled", false);
    373 
    374 // Minimum char length of the user's search string to enable adaptive history
    375 // autofill.
    376 pref("browser.urlbar.autoFill.adaptiveHistory.minCharsThreshold", 0);
    377 
    378 // Set default suggest intent threshold value of 0.5
    379 pref("browser.urlbar.intentThreshold", "0.5");
    380 
    381 // Set default NER threshold value of 0.5
    382 pref("browser.urlbar.nerThreshold", "0.5");
    383 
    384 // Whether to warm up network connections for autofill or search results.
    385 pref("browser.urlbar.speculativeConnect.enabled", true);
    386 
    387 // Whether bookmarklets should be filtered out of Address Bar matches.
    388 // This is enabled for security reasons, when true it is still possible to
    389 // search for bookmarklets typing "javascript: " followed by the actual query.
    390 pref("browser.urlbar.filter.javascript", true);
    391 
    392 // Focus the content document when pressing the Escape key, if there's no
    393 // remaining typed history.
    394 pref("browser.urlbar.focusContentDocumentOnEsc", true);
    395 
    396 // Enable a certain level of urlbar logging to the Browser Console. See
    397 // ConsoleInstance.webidl.
    398 pref("browser.urlbar.loglevel", "Error");
    399 
    400 // the maximum number of results to show in autocomplete when doing richResults
    401 pref("browser.urlbar.maxRichResults", 10);
    402 
    403 // The maximum number of historical search results to show.
    404 pref("browser.urlbar.maxHistoricalSearchSuggestions", 2);
    405 
    406 // The default behavior for the urlbar can be configured to use any combination
    407 // of the match filters with each additional filter adding more results (union).
    408 pref("browser.urlbar.suggest.bookmark",             true);
    409 pref("browser.urlbar.suggest.clipboard",            true);
    410 pref("browser.urlbar.suggest.history",              true);
    411 pref("browser.urlbar.suggest.openpage",             true);
    412 pref("browser.urlbar.suggest.remotetab",            true);
    413 pref("browser.urlbar.suggest.searches",             true);
    414 pref("browser.urlbar.suggest.topsites",             true);
    415 pref("browser.urlbar.suggest.engines",              true);
    416 pref("browser.urlbar.suggest.calculator",           true);
    417 pref("browser.urlbar.suggest.recentsearches",       true);
    418 pref("browser.urlbar.suggest.quickactions",         true);
    419 
    420 pref("browser.urlbar.allowSearchSuggestionsForSimpleOrigins", true);
    421 
    422 pref("browser.urlbar.deduplication.enabled", true);
    423 pref("browser.urlbar.deduplication.thresholdDays", 0);
    424 
    425 pref("browser.urlbar.scotchBonnet.enableOverride", true);
    426 
    427 #ifdef NIGHTLY_BUILD
    428 pref("browser.urlbar.trustPanel.featureGate", true);
    429 #else
    430 pref("browser.urlbar.trustPanel.featureGate", false);
    431 #endif
    432 
    433 // Once Perplexity has entered search mode at least once,
    434 // we no longer show the Perplexity onboarding callout.
    435 // This pref will be set to true when perplexity search mode is detected.
    436 pref("browser.urlbar.perplexity.hasBeenInSearchMode", false);
    437 
    438 // Whether or not Unified Search Button is shown always.
    439 pref("browser.urlbar.unifiedSearchButton.always", false);
    440 
    441 // Enable trending suggestions and recent searches.
    442 pref("browser.urlbar.trending.featureGate", true);
    443 pref("browser.urlbar.trending.requireSearchMode", false);
    444 pref("browser.urlbar.recentsearches.featureGate", true);
    445 
    446 // Enable Rich Entities.
    447 pref("browser.urlbar.richSuggestions.featureGate", true);
    448 
    449 // Feature gate pref for weather suggestions in the urlbar.
    450 pref("browser.urlbar.weather.featureGate", false);
    451 
    452 // Enable clipboard suggestions feature, the pref should be removed once stable.
    453 pref("browser.urlbar.clipboard.featureGate", false);
    454 
    455 // The minimum prefix length of a weather keyword the user must type to trigger
    456 // the suggestion. 0 means the min length should be taken from Nimbus or remote
    457 // settings.
    458 pref("browser.urlbar.weather.minKeywordLength", 0);
    459 
    460 // The UI treatment to use for weather suggestions. Possible values:
    461 // 0: (default) Simplest UI with current temperature and location
    462 // 1: Simpler UI, adds current conditions, high/low, and URL
    463 // 2: Full UI, adds forecast
    464 pref("browser.urlbar.weather.uiTreatment", 0);
    465 
    466 // If `browser.urlbar.weather.featureGate` is true, this controls whether
    467 // weather suggestions are turned on.
    468 pref("browser.urlbar.suggest.weather", true);
    469 
    470 // If `browser.urlbar.trending.featureGate` is true, this controls whether
    471 // trending suggestions are turned on.
    472 pref("browser.urlbar.suggest.trending", true);
    473 
    474 // Whether results that are part of the Firefox Suggest brand are shown in the
    475 // urlbar. This pref is exposed to the user in the UI, and it's sticky so that
    476 // its user-branch value persists regardless of whatever Firefox Suggest
    477 // scenarios, with their various default-branch values, the user is enrolled in
    478 // over time.
    479 pref("browser.urlbar.suggest.quicksuggest.all", false, sticky);
    480 
    481 // Whether non-sponsored quick suggest results are shown in the urlbar. This
    482 // pref is exposed to the user in the UI, and it's sticky so that its
    483 // user-branch value persists regardless of whatever Firefox Suggest scenarios,
    484 // with their various default-branch values, the user is enrolled in over time.
    485 pref("browser.urlbar.suggest.quicksuggest.nonsponsored", false, sticky);
    486 
    487 // Whether sponsored quick suggest results are shown in the urlbar. This pref is
    488 // exposed to the user in the UI, and it's sticky so that its user-branch value
    489 // persists regardless of whatever Firefox Suggest scenarios, with their various
    490 // default-branch values, the user is enrolled in over time.
    491 pref("browser.urlbar.suggest.quicksuggest.sponsored", false, sticky);
    492 
    493 // Whether online Firefox Suggest is available to the user. This is only
    494 // relevant when Suggest overall is enabled [1]. When true, a checkbox will be
    495 // shown in the settings UI allowing to the user to toggle online Suggest.
    496 //
    497 // [1] browser.urlbar.quicksuggest.enabled
    498 pref("browser.urlbar.quicksuggest.online.available", false);
    499 
    500 // Whether Firefox Suggest retrieves online suggestions from Merino. This pref
    501 // is only relevant when Suggest overall is enabled [1] and online Suggest is
    502 // available to the user [2]; otherwise online suggestions are disabled. In
    503 // addition, when the relevant Oblivious HTTP (OHTTP) prefs [3, 4] are set,
    504 // online suggestions will be fetched over OHTTP.
    505 //
    506 // This pref corresponds to the online Suggest checkbox in the settings UI. It's
    507 // sticky so that user choice is preserved regardless of its default value.
    508 //
    509 // [1] browser.urlbar.quicksuggest.enabled
    510 // [2] browser.urlbar.quicksuggest.online.available
    511 // [3] browser.urlbar.merino.ohttpConfigURL
    512 // [4] browser.urlbar.merino.ohttpRelayURL
    513 pref("browser.urlbar.quicksuggest.online.enabled", true, sticky);
    514 
    515 // Whether the Firefox Suggest contextual opt-in result is enabled.
    516 pref("browser.urlbar.quicksuggest.contextualOptIn", false);
    517 
    518 // Number that the user dismissed the Firefox Suggest contextual opt-in result.
    519 pref("browser.urlbar.quicksuggest.contextualOptIn.dismissedCount", 0);
    520 
    521 // Period until reshow the Firefox Suggest contextual opt-in result when first dismissed.
    522 pref("browser.urlbar.quicksuggest.contextualOptIn.firstReshowAfterPeriodDays", 7);
    523 
    524 // Period until reshow the Firefox Suggest contextual opt-in result when second dismissed.
    525 pref("browser.urlbar.quicksuggest.contextualOptIn.secondReshowAfterPeriodDays", 14);
    526 
    527 // Period until reshow the Firefox Suggest contextual opt-in result when third dismissed.
    528 pref("browser.urlbar.quicksuggest.contextualOptIn.thirdReshowAfterPeriodDays", 60);
    529 
    530 // Number of impression for the Firefox Suggest contextual opt-in result.
    531 pref("browser.urlbar.quicksuggest.contextualOptIn.impressionCount", 0);
    532 
    533 // Limit for impression to dismiss the Firefox Suggest contextual opt-in result.
    534 pref("browser.urlbar.quicksuggest.contextualOptIn.impressionLimit", 20);
    535 
    536 // Days until dismiss the Firefox Suggest contextual opt-in result after first impression.
    537 pref("browser.urlbar.quicksuggest.contextualOptIn.impressionDaysLimit", 5);
    538 
    539 // Whether the quick suggest feature in the urlbar is enabled.
    540 pref("browser.urlbar.quicksuggest.enabled", false);
    541 
    542 // Ranking mode of QuickSuggest. Currently used for relevance ranking
    543 // experimentation. It can be any of "default", "interest", and "random".
    544 pref("browser.urlbar.quicksuggest.rankingMode", "default");
    545 
    546 // Whether Firefox Suggest will use the new Rust backend instead of the original
    547 // JS backend.
    548 pref("browser.urlbar.quicksuggest.rustEnabled", true);
    549 
    550 // The index of sponsored Firefox Suggest results within the Firefox Suggest
    551 // section when "Show search suggestions ahead of browsing history in address bar
    552 // results" is checked. When not checked, the index is hardcoded as -1. Negative
    553 // indexes are relative to the end of the section.
    554 pref("browser.urlbar.quicksuggest.sponsoredIndex", 0);
    555 pref("browser.urlbar.quicksuggest.nonSponsoredIndex", -1);
    556 
    557 // Whether non-sponsored quick suggest results are subject to impression
    558 // frequency caps.
    559 pref("browser.urlbar.quicksuggest.impressionCaps.nonSponsoredEnabled", false);
    560 
    561 // Whether sponsored quick suggest results are subject to impression frequency
    562 // caps.
    563 pref("browser.urlbar.quicksuggest.impressionCaps.sponsoredEnabled", false);
    564 
    565 // When non-zero, this is the character-count threshold (inclusive) for showing
    566 // AMP suggestions as top picks. If an AMP suggestion is triggered by a keyword
    567 // at least this many characters long, it will be shown as a top pick.
    568 pref("browser.urlbar.quicksuggest.ampTopPickCharThreshold", 5);
    569 
    570 // The matching strategy for AMP suggestions. Zero is the usual default
    571 // exact-keyword strategy. Other values are the integers defined on
    572 // `AmpMatchingStrategy` in `RustSuggest.sys.mjs` (corresponding to the
    573 // `AmpMatchingStrategy` enum in the Rust component coerced to a 1-based integer
    574 // value).
    575 pref("browser.urlbar.quicksuggest.ampMatchingStrategy", 0);
    576 
    577 // Comma-separated list of Suggest dynamic suggestion types to enable.
    578 pref("browser.urlbar.quicksuggest.dynamicSuggestionTypes", "");
    579 
    580 // Whether Suggest will use the ML backend in addition to Rust.
    581 pref("browser.urlbar.quicksuggest.mlEnabled", false);
    582 
    583 // How long to wait in seconds after startup before initializing the Suggest ML
    584 // backend.
    585 pref("browser.urlbar.quicksuggest.mlInitDelaySeconds", 0);
    586 
    587 // Which Suggest settings to show in the settings UI, when Suggest is enabled.
    588 // See `QuickSuggest.SETTINGS_UI` for values.
    589 pref("browser.urlbar.quicksuggest.settingsUi", 1);
    590 
    591 // Whether unit conversion is enabled.
    592 pref("browser.urlbar.unitConversion.enabled", true);
    593 
    594 // Whether to show search suggestions before general results like history and
    595 // bookmarks.
    596 pref("browser.urlbar.showSearchSuggestionsFirst", true);
    597 
    598 // As a user privacy measure, don't fetch search suggestions if a pasted string
    599 // is longer than this.
    600 pref("browser.urlbar.maxCharsForSearchSuggestions", 100);
    601 
    602 pref("browser.urlbar.trimURLs", true);
    603 pref("browser.urlbar.trimHttps", false);
    604 pref("browser.urlbar.untrimOnUserInteraction.featureGate", false);
    605 
    606 // If changed to true, copying the entire URL from the location bar will put the
    607 // human readable (percent-decoded) URL on the clipboard.
    608 pref("browser.urlbar.decodeURLsOnCopy", false);
    609 
    610 // Whether or not to move tabs into the active window when using the "Switch to
    611 // Tab" feature of the awesomebar.
    612 pref("browser.urlbar.switchTabs.adoptIntoActiveWindow", false);
    613 
    614 // Controls whether searching for open tabs returns tabs from any container
    615 // or only from the current container.
    616 pref("browser.urlbar.switchTabs.searchAllContainers", true);
    617 
    618 // Whether addresses and search results typed into the address bar
    619 // should be opened in new tabs by default.
    620 pref("browser.urlbar.openintab", false);
    621 
    622 // Allow the result menu button to be reached with the Tab key.
    623 pref("browser.urlbar.resultMenu.keyboardAccessible", true);
    624 
    625 // If true, we show tail suggestions when available.
    626 pref("browser.urlbar.richSuggestions.tail", true);
    627 
    628 // If true, top sites may include sponsored ones.
    629 pref("browser.urlbar.sponsoredTopSites", false);
    630 
    631 // Global toggle for whether the show search terms feature
    632 // can be used at all, and enabled/disabled by the user.
    633 pref("browser.urlbar.showSearchTerms.featureGate", false);
    634 
    635 // If true, show the search term in the Urlbar while on
    636 // a default search engine results page.
    637 pref("browser.urlbar.showSearchTerms.enabled", true);
    638 
    639 // Whether the urlbar displays one-offs to filter searches to history,
    640 // bookmarks, or tabs.
    641 pref("browser.urlbar.shortcuts.bookmarks", true);
    642 pref("browser.urlbar.shortcuts.tabs", true);
    643 pref("browser.urlbar.shortcuts.history", true);
    644 
    645 // When we send events to Urlbar extensions, we wait this amount of time in
    646 // milliseconds for them to respond before timing out.
    647 pref("browser.urlbar.extension.timeout", 400);
    648 
    649 // Controls when to DNS resolve single word search strings, after they were
    650 // searched for. If the string is resolved as a valid host, show a
    651 // "Did you mean to go to 'host'" prompt.
    652 // 0 - never resolve; 1 - use heuristics (default); 2 - always resolve
    653 pref("browser.urlbar.dnsResolveSingleWordsAfterSearch", 0);
    654 
    655 // Whether the results panel should be kept open during IME composition.
    656 // The default value is false because some IME open a picker panel, and we end
    657 // up with two panels on top of each other. Since for now we can't detect that
    658 // we leave this choice to the user, hopefully in the future this can be flipped
    659 // for everyone.
    660 pref("browser.urlbar.keepPanelOpenDuringImeComposition", false);
    661 
    662 // Whether Firefox Suggest group labels are shown in the urlbar view.
    663 pref("browser.urlbar.groupLabels.enabled", true);
    664 
    665 // The Merino endpoint URL, not including parameters.
    666 pref("browser.urlbar.merino.endpointURL", "https://merino.services.mozilla.com/api/v1/suggest");
    667 
    668 // Timeout for Merino fetches (ms).
    669 pref("browser.urlbar.merino.timeoutMs", 200);
    670 
    671 // Comma-separated list of providers to request from Merino
    672 pref("browser.urlbar.merino.providers", "");
    673 
    674 // Comma-separated list of client variants to send to Merino
    675 pref("browser.urlbar.merino.clientVariants", "");
    676 
    677 // OHTTP config URL for Merino requests
    678 pref("browser.urlbar.merino.ohttpConfigURL", "");
    679 
    680 // OHTTP relay URL for Merino requests
    681 pref("browser.urlbar.merino.ohttpRelayURL", "");
    682 
    683 // OHTTP hpke for DAP
    684 pref("dap.ohttp.hpke", "gAAgJSO22Y3HKzRSese15JtQVuuFfOIcTrZ56lQ5kDQwS0oABAABAAE");
    685 
    686 // OHTTP relay URL for DAP
    687 pref("dap.ohttp.relayURL", "https://mozilla-ohttp-dap.mozilla.fastly-edge.com/");
    688 
    689 // Enable site specific search result.
    690 pref("browser.urlbar.contextualSearch.enabled", true);
    691 
    692 // Feature gate pref for addon suggestions in the urlbar.
    693 pref("browser.urlbar.addons.featureGate", false);
    694 
    695 // Feature gate pref for semanticHistory
    696 #if defined(EARLY_BETA_OR_EARLIER) || defined(MOZ_DEV_EDITION)
    697 pref("places.semanticHistory.featureGate", true);
    698 #else
    699 pref("places.semanticHistory.featureGate", false);
    700 #endif
    701 pref("places.semanticHistory.supportedRegions", "[[\"AU\",[\"en-*\"]],[\"CA\",[\"en-*\"]],[\"GB\",[\"en-*\"]],[\"IE\",[\"en-*\"]],[\"NZ\",[\"en-*\"]],[\"PH\",[\"en-*\"]],[\"US\",[\"en-*\"]]]");
    702 
    703 // Minimum length threshold for semantic history search
    704 pref("browser.urlbar.suggest.semanticHistory.minLength", 5);
    705 
    706 // If `browser.urlbar.addons.featureGate` is true, this controls whether
    707 // addons suggestions are turned on.
    708 pref("browser.urlbar.suggest.addons", true);
    709 
    710 // Feature gate pref for MDN suggestions in the urlbar.
    711 pref("browser.urlbar.mdn.featureGate", false);
    712 
    713 // If `browser.urlbar.mdn.featureGate` is true, this controls whether
    714 // mdn suggestions are turned on.
    715 pref("browser.urlbar.suggest.mdn", true);
    716 
    717 // Feature gate pref for Yelp suggestions in the urlbar.
    718 pref("browser.urlbar.yelp.featureGate", false);
    719 
    720 // The minimum prefix length of a Yelp keyword the user must type to trigger the
    721 // suggestion. 0 means the min length should be taken from Nimbus.
    722 pref("browser.urlbar.yelp.minKeywordLength", 4);
    723 
    724 // Whether Yelp suggestions should be shown as top picks.
    725 pref("browser.urlbar.yelp.priority", false);
    726 
    727 // Whether Yelp suggestions will be served from the Suggest ML backend instead
    728 // of Rust.
    729 pref("browser.urlbar.yelp.mlEnabled", false);
    730 
    731 // Whether to distinguish service type subjects. If true, we show special titile
    732 // for the suggestion.
    733 pref("browser.urlbar.yelp.serviceResultDistinction", false);
    734 
    735 // If `browser.urlbar.yelp.featureGate` is true, this controls whether
    736 // Yelp suggestions are turned on.
    737 pref("browser.urlbar.suggest.yelp", true);
    738 
    739 // Feature gate pref for Fakespot suggestions in the urlbar.
    740 // TODO Bug 1982966: Remove this after all experiments and rollouts using it
    741 // finish.
    742 pref("browser.urlbar.fakespot.featureGate", false);
    743 
    744 // The minimum prefix length of addons keyword the user must type to trigger
    745 // the suggestion. 0 means the min length should be taken from Nimbus.
    746 pref("browser.urlbar.addons.minKeywordLength", 0);
    747 
    748 // Feature gate pref for AMP suggestions in the urlbar.
    749 pref("browser.urlbar.amp.featureGate", false);
    750 
    751 // If `browser.urlbar.amp.featureGate` is true, this controls whether AMP
    752 // suggestions are turned on.
    753 pref("browser.urlbar.suggest.amp", true);
    754 
    755 // Feature gate pref for Wikipedia suggestions in the urlbar (part of Firefox
    756 // Suggest).
    757 pref("browser.urlbar.wikipedia.featureGate", false);
    758 
    759 // If `browser.urlbar.wikipedia.featureGate` is true, this controls whether
    760 // Wikipedia suggestions are turned on.
    761 pref("browser.urlbar.suggest.wikipedia", true);
    762 
    763 // Controls whether realtime opt-in suggestions are turned on.
    764 pref("browser.urlbar.suggest.realtimeOptIn", true);
    765 
    766 // Feature gate pref for stock market suggestions in the urlbar.
    767 pref("browser.urlbar.market.featureGate", false);
    768 
    769 // The minimum prefix length of a market keyword the user must type to trigger
    770 // the suggestion. 0 means the min length should be taken from Nimbus or remote
    771 // settings.
    772 pref("browser.urlbar.market.minKeywordLength", 0);
    773 
    774 // Feature gate pref for important-dates suggestions in the urlbar.
    775 pref("browser.urlbar.importantDates.featureGate", false);
    776 
    777 // If `browser.urlbar.importantDates.featureGate` is true, this controls whether
    778 // important-dates suggestions are turned on.
    779 pref("browser.urlbar.suggest.importantDates", true);
    780 
    781 // Feature gate pref for Yelp realtime suggestions in the urlbar.
    782 pref("browser.urlbar.yelpRealtime.featureGate", false);
    783 
    784 // If `browser.urlbar.yelpRealtime.featureGate` is true, this controls whether
    785 // Yelp realtime suggestions are turned on.
    786 pref("browser.urlbar.suggest.yelpRealtime", true);
    787 
    788 // The minimum prefix length of a Yelp keyword the user must type to trigger
    789 // the suggestion. 0 means the min length should be taken from Nimbus or remote
    790 // settings.
    791 pref("browser.urlbar.yelpRealtime.minKeywordLength", 0);
    792 
    793 // Feature gate pref for flight status suggestions in the urlbar.
    794 pref("browser.urlbar.flightStatus.featureGate", false);
    795 
    796 // Feature gate pref for sports suggestions in the urlbar.
    797 pref("browser.urlbar.sports.featureGate", false);
    798 
    799 // If `browser.urlbar.sports.featureGate` is true, this controls whether sports
    800 // suggestions are turned on.
    801 pref("browser.urlbar.suggest.sports", true);
    802 
    803 // Timestamp of the time the user last performed a search via the urlbar
    804 // so that experiments can target users who have / have not performed
    805 // urlbar searches.
    806 pref("browser.urlbar.lastUrlbarSearchSeconds", 0);
    807 
    808 pref("browser.altClickSave", false);
    809 
    810 // Number of milliseconds to wait for the http headers (and thus
    811 // the Content-Disposition filename) before giving up and falling back to
    812 // picking a filename without that info in hand so that the user sees some
    813 // feedback from their action.
    814 pref("browser.download.saveLinkAsFilenameTimeout", 4000);
    815 
    816 pref("browser.download.useDownloadDir", true);
    817 pref("browser.download.folderList", 1);
    818 pref("browser.download.manager.addToRecentDocs", true);
    819 pref("browser.download.manager.resumeOnWakeDelay", 10000);
    820 
    821 // This records whether or not the panel has been shown at least once.
    822 pref("browser.download.panel.shown", false);
    823 
    824 // This records whether or not to show the 'Open in system viewer' context menu item when appropriate
    825 pref("browser.download.openInSystemViewerContextMenuItem", true);
    826 
    827 // This records whether or not to show the 'Always open...' context menu item when appropriate
    828 pref("browser.download.alwaysOpenInSystemViewerContextMenuItem", true);
    829 
    830 // Open downloaded file types internally for the given types.
    831 // This is a comma-separated list, the empty string ("") means no types are
    832 // viewable internally.
    833 pref("browser.download.viewableInternally.enabledTypes", "xml,svg,webp,avif,jxl");
    834 
    835 
    836 // This controls whether the button is automatically shown/hidden depending
    837 // on whether there are downloads to show.
    838 pref("browser.download.autohideButton", true);
    839 
    840 // Controls whether to open the downloads panel every time a download begins.
    841 // The first download ever run in a new profile will still open the panel.
    842 pref("browser.download.alwaysOpenPanel", true);
    843 
    844 // Determines the behavior of the "Delete" item in the downloads context menu.
    845 // Valid values are 0, 1, and 2.
    846 //   0 - Don't remove the download from session list or history.
    847 //   1 - Remove the download from session list, but not history.
    848 //   2 - Remove the download from both session list and history.
    849 pref("browser.download.clearHistoryOnDelete", 0);
    850 
    851 #ifndef XP_MACOSX
    852  pref("browser.helperApps.deleteTempFileOnExit", true);
    853 #endif
    854 
    855 // This controls the visibility of the radio button in the
    856 // Unknown Content Type (Helper App) dialog that will open
    857 // the content in the browser for PDF and for other
    858 // Viewable Internally types
    859 // (see browser.download.viewableInternally.enabledTypes)
    860 pref("browser.helperApps.showOpenOptionForPdfJS", true);
    861 pref("browser.helperApps.showOpenOptionForViewableInternally", true);
    862 
    863 // search engines URL
    864 pref("browser.search.searchEnginesURL",      "https://addons.mozilla.org/%LOCALE%/firefox/search-engines/");
    865 
    866 // search bar results always open in a new tab
    867 pref("browser.search.openintab", false);
    868 
    869 // context menu searches open in the foreground
    870 pref("browser.search.context.loadInBackground", false);
    871 
    872 // Enables display of the options for the user using a separate default search
    873 // engine in private browsing mode.
    874 pref("browser.search.separatePrivateDefault.ui.enabled", false);
    875 // The maximum amount of times the private default banner is shown.
    876 pref("browser.search.separatePrivateDefault.ui.banner.max", 0);
    877 
    878 // Enables search SERP telemetry page categorization.
    879 pref("browser.search.serpEventTelemetryCategorization.enabled", true);
    880 
    881 // A count of Glean SERP categorization event metrics that have been recorded
    882 // but not yet submitted in a ping. Needed to prevent sending a ping with only
    883 // experiment info (and not actual SERP categorizations) at startup.
    884 pref("browser.search.serpMetricsRecordedCounter", 0);
    885 
    886 // Search Bar removal from the toolbar for users who haven’t used it in 120
    887 // days
    888 pref("browser.search.widget.removeAfterDaysUnused", 120);
    889 
    890 #ifdef NIGHTLY_BUILD
    891 pref("browser.search.widget.new", true);
    892 #else
    893 pref("browser.search.widget.new", false);
    894 #endif
    895 
    896 // The number of times the search function in the URL bar has been used,
    897 // capped at 100.
    898 pref("browser.search.totalSearches", 0);
    899 
    900 // Feature gate for visual search.
    901 pref("browser.search.visualSearch.featureGate", true);
    902 
    903 // Spin the cursor while the page is loading
    904 pref("browser.spin_cursor_while_busy", false);
    905 
    906 // Enable display of contextual-password-manager option in browser sidebar
    907 pref("browser.contextual-password-manager.enabled", true);
    908 
    909 // Whether the user has opted-in to recommended settings for data features.
    910 pref("browser.dataFeatureRecommendations.enabled", false);
    911 
    912 // Use dark theme variant for PBM windows. This is only supported if the theme
    913 // sets darkTheme data.
    914 pref("browser.theme.dark-private-windows", true);
    915 
    916 // Whether to override themes in forced-colors mode and just use the
    917 // system theme and forced-colors palette to style the chrome.
    918 pref("browser.theme.forced-colors-override.enabled", true);
    919 
    920 // Pref to control whether or not Private Browsing windows show up
    921 // as separate icons in the Windows taskbar.
    922 pref("browser.privateWindowSeparation.enabled", true);
    923 
    924 // Controls visibility of the privacy segmentation preferences section.
    925 pref("browser.privacySegmentation.preferences.show", false);
    926 
    927 pref("browser.sessionhistory.max_entries", 50);
    928 
    929 // Built-in default permissions.
    930 pref("permissions.manager.defaultsUrl", "resource://app/defaults/permissions");
    931 
    932 // Set default fallback values for site permissions we want
    933 // the user to be able to globally change.
    934 pref("permissions.default.camera", 0);
    935 pref("permissions.default.microphone", 0);
    936 pref("permissions.default.geo", 0);
    937 pref("permissions.default.localhost", 0);
    938 pref("permissions.default.local-network", 0);
    939 pref("permissions.default.xr", 0);
    940 pref("permissions.default.desktop-notification", 0);
    941 pref("permissions.default.shortcuts", 0);
    942 
    943 pref("permissions.desktop-notification.postPrompt.enabled", true);
    944 pref("permissions.desktop-notification.notNow.enabled", false);
    945 
    946 pref("permissions.fullscreen.allowed", false);
    947 
    948 #ifdef MOZ_WEBRTC
    949  // When users grant camera or microphone through a permission prompt
    950  // and leave "☐ Remember this decision" unchecked, Gecko persists
    951  // their choice to "Always ask" for this permission going forward.
    952  // This is exposed to websites through the permissions.query() API
    953  // as "granted", to ward off well-meaning attempts to further escalate
    954  // permission to always grant, to help sites respect this user choice.
    955  //
    956  // By default, these permissions are only visible in Tools / Page Info.
    957  // But turning this pref on also makes them show up as "Always Ask ✖"
    958  // in the more prominent site permissions dropdown.
    959  pref("permissions.media.show_always_ask.enabled", false);
    960 #endif
    961 
    962 // Force external link opens into the default user context ID instead of guessing
    963 // the most appropriate one based on the URL (https://bugzilla.mozilla.org/show_bug.cgi?id=1874599#c8)
    964 pref("browser.link.force_default_user_context_id_for_external_opens", false);
    965 
    966 // handle links targeting new windows
    967 // 1=current window/tab, 2=new window, 3=new tab in most recent window
    968 pref("browser.link.open_newwindow", 3);
    969 
    970 // handle external links (i.e. links opened from a different application)
    971 // default: use browser.link.open_newwindow
    972 // 1-3: see browser.link.open_newwindow for interpretation
    973 pref("browser.link.open_newwindow.override.external", -1);
    974 
    975 // 0: no restrictions - divert everything
    976 // 1: don't divert window.open at all
    977 // 2: don't divert window.open with features
    978 pref("browser.link.open_newwindow.restriction", 2);
    979 
    980 // If true, this pref causes windows opened by window.open to be forced into new
    981 // tabs (rather than potentially opening separate windows, depending on
    982 // window.open arguments) when the browser is in fullscreen mode.
    983 // We set this differently on Mac because the fullscreen implementation there is
    984 // different.
    985 #ifdef XP_MACOSX
    986  pref("browser.link.open_newwindow.disabled_in_fullscreen", true);
    987 #else
    988  pref("browser.link.open_newwindow.disabled_in_fullscreen", false);
    989 #endif
    990 
    991 // If true, opening javscript: URLs using middle-click, CTRL+click etc. are blocked.
    992 pref("browser.link.alternative_click.block_javascript", true);
    993 
    994 // Tabbed browser
    995 pref("browser.tabs.closeTabByDblclick", false);
    996 pref("browser.tabs.closeWindowWithLastTab", true);
    997 pref("browser.tabs.allowTabDetach", true);
    998 // Open related links to a tab, e.g., link in current tab, at next to the
    999 // current tab if |insertRelatedAfterCurrent| is true.  Otherwise, always
   1000 // append new tab to the end.
   1001 pref("browser.tabs.insertRelatedAfterCurrent", true);
   1002 // Open all links, e.g., bookmarks, history items at next to current tab
   1003 // if |insertAfterCurrent| is true.  Otherwise, append new tab to the end
   1004 // for non-related links. Note that if this is set to true, it will trump
   1005 // the value of browser.tabs.insertRelatedAfterCurrent.
   1006 pref("browser.tabs.insertAfterCurrent", false);
   1007 // When |insertRelatedAfterCurrent| is true opening a link from a pinned tab
   1008 // results in the tabbar scrolling back to the beginning. Setting
   1009 // |insertAfterCurrentExceptPinned| to true will add tabs at the end of the
   1010 // tabbar.
   1011 pref("browser.tabs.insertAfterCurrentExceptPinned", false);
   1012 pref("browser.tabs.warnOnClose", false);
   1013 pref("browser.tabs.warnOnCloseOtherTabs", true);
   1014 pref("browser.tabs.warnOnOpen", true);
   1015 pref("browser.tabs.maxOpenBeforeWarn", 15);
   1016 pref("browser.tabs.loadDivertedInBackground", false);
   1017 pref("browser.tabs.loadBookmarksInBackground", false);
   1018 pref("browser.tabs.loadBookmarksInTabs", false);
   1019 pref("browser.tabs.tabClipWidth", 140);
   1020 pref("browser.tabs.tabMinWidth", 76);
   1021 // Users running in any of the following language codes will have the
   1022 // secondary text on tabs hidden due to size constraints and readability
   1023 // of the text at small font sizes.
   1024 pref("browser.tabs.secondaryTextUnsupportedLocales", "ar,bn,bo,ckb,fa,gu,he,hi,ja,km,kn,ko,lo,mr,my,ne,pa,si,ta,te,th,ur,zh");
   1025 
   1026 // When tabs opened by links in other tabs via a combination of
   1027 // browser.link.open_newwindow being set to 3 and target="_blank" etc are
   1028 // closed:
   1029 // true   return to the tab that opened this tab (its owner)
   1030 // false  return to the adjacent tab (old default)
   1031 pref("browser.tabs.selectOwnerOnClose", true);
   1032 
   1033 // This should match Chromium's audio indicator delay.
   1034 pref("browser.tabs.delayHidingAudioPlayingIconMS", 3000);
   1035 
   1036 // Pref to control whether we use a separate privileged content process
   1037 // for about: pages. This pref name did not age well: we will have multiple
   1038 // types of privileged content processes, each with different privileges.
   1039 // types of privleged content processes, each with different privleges.
   1040 pref("browser.tabs.remote.separatePrivilegedContentProcess", true);
   1041 
   1042 #if defined(NIGHTLY_BUILD) && !defined(MOZ_ASAN)
   1043  // This pref will cause assertions when a remoteType triggers a process switch
   1044  // to a new remoteType it should not be able to trigger.
   1045  pref("browser.tabs.remote.enforceRemoteTypeRestrictions", true);
   1046 #endif
   1047 
   1048 // Pref to control whether we use a separate privileged content process
   1049 // for certain mozilla webpages (which are listed in the pref
   1050 // browser.tabs.remote.separatedMozillaDomains).
   1051 pref("browser.tabs.remote.separatePrivilegedMozillaWebContentProcess", true);
   1052 
   1053 #ifdef NIGHTLY_BUILD
   1054 pref("browser.tabs.tooltipsShowPidAndActiveness", true);
   1055 #else
   1056 pref("browser.tabs.tooltipsShowPidAndActiveness", false);
   1057 #endif
   1058 
   1059 pref("browser.tabs.hoverPreview.enabled", true);
   1060 pref("browser.tabs.hoverPreview.showThumbnails", true);
   1061 
   1062 pref("browser.tabs.groups.enabled", true);
   1063 pref("browser.tabs.groups.hoverPreview.enabled", true);
   1064 
   1065 pref("browser.tabs.groups.smart.enabled", true);
   1066 
   1067 #ifdef NIGHTLY_BUILD
   1068 pref("browser.tabs.notes.enabled", true);
   1069 #else
   1070 pref("browser.tabs.notes.enabled", false);
   1071 #endif
   1072 
   1073 // KMEANS_WITH_ANCHOR or NEAREST_NEIGHBOR or LOGISTIC_REGRESSION
   1074 pref("browser.tabs.groups.smart.suggestOtherTabsMethod", "LOGISTIC_REGRESSION");
   1075 pref("browser.tabs.groups.smart.topicModelRevision", "latest");
   1076 pref("browser.tabs.groups.smart.embeddingModelRevision", "latest");
   1077 // value should be <= 1000 to be correctly converted (275 -> 0.275)
   1078 pref("browser.tabs.groups.smart.nearestNeighborThresholdInt", 275);
   1079 pref("browser.tabs.groups.smart.optin", false);
   1080 
   1081 pref("browser.tabs.dragDrop.createGroup.delayMS", 240);
   1082 pref("browser.tabs.dragDrop.expandGroup.delayMS", 350);
   1083 pref("browser.tabs.dragDrop.selectTab.delayMS", 350);
   1084 pref("browser.tabs.dragDrop.pinInteractionCue.delayMS", 500);
   1085 pref("browser.tabs.dragDrop.moveOverThresholdPercent", 80);
   1086 pref("browser.tabs.dragDrop.multiselectStacking", true);
   1087 
   1088 pref("browser.tabs.firefox-view.logLevel", "Warn");
   1089 
   1090 // Special case to use search term when making a group from a single page search
   1091 pref("browser.tabs.groups.smart.searchTopicEnabled", true);
   1092 
   1093 pref("browser.tabs.groups.smart.userEnabled", true);
   1094 
   1095 pref("security.allow_parent_unrestricted_js_loads", false);
   1096 pref("browser.unexpectedScriptLoad.logLevel", "Warn");
   1097 
   1098 // Unload tabs when available memory is running low
   1099 #if defined(XP_MACOSX) || defined(XP_WIN)
   1100    pref("browser.tabs.unloadOnLowMemory", true);
   1101 #else
   1102    pref("browser.tabs.unloadOnLowMemory", false);
   1103 #endif
   1104 
   1105 // Tab Unloader does not unload tabs whose last inactive period is longer than
   1106 // this value (in milliseconds).
   1107 pref("browser.tabs.min_inactive_duration_before_unload", 600000);
   1108 
   1109 // Does middleclick paste of clipboard to new tab button
   1110 #ifdef UNIX_BUT_NOT_MAC
   1111 pref("browser.tabs.searchclipboardfor.middleclick", true);
   1112 #else
   1113 pref("browser.tabs.searchclipboardfor.middleclick", false);
   1114 #endif
   1115 
   1116 #if defined(XP_MACOSX)
   1117  // During low memory periods, poll with this frequency (milliseconds)
   1118  // until memory is no longer low. Changes to the pref take effect immediately.
   1119  // Browser restart not required. Chosen to be consistent with the windows
   1120  // implementation, but otherwise the 10s value is arbitrary.
   1121  pref("browser.lowMemoryPollingIntervalMS", 10000);
   1122 
   1123  // Pref to control the reponse taken on macOS when the OS is under memory
   1124  // pressure. Changes to the pref take effect immediately. Browser restart not
   1125  // required. The pref value is a bitmask:
   1126  // 0x0: No response (other than recording for telemetry, crash reporting)
   1127  // 0x1: Use the tab unloading feature to reduce memory use. Requires that
   1128  //      the above "browser.tabs.unloadOnLowMemory" pref be set to true for tab
   1129  //      unloading to occur.
   1130  // 0x2: Issue the internal "memory-pressure" notification to reduce memory use
   1131  // 0x3: Both 0x1 and 0x2.
   1132  #if defined(NIGHTLY_BUILD)
   1133  pref("browser.lowMemoryResponseMask", 3);
   1134  #else
   1135  pref("browser.lowMemoryResponseMask", 0);
   1136  #endif
   1137 
   1138  // Controls which macOS memory-pressure level triggers the browser low memory
   1139  // response. Changes to the pref take effect immediately. Browser restart not
   1140  // required. By default, use the "critical" level as that occurs after "warn"
   1141  // and we only want to trigger the low memory reponse when necessary.
   1142  // The macOS system memory-pressure level is either none, "warn", or
   1143  // "critical". The OS notifies the browser when the level changes. A false
   1144  // value for the pref indicates the low memory response should occur when
   1145  // reaching the "critical" level. A true value indicates the response should
   1146  // occur when reaching the "warn" level.
   1147  pref("browser.lowMemoryResponseOnWarn", false);
   1148 #endif
   1149 
   1150 pref("browser.ctrlTab.sortByRecentlyUsed", false);
   1151 
   1152 // By default, do not export HTML at shutdown.
   1153 // If true, at shutdown the bookmarks in your menu and toolbar will
   1154 // be exported as HTML to the bookmarks.html file.
   1155 pref("browser.bookmarks.autoExportHTML",          false);
   1156 
   1157 // The maximum number of daily bookmark backups to
   1158 // keep in {PROFILEDIR}/bookmarkbackups. Special values:
   1159 // -1: unlimited
   1160 //  0: no backups created (and deletes all existing backups)
   1161 pref("browser.bookmarks.max_backups",             15);
   1162 
   1163 // Whether menu should close after Ctrl-click, middle-click, etc.
   1164 pref("browser.bookmarks.openInTabClosesMenu", true);
   1165 
   1166 // Where new bookmarks go by default.
   1167 // Use PlacesUIUtils.defaultParentGuid to read this; do NOT read the pref
   1168 // directly.
   1169 // The value is one of:
   1170 // - a bookmarks guid
   1171 // - "toolbar", "menu" or "unfiled" for those folders.
   1172 // If we use the pref but the value isn't any of these, we'll fall back to
   1173 // the bookmarks toolbar as a default.
   1174 pref("browser.bookmarks.defaultLocation", "toolbar");
   1175 
   1176 pref("browser.tabs.allow_transparent_browser", false);
   1177 
   1178 // Scripts & Windows prefs
   1179 pref("dom.disable_open_during_load",              true);
   1180 
   1181 // allow JS to move and resize existing windows
   1182 pref("dom.disable_window_move_resize",            false);
   1183 // prevent JS from monkeying with window focus, etc
   1184 pref("dom.disable_window_flip",                   true);
   1185 
   1186 pref("privacy.popups.showBrowserMessage",   true);
   1187 
   1188 pref("privacy.clearOnShutdown.history",     true);
   1189 pref("privacy.clearOnShutdown.formdata",    true);
   1190 pref("privacy.clearOnShutdown.downloads",   true);
   1191 pref("privacy.clearOnShutdown.cookies",     true);
   1192 pref("privacy.clearOnShutdown.cache",       true);
   1193 pref("privacy.clearOnShutdown.sessions",    true);
   1194 pref("privacy.clearOnShutdown.offlineApps", false);
   1195 pref("privacy.clearOnShutdown.siteSettings", false);
   1196 pref("privacy.clearOnShutdown.openWindows", false);
   1197 // Clear on shutdown prefs used in the new dialog
   1198 
   1199 // We can't remove the old pref yet since we need to use it to migrate the old
   1200 // pref values to the new pref values.
   1201 pref("privacy.clearOnShutdown_v2.historyFormDataAndDownloads", true);
   1202 
   1203 pref("privacy.clearOnShutdown_v2.browsingHistoryAndDownloads", true);
   1204 pref("privacy.clearOnShutdown_v2.cookiesAndStorage", true);
   1205 pref("privacy.clearOnShutdown_v2.cache", true);
   1206 pref("privacy.clearOnShutdown_v2.siteSettings", false);
   1207 pref("privacy.clearOnShutdown_v2.formdata", false);
   1208 
   1209 pref("privacy.cpd.history",                 true);
   1210 pref("privacy.cpd.formdata",                true);
   1211 pref("privacy.cpd.passwords",               false);
   1212 pref("privacy.cpd.downloads",               true);
   1213 pref("privacy.cpd.cookies",                 true);
   1214 pref("privacy.cpd.cache",                   true);
   1215 pref("privacy.cpd.sessions",                true);
   1216 pref("privacy.cpd.offlineApps",             false);
   1217 pref("privacy.cpd.siteSettings",            false);
   1218 pref("privacy.cpd.openWindows",             false);
   1219 
   1220 // clearHistory and clearSiteData pref branches are used to
   1221 // remember user pref options based on the two different entry points
   1222 pref("privacy.clearHistory.historyFormDataAndDownloads", true);
   1223 pref("privacy.clearHistory.browsingHistoryAndDownloads", true);
   1224 pref("privacy.clearHistory.cookiesAndStorage", true);
   1225 pref("privacy.clearHistory.cache", true);
   1226 pref("privacy.clearHistory.siteSettings", false);
   1227 pref("privacy.clearHistory.formdata", false);
   1228 pref("privacy.clearSiteData.historyFormDataAndDownloads", false);
   1229 pref("privacy.clearSiteData.browsingHistoryAndDownloads", false);
   1230 pref("privacy.clearSiteData.cookiesAndStorage", true);
   1231 pref("privacy.clearSiteData.cache", true);
   1232 pref("privacy.clearSiteData.siteSettings", false);
   1233 pref("privacy.clearSiteData.formdata", false);
   1234 
   1235 pref("privacy.history.custom",              false);
   1236 
   1237 // What default should we use for the time span in the sanitizer:
   1238 // 0 - Clear everything
   1239 // 1 - Last Hour
   1240 // 2 - Last 2 Hours
   1241 // 3 - Last 4 Hours
   1242 // 4 - Today
   1243 // 5 - Last 5 minutes
   1244 // 6 - Last 24 hours
   1245 pref("privacy.sanitize.timeSpan", 1);
   1246 
   1247 pref("privacy.sanitize.useOldClearHistoryDialog", false);
   1248 
   1249 pref("privacy.sanitize.clearOnShutdown.hasMigratedToNewPrefs2", false);
   1250 pref("privacy.sanitize.clearOnShutdown.hasMigratedToNewPrefs3", false);
   1251 // flags to track migration of clear history dialog prefs, where cpd stands for
   1252 // clear private data
   1253 pref("privacy.sanitize.cpd.hasMigratedToNewPrefs2", false);
   1254 pref("privacy.sanitize.cpd.hasMigratedToNewPrefs3", false);
   1255 
   1256 pref("privacy.panicButton.enabled",         true);
   1257 
   1258 // Time until temporary permissions expire, in ms
   1259 pref("privacy.temporary_permission_expire_time_ms",  3600000);
   1260 
   1261 // Enables protection mechanism against password spoofing for cross domain auth requests
   1262 // See bug 791594
   1263 pref("privacy.authPromptSpoofingProtection",         true);
   1264 
   1265 // Enable GPC if the user turns it on in about:preferences
   1266 pref("privacy.globalprivacycontrol.functionality.enabled",  true);
   1267 
   1268 // Enable GPC in private browsing mode
   1269 pref("privacy.globalprivacycontrol.pbmode.enabled", true);
   1270 
   1271 // What custom schemes to treat as accessing digital wallets, comma separated
   1272 pref("privacy.wallet_schemes", "openid4vp,mdoc,mdoc-openid4vp,haip,eudi-wallet,eudi-openid4vp,openid-credential-offer");
   1273 
   1274 pref("network.proxy.share_proxy_settings",  false); // use the same proxy settings for all protocols
   1275 
   1276 // simple gestures support
   1277 pref("browser.gesture.swipe.left", "Browser:BackOrBackDuplicate");
   1278 pref("browser.gesture.swipe.right", "Browser:ForwardOrForwardDuplicate");
   1279 pref("browser.gesture.swipe.up", "cmd_scrollTop");
   1280 pref("browser.gesture.swipe.down", "cmd_scrollBottom");
   1281 pref("browser.gesture.pinch.latched", false);
   1282 pref("browser.gesture.pinch.threshold", 25);
   1283 #if defined(XP_WIN) || defined(MOZ_WIDGET_GTK)
   1284  // Enabled for touch input display zoom.
   1285  pref("browser.gesture.pinch.out", "cmd_fullZoomEnlarge");
   1286  pref("browser.gesture.pinch.in", "cmd_fullZoomReduce");
   1287  pref("browser.gesture.pinch.out.shift", "cmd_fullZoomReset");
   1288  pref("browser.gesture.pinch.in.shift", "cmd_fullZoomReset");
   1289 #else
   1290  // Disabled by default due to issues with track pad input.
   1291  pref("browser.gesture.pinch.out", "");
   1292  pref("browser.gesture.pinch.in", "");
   1293  pref("browser.gesture.pinch.out.shift", "");
   1294  pref("browser.gesture.pinch.in.shift", "");
   1295 #endif
   1296 pref("browser.gesture.twist.latched", false);
   1297 pref("browser.gesture.twist.threshold", 0);
   1298 pref("browser.gesture.twist.right", "cmd_gestureRotateRight");
   1299 pref("browser.gesture.twist.left", "cmd_gestureRotateLeft");
   1300 pref("browser.gesture.twist.end", "cmd_gestureRotateEnd");
   1301 #if defined(XP_WIN) || defined(MOZ_WIDGET_GTK)
   1302  pref("browser.gesture.tap", "cmd_fullZoomReset");
   1303 #else
   1304  pref("browser.gesture.tap", "");
   1305 #endif
   1306 
   1307 pref("browser.history_swipe_animation.disabled", false);
   1308 
   1309 // 0: Nothing happens
   1310 // 1: Scrolling contents
   1311 // 2: Go back or go forward, in your history
   1312 // 3: Zoom in or out (reflowing zoom).
   1313 // 4: Treat vertical wheel as horizontal scroll
   1314 // 5: Zoom in or out (pinch zoom).
   1315 #ifdef XP_MACOSX
   1316  // On macOS, if the wheel has one axis only, shift+wheel comes through as a
   1317  // horizontal scroll event. Thus, we can't assign anything other than normal
   1318  // scrolling to shift+wheel.
   1319  pref("mousewheel.with_shift.action", 1);
   1320  pref("mousewheel.with_alt.action", 2);
   1321  pref("mousewheel.with_control.action", 1);
   1322 #else
   1323  // On the other platforms (non-macOS), user may use legacy mouse which
   1324  // supports only vertical wheel but want to scroll horizontally.  For such
   1325  // users, we should provide horizontal scroll with shift+wheel (same as
   1326  // Chrome). However, shift+wheel was used for navigating history.  For users
   1327  // who want to keep using this feature, let's enable it with alt+wheel.  This
   1328  // is better for consistency with macOS users.
   1329  pref("mousewheel.with_shift.action", 4);
   1330  pref("mousewheel.with_alt.action", 2);
   1331 #endif
   1332 
   1333 pref("mousewheel.with_meta.action", 1);
   1334 
   1335 pref("browser.xul.error_pages.expert_bad_cert", false);
   1336 pref("browser.xul.error_pages.show_safe_browsing_details_on_load", false);
   1337 
   1338 // Enable captive portal detection.
   1339 pref("network.captive-portal-service.enabled", true);
   1340 
   1341 // If true, network link events will change the value of navigator.onLine
   1342 pref("network.manage-offline-status", true);
   1343 
   1344 // timeout for local network access prompts
   1345 pref("network.lna.prompt.timeout", 300000); // 5 minutes
   1346 
   1347 // We want to make sure mail URLs are handled externally...
   1348 pref("network.protocol-handler.external.mailto", true); // for mail
   1349 
   1350 // ...without warning dialogs
   1351 pref("network.protocol-handler.warn-external.mailto", false);
   1352 
   1353 // By default, all protocol handlers are exposed.  This means that
   1354 // the browser will respond to openURL commands for all URL types.
   1355 // It will also try to open link clicks inside the browser before
   1356 // failing over to the system handlers.
   1357 pref("network.protocol-handler.expose-all", true);
   1358 pref("network.protocol-handler.expose.mailto", false);
   1359 pref("network.protocol-handler.expose.news", false);
   1360 pref("network.protocol-handler.expose.snews", false);
   1361 pref("network.protocol-handler.expose.nntp", false);
   1362 
   1363 pref("accessibility.typeaheadfind", false);
   1364 pref("accessibility.typeaheadfind.timeout", 5000);
   1365 pref("accessibility.typeaheadfind.linksonly", false);
   1366 pref("accessibility.typeaheadfind.flashBar", 1);
   1367 
   1368 // Whether we had to hide the "Firefox Labs" section because it would be empty.
   1369 pref("browser.preferences.experimental.hidden", false);
   1370 // Whether we show the "More from Mozilla" section.
   1371 pref("browser.preferences.moreFromMozilla", true);
   1372 
   1373 // Used by settings to track whether the user customized advanced
   1374 // performance settings. Not used directly elsewhere.
   1375 // If set to false, we show advanced performance settings.
   1376 // If reset to true **by checking the box in the settings page**,
   1377 // we will revert those to the default settings.
   1378 pref("browser.preferences.defaultPerformanceSettings.enabled", true);
   1379 
   1380 pref("browser.proton.toolbar.version", 0);
   1381 
   1382 // Backspace and Shift+Backspace behavior
   1383 // 0 goes Back/Forward
   1384 // 1 act like PgUp/PgDown
   1385 // 2 and other values, nothing
   1386 pref("browser.backspace_action", 2);
   1387 
   1388 pref("intl.regional_prefs.use_os_locales", false);
   1389 
   1390 pref("browser.send_pings", false);
   1391 
   1392 pref("browser.geolocation.warning.infoURL", "https://www.mozilla.org/%LOCALE%/firefox/geolocation/");
   1393 pref("browser.xr.warning.infoURL", "https://www.mozilla.org/%LOCALE%/firefox/xr/");
   1394 pref("browser.lna.warning.infoURL", "https://support.mozilla.org/%LOCALE%/kb/control-personal-device-local-network-permissions-firefox");
   1395 
   1396 pref("browser.sessionstore.resume_from_crash", true);
   1397 pref("browser.sessionstore.resume_session_once", false);
   1398 pref("browser.sessionstore.resuming_after_os_restart", false);
   1399 
   1400 // Toggle for the behavior to include closed tabs from all windows in
   1401 // recently-closed tab lists & counts, and re-open tabs into the current window
   1402 pref("browser.sessionstore.closedTabsFromAllWindows", true);
   1403 pref("browser.sessionstore.closedTabsFromClosedWindows", true);
   1404 
   1405 // Minimal interval between two save operations in milliseconds (while the user is idle).
   1406 pref("browser.sessionstore.interval.idle", 3600000); // 1h
   1407 
   1408 // Time (seconds) before we assume that the user is idle and that we don't need to
   1409 // collect/save the session quite as often.
   1410 pref("browser.sessionstore.idleDelay", 180); // 3 minutes
   1411 
   1412 // Fine-grained default logging levels for each log appender
   1413 pref("browser.sessionstore.log.appender.console", "Fatal");
   1414 pref("browser.sessionstore.log.appender.dump", "Error");
   1415 pref("browser.sessionstore.log.appender.file.level", "Trace");
   1416 pref("browser.sessionstore.log.appender.file.logOnError", true);
   1417 
   1418 // The default log level for all Session restore logs.
   1419 pref("browser.sessionstore.loglevel", "Warn");
   1420 
   1421 #ifdef EARLY_BETA_OR_EARLIER
   1422  pref("browser.sessionstore.loglevel", "Debug");
   1423  pref("browser.sessionstore.log.appender.file.logOnSuccess", true);
   1424 #else
   1425  pref("browser.sessionstore.log.appender.file.logOnSuccess", false);
   1426 #endif
   1427 // How old can a log file be before it gets deleted?
   1428 pref("browser.sessionstore.log.appender.file.maxErrorAge", 864000); // 10 days
   1429 
   1430 // Max time to wait between flushing any log messages to disk (defaults to 1hr.)
   1431 pref("browser.sessionstore.logFlushIntervalSeconds", 3600);
   1432 
   1433 // on which sites to save text data, POSTDATA and cookies
   1434 // 0 = everywhere, 1 = unencrypted sites, 2 = nowhere
   1435 pref("browser.sessionstore.privacy_level", 0);
   1436 // how many tabs can be reopened (per window)
   1437 pref("browser.sessionstore.max_tabs_undo", 25);
   1438 // how many windows will be saved and can be reopened per session - on non-macOS platforms this
   1439 // pref may be ignored when dealing with pop-up windows to ensure the user actually gets
   1440 // at least one window with a menu bar.
   1441 pref("browser.sessionstore.max_windows_undo", 5);
   1442 // number of crashes that can occur before the about:sessionrestore page is displayed
   1443 // (this pref has no effect if more than 6 hours have passed since the last crash)
   1444 pref("browser.sessionstore.max_resumed_crashes", 1);
   1445 // number of back button session history entries to restore (-1 = all of them)
   1446 pref("browser.sessionstore.max_serialize_back", 10);
   1447 // number of forward button session history entries to restore (-1 = all of them)
   1448 pref("browser.sessionstore.max_serialize_forward", -1);
   1449 // restore_on_demand overrides MAX_CONCURRENT_TAB_RESTORES (sessionstore constant)
   1450 // and restore_hidden_tabs. When true, tabs will not be restored until they are
   1451 // focused (also applies to tabs that aren't visible). When false, the values
   1452 // for MAX_CONCURRENT_TAB_RESTORES and restore_hidden_tabs are respected.
   1453 // Selected tabs are always restored regardless of this pref.
   1454 pref("browser.sessionstore.restore_on_demand", true);
   1455 // Whether to automatically restore hidden tabs (i.e., tabs in other tab groups) or not
   1456 pref("browser.sessionstore.restore_hidden_tabs", false);
   1457 // If restore_on_demand is set, pinned tabs are restored on startup by default.
   1458 // When set to true, this pref overrides that behavior, and pinned tabs will only
   1459 // be restored when they are focused.
   1460 pref("browser.sessionstore.restore_pinned_tabs_on_demand", false);
   1461 // The version at which we performed the latest upgrade backup
   1462 pref("browser.sessionstore.upgradeBackup.latestBuildID", "");
   1463 // How many upgrade backups should be kept
   1464 pref("browser.sessionstore.upgradeBackup.maxUpgradeBackups", 3);
   1465 // Toggle some debug behavior; end-users should not run sessionstore in debug mode
   1466 pref("browser.sessionstore.debug", false);
   1467 // Forget closed windows/tabs after two weeks
   1468 pref("browser.sessionstore.cleanup.forget_closed_after", 1209600000);
   1469 
   1470 // temporary pref that will be removed in a future release, see bug 1836952
   1471 pref("browser.sessionstore.persist_closed_tabs_between_sessions", true);
   1472 
   1473 // Don't quit the browser when Ctrl + Q is pressed.
   1474 pref("browser.quitShortcut.disabled", false);
   1475 
   1476 // allow META refresh by default
   1477 pref("accessibility.blockautorefresh", false);
   1478 
   1479 // Whether history is enabled or not.
   1480 pref("places.history.enabled", true);
   1481 
   1482 // The default Places log level.
   1483 pref("places.loglevel", "Error");
   1484 
   1485 // Whether or not diacritics must match in history text searches.
   1486 pref("places.search.matchDiacritics", false);
   1487 
   1488 // the (maximum) number of the recent visits to sample
   1489 // when calculating frecency
   1490 pref("places.frecency.numVisits", 10);
   1491 
   1492 // buckets (in days) for frecency calculation
   1493 pref("places.frecency.firstBucketCutoff", 4);
   1494 pref("places.frecency.secondBucketCutoff", 14);
   1495 pref("places.frecency.thirdBucketCutoff", 31);
   1496 pref("places.frecency.fourthBucketCutoff", 90);
   1497 
   1498 // weights for buckets for frecency calculations
   1499 pref("places.frecency.firstBucketWeight", 100);
   1500 pref("places.frecency.secondBucketWeight", 70);
   1501 pref("places.frecency.thirdBucketWeight", 50);
   1502 pref("places.frecency.fourthBucketWeight", 30);
   1503 pref("places.frecency.defaultBucketWeight", 10);
   1504 
   1505 // bonus (in percent) for visit transition types for frecency calculations
   1506 pref("places.frecency.embedVisitBonus", 0);
   1507 pref("places.frecency.framedLinkVisitBonus", 0);
   1508 pref("places.frecency.linkVisitBonus", 100);
   1509 pref("places.frecency.typedVisitBonus", 2000);
   1510 // The bookmarks bonus is always added on top of any other bonus, including
   1511 // the redirect source and the typed ones.
   1512 pref("places.frecency.bookmarkVisitBonus", 75);
   1513 // The redirect source bonus overwrites any transition bonus.
   1514 // 0 would hide these pages, instead we want them low ranked.  Thus we use
   1515 // linkVisitBonus - bookmarkVisitBonus, so that a bookmarked source is in par
   1516 // with a common link.
   1517 pref("places.frecency.redirectSourceVisitBonus", 25);
   1518 pref("places.frecency.downloadVisitBonus", 0);
   1519 // The perm/temp redirects here relate to redirect targets, not sources.
   1520 pref("places.frecency.permRedirectVisitBonus", 50);
   1521 pref("places.frecency.tempRedirectVisitBonus", 40);
   1522 pref("places.frecency.reloadVisitBonus", 0);
   1523 pref("places.frecency.defaultVisitBonus", 0);
   1524 
   1525 // bonus (in percent) for place types for frecency calculations
   1526 pref("places.frecency.unvisitedBookmarkBonus", 140);
   1527 pref("places.frecency.unvisitedTypedBonus", 200);
   1528 
   1529 // Enables alternative frecency calculation for origins.
   1530 pref("places.frecency.origins.alternative.featureGate", false);
   1531 
   1532 // Whether to warm up network connections for places: menus and places: toolbar.
   1533 pref("browser.places.speculativeConnect.enabled", true);
   1534 
   1535 // if true, use full page zoom instead of text zoom
   1536 pref("browser.zoom.full", true);
   1537 
   1538 // Whether or not to update background tabs to the current zoom level.
   1539 pref("browser.zoom.updateBackgroundTabs", true);
   1540 
   1541 // The breakpad report server to link to in about:crashes
   1542 pref("breakpad.reportURL", "https://crash-stats.mozilla.org/report/index/");
   1543 
   1544 // URL for "Learn More" for DataCollection
   1545 pref("toolkit.datacollection.infoURL",
   1546     "https://www.mozilla.org/legal/privacy/firefox.html");
   1547 
   1548 // base URL for web-based support pages
   1549 pref("app.support.baseURL", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/");
   1550 
   1551 // base url for web-based feedback pages
   1552 pref("app.feedback.baseURL", "https://ideas.mozilla.org/");
   1553 
   1554 pref("security.certerrors.permanentOverride", true);
   1555 pref("security.certerrors.mitm.priming.enabled", true);
   1556 pref("security.certerrors.mitm.priming.endpoint", "https://mitmdetection.services.mozilla.com/");
   1557 pref("security.certerrors.mitm.auto_enable_enterprise_roots", true);
   1558 
   1559 // Whether the bookmark panel should be shown when bookmarking a page.
   1560 pref("browser.bookmarks.editDialog.showForNewBookmarks", true);
   1561 
   1562 // Don't try to alter this pref, it'll be reset the next time you use the
   1563 // bookmarking dialog
   1564 pref("browser.bookmarks.editDialog.firstEditField", "namePicker");
   1565 
   1566 // The number of recently selected folders in the edit bookmarks dialog.
   1567 pref("browser.bookmarks.editDialog.maxRecentFolders", 7);
   1568 
   1569 #if defined(XP_WIN) && defined(MOZ_SANDBOX)
   1570  // This controls the strength of the Windows content process sandbox for
   1571  // testing purposes. This will require a restart.
   1572  // On windows these levels are:
   1573  // See - security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp
   1574  // SetSecurityLevelForContentProcess() for what the different settings mean.
   1575  pref("security.sandbox.content.level", 9);
   1576 
   1577  // Pref controlling if messages relevant to sandbox violations are logged.
   1578  pref("security.sandbox.logging.enabled", false);
   1579 #endif
   1580 
   1581 #if defined(XP_MACOSX) && defined(MOZ_SANDBOX)
   1582  // This pref is discussed in bug 1083344, the naming is inspired from its
   1583  // Windows counterpart, but on Mac it's an integer which means:
   1584  // 0 -> "no sandbox" (nightly only)
   1585  // 1 -> "preliminary content sandboxing enabled: write access to
   1586  //       home directory is prevented"
   1587  // 2 -> "preliminary content sandboxing enabled with profile protection:
   1588  //       write access to home directory is prevented, read and write access
   1589  //       to ~/Library and profile directories are prevented (excluding
   1590  //       $PROFILE/{extensions,chrome})"
   1591  // 3 -> "no global read/write access, read access permitted to
   1592  //       $PROFILE/{extensions,chrome}"
   1593  // This setting is read when the content process is started. On Mac the
   1594  // content process is killed when all windows are closed, so a change will
   1595  // take effect when the 1st window is opened.
   1596  pref("security.sandbox.content.level", 3);
   1597 
   1598  // Disconnect content processes from the window server. Depends on
   1599  // out-of-process WebGL and non-native theming. i.e., both in-process WebGL
   1600  // and native theming depend on content processes having a connection to the
   1601  // window server. Window server disconnection is automatically disabled (and
   1602  // this pref overridden) if OOP WebGL is disabled. OOP WebGL is disabled
   1603  // for some tests.
   1604  pref("security.sandbox.content.mac.disconnect-windowserver", true);
   1605 
   1606  // Pref controlling if messages relevant to sandbox violations are logged.
   1607  pref("security.sandbox.logging.enabled", false);
   1608 #endif
   1609 
   1610 #if defined(XP_LINUX) && defined(MOZ_SANDBOX)
   1611  // This pref is introduced as part of bug 742434, the naming is inspired from
   1612  // its Windows/Mac counterpart, but on Linux it's an integer which means:
   1613  // 0 -> "no sandbox"
   1614  // 1 -> no longer used; level will be clamped to 2
   1615  // 2 -> "seccomp-bpf + write file broker"
   1616  // 3 -> "seccomp-bpf + read/write file brokering"
   1617  // 4 -> all of the above + network/socket restrictions + chroot
   1618  // 5 -> blocks access to GL / DRI / display servers
   1619  //      (formerly the separate pref `security.sandbox.content.headless`)
   1620  //      (side effect: sets MOZ_HEADLESS for content processes)
   1621  // 6 -> default-deny for ioctl
   1622  //
   1623  // The purpose of this setting is to allow Linux users or distros to disable
   1624  // the sandbox while we fix their problems, or to allow running Firefox with
   1625  // exotic configurations we can't reasonably support out of the box.
   1626  //
   1627  pref("security.sandbox.content.level", 6);
   1628  pref("security.sandbox.content.write_path_whitelist", "");
   1629  pref("security.sandbox.content.read_path_whitelist", "");
   1630  pref("security.sandbox.content.syscall_whitelist", "");
   1631  // Introduced as part of bug 1608558.  Linux is currently the only platform
   1632  // that uses a sandbox level for the socket process.  The following levels
   1633  // are currently defined:
   1634  // 0 -> "no sandbox"
   1635  // 1 -> "sandboxed, allows socket operations and reading necessary certs"
   1636  // 2 -> default-deny for ioctl
   1637  pref("security.sandbox.socket.process.level", 2);
   1638 #endif
   1639 
   1640 #if defined(XP_OPENBSD) && defined(MOZ_SANDBOX)
   1641  pref("security.sandbox.content.level", 1);
   1642 #endif
   1643 
   1644 #ifdef XP_WIN
   1645  pref("browser.taskbar.previews.enable", false);
   1646  pref("browser.taskbar.previews.max", 20);
   1647  pref("browser.taskbar.previews.cachetime", 5);
   1648 
   1649  pref("browser.taskbar.lists.enabled", true);
   1650  pref("browser.taskbar.lists.frequent.enabled", true);
   1651  pref("browser.taskbar.lists.recent.enabled", false);
   1652  pref("browser.taskbar.lists.maxListItemCount", 7);
   1653  pref("browser.taskbar.lists.tasks.enabled", true);
   1654  pref("browser.taskbar.lists.refreshInSeconds", 120);
   1655  pref("browser.startMenu.msixPinnedWhenLastChecked", false);
   1656 #endif
   1657 
   1658 // Preferences to be synced by default.
   1659 // Preferences with the prefix `services.sync.prefs.sync-seen.` should have
   1660 // a value of `false`, and means the value of the pref will be synced as soon
   1661 // as a value for the pref is "seen", even if it is the default, and should be
   1662 // used for prefs we sync but which have different values on different channels,
   1663 // platforms or distributions.
   1664 pref("services.sync.prefs.sync.accessibility.blockautorefresh", true);
   1665 pref("services.sync.prefs.sync.accessibility.browsewithcaret", true);
   1666 pref("services.sync.prefs.sync.accessibility.typeaheadfind", true);
   1667 pref("services.sync.prefs.sync.accessibility.typeaheadfind.linksonly", true);
   1668 pref("services.sync.prefs.sync.addons.ignoreUserEnabledChanges", true);
   1669 pref("services.sync.prefs.sync.app.shield.optoutstudies.enabled", true);
   1670 // The addons prefs related to repository verification are intentionally
   1671 // not synced for security reasons. If a system is compromised, a user
   1672 // could weaken the pref locally, install an add-on from an untrusted
   1673 // source, and this would propagate automatically to other,
   1674 // uncompromised Sync-connected devices.
   1675 pref("services.sync.prefs.sync.browser.contentblocking.category", true);
   1676 pref("services.sync.prefs.sync.browser.contentblocking.features.strict", true);
   1677 pref("services.sync.prefs.sync.browser.crashReports.unsubmittedCheck.autoSubmit2", true);
   1678 pref("services.sync.prefs.sync.browser.ctrlTab.sortByRecentlyUsed", true);
   1679 pref("services.sync.prefs.sync.browser.download.useDownloadDir", true);
   1680 pref("services.sync.prefs.sync.browser.firefox-view.feature-tour", true);
   1681 pref("services.sync.prefs.sync.browser.formfill.enable", true);
   1682 pref("services.sync.prefs.sync.browser.ipProtection.enabled", true);
   1683 pref("services.sync.prefs.sync.browser.link.open_newwindow", true);
   1684 pref("services.sync.prefs.sync.browser.menu.showViewImageInfo", true);
   1685 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", true);
   1686 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", true);
   1687 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.showSearch", true);
   1688 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsored", true);
   1689 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSites", true);
   1690 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.topsites", true);
   1691 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.topSitesRows", true);
   1692 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.section.topstories", true);
   1693 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.topstories.rows", true);
   1694 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.section.highlights", true);
   1695 // Some linux distributions disable all highlights by default.
   1696 pref("services.sync.prefs.sync-seen.browser.newtabpage.activity-stream.section.highlights", false);
   1697 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includeVisited", true);
   1698 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includeBookmarks", true);
   1699 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includeDownloads", true);
   1700 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.rows", true);
   1701 pref("services.sync.prefs.sync.browser.newtabpage.enabled", true);
   1702 pref("services.sync.prefs.sync.browser.newtabpage.pinned", true);
   1703 pref("services.sync.prefs.sync.browser.pdfjs.feature-tour", true);
   1704 pref("services.sync.prefs.sync.browser.safebrowsing.downloads.enabled", true);
   1705 pref("services.sync.prefs.sync.browser.safebrowsing.downloads.remote.block_potentially_unwanted", true);
   1706 pref("services.sync.prefs.sync.browser.safebrowsing.malware.enabled", true);
   1707 pref("services.sync.prefs.sync.browser.safebrowsing.phishing.enabled", true);
   1708 pref("services.sync.prefs.sync.browser.search.update", true);
   1709 pref("services.sync.prefs.sync.browser.startup.homepage", true);
   1710 pref("services.sync.prefs.sync.browser.startup.page", true);
   1711 pref("services.sync.prefs.sync.browser.startup.upgradeDialog.enabled", true);
   1712 pref("services.sync.prefs.sync.browser.tabs.loadInBackground", true);
   1713 pref("services.sync.prefs.sync.browser.tabs.warnOnClose", true);
   1714 pref("services.sync.prefs.sync.browser.tabs.warnOnOpen", true);
   1715 pref("services.sync.prefs.sync.browser.taskbar.previews.enable", true);
   1716 pref("services.sync.prefs.sync.browser.urlbar.maxRichResults", true);
   1717 pref("services.sync.prefs.sync.browser.urlbar.showSearchSuggestionsFirst", true);
   1718 pref("services.sync.prefs.sync.browser.urlbar.suggest.bookmark", true);
   1719 pref("services.sync.prefs.sync.browser.urlbar.suggest.history", true);
   1720 pref("services.sync.prefs.sync.browser.urlbar.suggest.openpage", true);
   1721 pref("services.sync.prefs.sync.browser.urlbar.suggest.searches", true);
   1722 pref("services.sync.prefs.sync.browser.urlbar.suggest.topsites", true);
   1723 pref("services.sync.prefs.sync.browser.urlbar.suggest.engines", true);
   1724 pref("services.sync.prefs.sync.dom.disable_open_during_load", true);
   1725 pref("services.sync.prefs.sync.dom.disable_window_flip", true);
   1726 pref("services.sync.prefs.sync.dom.disable_window_move_resize", true);
   1727 pref("services.sync.prefs.sync.dom.event.contextmenu.enabled", true);
   1728 pref("services.sync.prefs.sync.dom.security.https_only_mode", true);
   1729 pref("services.sync.prefs.sync.dom.security.https_only_mode_ever_enabled", true);
   1730 pref("services.sync.prefs.sync.dom.security.https_only_mode_ever_enabled_pbm", true);
   1731 pref("services.sync.prefs.sync.dom.security.https_only_mode_pbm", true);
   1732 pref("services.sync.prefs.sync.extensions.update.enabled", true);
   1733 pref("services.sync.prefs.sync.extensions.activeThemeID", true);
   1734 pref("services.sync.prefs.sync.general.autoScroll", true);
   1735 // general.autoScroll has a different default on Linux vs elsewhere.
   1736 pref("services.sync.prefs.sync-seen.general.autoScroll", false);
   1737 // general.smoothScroll is not synced, bug 1851024
   1738 pref("services.sync.prefs.sync.intl.accept_languages", true);
   1739 pref("services.sync.prefs.sync.intl.regional_prefs.use_os_locales", true);
   1740 pref("services.sync.prefs.sync.layout.spellcheckDefault", true);
   1741 pref("services.sync.prefs.sync.media.autoplay.default", true);
   1742 pref("services.sync.prefs.sync.media.eme.enabled", true);
   1743 // Some linux distributions disable eme by default.
   1744 pref("services.sync.prefs.sync-seen.media.eme.enabled", false);
   1745 pref("services.sync.prefs.sync.media.videocontrols.picture-in-picture.video-toggle.enabled", true);
   1746 pref("services.sync.prefs.sync.network.cookie.cookieBehavior", true);
   1747 pref("services.sync.prefs.sync.permissions.default.image", true);
   1748 pref("services.sync.prefs.sync.pref.downloads.disable_button.edit_actions", true);
   1749 pref("services.sync.prefs.sync.pref.privacy.disable_button.cookie_exceptions", true);
   1750 pref("services.sync.prefs.sync.privacy.clearOnShutdown.cache", true);
   1751 pref("services.sync.prefs.sync.privacy.clearOnShutdown_v2.cache", true);
   1752 pref("services.sync.prefs.sync.privacy.clearOnShutdown.cookies", true);
   1753 pref("services.sync.prefs.sync.privacy.clearOnShutdown_v2.cookiesAndStorage", true);
   1754 pref("services.sync.prefs.sync.privacy.clearOnShutdown.downloads", true);
   1755 pref("services.sync.prefs.sync.privacy.clearOnShutdown_v2.downloads", true);
   1756 pref("services.sync.prefs.sync.privacy.clearOnShutdown.formdata", true);
   1757 pref("services.sync.prefs.sync.privacy.clearOnShutdown_v2.formdata", true);
   1758 pref("services.sync.prefs.sync.privacy.clearOnShutdown.history", true);
   1759 // We can't clear the old history pref until we're sure all clients have
   1760 // migrated to the new pref.
   1761 pref("services.sync.prefs.sync.privacy.clearOnShutdown_v2.historyFormDataAndDownloads", true);
   1762 pref("services.sync.prefs.sync.privacy.clearOnShutdown_v2.browsingHistoryAndDownloads", true);
   1763 pref("services.sync.prefs.sync.privacy.clearOnShutdown.offlineApps", true);
   1764 pref("services.sync.prefs.sync.privacy.clearOnShutdown.sessions", true);
   1765 pref("services.sync.prefs.sync.privacy.clearOnShutdown.siteSettings", true);
   1766 pref("services.sync.prefs.sync.privacy.clearOnShutdown_v2.siteSettings", true);
   1767 pref("services.sync.prefs.sync.privacy.donottrackheader.enabled", true);
   1768 pref("services.sync.prefs.sync.privacy.globalprivacycontrol.enabled", true);
   1769 pref("services.sync.prefs.sync.privacy.sanitize.sanitizeOnShutdown", true);
   1770 pref("services.sync.prefs.sync.privacy.trackingprotection.enabled", true);
   1771 pref("services.sync.prefs.sync.privacy.trackingprotection.harmfuladdon.enabled", true);
   1772 pref("services.sync.prefs.sync.privacy.trackingprotection.cryptomining.enabled", true);
   1773 pref("services.sync.prefs.sync.privacy.trackingprotection.fingerprinting.enabled", true);
   1774 pref("services.sync.prefs.sync.privacy.trackingprotection.pbmode.enabled", true);
   1775 // We do not sync `privacy.resistFingerprinting` by default as it's an undocumented,
   1776 // not-recommended footgun - see bug 1763278 for more.
   1777 pref("services.sync.prefs.sync.privacy.reduceTimerPrecision", true);
   1778 pref("services.sync.prefs.sync.privacy.resistFingerprinting.reduceTimerPrecision.microseconds", true);
   1779 pref("services.sync.prefs.sync.privacy.resistFingerprinting.reduceTimerPrecision.jitter", true);
   1780 pref("services.sync.prefs.sync.privacy.userContext.enabled", true);
   1781 pref("services.sync.prefs.sync.privacy.userContext.newTabContainerOnLeftClick.enabled", true);
   1782 pref("services.sync.prefs.sync.security.default_personal_cert", true);
   1783 pref("services.sync.prefs.sync.services.sync.syncedTabs.showRemoteIcons", true);
   1784 pref("services.sync.prefs.sync.signon.autofillForms", true);
   1785 pref("services.sync.prefs.sync.signon.generation.enabled", true);
   1786 pref("services.sync.prefs.sync.signon.management.page.breach-alerts.enabled", true);
   1787 pref("services.sync.prefs.sync.signon.rememberSignons", true);
   1788 pref("services.sync.prefs.sync.spellchecker.dictionary", true);
   1789 pref("services.sync.prefs.sync.ui.osk.enabled", true);
   1790 
   1791 // A preference which, if false, means sync will only apply incoming preference
   1792 // changes if there's already a local services.sync.prefs.sync.* control pref.
   1793 // If true, all incoming preferences will be applied and the local "control
   1794 // pref" updated accordingly.
   1795 pref("services.sync.prefs.dangerously_allow_arbitrary", false);
   1796 
   1797 // A preference that controls whether we should show the icon for a remote tab.
   1798 // This pref has no UI but exists because some people may be concerned that
   1799 // fetching these icons to show remote tabs may leak information about that
   1800 // user's tabs and bookmarks. Note this pref is also synced.
   1801 pref("services.sync.syncedTabs.showRemoteIcons", true);
   1802 
   1803 // A preference (in milliseconds) controlling if we sync after a tab change and
   1804 // how long to delay before we schedule the sync
   1805 // Anything <= 0 means disabled
   1806 pref("services.sync.syncedTabs.syncDelayAfterTabChange", 5000);
   1807 
   1808 // Whether prompts should be content modal (1) tab modal (2) or window modal(3) by default
   1809 // This is a fallback value for when prompt callers do not specify a modalType.
   1810 pref("prompts.defaultModalType", 3);
   1811 
   1812 // Whether to use the discrete Top Sites component.
   1813 pref("browser.topsites.component.enabled", false);
   1814 
   1815 pref("browser.topsites.useRemoteSetting", true);
   1816 // Fetch sponsored Top Sites from Mozilla Tiles Service (Contile)
   1817 pref("browser.topsites.contile.enabled", true);
   1818 pref("browser.topsites.contile.endpoint", "https://contile.services.mozilla.com/v1/tiles");
   1819 
   1820 // The base URL for the Quick Suggest anonymizing proxy. To make a request to
   1821 // the proxy, include a campaign ID in the path.
   1822 pref("browser.partnerlink.attributionURL", "https://topsites.services.mozilla.com/cid/");
   1823 pref("browser.partnerlink.campaign.topsites", "amzn_2020_a1");
   1824 
   1825 // Activates preloading of the new tab url.
   1826 pref("browser.newtab.preload", true);
   1827 
   1828 // Do not enable the preonboarding experience on Linux
   1829 #ifdef XP_LINUX
   1830  pref("browser.preonboarding.enabled", false);
   1831 #endif
   1832 
   1833 // For further detail on the TOU prefs below, see the `preonboarding` feature in
   1834 // FeatureManifest.yaml
   1835 // Version of the TOU that the user last accepted
   1836 pref("termsofuse.acceptedVersion", 0);
   1837 // Stringified timestamp of when the user last accepted the TOU
   1838 pref("termsofuse.acceptedDate", "0");
   1839 // Stringified timestamp of when the user first accepted the TOU, only set if
   1840 // they have accepted more than one version.
   1841 pref("termsofuse.firstAcceptedDate", "0");
   1842 // The most up-to-date version of the TOU, we set the minimum and current
   1843 // version as 4 to distinguish it from version numbers used in previous TOU
   1844 // experiments and rollouts
   1845 pref("termsofuse.currentVersion", 4);
   1846 // The minimum version of the TOU that a user must have accepted to not be
   1847 // presented with the TOU modal
   1848 pref("termsofuse.minimumVersion", 4);
   1849 // Should we bypass the TOU modal notification completely, currently only true
   1850 // for local/non-official builds
   1851 #ifdef MOZILLA_OFFICIAL
   1852  pref("termsofuse.bypassNotification", false);
   1853 #else
   1854  pref("termsofuse.bypassNotification", true);
   1855 #endif
   1856 
   1857 // Show "Download Firefox for mobile" QR code modal on newtab
   1858 pref("browser.newtabpage.activity-stream.mobileDownloadModal.enabled", false);
   1859 pref("browser.newtabpage.activity-stream.mobileDownloadModal.variant-a", false);
   1860 pref("browser.newtabpage.activity-stream.mobileDownloadModal.variant-b", false);
   1861 pref("browser.newtabpage.activity-stream.mobileDownloadModal.variant-c", false);
   1862 
   1863 // Show refined card layout on newtab
   1864 pref("browser.newtabpage.activity-stream.discoverystream.refinedCardsLayout.enabled", true);
   1865 
   1866 /**
   1867 * @backward-compat { version 148 }
   1868 *
   1869 * Temporary dual implementation to support train hopping. The old handoff UI
   1870 * is kept alongside the new contentSearchHandoffUI.mjs custom element until
   1871 * the module lands on all channels. Controlled by the pref
   1872 * browser.newtabpage.activity-stream.search.useHandoffComponent.
   1873 * Remove the old implementation and the pref once this ships to Release.
   1874 */
   1875 pref("browser.newtabpage.activity-stream.search.useHandoffComponent", true);
   1876 pref("browser.newtabpage.activity-stream.externalComponents.enabled", true);
   1877 
   1878 // Mozilla Ad Routing Service (MARS) unified ads service
   1879 pref("browser.newtabpage.activity-stream.unifiedAds.tiles.enabled", true);
   1880 pref("browser.newtabpage.activity-stream.unifiedAds.spocs.enabled", true);
   1881 pref("browser.newtabpage.activity-stream.unifiedAds.endpoint", "https://ads.mozilla.org/");
   1882 pref("browser.newtabpage.activity-stream.unifiedAds.adsFeed.enabled", false);
   1883 #ifdef NIGHTLY_BUILD
   1884 pref("browser.newtabpage.activity-stream.unifiedAds.ohttp.enabled", true);
   1885 #else
   1886 pref("browser.newtabpage.activity-stream.unifiedAds.ohttp.enabled", false);
   1887 #endif
   1888 
   1889 // Weather widget for newtab
   1890 pref("browser.newtabpage.activity-stream.showWeather", true);
   1891 pref("browser.newtabpage.activity-stream.weather.query", "");
   1892 pref("browser.newtabpage.activity-stream.weather.display", "simple");
   1893 
   1894 pref("browser.newtabpage.activity-stream.images.smart", true);
   1895 
   1896 // enable location search for newtab weather widget
   1897 pref("browser.newtabpage.activity-stream.weather.locationSearchEnabled", true);
   1898 
   1899 // List of regions that get weather by default.
   1900 pref("browser.newtabpage.activity-stream.discoverystream.region-weather-config", "US,CA");
   1901 
   1902 // List of locales that weather widget supports.
   1903 pref("browser.newtabpage.activity-stream.discoverystream.locale-weather-config", "en-US,en-GB,en-CA");
   1904 
   1905 // Promo card visibility
   1906 pref("browser.newtabpage.activity-stream.discoverystream.promoCard.visible", true);
   1907 
   1908 // Preference to enable wallpaper selection in the Customize Menu of new tab page
   1909 pref("browser.newtabpage.activity-stream.newtabWallpapers.enabled", true);
   1910 pref("browser.newtabpage.activity-stream.newtabWallpapers.customColor.enabled", true);
   1911 pref("browser.newtabpage.activity-stream.newtabWallpapers.customWallpaper.enabled", true);
   1912 
   1913 // Utility preferences for custom wallpaper upload
   1914 pref("browser.newtabpage.activity-stream.newtabWallpapers.customWallpaper.uuid", "");
   1915 pref("browser.newtabpage.activity-stream.newtabWallpapers.customWallpaper.fileSize", 0);
   1916 pref("browser.newtabpage.activity-stream.newtabWallpapers.customWallpaper.fileSize.enabled", false);
   1917 pref("browser.newtabpage.activity-stream.newtabWallpapers.customWallpaper.theme", "");
   1918 
   1919 // Current new tab page background images.
   1920 pref("browser.newtabpage.activity-stream.newtabWallpapers.wallpaper", "");
   1921 
   1922 // Preference to show feature highlight about wallpaper on new tab page
   1923 pref("browser.newtabpage.activity-stream.newtabWallpapers.highlightEnabled", false);
   1924 pref("browser.newtabpage.activity-stream.newtabWallpapers.highlightDismissed", false);
   1925 pref("browser.newtabpage.activity-stream.newtabWallpapers.highlightSeenCounter", 0);
   1926 pref("browser.newtabpage.activity-stream.newtabWallpapers.highlightHeaderText", "");
   1927 pref("browser.newtabpage.activity-stream.newtabWallpapers.highlightContentText", "");
   1928 pref("browser.newtabpage.activity-stream.newtabWallpapers.highlightCtaText", "");
   1929 
   1930 pref("browser.newtabpage.activity-stream.newNewtabExperience.colors", "#004CA4,#009E97,#7550C2,#B63B39,#C96A00,#CA9600,#CC527F");
   1931 
   1932 // Activity Stream prefs that control to which page to redirect
   1933 #ifndef RELEASE_OR_BETA
   1934  pref("browser.newtabpage.activity-stream.debug", false);
   1935 #endif
   1936 
   1937 // The remote FxA root content URL for the Activity Stream firstrun page.
   1938 pref("browser.newtabpage.activity-stream.fxaccounts.endpoint", "https://accounts.firefox.com/");
   1939 
   1940 // The pref that controls if the search shortcuts experiment is on
   1941 pref("browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts", true);
   1942 
   1943 // ASRouter provider configuration
   1944 pref("browser.newtabpage.activity-stream.asrouter.providers.message-groups", "{\"id\":\"message-groups\",\"enabled\":true,\"type\":\"remote-settings\",\"collection\":\"message-groups\",\"updateCycleInMs\":3600000}");
   1945 pref("browser.newtabpage.activity-stream.asrouter.providers.onboarding", "{\"id\":\"onboarding\",\"type\":\"local\",\"localProvider\":\"OnboardingMessageProvider\",\"enabled\":true,\"exclude\":[]}");
   1946 pref("browser.newtabpage.activity-stream.asrouter.providers.cfr", "{\"id\":\"cfr\",\"enabled\":true,\"type\":\"remote-settings\",\"collection\":\"cfr\",\"updateCycleInMs\":3600000}");
   1947 pref("browser.newtabpage.activity-stream.asrouter.providers.messaging-experiments", "{\"id\":\"messaging-experiments\",\"enabled\":true,\"type\":\"remote-experiments\",\"updateCycleInMs\":3600000}");
   1948 
   1949 // ASRouter user prefs
   1950 pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", true);
   1951 pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", true);
   1952 pref("messaging-system.askForFeedback", true);
   1953 
   1954 // The pref that controls if ASRouter uses the remote fluent files.
   1955 // It's enabled by default, but could be disabled to force ASRouter to use the local files.
   1956 pref("browser.newtabpage.activity-stream.asrouter.useRemoteL10n", true);
   1957 
   1958 // These prefs control if Discovery Stream is enabled.
   1959 pref("browser.newtabpage.activity-stream.discoverystream.enabled", true);
   1960 pref("browser.newtabpage.activity-stream.discoverystream.hardcoded-basic-layout", false);
   1961 pref("browser.newtabpage.activity-stream.discoverystream.hybridLayout.enabled", false);
   1962 pref("browser.newtabpage.activity-stream.discoverystream.hideCardBackground.enabled", false);
   1963 pref("browser.newtabpage.activity-stream.discoverystream.fourCardLayout.enabled", false);
   1964 pref("browser.newtabpage.activity-stream.discoverystream.newFooterSection.enabled", false);
   1965 pref("browser.newtabpage.activity-stream.discoverystream.hideDescriptions.enabled", true);
   1966 pref("browser.newtabpage.activity-stream.discoverystream.hideDescriptionsRegions", "");
   1967 pref("browser.newtabpage.activity-stream.discoverystream.compactGrid.enabled", false);
   1968 pref("browser.newtabpage.activity-stream.discoverystream.compactImages.enabled", false);
   1969 pref("browser.newtabpage.activity-stream.discoverystream.imageGradient.enabled", false);
   1970 pref("browser.newtabpage.activity-stream.discoverystream.titleLines", 3);
   1971 pref("browser.newtabpage.activity-stream.discoverystream.descLines", 3);
   1972 pref("browser.newtabpage.activity-stream.discoverystream.readTime.enabled", true);
   1973 pref("browser.newtabpage.activity-stream.discoverystream.newSponsoredLabel.enabled", false);
   1974 pref("browser.newtabpage.activity-stream.discoverystream.spoc-positions", "2,4,8,13,17,20");
   1975 
   1976 // For both spoc and tiles, count corresponds to the matching placement. So the first placement in an array corresponds to the first count.
   1977 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");
   1978 pref("browser.newtabpage.activity-stream.discoverystream.placements.spocs.counts", "1,1,1,1,1,1");
   1979 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");
   1980 pref("browser.newtabpage.activity-stream.discoverystream.placements.contextualSpocs.counts", "1, 1, 1, 1, 1, 1");
   1981 pref("browser.newtabpage.activity-stream.discoverystream.placements.tiles", "newtab_tile_1, newtab_tile_2, newtab_tile_3");
   1982 pref("browser.newtabpage.activity-stream.discoverystream.placements.tiles.counts", "1, 1, 1");
   1983 pref("browser.newtabpage.activity-stream.discoverystream.placements.contextualBanners", "");
   1984 pref("browser.newtabpage.activity-stream.discoverystream.placements.contextualBanners.counts", "");
   1985 
   1986 // This is a 0-based index, for consistency with the other position CSVs,
   1987 // but Contile positions are a 1-based index, so we end up adding 1 to these before using them.
   1988 pref("browser.newtabpage.activity-stream.discoverystream.contile-topsites-positions", "0,1,2");
   1989 pref("browser.newtabpage.activity-stream.discoverystream.widget-positions", "");
   1990 pref("browser.newtabpage.activity-stream.discoverystream.spocs-endpoint", "");
   1991 pref("browser.newtabpage.activity-stream.discoverystream.spocs-endpoint-query", "");
   1992 
   1993 // Changes the spoc content.
   1994 pref("browser.newtabpage.activity-stream.discoverystream.spocAdTypes", "");
   1995 pref("browser.newtabpage.activity-stream.discoverystream.spocZoneIds", "");
   1996 pref("browser.newtabpage.activity-stream.discoverystream.spocSiteId", "");
   1997 pref("browser.newtabpage.activity-stream.discoverystream.ctaButtonSponsors", "");
   1998 pref("browser.newtabpage.activity-stream.discoverystream.ctaButtonVariant", "");
   1999 
   2000 // Pref enabling content reporting
   2001 pref("browser.newtabpage.activity-stream.discoverystream.reportAds.enabled", true);
   2002 
   2003 // List of regions that do not get stories, regardless of locale-list-config.
   2004 pref("browser.newtabpage.activity-stream.discoverystream.region-stories-block", "");
   2005 // List of locales that get stories, regardless of region-stories-config.
   2006 #ifdef NIGHTLY_BUILD
   2007  pref("browser.newtabpage.activity-stream.discoverystream.locale-list-config", "en-US,en-CA,en-GB");
   2008 #else
   2009  pref("browser.newtabpage.activity-stream.discoverystream.locale-list-config", "");
   2010 #endif
   2011 // List of regions that get stories by default.
   2012 pref("browser.newtabpage.activity-stream.discoverystream.region-stories-config", "US,DE,CA,GB,IE,CH,AT,BE,IN,FR,IT,ES");
   2013 
   2014 // List of regions that get topics selection by default.
   2015 pref("browser.newtabpage.activity-stream.discoverystream.topicSelection.region-topics-config", "");
   2016 pref("browser.newtabpage.activity-stream.discoverystream.topicSelection.onboarding.enabled", false);
   2017 
   2018 // List of locales that get topics selection by default.
   2019 pref("browser.newtabpage.activity-stream.discoverystream.topicLabels.region-topic-label-config", "US, CA");
   2020 pref("browser.newtabpage.activity-stream.discoverystream.topicSelection.locale-topics-config", "en-US, en-GB, en-CA");
   2021 pref("browser.newtabpage.activity-stream.discoverystream.topicLabels.locale-topic-label-config", "en-US, en-GB, en-CA");
   2022 
   2023 // List of locales that get section layout by default
   2024 pref("browser.newtabpage.activity-stream.discoverystream.sections.locale-content-config", "en-US,en-CA");
   2025 // List of regions that get section layout by default
   2026 pref("browser.newtabpage.activity-stream.discoverystream.sections.region-content-config", "US");
   2027 
   2028 pref("browser.newtabpage.activity-stream.discoverystream.sections.cards.enabled", true);
   2029 
   2030 // List of regions that use inferred personalization.
   2031 pref("browser.newtabpage.activity-stream.discoverystream.sections.personalization.inferred.region-config", "");
   2032 // List of locales that use inferred personalization.
   2033 pref("browser.newtabpage.activity-stream.discoverystream.sections.personalization.inferred.locale-config", "en-US,en-GB,en-CA");
   2034 
   2035 pref("browser.newtabpage.activity-stream.discoverystream.sections.personalization.inferred.user.enabled", true);
   2036 
   2037 // Override inferred personalization model JSON string that typically comes from rec API. Or "TEST" for a test model.
   2038 pref("browser.newtabpage.activity-stream.discoverystream.sections.personalization.inferred.model.override", "");
   2039 
   2040 pref("browser.newtabpage.activity-stream.discoverystream.sections.interestPicker.enabled", false);
   2041 pref("browser.newtabpage.activity-stream.discoverystream.sections.interestPicker.visibleSections", "");
   2042 
   2043 // List of regions for contextual ads.
   2044 pref("browser.newtabpage.activity-stream.discoverystream.sections.contextualAds.region-config", "");
   2045 // List of locales for contextual ads.
   2046 pref("browser.newtabpage.activity-stream.discoverystream.sections.contextualAds.locale-config", "en-US,en-GB,en-CA");
   2047 
   2048 pref("browser.newtabpage.activity-stream.discoverystream.merino-provider.endpoint", "merino.services.mozilla.com");
   2049 pref("browser.newtabpage.activity-stream.discoverystream.merino-provider.ohttp.enabled", false);
   2050 pref("browser.newtabpage.activity-stream.discoverystream.ohttp.relayURL", "https://mozilla-ohttp.fastly-edge.com/");
   2051 pref("browser.newtabpage.activity-stream.discoverystream.ohttp.configURL", "https://prod.ohttp-gateway.prod.webservices.mozgcp.net/ohttp-configs");
   2052 pref("browser.newtabpage.activity-stream.discoverystream.imageProxy.enabled", false);
   2053 
   2054 // List of regions that get spocs by default.
   2055 pref("browser.newtabpage.activity-stream.discoverystream.region-spocs-config", "US,CA,DE,GB,FR,IT,ES");
   2056 // List of regions that don't get the 7 row layout.
   2057 pref("browser.newtabpage.activity-stream.discoverystream.region-basic-config", "");
   2058 
   2059 // Add parameters to Pocket feed URL.
   2060 pref("browser.newtabpage.activity-stream.discoverystream.pocket-feed-parameters", "");
   2061 pref("browser.newtabpage.activity-stream.discoverystream.merino-feed-experiment", false);
   2062 
   2063 pref("browser.newtabpage.activity-stream.discoverystream.personalization.enabled", false);
   2064 pref("browser.newtabpage.activity-stream.discoverystream.personalization.override", false);
   2065 // Configurable keys used by personalization.
   2066 pref("browser.newtabpage.activity-stream.discoverystream.personalization.modelKeys", "nb_model_arts_and_entertainment, nb_model_autos_and_vehicles, nb_model_beauty_and_fitness, nb_model_blogging_resources_and_services, nb_model_books_and_literature, nb_model_business_and_industrial, nb_model_computers_and_electronics, nb_model_finance, nb_model_food_and_drink, nb_model_games, nb_model_health, nb_model_hobbies_and_leisure, nb_model_home_and_garden, nb_model_internet_and_telecom, nb_model_jobs_and_education, nb_model_law_and_government, nb_model_online_communities, nb_model_people_and_society, nb_model_pets_and_animals, nb_model_real_estate, nb_model_reference, nb_model_science, nb_model_shopping, nb_model_sports, nb_model_travel");
   2067 // System pref to allow Pocket stories personalization to be turned on/off.
   2068 pref("browser.newtabpage.activity-stream.discoverystream.recs.personalized", false);
   2069 // System pref to allow Pocket sponsored content personalization to be turned on/off.
   2070 pref("browser.newtabpage.activity-stream.discoverystream.spocs.personalized", false);
   2071 
   2072 // List of locales that get thumbs up/down on recommended stories by default.
   2073 pref("browser.newtabpage.activity-stream.discoverystream.thumbsUpDown.locale-thumbs-config", "en-US, en-GB, en-CA");
   2074 
   2075 pref("browser.newtabpage.activity-stream.telemetry.privatePing.enabled", true);
   2076 
   2077 // Redacts content interaction ids from original New Tab ping once data processing migrated to the Newtab_content private ping
   2078 pref("browser.newtabpage.activity-stream.telemetry.privatePing.redactNewtabPing.enabled", true);
   2079 pref("browser.newtabpage.activity-stream.telemetry.privatePing.maxSubmissionDelayMs", 5000);
   2080 
   2081  // Include differentialy private inferred New Tab interests with New Tab content Ping. Only used when user has enabled personalization.
   2082 pref("browser.newtabpage.activity-stream.telemetry.privatePing.inferredInterests.enabled", false);
   2083 
   2084 // surface ID sent from merino to the client from the curated-recommendations request
   2085 pref("browser.newtabpage.activity-stream.telemetry.surfaceId", "");
   2086 
   2087 // List of regions that get thumbs up/down on recommended stories by default.
   2088 #ifdef EARLY_BETA_OR_EARLIER
   2089  pref("browser.newtabpage.activity-stream.discoverystream.thumbsUpDown.region-thumbs-config", "US, CA");
   2090 #else
   2091  pref("browser.newtabpage.activity-stream.discoverystream.thumbsUpDown.region-thumbs-config", "US");
   2092 #endif
   2093 
   2094 // Shows users compact layout of Home New Tab page. Also requires region-thumbs-config.
   2095 pref("browser.newtabpage.activity-stream.discoverystream.thumbsUpDown.searchTopsitesCompact", true);
   2096 
   2097 // Displays publisher favicons on recommended stories of New Tab page
   2098 pref("browser.newtabpage.activity-stream.discoverystream.publisherFavicon.enabled", true);
   2099 
   2100 // User pref to show stories on newtab (feeds.system.topstories has to be set to true as well)
   2101 pref("browser.newtabpage.activity-stream.feeds.section.topstories", true);
   2102 
   2103 pref("browser.newtabpage.activity-stream.logowordmark.alwaysVisible", true);
   2104 
   2105 // URLs from the user's history that contain this search param will be hidden
   2106 // from the top sites. The value is a string with one of the following forms:
   2107 // - "" (empty) - Disable this feature
   2108 // - "key" - Search param named "key" with any or no value
   2109 // - "key=" - Search param named "key" with no value
   2110 // - "key=value" - Search param named "key" with value "value"
   2111 pref("browser.newtabpage.activity-stream.hideTopSitesWithSearchParam", "mfadid=adm");
   2112 
   2113 // Set to true to enable debug logging for AboutNewTabResourceMapping.
   2114 pref("browser.newtabpage.resource-mapping.log", false);
   2115 
   2116 // Base URL for the newtab trainhop add-on version xpi downloads.
   2117 pref("browser.newtabpage.trainhopAddon.xpiBaseURL", "https://archive.mozilla.org/pub/system-addons/newtab/");
   2118 
   2119 pref("browser.newtabpage.sponsor-protection.enabled", true);
   2120 
   2121 // Separate about welcome
   2122 pref("browser.aboutwelcome.enabled", true);
   2123 // Used to set multistage welcome UX
   2124 pref("browser.aboutwelcome.screens", "");
   2125 
   2126 // Disable singleProfile messaging mitigation (Bug 1963213) for multiProfile feature users
   2127 pref("messaging-system.profile.singleProfileMessaging.disable", true);
   2128 
   2129 // Experiment Manager
   2130 // See Console.sys.mjs LOG_LEVELS for all possible values
   2131 pref("messaging-system.log", "warn");
   2132 pref("messaging-system.rsexperimentloader.collection_id", "nimbus-desktop-experiments");
   2133 pref("nimbus.debug", false);
   2134 pref("nimbus.validation.enabled", true);
   2135 
   2136 // Should Nimbus write to the shared ProfilesDatastoreService? Only used by tests.
   2137 // TODO(bug 1967779): Require the ProfileDatastoreService by default and remove
   2138 // this pref.
   2139 pref("nimbus.profilesdatastoreservice.enabled", true);
   2140 
   2141 // Should Nimbus read from the shared ProfilesDatastoreService?
   2142 // TODO(bug 1972426): Enable this behaviour by default and remove this pref.
   2143 #if defined(NIGHTLY_BUILD)
   2144 pref("nimbus.profilesdatastoreservice.read.enabled", true);
   2145 #else
   2146 pref("nimbus.profilesdatastoreservice.read.enabled", false);
   2147 #endif
   2148 
   2149 // Should Nimbus sync experiment unenrollments from other profiles?
   2150 // TODO(bug 1956087): Enable this behaviour by default and remove this pref.
   2151 #if defined(NIGHTLY_BUILD)
   2152 pref("nimbus.profilesdatastoreservice.sync.enabled", true);
   2153 #else
   2154 pref("nimbus.profilesdatastoreservice.sync.enabled", false);
   2155 #endif
   2156 
   2157 // Enable the targeting context telemetry by default, but allow it to be
   2158 // disabled, e.g., for artifact builds.
   2159 // See-also: https://bugzilla.mozilla.org/show_bug.cgi?id=1936317
   2160 // See-also: https://bugzilla.mozilla.org/show_bug.cgi?id=1936319
   2161 #if defined(MOZ_ARTIFACT_BUILDS)
   2162  pref("nimbus.telemetry.targetingContextEnabled", false);
   2163 #else
   2164  pref("nimbus.telemetry.targetingContextEnabled", true);
   2165 #endif
   2166 
   2167 // Nimbus QA prefs. Used to monitor pref-setting test experiments.
   2168 pref("nimbus.qa.pref-1", "default");
   2169 pref("nimbus.qa.pref-2", "default");
   2170 
   2171 // Startup Crash Tracking
   2172 // number of startup crashes that can occur before starting into safe mode automatically
   2173 // (this pref has no effect if more than 6 hours have passed since the last crash)
   2174 pref("toolkit.startup.max_resumed_crashes", 3);
   2175 
   2176 // Whether to use RegisterApplicationRestart to restart the browser and resume
   2177 // the session on next Windows startup
   2178 #if defined(XP_WIN)
   2179  pref("toolkit.winRegisterApplicationRestart", true);
   2180 #endif
   2181 
   2182 // The values of preferredAction and alwaysAskBeforeHandling before pdf.js
   2183 // became the default.
   2184 pref("pdfjs.previousHandler.preferredAction", 0);
   2185 pref("pdfjs.previousHandler.alwaysAskBeforeHandling", false);
   2186 
   2187 // Try to convert PDFs sent as octet-stream
   2188 pref("pdfjs.handleOctetStream", true);
   2189 
   2190 // Is the sidebar positioned ahead of the content browser
   2191 pref("sidebar.position_start", true);
   2192 #ifdef NIGHTLY_BUILD
   2193 pref("sidebar.revamp", true);
   2194 // This is nightly only for now, as we need to address bug 1933527 and bug 1934039.
   2195 pref("sidebar.revamp.round-content-area", true);
   2196 #else
   2197 pref("sidebar.revamp", false);
   2198 pref("sidebar.revamp.round-content-area", false);
   2199 #endif
   2200 pref("sidebar.animation.enabled", true);
   2201 pref("sidebar.animation.duration-ms", 200);
   2202 pref("sidebar.animation.expand-on-hover.duration-ms", 400);
   2203 pref("sidebar.animation.expand-on-hover.delay-duration-ms", 200);
   2204 
   2205 // This pref is used to store user customized tools in the sidebar launcher and shouldn't be changed.
   2206 // See https://firefox-source-docs.mozilla.org/browser/components/sidebar/docs/index.html for ways
   2207 // you can introduce a new tool to the sidebar launcher.
   2208 pref("sidebar.main.tools", "");
   2209 pref("sidebar.installed.extensions", "");
   2210 pref("sidebar.verticalTabs", false);
   2211 pref("sidebar.verticalTabs.dragToPinPromo.dismissed", false);
   2212 pref("sidebar.visibility", "always-show");
   2213 // Sidebar UI state is stored per-window via session restore. Use this pref
   2214 // as a backup to restore the sidebar UI state when a user has PPB mode on
   2215 // or has history cleared on browser close.
   2216 pref("sidebar.backupState", "{}");
   2217 pref("sidebar.expandOnHover", true);
   2218 pref("sidebar.old-sidebar.has-used", false);
   2219 pref("sidebar.new-sidebar.has-used", false);
   2220 
   2221 pref("sidebar.notification.badge.aichat", false);
   2222 
   2223 pref("browser.ml.chat.enabled", true);
   2224 pref("browser.ml.chat.hideLocalhost", true);
   2225 pref("browser.ml.chat.maxLength", 7000);
   2226 pref("browser.ml.chat.menu", true);
   2227 pref("browser.ml.chat.page", true);
   2228 pref("browser.ml.chat.page.footerBadge", true);
   2229 pref("browser.ml.chat.page.menuBadge", true);
   2230 pref("browser.ml.chat.prompt.prefix", '{"l10nId":"genai-prompt-prefix-selection"}');
   2231 pref("browser.ml.chat.prompts.0", '{"id":"summarize","l10nId":"genai-prompts-summarize"}');
   2232 pref("browser.ml.chat.prompts.1", '{"id":"explain","l10nId":"genai-prompts-explain","targeting":"contentType != \'page\'"}');
   2233 pref("browser.ml.chat.prompts.3", '{"id":"quiz","l10nId":"genai-prompts-quiz","targeting":"(!provider|regExpMatch(\'gemini\') || region == \'US\') && contentType != \'page\'"}');
   2234 pref("browser.ml.chat.prompts.4", '{"id":"proofread", "l10nId":"genai-prompts-proofread","targeting":"contentType != \'page\'"}');
   2235 pref("browser.ml.chat.provider", "");
   2236 pref("browser.ml.chat.shortcuts", true);
   2237 pref("browser.ml.chat.shortcuts.custom", true);
   2238 pref("browser.ml.chat.shortcuts.longPress", 60000);
   2239 pref("browser.ml.chat.shortcut.onboardingMouseoverCount", 0);
   2240 pref("browser.ml.chat.sidebar", true);
   2241 
   2242 pref("browser.ml.linkPreview.allowedLanguages", "en");
   2243 pref("browser.ml.linkPreview.blockListEnabled", true);
   2244 pref("browser.ml.linkPreview.collapsed", false);
   2245 pref("browser.ml.linkPreview.enabled", true);
   2246 pref("browser.ml.linkPreview.ignoreMs", 2000);
   2247 pref("browser.ml.linkPreview.longPress", true);
   2248 pref("browser.ml.linkPreview.longPressMs", 1000);
   2249 pref("browser.ml.linkPreview.noKeyPointsRegions", "");
   2250 pref("browser.ml.linkPreview.optin", false);
   2251 pref("browser.ml.linkPreview.outputSentences", 3);
   2252 pref("browser.ml.linkPreview.recentTypingMs", 1000);
   2253 pref("browser.ml.linkPreview.shift", false);
   2254 pref("browser.ml.linkPreview.shiftAlt", false);
   2255 pref("browser.ml.linkPreview.supportedLocales", "en");
   2256 
   2257 pref("browser.ml.pageAssist.enabled", false);
   2258 pref("browser.ml.smartAssist.apiKey", "");
   2259 pref("browser.ml.smartAssist.enabled", false);
   2260 pref("browser.ml.smartAssist.endpoint", "");
   2261 pref("browser.ml.smartAssist.model", "");
   2262 pref("browser.ml.smartAssist.overrideNewTab", false);
   2263 
   2264 // AI Window Feature
   2265 pref("browser.aiwindow.apiKey", '');
   2266 pref("browser.aiwindow.chatStore.loglevel", "Error");
   2267 pref("browser.aiwindow.enabled", false);
   2268 pref("browser.aiwindow.endpoint", "https://mlpa-prod-prod-mozilla.global.ssl.fastly.net/v1");
   2269 pref("browser.aiwindow.memories", false);
   2270 pref("browser.aiwindow.memoriesLogLevel", "Warn");
   2271 pref("browser.aiwindow.firstrun.autoAdvanceMS", 3000);
   2272 pref("browser.aiwindow.firstrun.modelChoice", "");
   2273 pref("browser.aiwindow.model", "qwen3-235b-a22b-instruct-2507-maas");
   2274 pref("browser.aiwindow.preferences.enabled", false);
   2275 
   2276 // Block insecure active content on https pages
   2277 pref("security.mixed_content.block_active_content", true);
   2278 
   2279 // Show "Not Secure" text for http pages.
   2280 pref("security.insecure_connection_text.enabled", true);
   2281 pref("security.insecure_connection_text.pbmode.enabled", true);
   2282 
   2283 // If this turns true, Moz*Gesture events are not called stopPropagation()
   2284 // before content.
   2285 pref("dom.debug.propagate_gesture_events_through_content", false);
   2286 
   2287 // CustomizableUI debug logging.
   2288 pref("browser.uiCustomization.debug", false);
   2289 
   2290 // CustomizableUI state of the browser's user interface
   2291 pref("browser.uiCustomization.state", "");
   2292 
   2293 // If set to false, FxAccounts and Sync will be unavailable.
   2294 // A restart is mandatory after flipping that preference.
   2295 pref("identity.fxaccounts.enabled", true);
   2296 
   2297 // The remote FxA root content URL. Must use HTTPS.
   2298 pref("identity.fxaccounts.remote.root", "https://accounts.firefox.com/");
   2299 
   2300 // The value of the context query parameter passed in fxa requests.
   2301 pref("identity.fxaccounts.contextParam", "oauth_webchannel_v1");
   2302 
   2303 // The remote URL of the FxA Profile Server
   2304 pref("identity.fxaccounts.remote.profile.uri", "https://profile.accounts.firefox.com/v1");
   2305 
   2306 // The remote URL of the FxA OAuth Server
   2307 pref("identity.fxaccounts.remote.oauth.uri", "https://oauth.accounts.firefox.com/v1");
   2308 
   2309 // Whether FxA pairing using QR codes is enabled.
   2310 pref("identity.fxaccounts.pairing.enabled", true);
   2311 
   2312 // The remote URI of the FxA pairing server
   2313 pref("identity.fxaccounts.remote.pairing.uri", "wss://channelserver.services.mozilla.com");
   2314 
   2315 // Token server used by the FxA Sync identity.
   2316 pref("identity.sync.tokenserver.uri", "https://token.services.mozilla.com/1.0/sync/1.5");
   2317 
   2318 // Auto-config URL for FxA self-hosters, makes an HTTP request to
   2319 // [identity.fxaccounts.autoconfig.uri]/.well-known/fxa-client-configuration
   2320 // This is now the prefered way of pointing to a custom FxA server, instead
   2321 // of making changes to "identity.fxaccounts.*.uri".
   2322 pref("identity.fxaccounts.autoconfig.uri", "");
   2323 
   2324 // URL for help link about Send Tab.
   2325 pref("identity.sendtabpromo.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/send-tab");
   2326 
   2327 // URLs for promo links to mobile browsers. Note that consumers are expected to
   2328 // append a value for utm_campaign.
   2329 pref("identity.mobilepromo.android", "https://www.mozilla.org/firefox/android/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_campaign=");
   2330 pref("identity.mobilepromo.ios", "https://www.mozilla.org/firefox/ios/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_campaign=");
   2331 
   2332 // How often should we try to fetch missed FxA commands on sync (in seconds).
   2333 // Default is 24 hours.
   2334 pref("identity.fxaccounts.commands.missed.fetch_interval", 86400);
   2335 
   2336 // Controls whether this client can send and receive "close tab"
   2337 // commands from other FxA clients
   2338 pref("identity.fxaccounts.commands.remoteTabManagement.enabled", true);
   2339 
   2340 // Controls whether or not the client association ping has values set on it
   2341 // when the sync-ui-state:update notification fires.
   2342 pref("identity.fxaccounts.telemetry.clientAssociationPing.enabled", true);
   2343 
   2344 // Note: when media.gmp-*.visible is true, provided we're running on a
   2345 // supported platform/OS version, the corresponding CDM appears in the
   2346 // plugins list, Firefox will download the GMP/CDM if enabled, and our
   2347 // UI to re-enable EME prompts the user to re-enable EME if it's disabled
   2348 // and script requests EME. If *.visible is false, we won't show the UI
   2349 // to enable the CDM if its disabled; it's as if the keysystem is completely
   2350 // unsupported.
   2351 
   2352 #ifdef MOZ_WIDEVINE_EME
   2353  pref("media.gmp-manager.chromium-update-url", "https://update.googleapis.com/service/update2/crx?response=redirect&x=id%3D%GUID%%26uc&acceptformat=crx3&updaterversion=999");
   2354  pref("media.gmp-widevinecdm.visible", true);
   2355  pref("media.gmp-widevinecdm.enabled", true);
   2356  pref("media.gmp-widevinecdm.chromium-guid", "oimompecagnajdejgnnjijobebaeigek");
   2357  pref("media.gmp-widevinecdm.force-chromium-update", false);
   2358  pref("media.gmp-widevinecdm.force-chromium-beta", false);
   2359 #if defined(MOZ_WMF_CDM) && defined(_M_AMD64)
   2360  pref("media.gmp-widevinecdm-l1.forceInstall", false);
   2361  pref("media.gmp-widevinecdm-l1.chromium-guid", "neifaoindggfcjicffkgpmnlppeffabd");
   2362  pref("media.gmp-widevinecdm-l1.force-chromium-update", false);
   2363  pref("media.gmp-widevinecdm-l1.force-chromium-beta", false);
   2364 #ifdef NIGHTLY_BUILD
   2365  pref("media.gmp-widevinecdm-l1.visible", true);
   2366  pref("media.gmp-widevinecdm-l1.enabled", true);
   2367 #else
   2368  pref("media.gmp-widevinecdm-l1.visible", false);
   2369  pref("media.gmp-widevinecdm-l1.enabled", false);
   2370 #endif
   2371 #endif
   2372 #endif
   2373 
   2374 pref("media.gmp-gmpopenh264.visible", true);
   2375 pref("media.gmp-gmpopenh264.enabled", true);
   2376 
   2377 pref("media.videocontrols.picture-in-picture.enabled", true);
   2378 pref("media.videocontrols.picture-in-picture.audio-toggle.enabled", true);
   2379 pref("media.videocontrols.picture-in-picture.video-toggle.enabled", true);
   2380 pref("media.videocontrols.picture-in-picture.video-toggle.visibility-threshold", "1.0");
   2381 pref("media.videocontrols.picture-in-picture.keyboard-controls.enabled", true);
   2382 pref("media.videocontrols.picture-in-picture.urlbar-button.enabled", true);
   2383 pref("media.videocontrols.picture-in-picture.enable-when-switching-tabs.enabled", false);
   2384 
   2385 // TODO (Bug 1817084) - This pref is used for managing translation preferences
   2386 // in the Firefox Translations addon. It should be removed when the addon is
   2387 // removed.
   2388 pref("browser.translation.neverForLanguages", "");
   2389 
   2390 // Enable Firefox translations powered by the Bergamot translations
   2391 // engine https://browser.mt/.
   2392 pref("browser.translations.enable", true);
   2393 
   2394 // Enable Firefox Select translations powered by Bergamot translations
   2395 // engine https://browser.mt/.
   2396 pref("browser.translations.select.enable", true);
   2397 
   2398 // Enable the Translations QuickAction in the URL bar.
   2399 #ifdef NIGHTLY_BUILD
   2400  pref("browser.translations.quickAction.enabled", true);
   2401 #else
   2402  pref("browser.translations.quickAction.enabled", false);
   2403 #endif
   2404 
   2405 // Telemetry settings.
   2406 // Determines if Telemetry pings can be archived locally.
   2407 pref("toolkit.telemetry.archive.enabled", true);
   2408 // Enables sending the shutdown ping when Firefox shuts down.
   2409 pref("toolkit.telemetry.shutdownPingSender.enabled", true);
   2410 // Enables using the `pingsender` background task.
   2411 pref("toolkit.telemetry.shutdownPingSender.backgroundtask.enabled", false);
   2412 // Enables sending the shutdown ping using the pingsender from the first session.
   2413 pref("toolkit.telemetry.shutdownPingSender.enabledFirstSession", false);
   2414 // Enables sending a duplicate of the first shutdown ping from the first session.
   2415 pref("toolkit.telemetry.firstShutdownPing.enabled", true);
   2416 // Enables sending the 'new-profile' ping on new profiles.
   2417 pref("toolkit.telemetry.newProfilePing.enabled", true);
   2418 // Enables sending 'update' pings on Firefox updates.
   2419 pref("toolkit.telemetry.updatePing.enabled", true);
   2420 // Enables sending 'bhr' pings when the browser hangs.
   2421 pref("toolkit.telemetry.bhrPing.enabled", true);
   2422 
   2423 // Enable GMP support in the addon manager.
   2424 pref("media.gmp-provider.enabled", true);
   2425 
   2426 // Enable Dynamic First-Party Isolation by default.
   2427 pref("network.cookie.cookieBehavior", 5 /* BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN */);
   2428 
   2429 // Enable Dynamic First-Party Isolation in the private browsing mode.
   2430 pref("network.cookie.cookieBehavior.pbmode", 5 /* BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN */);
   2431 
   2432 // Enable harmful addon URL blocking by default for all channels, only on desktop.
   2433 pref("privacy.trackingprotection.harmfuladdon.enabled", true);
   2434 
   2435 // Enable fingerprinting blocking by default for all channels, only on desktop.
   2436 pref("privacy.trackingprotection.fingerprinting.enabled", true);
   2437 
   2438 // Enable cryptomining blocking by default for all channels, only on desktop.
   2439 pref("privacy.trackingprotection.cryptomining.enabled", true);
   2440 
   2441 // Skip earlyBlankFirstPaint by default if resistFingerprinting is enabled.
   2442 pref("privacy.resistFingerprinting.skipEarlyBlankFirstPaint", true);
   2443 
   2444 pref("browser.contentblocking.database.enabled", true);
   2445 
   2446 // Enable Strip on Share by default on desktop
   2447 pref("privacy.query_stripping.strip_on_share.enabled", true);
   2448 
   2449 pref("browser.contentblocking.cryptomining.preferences.ui.enabled", true);
   2450 pref("browser.contentblocking.fingerprinting.preferences.ui.enabled", true);
   2451 // Enable cookieBehavior = BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN as an option in the custom category ui
   2452 pref("browser.contentblocking.reject-and-isolate-cookies.preferences.ui.enabled", true);
   2453 
   2454 // Possible values for browser.contentblocking.features.strict pref:
   2455 //   Tracking Protection:
   2456 //     "tp": tracking protection enabled
   2457 //     "-tp": tracking protection disabled
   2458 //   Tracking Protection in private windows:
   2459 //     "tpPrivate": tracking protection in private windows enabled
   2460 //     "-tpPrivate": tracking protection in private windows disabled
   2461 //   Fingerprinting:
   2462 //     "fp": fingerprinting blocking enabled
   2463 //     "-fp": fingerprinting blocking disabled
   2464 //   Cryptomining Tracking Protection:
   2465 //     "cryptoTP": cryptomining blocking enabled
   2466 //     "-cryptoTP": cryptomining blocking disabled
   2467 //   Social Tracking Protection:
   2468 //     "stp": social tracking protection enabled
   2469 //     "-stp": social tracking protection disabled
   2470 //   Email Tracking Protection:
   2471 //     "emailTP": email tracking protection enabled
   2472 //     "-emailTP": email tracking protection disabled
   2473 //   Email Tracking Protection in private windows:
   2474 //     "emailTPPrivate": email tracking protection in private windows enabled
   2475 //     "-emailTPPrivate": email tracking protection in private windows disabled
   2476 //   Consent Manager Skipping:
   2477 //     "consentmanagerSkip": consent manager skipping enabled
   2478 //     "-consentmanagerSkip": consent manager skipping disabled
   2479 //   Consent Manager Skipping in private windows:
   2480 //     "consentmanagerSkipPrivate": consent manager skipping in private windows enabled
   2481 //     "-consentmanagerSkipPrivate": consent manager skipping in private windows disabled
   2482 //   Level 2 Tracking list in normal windows:
   2483 //     "lvl2": Level 2 tracking list enabled
   2484 //     "-lvl2": Level 2 tracking list disabled
   2485 //   Restrict relaxing default referrer policy:
   2486 //     "rp": Restrict relaxing default referrer policy enabled
   2487 //     "-rp": Restrict relaxing default referrer policy disabled
   2488 //   Restrict relaxing default referrer policy for top navigation:
   2489 //     "rpTop": Restrict relaxing default referrer policy enabled
   2490 //     "-rpTop": Restrict relaxing default referrer policy disabled
   2491 //   OCSP cache partitioning:
   2492 //     "ocsp": OCSP cache partitioning enabled
   2493 //     "-ocsp": OCSP cache partitioning disabled
   2494 //   Query parameter stripping:
   2495 //     "qps": Query parameter stripping enabled
   2496 //     "-qps": Query parameter stripping disabled
   2497 //   Query parameter stripping for private windows:
   2498 //     "qpsPBM": Query parameter stripping enabled in private windows
   2499 //     "-qpsPBM": Query parameter stripping disabled in private windows
   2500 //   Fingerprinting Protection:
   2501 //     "fpp": Fingerprinting Protection enabled
   2502 //     "-fpp": Fingerprinting Protection disabled
   2503 //   Fingerprinting Protection for private windows:
   2504 //     "fppPrivate": Fingerprinting Protection enabled in private windows
   2505 //     "-fppPrivate": Fingerprinting Protection disabled in private windows
   2506 //   Cookie behavior:
   2507 //     "cookieBehavior0": cookie behaviour BEHAVIOR_ACCEPT
   2508 //     "cookieBehavior1": cookie behaviour BEHAVIOR_REJECT_FOREIGN
   2509 //     "cookieBehavior2": cookie behaviour BEHAVIOR_REJECT
   2510 //     "cookieBehavior3": cookie behaviour BEHAVIOR_LIMIT_FOREIGN
   2511 //     "cookieBehavior4": cookie behaviour BEHAVIOR_REJECT_TRACKER
   2512 //     "cookieBehavior5": cookie behaviour BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN
   2513 //   Cookie behavior for private windows:
   2514 //     "cookieBehaviorPBM0": cookie behaviour BEHAVIOR_ACCEPT
   2515 //     "cookieBehaviorPBM1": cookie behaviour BEHAVIOR_REJECT_FOREIGN
   2516 //     "cookieBehaviorPBM2": cookie behaviour BEHAVIOR_REJECT
   2517 //     "cookieBehaviorPBM3": cookie behaviour BEHAVIOR_LIMIT_FOREIGN
   2518 //     "cookieBehaviorPBM4": cookie behaviour BEHAVIOR_REJECT_TRACKER
   2519 //     "cookieBehaviorPBM5": cookie behaviour BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN
   2520 //   Third-party cookie deprecation behavior:
   2521 //     "3pcd": Third-party cookie deprecation enabled
   2522 //     "-3pcd": Third-party cookie deprecation disabled
   2523 //   Bounce Tracking Protection:
   2524 //     "btp": BTP enabled
   2525 //     "-btp": BTP disabled
   2526 //   Local Network Access Restrictions:
   2527 //     "lna": LNA enabled
   2528 //     "-lna": LNA disabled
   2529 // One value from each section must be included in the browser.contentblocking.features.strict pref.
   2530 pref("browser.contentblocking.features.strict", "tp,tpPrivate,cookieBehavior5,cookieBehaviorPBM5,cryptoTP,fp,stp,emailTP,emailTPPrivate,-consentmanagerSkip,-consentmanagerSkipPrivate,lvl2,rp,rpTop,ocsp,qps,qpsPBM,fpp,fppPrivate,btp,lna");
   2531 
   2532 // Enable Protections report's Lockwise card by default.
   2533 pref("browser.contentblocking.report.lockwise.enabled", true);
   2534 
   2535 // Disable rotections report's Monitor card by default. The new Monitor API does
   2536 // not support this feature as of now. See Bug 1815751.
   2537 pref("browser.contentblocking.report.monitor.enabled", false);
   2538 
   2539 // Disable Protections report's Proxy card by default.
   2540 pref("browser.contentblocking.report.proxy.enabled", false);
   2541 
   2542 // Disable the mobile promotion by default.
   2543 pref("browser.contentblocking.report.show_mobile_app", true);
   2544 
   2545 // Locales in which Send to Device emails are supported
   2546 // The most recent list of supported locales can be found at https://github.com/mozilla/bedrock/blob/6a08c876f65924651554decc57b849c00874b4e7/bedrock/settings/base.py#L963
   2547 pref("browser.send_to_device_locales", "de,en-GB,en-US,es-AR,es-CL,es-ES,es-MX,fr,id,pl,pt-BR,ru,zh-TW");
   2548 
   2549 // Avoid advertising in certain regions. Comma separated string of two letter ISO 3166-1 country codes.
   2550 pref("browser.vpn_promo.disallowed_regions", "ae,by,cn,cu,iq,ir,kp,om,ru,sd,sy,tm,tr");
   2551 
   2552 // Default to enabling VPN promo messages to be shown when specified and allowed
   2553 pref("browser.vpn_promo.enabled", true);
   2554 // Only show vpn card to certain regions. Comma separated string of two letter ISO 3166-1 country codes.
   2555 // The most recent list of supported countries can be found at https://support.mozilla.org/en-US/kb/mozilla-vpn-countries-available-subscribe
   2556 // 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
   2557 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");
   2558 
   2559 // Avoid advertising Focus in certain regions.  Comma separated string of two letter
   2560 // ISO 3166-1 country codes.
   2561 pref("browser.promo.focus.disallowed_regions", "cn");
   2562 
   2563 // Default to enabling focus promos to be shown where allowed.
   2564 pref("browser.promo.focus.enabled", true);
   2565 
   2566 // Default to enabling pin promos to be shown where allowed.
   2567 pref("browser.promo.pin.enabled", true);
   2568 
   2569 // Default to enabling cookie banner reduction promos to be shown where allowed.
   2570 // Set to true for Fx113 (see bug 1808611)
   2571 pref("browser.promo.cookiebanners.enabled", false);
   2572 
   2573 pref("browser.contentblocking.report.hide_vpn_banner", false);
   2574 pref("browser.contentblocking.report.vpn_sub_id", "sub_HrfCZF7VPHzZkA");
   2575 
   2576 pref("browser.contentblocking.report.monitor.url", "https://monitor.firefox.com/?entrypoint=protection_report_monitor&utm_source=about-protections");
   2577 pref("browser.contentblocking.report.monitor.how_it_works.url", "https://monitor.firefox.com/about");
   2578 pref("browser.contentblocking.report.monitor.sign_in_url", "https://monitor.firefox.com/oauth/init?entrypoint=protection_report_monitor&utm_source=about-protections&email=");
   2579 pref("browser.contentblocking.report.monitor.preferences_url", "https://monitor.firefox.com/user/preferences");
   2580 pref("browser.contentblocking.report.monitor.home_page_url", "https://monitor.firefox.com/user/dashboard");
   2581 pref("browser.contentblocking.report.manage_devices.url", "https://accounts.firefox.com/settings/clients");
   2582 pref("browser.contentblocking.report.endpoint_url", "https://monitor.firefox.com/user/breach-stats?includeResolved=true");
   2583 pref("browser.contentblocking.report.proxy_extension.url", "https://fpn.firefox.com/browser?utm_source=firefox-desktop&utm_medium=referral&utm_campaign=about-protections&utm_content=about-protections");
   2584 pref("browser.contentblocking.report.mobile-ios.url", "https://apps.apple.com/app/firefox-private-safe-browser/id989804926");
   2585 pref("browser.contentblocking.report.mobile-android.url", "https://play.google.com/store/apps/details?id=org.mozilla.firefox&referrer=utm_source%3Dprotection_report%26utm_content%3Dmobile_promotion");
   2586 pref("browser.contentblocking.report.vpn.url", "https://vpn.mozilla.org/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_campaign=about-protections-card");
   2587 pref("browser.contentblocking.report.vpn-promo.url", "https://vpn.mozilla.org/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_campaign=about-protections-top-promo");
   2588 pref("browser.contentblocking.report.vpn-android.url", "https://play.google.com/store/apps/details?id=org.mozilla.firefox.vpn&referrer=utm_source%3Dfirefox-browser%26utm_medium%3Dfirefox-browser%26utm_campaign%3Dabout-protections-mobile-vpn%26anid%3D--");
   2589 pref("browser.contentblocking.report.vpn-ios.url", "https://apps.apple.com/us/app/firefox-private-network-vpn/id1489407738");
   2590 
   2591 // Protection Report's SUMO urls
   2592 pref("browser.contentblocking.report.lockwise.how_it_works.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/password-manager-report");
   2593 pref("browser.contentblocking.report.social.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/social-media-tracking-report");
   2594 pref("browser.contentblocking.report.cookie.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/cross-site-tracking-report");
   2595 pref("browser.contentblocking.report.tracker.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/tracking-content-report");
   2596 pref("browser.contentblocking.report.fingerprinter.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/fingerprinters-report");
   2597 pref("browser.contentblocking.report.cryptominer.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/cryptominers-report");
   2598 
   2599 pref("browser.contentblocking.cfr-milestone.enabled", true);
   2600 pref("browser.contentblocking.cfr-milestone.milestone-achieved", 0);
   2601 // Milestones should always be in increasing order
   2602 pref("browser.contentblocking.cfr-milestone.milestones", "[1000, 5000, 10000, 25000, 50000, 100000, 250000, 314159, 500000, 750000, 1000000, 1250000, 1500000, 1750000, 2000000, 2250000, 2500000, 8675309]");
   2603 
   2604 // Controls the initial state of the protections panel collapsible info message.
   2605 pref("browser.protections_panel.infoMessage.seen", false);
   2606 
   2607 // Always enable newtab segregation using containers
   2608 pref("privacy.usercontext.about_newtab_segregation.enabled", true);
   2609 // Enable Contextual Identity Containers
   2610 #ifdef NIGHTLY_BUILD
   2611  pref("privacy.userContext.enabled", true);
   2612  pref("privacy.userContext.ui.enabled", true);
   2613 #else
   2614  pref("privacy.userContext.enabled", false);
   2615  pref("privacy.userContext.ui.enabled", false);
   2616 #endif
   2617 pref("privacy.userContext.extension", "");
   2618 // allows user to open container menu on a left click instead of a new
   2619 // tab in the default container
   2620 pref("privacy.userContext.newTabContainerOnLeftClick.enabled", false);
   2621 
   2622 // Set to true to allow the user to silence all notifications when
   2623 // sharing the screen.
   2624 pref("privacy.webrtc.allowSilencingNotifications", true);
   2625 pref("privacy.webrtc.hideGlobalIndicator", false);
   2626 
   2627 // Set to true to add toggles to the WebRTC indicator for globally
   2628 // muting the camera and microphone.
   2629 pref("privacy.webrtc.globalMuteToggles", false);
   2630 
   2631 // Set to true to enable a warning displayed when attempting
   2632 // to switch tabs in a window that's being shared over WebRTC.
   2633 pref("privacy.webrtc.sharedTabWarning", false);
   2634 
   2635 // Defines a grace period after camera or microphone use ends, where permission
   2636 // is granted (even past navigation) to this tab + origin + device. This avoids
   2637 // re-prompting without the user having to persist permission to the site, in a
   2638 // common case of a web conference asking them for the camera in a lobby page,
   2639 // before navigating to the actual meeting room page. Doesn't survive tab close.
   2640 pref("privacy.webrtc.deviceGracePeriodTimeoutMs", 3600000);
   2641 
   2642 // Bug 1857254 - MacOS 14 displays two (microphone/camera/screen share) icons in the menu bar
   2643 // This pref can be used to hide the firefox camera icon on macos 14 and above to avoid
   2644 // duplicating the macos camera icon. We show the icon by default, users can choose to flip
   2645 // the pref to hide the icons
   2646 pref("privacy.webrtc.showIndicatorsOnMacos14AndAbove", true);
   2647 
   2648 // Testing pref: adds artificial delay (in ms) to gUM requests in webrtc-preview.
   2649 // Used for testing abort logic. 0 means no delay.
   2650 pref("privacy.webrtc.preview.testGumDelayMs", 0);
   2651 
   2652 // Enable Smartblock embed placeholders
   2653 pref("extensions.webcompat.smartblockEmbeds.enabled", true);
   2654 
   2655 // Enable including the content in the window title.
   2656 // PBM users might want to disable this to avoid a possible source of disk
   2657 // leaks.
   2658 pref("privacy.exposeContentTitleInWindow", true);
   2659 pref("privacy.exposeContentTitleInWindow.pbm", true);
   2660 
   2661 // Run media transport in a separate process?
   2662 pref("media.peerconnection.mtransport_process", true);
   2663 
   2664 // Whether the "Close duplicate tabs" tab context menu is enabled.
   2665 pref("browser.tabs.context.close-duplicate.enabled", true);
   2666 
   2667 // For speculatively warming up tabs to improve perceived
   2668 // performance while using the async tab switcher.
   2669 pref("browser.tabs.remote.warmup.enabled", true);
   2670 
   2671 // Caches tab layers to improve perceived performance
   2672 // of tab switches.
   2673 pref("browser.tabs.remote.tabCacheSize", 0);
   2674 
   2675 pref("browser.tabs.remote.warmup.maxTabs", 3);
   2676 pref("browser.tabs.remote.warmup.unloadDelayMs", 2000);
   2677 
   2678 // For the about:tabcrashed page
   2679 pref("browser.tabs.crashReporting.sendReport", true);
   2680 pref("browser.tabs.crashReporting.includeURL", false);
   2681 
   2682 // Enables the "Unload Tab" context menu item
   2683 pref("browser.tabs.unloadTabInContextMenu", true);
   2684 
   2685 // Whether tabs that have been explicitly unloaded
   2686 // are faded out in the tab bar.
   2687 pref("browser.tabs.fadeOutExplicitlyUnloadedTabs", true);
   2688 
   2689 // Whether unloaded tabs (either from session restore or because
   2690 // they are explicitly unloaded) are faded out in the tab bar.
   2691 pref("browser.tabs.fadeOutUnloadedTabs", false);
   2692 
   2693 // Whether tabs can be "split" or displayed side by side at once.
   2694 #ifdef NIGHTLY_BUILD
   2695  pref("browser.tabs.splitView.enabled", true);
   2696 #else
   2697  pref("browser.tabs.splitView.enabled", false);
   2698 #endif
   2699 
   2700 // Whether SVG favicons should be safely re-encoded using the moz-remote-image:// protocol.
   2701 pref("browser.tabs.remoteSVGIconDecoding", false);
   2702 
   2703 // If true, unprivileged extensions may use experimental APIs on
   2704 // nightly and developer edition.
   2705 pref("extensions.experiments.enabled", false);
   2706 
   2707 #if defined(XP_WIN)
   2708  pref("dom.ipc.processPriorityManager.backgroundUsesEcoQoS", true);
   2709 #endif
   2710 
   2711 // Don't limit how many nodes we care about on desktop:
   2712 pref("reader.parse-node-limit", 0);
   2713 
   2714 // On desktop, we want the URLs to be included here for ease of debugging,
   2715 // and because (normally) these errors are not persisted anywhere.
   2716 pref("reader.errors.includeURLs", true);
   2717 
   2718 pref("view_source.tab", true);
   2719 
   2720 // These are the thumbnail width/height set in about:newtab.
   2721 // If you change this, ENSURE IT IS THE SAME SIZE SET
   2722 // by about:newtab. These values are in CSS pixels.
   2723 pref("toolkit.pageThumbs.minWidth", 280);
   2724 pref("toolkit.pageThumbs.minHeight", 190);
   2725 
   2726 pref("browser.esedbreader.loglevel", "Error");
   2727 
   2728 pref("browser.laterrun.enabled", false);
   2729 
   2730 #ifdef FUZZING_SNAPSHOT
   2731 pref("dom.ipc.processPrelaunch.enabled", false);
   2732 #else
   2733 pref("dom.ipc.processPrelaunch.enabled", true);
   2734 #endif
   2735 
   2736 pref("browser.migrate.bookmarks-file.enabled", true);
   2737 pref("browser.migrate.brave.enabled", true);
   2738 pref("browser.migrate.canary.enabled", true);
   2739 
   2740 pref("browser.migrate.chrome.enabled", true);
   2741 // See comments in bug 1340115 on how we got to this number.
   2742 pref("browser.migrate.chrome.history.limit", 2000);
   2743 pref("browser.migrate.chrome.payment_methods.enabled", true);
   2744 pref("browser.migrate.chrome.extensions.enabled", true);
   2745 pref("browser.migrate.chrome.get_permissions.enabled", true);
   2746 
   2747 pref("browser.migrate.chrome-beta.enabled", true);
   2748 pref("browser.migrate.chrome-dev.enabled", true);
   2749 pref("browser.migrate.chromium.enabled", true);
   2750 pref("browser.migrate.chromium-360se.enabled", true);
   2751 pref("browser.migrate.chromium-edge.enabled", true);
   2752 pref("browser.migrate.chromium-edge-beta.enabled", true);
   2753 pref("browser.migrate.edge.enabled", true);
   2754 pref("browser.migrate.firefox.enabled", true);
   2755 pref("browser.migrate.ie.enabled", false);
   2756 pref("browser.migrate.opera.enabled", true);
   2757 pref("browser.migrate.opera-gx.enabled", true);
   2758 pref("browser.migrate.safari.enabled", true);
   2759 pref("browser.migrate.vivaldi.enabled", true);
   2760 
   2761 pref("browser.migrate.content-modal.import-all.enabled", true);
   2762 
   2763 // Values can be: "default", "autoclose", "standalone", "embedded".
   2764 pref("browser.migrate.content-modal.about-welcome-behavior", "embedded");
   2765 
   2766 // The maximum age of history entries we'll import, in days.
   2767 pref("browser.migrate.history.maxAgeInDays", 180);
   2768 
   2769 // These following prefs are set to true if the user has at some
   2770 // point in the past migrated one of these resource types from
   2771 // another browser. We also attempt to transfer these preferences
   2772 // across profile resets.
   2773 pref("browser.migrate.interactions.bookmarks", false);
   2774 pref("browser.migrate.interactions.csvpasswords", false);
   2775 pref("browser.migrate.interactions.history", false);
   2776 pref("browser.migrate.interactions.passwords", false);
   2777 
   2778 pref("browser.migrate.preferences-entrypoint.enabled", true);
   2779 
   2780 // "available"      - user can see feature offer.
   2781 // "offered"        - we have offered feature to user and they have not yet made a decision.
   2782 // "enabled"        - user opted in to the feature.
   2783 // "disabled"       - user opted out of the feature.
   2784 pref("signon.firefoxRelay.feature", "available");
   2785 // Should Firefox show Relay to all browsers, or only those signed-in to FxA?
   2786 // Keep it hidden from about:config for now.
   2787 // pref("signon.firefoxRelay.showToAllBrowsers", false);
   2788 pref("signon.firefoxRelay.firstOfferVersionFallback", "control");
   2789 pref("signon.management.page.breach-alerts.enabled", true);
   2790 pref("signon.management.page.vulnerable-passwords.enabled", true);
   2791 pref("signon.management.page.sort", "name");
   2792 
   2793 pref("signon.management.page.os-auth.locked.enabled", false);
   2794 pref("extensions.formautofill.creditCards.os-auth.locked.enabled", false);
   2795 
   2796 // The utm_creative value is appended within the code (specific to the location on
   2797 // where it is clicked). Be sure that if these two prefs are updated, that
   2798 // the utm_creative param be last.
   2799 pref("signon.management.page.breachAlertUrl",
   2800     "https://monitor.firefox.com/breach-details/");
   2801 pref("signon.passwordEditCapture.enabled", true);
   2802 pref("signon.relatedRealms.enabled", false);
   2803 pref("signon.showAutoCompleteFooter", true);
   2804 pref("signon.showAutoCompleteImport", "import");
   2805 pref("signon.suggestImportCount", 3);
   2806 
   2807 // Whether or not the browser should scan for unsubmitted
   2808 // crash reports, and then show a notification for submitting
   2809 // those reports.
   2810 #ifdef NIGHTLY_BUILD
   2811  pref("browser.crashReports.unsubmittedCheck.enabled", true);
   2812 #else
   2813  pref("browser.crashReports.unsubmittedCheck.enabled", false);
   2814 #endif
   2815 
   2816 // chancesUntilSuppress is how many times we'll show the unsubmitted
   2817 // crash report notification across different days and shutdown
   2818 // without a user choice before we suppress the notification for
   2819 // some number of days.
   2820 pref("browser.crashReports.unsubmittedCheck.chancesUntilSuppress", 4);
   2821 pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false);
   2822 
   2823 // Preferences for the form autofill toolkit component.
   2824 // Checkbox in sync options for credit card data sync service
   2825 pref("services.sync.engine.creditcards.available", true);
   2826 
   2827 // Whether or not to restore a session with lazy-browser tabs.
   2828 pref("browser.sessionstore.restore_tabs_lazily", true);
   2829 
   2830 pref("browser.suppress_first_window_animation", true);
   2831 
   2832 // Preference that determines whether Screenshots uses the dedicated browser component
   2833 pref("screenshots.browser.component.enabled", true);
   2834 
   2835 // Preference that determines what button to focus
   2836 pref("screenshots.browser.component.last-saved-method", "download");
   2837 
   2838 // Preference that prevents events from reaching the content page.
   2839 pref("screenshots.browser.component.preventContentEvents", true);
   2840 
   2841 // Determines the default save location for screenshots
   2842 // Valid values are 0, 1, 2, 3 and 4.
   2843 //   0 - Use the desktop as the default save location.
   2844 //   1 - Use the system's downloads folder as the default save location.
   2845 //   2 - Use the folder set in browser.screenshots.dir as the default save location.
   2846 //   3 - Use system's screenshot folder as the default save location.
   2847 //   4 - Use browser.download.folderList
   2848 // Options 2 and 3 will fallback to the system downloads folder if their specified folder is not found.
   2849 pref("browser.screenshots.folderList", 4);
   2850 pref("browser.screenshots.dir", "");
   2851 
   2852 // DoH Rollout: whether to clear the mode value at shutdown.
   2853 pref("doh-rollout.clearModeOnShutdown", false);
   2854 
   2855 // DoH UI: default the fallback checkbox to on.
   2856 pref("network.trr_ui.fallback_was_checked", true);
   2857 
   2858 // Normandy client preferences
   2859 pref("app.normandy.api_url", "https://normandy.cdn.mozilla.net/api/v1");
   2860 pref("app.normandy.dev_mode", false);
   2861 pref("app.normandy.enabled", true);
   2862 pref("app.normandy.first_run", true);
   2863 pref("app.normandy.logging.level", 50); // Warn
   2864 pref("app.normandy.run_interval_seconds", 21600); // 6 hours
   2865 pref("app.normandy.shieldLearnMoreUrl", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/shield");
   2866 pref("app.normandy.last_seen_buildid", "");
   2867 pref("app.normandy.onsync_skew_sec", 600);
   2868 #ifdef MOZ_DATA_REPORTING
   2869  pref("app.shield.optoutstudies.enabled", true);
   2870 #else
   2871  pref("app.shield.optoutstudies.enabled", false);
   2872 #endif
   2873 
   2874 // Multi-lingual preferences:
   2875 //  *.enabled - Are langpacks available for the build of Firefox?
   2876 //  *.downloadEnabled - Langpacks are allowed to be downloaded from AMO. AMO only serves
   2877 //      langpacks for release and beta. Unsupported releases (like Nightly) can be
   2878 //      manually tested with the following preference:
   2879 //      extensions.getAddons.langpacks.url: https://mock-amo-language-tools.glitch.me/?app=firefox&type=language&appversion=%VERSION%
   2880 //  *.liveReload - Switching a langpack will change the language without a restart.
   2881 //  *.liveReloadBidirectional - Allows switching when moving between LTR and RTL
   2882 //      languages without a full restart.
   2883 //  *.aboutWelcome.languageMismatchEnabled - Enables an onboarding menu in about:welcome
   2884 //      to allow a user to change their language when there is a language mismatch between
   2885 //      the app and browser.
   2886 #if defined(RELEASE_OR_BETA) && !defined(MOZ_DEV_EDITION)
   2887  pref("intl.multilingual.enabled", true);
   2888  pref("intl.multilingual.downloadEnabled", true);
   2889  pref("intl.multilingual.liveReload", true);
   2890  pref("intl.multilingual.liveReloadBidirectional", false);
   2891  pref("intl.multilingual.aboutWelcome.languageMismatchEnabled", true);
   2892 #else
   2893  pref("intl.multilingual.enabled", false);
   2894  pref("intl.multilingual.downloadEnabled", false);
   2895  pref("intl.multilingual.liveReload", false);
   2896  pref("intl.multilingual.liveReloadBidirectional", false);
   2897  pref("intl.multilingual.aboutWelcome.languageMismatchEnabled", false);
   2898 #endif
   2899 
   2900 // Coverage ping is disabled by default.
   2901 pref("toolkit.coverage.enabled", false);
   2902 pref("toolkit.coverage.endpoint.base", "https://coverage.mozilla.org");
   2903 
   2904 // Discovery prefs
   2905 pref("browser.discovery.enabled", true);
   2906 pref("browser.discovery.containers.enabled", true);
   2907 pref("browser.discovery.sites", "addons.mozilla.org");
   2908 
   2909 pref("browser.engagement.recent_visited_origins.expiry", 86400); // 24 * 60 * 60 (24 hours in seconds)
   2910 pref("browser.engagement.downloads-button.has-used", false);
   2911 pref("browser.engagement.fxa-toolbar-menu-button.has-used", false);
   2912 pref("browser.engagement.home-button.has-used", false);
   2913 pref("browser.engagement.sidebar-button.has-used", false);
   2914 pref("browser.engagement.library-button.has-used", false);
   2915 pref("browser.engagement.ctrlTab.has-used", false);
   2916 
   2917 pref("browser.aboutConfig.showWarning", true);
   2918 
   2919 pref("browser.toolbars.keyboard_navigation", true);
   2920 
   2921 // The visibility of the bookmarks toolbar.
   2922 // "newtab": Show on the New Tab Page
   2923 // "always": Always show
   2924 // "never": Never show
   2925 pref("browser.toolbars.bookmarks.visibility", "newtab");
   2926 
   2927 // Visibility of the "Show Other Bookmarks" menuitem in the
   2928 // bookmarks toolbar contextmenu.
   2929 pref("browser.toolbars.bookmarks.showOtherBookmarks", true);
   2930 
   2931 
   2932 // Felt Privacy pref to control simplified private browsing UI
   2933 pref("browser.privatebrowsing.felt-privacy-v1", false);
   2934 pref("security.certerrors.felt-privacy-v1", true);
   2935 
   2936 // Prefs to control the Firefox Account toolbar menu.
   2937 // This pref will surface existing Firefox Account information
   2938 // as a button next to the hamburger menu. It allows
   2939 // quick access to sign-in and manage your Firefox Account.
   2940 pref("identity.fxaccounts.toolbar.enabled", true);
   2941 pref("identity.fxaccounts.toolbar.accessed", false);
   2942 pref("identity.fxaccounts.toolbar.defaultVisible", true);
   2943 
   2944 // Prefs to control Firefox Account panels that shows call to actions
   2945 // for other supported Mozilla products
   2946 pref("identity.fxaccounts.toolbar.pxiToolbarEnabled", true);
   2947 pref("identity.fxaccounts.toolbar.pxiToolbarEnabled.monitorEnabled", true);
   2948 pref("identity.fxaccounts.toolbar.pxiToolbarEnabled.relayEnabled", true);
   2949 pref("identity.fxaccounts.toolbar.pxiToolbarEnabled.vpnEnabled", true);
   2950 
   2951 // Prefs to control Mozilla account panels that shows an updated flow
   2952 // for users who don't have sync enabled
   2953 pref("identity.fxaccounts.toolbar.syncSetup.panelAccessed", false);
   2954 
   2955 // Toolbox preferences
   2956 pref("devtools.toolbox.footer.height", 250);
   2957 pref("devtools.toolbox.sidebar.width", 500);
   2958 pref("devtools.toolbox.host", "bottom");
   2959 pref("devtools.toolbox.previousHost", "right");
   2960 pref("devtools.toolbox.selectedTool", "inspector");
   2961 pref("devtools.toolbox.zoomValue", "1");
   2962 pref("devtools.toolbox.splitconsole.enabled", true);
   2963 pref("devtools.toolbox.splitconsole.open", false);
   2964 pref("devtools.toolbox.splitconsoleHeight", 100);
   2965 pref("devtools.toolbox.tabsOrder", "");
   2966 // This is only used for local Web Extension debugging,
   2967 // and allows to keep the window on top of all others,
   2968 // so that you can debug the Firefox window, while keeping the devtools
   2969 // always visible
   2970 pref("devtools.toolbox.alwaysOnTop", true);
   2971 
   2972 // When the Multiprocess Browser Toolbox is enabled, you can configure the scope of it:
   2973 // - "everything" will enable debugging absolutely everything in the browser
   2974 //   All processes, all documents, all workers, all add-ons.
   2975 // - "parent-process" will restrict debugging to the parent process
   2976 //   All privileged javascript, documents and workers running in the parent process.
   2977 pref("devtools.browsertoolbox.scope", "parent-process");
   2978 
   2979 // This preference will enable watching top-level targets from the server side.
   2980 pref("devtools.target-switching.server.enabled", true);
   2981 
   2982 // Controls the hability to debug popups from the same DevTools
   2983 // of the original tab the popups are coming from
   2984 pref("devtools.popups.debug", false);
   2985 
   2986 // Toolbox Button preferences
   2987 pref("devtools.command-button-pick.enabled", true);
   2988 pref("devtools.command-button-frames.enabled", true);
   2989 pref("devtools.command-button-responsive.enabled", true);
   2990 pref("devtools.command-button-screenshot.enabled", false);
   2991 pref("devtools.command-button-rulers.enabled", false);
   2992 pref("devtools.command-button-measure.enabled", false);
   2993 pref("devtools.command-button-noautohide.enabled", false);
   2994 pref("devtools.command-button-errorcount.enabled", true);
   2995 #ifndef MOZILLA_OFFICIAL
   2996  pref("devtools.command-button-experimental-prefs.enabled", true);
   2997 #endif
   2998 
   2999 // Inspector preferences
   3000 // Enable the Inspector
   3001 pref("devtools.inspector.enabled", true);
   3002 // What was the last active sidebar in the inspector
   3003 pref("devtools.inspector.selectedSidebar", "layoutview");
   3004 pref("devtools.inspector.activeSidebar", "layoutview");
   3005 pref("devtools.inspector.remote", false);
   3006 
   3007 // Enable the 3 pane mode in the inspector
   3008 pref("devtools.inspector.three-pane-enabled", true);
   3009 // Enable the 3 pane mode in the chrome inspector
   3010 pref("devtools.inspector.chrome.three-pane-enabled", false);
   3011 // Collapse pseudo-elements by default in the rule-view
   3012 pref("devtools.inspector.show_pseudo_elements", false);
   3013 // The default size for image preview tooltips in the rule-view/computed-view/markup-view
   3014 pref("devtools.inspector.imagePreviewTooltipSize", 300);
   3015 // Enable user agent style inspection in rule-view
   3016 pref("devtools.inspector.showUserAgentStyles", false);
   3017 // Show native anonymous content and user agent shadow roots
   3018 pref("devtools.inspector.showAllAnonymousContent", false);
   3019 // Enable overflow debugging in the inspector.
   3020 pref("devtools.overflow.debugging.enabled", true);
   3021 // Enable drag to edit properties in the inspector rule view.
   3022 pref("devtools.inspector.draggable_properties", true);
   3023 
   3024 // Grid highlighter preferences
   3025 pref("devtools.gridinspector.gridOutlineMaxColumns", 50);
   3026 pref("devtools.gridinspector.gridOutlineMaxRows", 50);
   3027 pref("devtools.gridinspector.showGridAreas", false);
   3028 pref("devtools.gridinspector.showGridLineNumbers", false);
   3029 pref("devtools.gridinspector.showInfiniteLines", false);
   3030 // Max number of grid highlighters that can be displayed
   3031 pref("devtools.gridinspector.maxHighlighters", 3);
   3032 
   3033 // Whether or not simplified highlighters should be used when
   3034 // prefers-reduced-motion is enabled.
   3035 pref("devtools.inspector.simple-highlighters-reduced-motion", false);
   3036 // Wheter or not Enter on inplace editor in the Rules view moves focus and activates
   3037 // next inplace editor.
   3038 pref("devtools.inspector.rule-view.focusNextOnEnter", true);
   3039 
   3040 // Whether or not the box model panel is opened in the layout view
   3041 pref("devtools.layout.boxmodel.opened", true);
   3042 // Whether or not the flexbox panel is opened in the layout view
   3043 pref("devtools.layout.flexbox.opened", true);
   3044 // Whether or not the flexbox container panel is opened in the layout view
   3045 pref("devtools.layout.flex-container.opened", true);
   3046 // Whether or not the flexbox item panel is opened in the layout view
   3047 pref("devtools.layout.flex-item.opened", true);
   3048 // Whether or not the grid inspector panel is opened in the layout view
   3049 pref("devtools.layout.grid.opened", true);
   3050 
   3051 // Enable hovering Box Model values and jumping to their source CSS rule in the
   3052 // rule-view.
   3053 #if defined(NIGHTLY_BUILD)
   3054  pref("devtools.layout.boxmodel.highlightProperty", true);
   3055 #else
   3056  pref("devtools.layout.boxmodel.highlightProperty", false);
   3057 #endif
   3058 
   3059 // By how many times eyedropper will magnify pixels
   3060 pref("devtools.eyedropper.zoom", 6);
   3061 
   3062 // Enable to collapse attributes that are too long.
   3063 pref("devtools.markup.collapseAttributes", true);
   3064 // Length to collapse attributes
   3065 pref("devtools.markup.collapseAttributeLength", 120);
   3066 // Whether to auto-beautify the HTML on copy.
   3067 pref("devtools.markup.beautifyOnCopy", false);
   3068 
   3069 // DevTools default color unit
   3070 pref("devtools.defaultColorUnit", "authored");
   3071 
   3072 // Enable the Memory tools
   3073 pref("devtools.memory.enabled", true);
   3074 
   3075 pref("devtools.memory.custom-census-displays", "{}");
   3076 pref("devtools.memory.custom-label-displays", "{}");
   3077 pref("devtools.memory.custom-tree-map-displays", "{}");
   3078 
   3079 pref("devtools.memory.max-individuals", 1000);
   3080 pref("devtools.memory.max-retaining-paths", 10);
   3081 
   3082 // Enable the Performance tools
   3083 pref("devtools.performance.enabled", true);
   3084 
   3085 // The default cache UI setting
   3086 pref("devtools.cache.disabled", false);
   3087 
   3088 // The default service workers UI setting
   3089 pref("devtools.serviceWorkers.testing.enabled", false);
   3090 
   3091 // Enable the Network Monitor
   3092 pref("devtools.netmonitor.enabled", true);
   3093 
   3094 pref("devtools.netmonitor.features.requestBlocking", true);
   3095 
   3096 // Enable the Application panel
   3097 pref("devtools.application.enabled", true);
   3098 
   3099 // The internal Anti tracking debugging panel
   3100 pref("devtools.anti-tracking.enabled", false);
   3101 
   3102 // Enable the custom formatters feature
   3103 // This preference represents the user's choice to enable the custom formatters feature.
   3104 // While the preference above will be removed once the feature is stable, this one is menat to stay.
   3105 pref("devtools.custom-formatters.enabled", false);
   3106 
   3107 // The default Network Monitor UI settings
   3108 pref("devtools.netmonitor.panes-network-details-width", 550);
   3109 pref("devtools.netmonitor.panes-network-details-height", 450);
   3110 pref("devtools.netmonitor.panes-search-width", 550);
   3111 pref("devtools.netmonitor.panes-search-height", 450);
   3112 pref("devtools.netmonitor.filters", "[\"all\"]");
   3113 pref("devtools.netmonitor.requestfilter", "");
   3114 pref("devtools.netmonitor.visibleColumns",
   3115    "[\"override\",\"status\",\"method\",\"domain\",\"file\",\"initiator\",\"type\",\"transferred\",\"contentSize\",\"waterfall\"]"
   3116 );
   3117 pref("devtools.netmonitor.columnsData",
   3118  '[{"name":"override","minWidth":20,"width":2}, {"name":"status","minWidth":30,"width":5}, {"name":"method","minWidth":30,"width":5}, {"name":"domain","minWidth":30,"width":10}, {"name":"file","minWidth":30,"width":25}, {"name":"url","minWidth":30,"width":25},{"name":"initiator","minWidth":30,"width":10},{"name":"type","minWidth":30,"width":5},{"name":"transferred","minWidth":30,"width":10},{"name":"contentSize","minWidth":30,"width":5},{"name":"waterfall","minWidth":150,"width":15}]');
   3119 pref("devtools.netmonitor.msg.payload-preview-height", 128);
   3120 pref("devtools.netmonitor.msg.visibleColumns",
   3121  '["data", "time"]'
   3122 );
   3123 pref("devtools.netmonitor.msg.displayed-messages.limit", 500);
   3124 
   3125 pref("devtools.netmonitor.ui.default-raw-response", false);
   3126 
   3127 // Save request/response bodies yes/no.
   3128 pref("devtools.netmonitor.saveRequestAndResponseBodies", true);
   3129 
   3130 // The default Network monitor HAR export setting
   3131 pref("devtools.netmonitor.har.defaultLogDir", "");
   3132 pref("devtools.netmonitor.har.defaultFileName", "%hostname_Archive [%date]");
   3133 pref("devtools.netmonitor.har.jsonp", false);
   3134 pref("devtools.netmonitor.har.jsonpCallback", "");
   3135 pref("devtools.netmonitor.har.includeResponseBodies", true);
   3136 pref("devtools.netmonitor.har.compress", false);
   3137 pref("devtools.netmonitor.har.forceExport", false);
   3138 pref("devtools.netmonitor.har.pageLoadedTimeout", 1500);
   3139 pref("devtools.netmonitor.har.enableAutoExportToFile", false);
   3140 pref("devtools.netmonitor.har.multiple-pages", false);
   3141 
   3142 // netmonitor audit
   3143 pref("devtools.netmonitor.audits.slow", 500);
   3144 
   3145 // Enable the new Edit and Resend panel
   3146 pref("devtools.netmonitor.features.newEditAndResend", true);
   3147 
   3148 pref("devtools.netmonitor.customRequest", '{}');
   3149 
   3150 // Enable Netmonitor Web Transport Support
   3151 pref("devtools.netmonitor.features.webtransport", false);
   3152 
   3153 // Enable the Storage Inspector
   3154 pref("devtools.storage.enabled", true);
   3155 
   3156 // Enable the Style Editor.
   3157 pref("devtools.styleeditor.enabled", true);
   3158 pref("devtools.styleeditor.autocompletion-enabled", true);
   3159 pref("devtools.styleeditor.showAtRulesSidebar", true);
   3160 pref("devtools.styleeditor.atRulesSidebarWidth", 238);
   3161 pref("devtools.styleeditor.navSidebarWidth", 245);
   3162 pref("devtools.styleeditor.transitions", true);
   3163 
   3164 // Screenshot Option Settings.
   3165 pref("devtools.screenshot.clipboard.enabled", false);
   3166 pref("devtools.screenshot.audio.enabled", true);
   3167 
   3168 // Make sure the DOM panel is hidden by default
   3169 pref("devtools.dom.enabled", false);
   3170 
   3171 // Enable the Accessibility panel.
   3172 pref("devtools.accessibility.enabled", true);
   3173 
   3174 // Web console filters
   3175 pref("devtools.webconsole.filter.error", true);
   3176 pref("devtools.webconsole.filter.warn", true);
   3177 pref("devtools.webconsole.filter.info", true);
   3178 pref("devtools.webconsole.filter.log", true);
   3179 pref("devtools.webconsole.filter.debug", true);
   3180 pref("devtools.webconsole.filter.css", false);
   3181 pref("devtools.webconsole.filter.net", false);
   3182 pref("devtools.webconsole.filter.netxhr", false);
   3183 
   3184 // Webconsole autocomplete preference
   3185 pref("devtools.webconsole.input.autocomplete",true);
   3186 
   3187 // Set to true to eagerly show the results of webconsole terminal evaluations
   3188 // when they don't have side effects.
   3189 pref("devtools.webconsole.input.eagerEvaluation", true);
   3190 
   3191 // Browser console filters
   3192 pref("devtools.browserconsole.filter.error", true);
   3193 pref("devtools.browserconsole.filter.warn", true);
   3194 pref("devtools.browserconsole.filter.info", true);
   3195 pref("devtools.browserconsole.filter.log", true);
   3196 pref("devtools.browserconsole.filter.debug", true);
   3197 pref("devtools.browserconsole.filter.css", false);
   3198 pref("devtools.browserconsole.filter.net", false);
   3199 pref("devtools.browserconsole.filter.netxhr", false);
   3200 
   3201 // Max number of inputs to store in web console history.
   3202 pref("devtools.webconsole.inputHistoryCount", 300);
   3203 
   3204 // Persistent logging: |true| if you want the relevant tool to keep all of the
   3205 // logged messages after reloading the page, |false| if you want the output to
   3206 // be cleared each time page navigation happens.
   3207 pref("devtools.webconsole.persistlog", false);
   3208 pref("devtools.netmonitor.persistlog", false);
   3209 
   3210 // Web Console timestamp: |true| if you want the logs and instructions
   3211 // in the Web Console to display a timestamp, or |false| to not display
   3212 // any timestamps.
   3213 pref("devtools.webconsole.timestampMessages", false);
   3214 
   3215 // Enable the webconsole sidebar toggle in Nightly builds.
   3216 #if defined(NIGHTLY_BUILD)
   3217  pref("devtools.webconsole.sidebarToggle", true);
   3218 #else
   3219  pref("devtools.webconsole.sidebarToggle", false);
   3220 #endif
   3221 
   3222 // Saved editor mode state in the console.
   3223 pref("devtools.webconsole.input.editor", false);
   3224 pref("devtools.browserconsole.input.editor", false);
   3225 
   3226 // Editor width for webconsole and browserconsole.
   3227 pref("devtools.webconsole.input.editorWidth", 0);
   3228 pref("devtools.browserconsole.input.editorWidth", 0);
   3229 
   3230 // Display an onboarding UI for the Editor mode.
   3231 pref("devtools.webconsole.input.editorOnboarding", true);
   3232 
   3233 // Enable grouping/repeating similar messages in the console, true by default
   3234 pref("devtools.webconsole.groupSimilarMessages", true);
   3235 
   3236 // Enable network monitoring the browser toolbox console/browser console.
   3237 pref("devtools.browserconsole.enableNetworkMonitoring", false);
   3238 
   3239 // Enable client-side mapping service for source maps
   3240 pref("devtools.source-map.client-service.enabled", true);
   3241 
   3242 // The number of lines that are displayed in the web console.
   3243 pref("devtools.hud.loglimit", 10000);
   3244 
   3245 // The developer tools editor configuration:
   3246 // - tabsize: how many spaces to use when a Tab character is displayed.
   3247 // - expandtab: expand Tab characters to spaces.
   3248 // - keymap: which keymap to use (can be 'default', 'emacs' or 'vim')
   3249 // - autoclosebrackets: whether to permit automatic bracket/quote closing.
   3250 // - detectindentation: whether to detect the indentation from the file
   3251 // - enableCodeFolding: Whether to enable code folding or not.
   3252 pref("devtools.editor.tabsize", 2);
   3253 pref("devtools.editor.expandtab", true);
   3254 pref("devtools.editor.keymap", "default");
   3255 pref("devtools.editor.autoclosebrackets", true);
   3256 pref("devtools.editor.detectindentation", true);
   3257 pref("devtools.editor.enableCodeFolding", true);
   3258 pref("devtools.editor.autocomplete", true);
   3259 
   3260 // The angle of the viewport.
   3261 pref("devtools.responsive.viewport.angle", 0);
   3262 // The width of the viewport.
   3263 pref("devtools.responsive.viewport.width", 320);
   3264 // The height of the viewport.
   3265 pref("devtools.responsive.viewport.height", 480);
   3266 // The pixel ratio of the viewport.
   3267 pref("devtools.responsive.viewport.pixelRatio", 0);
   3268 // Whether or not the viewports are left aligned.
   3269 pref("devtools.responsive.leftAlignViewport.enabled", false);
   3270 // Whether to reload when touch simulation is toggled
   3271 pref("devtools.responsive.reloadConditions.touchSimulation", false);
   3272 // Whether to reload when user agent is changed
   3273 pref("devtools.responsive.reloadConditions.userAgent", false);
   3274 // Whether to show the notification about reloading to apply emulation
   3275 pref("devtools.responsive.reloadNotification.enabled", true);
   3276 // Whether or not touch simulation is enabled.
   3277 pref("devtools.responsive.touchSimulation.enabled", false);
   3278 // The user agent of the viewport.
   3279 pref("devtools.responsive.userAgent", "");
   3280 // Show the custom user agent input by default
   3281 pref("devtools.responsive.showUserAgentInput", true);
   3282 // Show the Dynamic Toolbar dummy by default
   3283 pref("devtools.responsive.dynamicToolbar.enabled", false);
   3284 
   3285 // Show tab debug targets for This Firefox (on by default for local builds).
   3286 #ifdef MOZILLA_OFFICIAL
   3287  pref("devtools.aboutdebugging.local-tab-debugging", false);
   3288 #else
   3289  pref("devtools.aboutdebugging.local-tab-debugging", true);
   3290 #endif
   3291 
   3292 // Show process debug targets.
   3293 pref("devtools.aboutdebugging.process-debugging", true);
   3294 // Stringified array of network locations that users can connect to.
   3295 pref("devtools.aboutdebugging.network-locations", "[]");
   3296 // Debug target pane collapse/expand settings.
   3297 pref("devtools.aboutdebugging.collapsibilities.installedExtension", false);
   3298 pref("devtools.aboutdebugging.collapsibilities.otherWorker", false);
   3299 pref("devtools.aboutdebugging.collapsibilities.serviceWorker", false);
   3300 pref("devtools.aboutdebugging.collapsibilities.sharedWorker", false);
   3301 pref("devtools.aboutdebugging.collapsibilities.tab", false);
   3302 pref("devtools.aboutdebugging.collapsibilities.temporaryExtension", false);
   3303 
   3304 // about:debugging: only show system and hidden extensions in local builds by
   3305 // default.
   3306 #ifdef MOZILLA_OFFICIAL
   3307  pref("devtools.aboutdebugging.showHiddenAddons", false);
   3308 #else
   3309  pref("devtools.aboutdebugging.showHiddenAddons", true);
   3310 #endif
   3311 
   3312 // Add some extra logging to the console, for debugging
   3313 pref("devtools.aboutdebugging.showReduxActionsInConsole", false);
   3314 
   3315 // Map top-level await expressions in the console
   3316 pref("devtools.debugger.features.map-await-expression", true);
   3317 
   3318 // This relies on javascript.options.asyncstack as well or it has no effect.
   3319 pref("devtools.debugger.features.async-captured-stacks", true);
   3320 pref("devtools.debugger.features.async-live-stacks", false);
   3321 
   3322 // When debugging a website, this pref controls if extension content scripts applied
   3323 // to the currently debugged page should be shown in the Debugger Source Tree
   3324 pref("devtools.debugger.show-content-scripts", false);
   3325 
   3326 pref("devtools.debugger.hide-ignored-sources", false);
   3327 
   3328 // Disable autohide for DevTools popups and tooltips.
   3329 // This is currently not exposed by any UI to avoid making
   3330 // about:devtools-toolbox tabs unusable by mistake.
   3331 pref("devtools.popup.disable_autohide", false);
   3332 
   3333 // Add support for high contrast mode
   3334 #if defined(NIGHTLY_BUILD)
   3335  pref("devtools.high-contrast-mode-support", true);
   3336 #else
   3337  pref("devtools.high-contrast-mode-support", false);
   3338 #endif
   3339 
   3340 // FirstStartup service time-out in ms
   3341 pref("first-startup.timeout", 30000);
   3342 pref("first-startup.category-tasks-enabled", true);
   3343 
   3344 // Enable the default browser agent.
   3345 // The agent still runs as scheduled if this pref is disabled,
   3346 // but it exits immediately before taking any action.
   3347 #ifdef XP_WIN
   3348  pref("default-browser-agent.enabled", true);
   3349 #endif
   3350 
   3351 // Test Prefs that do nothing for testing
   3352 #if defined(EARLY_BETA_OR_EARLIER)
   3353  pref("app.normandy.test-prefs.bool", false);
   3354  pref("app.normandy.test-prefs.integer", 0);
   3355  pref("app.normandy.test-prefs.string", "");
   3356 #endif
   3357 
   3358 // Shows 'View Image Info' item in the image context menu
   3359 #ifdef MOZ_DEV_EDITION
   3360  pref("browser.menu.showViewImageInfo", true);
   3361 #else
   3362  pref("browser.menu.showViewImageInfo", false);
   3363 #endif
   3364 
   3365 // Handing URLs to external apps via the "Share URL" menu item could allow a proxy bypass
   3366 #ifdef MOZ_PROXY_BYPASS_PROTECTION
   3367  pref("browser.menu.share_url.allow", false);
   3368 #endif
   3369 
   3370 // Mozilla-controlled domains that are allowed to use non-standard
   3371 // context properties for SVG images for use in the browser UI. Please
   3372 // keep this list short. This preference (and SVG `context-` keyword support)
   3373 // are expected to go away once a standardized alternative becomes
   3374 // available.
   3375 pref("svg.context-properties.content.allowed-domains", "profile.accounts.firefox.com,profile.stage.mozaws.net");
   3376 
   3377 // Preference that allows individual users to disable Firefox Translations.
   3378 #ifdef NIGHTLY_BUILD
   3379  pref("extensions.translations.disabled", true);
   3380 #endif
   3381 
   3382 #if defined(XP_MACOSX) || defined(XP_WIN)
   3383 pref("browser.firefoxbridge.enabled", false);
   3384 pref("browser.firefoxbridge.extensionOrigins",
   3385    "chrome-extension://gkcbmfjnnjoambnfmihmnkneakghogca/"
   3386 );
   3387 #endif
   3388 
   3389 // Turn on interaction measurements
   3390 pref("browser.places.interactions.enabled", true);
   3391 
   3392 // If the user has seen the Firefox View feature tour this value reflects
   3393 // the id of the last screen they saw and whether they completed the tour
   3394 pref("browser.firefox-view.feature-tour", "{\"screen\":\"FIREFOX_VIEW_SPOTLIGHT\",\"complete\":false}");
   3395 // Number of times the user visited about:firefoxview
   3396 pref("browser.firefox-view.view-count", 0);
   3397 // Maximum number of rows to show on the "History" page (0 = unlimited).
   3398 pref("browser.firefox-view.max-history-rows", 0);
   3399 // Enables virtual list functionality in Firefox View.
   3400 pref("browser.firefox-view.virtual-list.enabled", true);
   3401 
   3402 // If the user has seen the pdf.js feature tour this value reflects the tour
   3403 // message id, the id of the last screen they saw, and whether they completed the tour
   3404 pref("browser.pdfjs.feature-tour", "{\"screen\":\"\",\"complete\":false}");
   3405 
   3406 
   3407 pref("cookiebanners.ui.desktop.enabled", false);
   3408 
   3409 // When true, shows a one-time feature callout for cookie banner blocking.
   3410 pref("cookiebanners.ui.desktop.showCallout", false);
   3411 
   3412 // Controls which variant of the cookie banner CFR the user is presented with.
   3413 pref("cookiebanners.ui.desktop.cfrVariant", 0);
   3414 
   3415 // Parameters for the swipe-to-navigation icon.
   3416 //
   3417 // `navigation-icon-{start|end}-position` is the start or the end position of
   3418 // the icon movement in response to the user's swipe gesture. `0` means the icon
   3419 // positions at the left edge of the browser window. For example on Mac, when
   3420 // the user started swipe gesture left to right, the icon appears at a point
   3421 // where left side 20px of the icon is outside of the browser window's view.
   3422 //
   3423 // `navigation-icon-{min|max}-radius` is the minimum or the maximum radius of
   3424 // the icon's outer circle size in response to the user's swipe gesture.  `-1`
   3425 // means that the circle radius never changes.
   3426 #ifdef XP_MACOSX
   3427  pref("browser.swipe.navigation-icon-start-position", -20);
   3428  pref("browser.swipe.navigation-icon-end-position", 0);
   3429  pref("browser.swipe.navigation-icon-min-radius", -1);
   3430  pref("browser.swipe.navigation-icon-max-radius", -1);
   3431 #else
   3432  pref("browser.swipe.navigation-icon-start-position", -40);
   3433  pref("browser.swipe.navigation-icon-end-position", 60);
   3434  pref("browser.swipe.navigation-icon-min-radius", 12);
   3435  pref("browser.swipe.navigation-icon-max-radius", 20);
   3436 #endif
   3437 
   3438 // Trigger FOG's Artifact Build support on artifact builds.
   3439 #ifdef MOZ_ARTIFACT_BUILDS
   3440  pref("telemetry.fog.artifact_build", true);
   3441 #endif
   3442 
   3443 #ifdef NIGHTLY_BUILD
   3444  pref("dom.security.credentialmanagement.identity.enabled", true);
   3445 #endif
   3446 
   3447 pref("ui.new-webcompat-reporter.enabled", true);
   3448 
   3449 #if defined(EARLY_BETA_OR_EARLIER)
   3450 pref("ui.new-webcompat-reporter.send-more-info-link", true);
   3451 #else
   3452 pref("ui.new-webcompat-reporter.send-more-info-link", false);
   3453 #endif
   3454 
   3455 # 0 = disabled, 1 = reason optional, 2 = reason required.
   3456 pref("ui.new-webcompat-reporter.reason-dropdown", 2);
   3457 
   3458 pref("ui.new-webcompat-reporter.reason-dropdown.randomized", true);
   3459 
   3460 // Reset Private Browsing Session feature
   3461 #if defined(NIGHTLY_BUILD)
   3462  pref("browser.privatebrowsing.resetPBM.enabled", true);
   3463 #else
   3464  pref("browser.privatebrowsing.resetPBM.enabled", false);
   3465 #endif
   3466 // Whether the reset private browsing panel should ask for confirmation before
   3467 // performing the clear action.
   3468 pref("browser.privatebrowsing.resetPBM.showConfirmationDialog", true);
   3469 
   3470 // the preferences related to the Nimbus experiment, to activate and deactivate
   3471 // the the entire rollout (see: bug 1864216 - two prompts, 1877500 - set two in one prompt)
   3472 pref("browser.mailto.dualPrompt", false);
   3473 // Display a reminder prompt for known webmailers if the prompt was not
   3474 // dismissed before the next visit of that webmailer.
   3475 pref("browser.mailto.dualPrompt.onLocationChange", false);
   3476 // configures after how many minutes is the prompt shown again after it was
   3477 // dismissed. This differs from clicking the 'x' button and 'not now' (forever=0)
   3478 pref("browser.mailto.dualPrompt.dismissNotNowMinutes", 525600); // one year
   3479 pref("browser.mailto.dualPrompt.dismissXClickMinutes", 1440); // one day
   3480 
   3481 // Pref to initialize the BackupService soon after startup.
   3482 pref("browser.backup.enabled", true);
   3483 // Pref to control whether scheduled backups run or not.
   3484 pref("browser.backup.scheduled.enabled", false);
   3485 
   3486 // Prefs to control visibility and usability of the create backup and restore from backup features.
   3487 #ifdef XP_WIN
   3488  pref("browser.backup.archive.enabled", true);
   3489  pref("browser.backup.restore.enabled", true);
   3490 #else
   3491  pref("browser.backup.archive.enabled", false);
   3492  pref("browser.backup.restore.enabled", false);
   3493 #endif
   3494 
   3495 // The number of SQLite database pages to backup per step.
   3496 pref("browser.backup.sqlite.pages_per_step", 50);
   3497 // The delay between SQLite database backup steps in milliseconds.
   3498 pref("browser.backup.sqlite.step_delay_ms", 50);
   3499 pref("browser.backup.scheduled.idle-threshold-seconds", 15);
   3500 pref("browser.backup.scheduled.minimum-time-between-backups-seconds", 86400);
   3501 pref("browser.backup.template.fallback-download.release", "https://www.firefox.com/?utm_medium=firefox-desktop&utm_source=html-backup");
   3502 pref("browser.backup.template.fallback-download.beta", "https://www.firefox.com/channel/desktop/?utm_medium=firefox-desktop&utm_source=html-backup");
   3503 pref("browser.backup.template.fallback-download.aurora", "https://www.firefox.com/channel/desktop/?utm_medium=firefox-desktop&utm_source=html-backup");
   3504 pref("browser.backup.template.fallback-download.nightly", "https://www.firefox.com/channel/desktop/?utm_medium=firefox-desktop&utm_source=html-backup");
   3505 pref("browser.backup.template.fallback-download.esr", " https://www.firefox.com/download/all/desktop-esr/?utm_medium=firefox-desktop&utm_source=html-backup");
   3506 pref("browser.backup.errorCode", 0);
   3507 pref("browser.backup.backup-retry-limit", 10);
   3508 pref("browser.backup.disabled-on-idle-backup-retry", false);
   3509 // Limit of number of unremovable staging directories and archives that are
   3510 // permitted before backup will stop making additional backups.  Unremovable
   3511 // staging directories/archives are ones that the file system prevents us from
   3512 // removing for any reason.
   3513 pref("browser.backup.max-num-unremovable-staging-items", 5);
   3514 pref("browser.backup.scheduled.user-disabled", false);
   3515 // How many milliseconds to wait for tab state to flush before continuing the
   3516 // backup process.
   3517 pref("browser.backup.tab-flush-timeout", 5000);
   3518 
   3519 #ifdef NIGHTLY_BUILD
   3520  // Pref to enable the new profiles
   3521  pref("browser.profiles.enabled", true);
   3522 #else
   3523  pref("browser.profiles.enabled", false);
   3524 #endif
   3525 pref("browser.profiles.profile-name.updated", false);
   3526 // Whether to allow the user to merge profile data
   3527 pref("browser.profiles.sync.allow-danger-merge", false);
   3528 // Allow Firefox Refresh even if profile is ineligible, see Bug 1928138
   3529 pref("browser.profiles.forceEnableRefresh", false);
   3530 
   3531 pref("startup.homepage_override_url_nimbus", "");
   3532 // These prefs are referring to the Fx update version
   3533 pref("startup.homepage_override_nimbus_maxVersion", "");
   3534 pref("startup.homepage_override_nimbus_minVersion", "");
   3535 // Pref to disable all What's New pages
   3536 pref("startup.homepage_override_nimbus_disable_wnp", false);
   3537 
   3538 // Pref to enable the content relevancy feature.
   3539 pref("toolkit.contentRelevancy.enabled", false);
   3540 // Pref to enable the ingestion through the Rust component.
   3541 pref("toolkit.contentRelevancy.ingestEnabled", false);
   3542 // Pref to enable extra logging for the content relevancy feature
   3543 pref("toolkit.contentRelevancy.log", false);
   3544 
   3545 // The number of days after which to rotate the context ID. 0 means to disable
   3546 // rotation altogether.
   3547 pref("browser.contextual-services.contextId.rotation-in-days", 3);
   3548 pref("browser.contextual-services.contextId.rust-component.enabled", true);
   3549 
   3550 // Pref to enable the IP protection feature
   3551 pref("browser.ipProtection.enabled", false);
   3552 // Pref to track whether the user has opted out of using IP Protection
   3553 pref("browser.ipProtection.optedOut", false);
   3554 // Pref to enable the autoStart feature
   3555 pref("browser.ipProtection.features.autoStart", false);
   3556 // Prefs to track the user turning on autostart preference
   3557 pref("browser.ipProtection.autoStartEnabled", false);
   3558 pref("browser.ipProtection.autoStartPrivateEnabled", false);
   3559 // Pref to track whether the user has turned IP protection on
   3560 pref("browser.ipProtection.userEnabled", false);
   3561 // Pref to track which experiment version the user is enrolled in
   3562 pref("browser.ipProtection.variant", "");
   3563 // Pref to track number of times the VPN panel is opened
   3564 pref("browser.ipProtection.panelOpenCount", 0);
   3565 // Pref to enable support for site exceptions
   3566 pref("browser.ipProtection.features.siteExceptions", false);
   3567 pref("browser.ipProtection.log", false);
   3568 pref("browser.ipProtection.guardian.endpoint", "https://vpn.mozilla.org/");
   3569 pref("browser.ipProtection.added", false);
   3570 
   3571 // Pref to enable aboug:glean redesign.
   3572 pref("about.glean.redesign.enabled", false);
   3573 
   3574 // Forward Rust component logs to the JS console (comma separate list of crate names)
   3575 // The empty string defaults to forwarding error-level messages.
   3576 // If your crate needs to log more by default, for example persistent logging to a file like Sync,
   3577 // contact the application-services developers and we can work with you to implement this.
   3578 pref("toolkit.rust-components.logging.crates", "");
   3579 
   3580 // Log level for the internal logs in `AppServicesTracing.sys.mjs`
   3581 pref("toolkit.rust-components.logging.internal-level", "Warn");
   3582 
   3583 // Settings Redesign 2025 prefs
   3584 pref("browser.settings-redesign.enabled", false);
   3585 
   3586 // A preference that will be locked to reflect whether this build has support
   3587 // for XDG Config Home handling. Mostly used to be able to keep tests around
   3588 // in case of a backout of the feature
   3589 #if defined(MOZ_WIDGET_GTK)
   3590 pref("widget.support-xdg-config", true, locked);
   3591 #endif