1 #filter dumbComments emptyLines substitution
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/.
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
12 // Please indent all prefs defined within #ifdef/#ifndef conditions. This
13 // improves readability, particular for conditional blocks that exceed a single
18 #define UNIX_BUT_NOT_MAC
22 pref("browser.hiddenWindowChromeURL", "chrome://browser/content/hiddenWindowMac.xhtml");
24 // Enables some extra Extension System Logging (can reduce performance)
25 pref("extensions.logging.enabled", false);
27 // Disables strict compatibility, making addons compatible-by-default.
28 pref("extensions.strictCompatibility", false);
30 // Temporary preference to forcibly make themes more safe with Australis even if
31 // extensions.checkCompatibility=false has been set.
32 pref("extensions.checkCompatibility.temporaryThemeOverride_minAppVersion", "29.0a1");
34 pref("extensions.webextOptionalPermissionPrompts", true);
35 // If enabled, install origin permission verification happens after addons are downloaded.
36 pref("extensions.postDownloadThirdPartyPrompt", true);
38 // Preferences for AMO integration
39 pref("extensions.getAddons.cache.enabled", true);
40 pref("extensions.getAddons.get.url", "https://services.addons.mozilla.org/api/v4/addons/search/?guid=%IDS%&lang=%LOCALE%");
41 pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/firefox/search?q=%TERMS%&platform=%OS%&appver=%VERSION%");
42 pref("extensions.getAddons.link.url", "https://addons.mozilla.org/%LOCALE%/firefox/");
43 pref("extensions.getAddons.langpacks.url", "https://services.addons.mozilla.org/api/v4/addons/language-tools/?app=firefox&type=language&appversion=%VERSION%");
44 pref("extensions.getAddons.discovery.api_url", "https://services.addons.mozilla.org/api/v4/discovery/?lang=%LOCALE%&edition=%DISTRIBUTION%");
46 // The URL for the privacy policy related to recommended extensions.
47 pref("extensions.recommendations.privacyPolicyUrl", "https://www.mozilla.org/privacy/firefox/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_content=privacy-policy-link#addons");
48 // The URL for Firefox Color, recommended on the theme page in about:addons.
49 pref("extensions.recommendations.themeRecommendationUrl", "https://color.firefox.com/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_content=theme-footer-link");
51 pref("extensions.update.autoUpdateDefault", true);
53 // Check AUS for system add-on updates.
54 pref("extensions.systemAddon.update.url", "https://aus5.mozilla.org/update/3/SystemAddons/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml");
55 pref("extensions.systemAddon.update.enabled", true);
57 // Disable add-ons that are not installed by the user in all scopes by default.
58 // See the SCOPE constants in AddonManager.jsm for values to use here.
59 pref("extensions.autoDisableScopes", 15);
60 // Scopes to scan for changes at startup.
61 pref("extensions.startupScanScopes", 0);
63 pref("extensions.geckoProfiler.acceptedExtensionIds", "geckoprofiler@mozilla.com,quantum-foxfooding@mozilla.com,raptor@mozilla.org");
66 pref("extensions.webextensions.remote", true);
68 // Require signed add-ons by default
69 pref("extensions.langpacks.signatures.required", true);
70 pref("xpinstall.signatures.required", true);
71 pref("xpinstall.signatures.devInfoURL", "https://wiki.mozilla.org/Addons/Extension_Signing");
73 // Enable extensionStorage storage actor by default
74 pref("devtools.storage.extensionStorage.enabled", true);
76 // Dictionary download preference
77 pref("browser.dictionaries.download.url", "https://addons.mozilla.org/%LOCALE%/firefox/language-tools/");
79 // At startup, should we check to see if the installation
80 // date is older than some threshold
81 pref("app.update.checkInstallTime", true);
83 // The number of days a binary is permitted to be old without checking is defined in
84 // firefox-branding.js (app.update.checkInstallTime.days)
86 // The minimum delay in seconds for the timer to fire between the notification
87 // of each consumer of the timer manager.
88 // minimum=30 seconds, default=120 seconds, and maximum=300 seconds
89 pref("app.update.timerMinimumDelay", 120);
91 // The minimum delay in milliseconds for the first firing after startup of the timer
92 // to notify consumers of the timer manager.
93 // minimum=10 seconds, default=30 seconds, and maximum=120 seconds
94 pref("app.update.timerFirstInterval", 30000);
96 // App-specific update preferences
98 // The interval to check for updates (app.update.interval) is defined in
99 // firefox-branding.js
101 // Enables some extra Application Update Logging (can reduce performance)
102 pref("app.update.log", false);
103 // Causes Application Update Logging to be sent to a file in the profile
104 // directory. This preference is automatically disabled on application start to
105 // prevent it from being left on accidentally. Turning this pref on enables
106 // logging, even if app.update.log is false.
107 pref("app.update.log.file", false);
109 // The number of general background check failures to allow before notifying the
110 // user of the failure. User initiated update checks always notify the user of
112 pref("app.update.backgroundMaxErrors", 10);
114 // Ids of the links to the "What's new" update documentation
115 pref("app.update.link.updateAvailableWhatsNew", "update-available-whats-new");
116 pref("app.update.link.updateManualWhatsNew", "update-manual-whats-new");
118 // How many times we should let downloads fail before prompting the user to
119 // download a fresh installer.
120 pref("app.update.download.promptMaxAttempts", 2);
122 // How many times we should let an elevation prompt fail before prompting the user to
123 // download a fresh installer.
124 pref("app.update.elevation.promptMaxAttempts", 2);
127 // Whether to delay popup notifications when an update is available and
128 // suppress them when an update is installed and waiting for user to restart.
129 // If set to true, these notifications will immediately be shown as banners in
130 // the app menu and as badges on the app menu button. Update available
131 // notifications will not create popup prompts until a week has passed without
132 // the user installing the update. Update restart notifications will not
133 // create popup prompts at all. This doesn't affect update notifications
134 // triggered by errors/failures or manual install prompts.
135 pref("app.update.suppressPrompts", false);
138 // If set to true, a message will be displayed in the hamburger menu while
139 // an update is being downloaded.
140 pref("app.update.notifyDuringDownload", false);
142 // If set to true, the Update Service will automatically download updates if the
143 // user can apply updates. This pref is no longer used on Windows, except as the
144 // default value to migrate to the new location that this data is now stored
145 // (which is in a file in the update directory). Because of this, this pref
146 // should no longer be used directly. Instead, getAppUpdateAutoEnabled and
147 // getAppUpdateAutoEnabled from UpdateUtils.sys.mjs should be used.
149 pref("app.update.auto", true);
152 // If set to true, the Update Service will apply updates in the background
153 // when it finishes downloading them.
154 pref("app.update.staging.enabled", true);
156 // Update service URL:
157 // app.update.url was removed in Bug 1568994
158 // app.update.url.manual is in branding section
159 // app.update.url.details is in branding section
161 // app.update.badgeWaitTime is in branding section
162 // app.update.interval is in branding section
163 // app.update.promptWaitTime is in branding section
165 // Whether or not to attempt using the service for updates.
166 #ifdef MOZ_MAINTENANCE_SERVICE
167 pref("app.update.service.enabled", true);
170 #ifdef MOZ_BITS_DOWNLOAD
171 // If set to true, the Update Service will attempt to use Windows BITS to
172 // download updates and will fallback to downloading internally if that fails.
173 pref("app.update.BITS.enabled", true);
176 pref("app.update.langpack.enabled", true);
178 #if defined(MOZ_UPDATE_AGENT)
179 pref("app.update.background.loglevel", "error");
180 pref("app.update.background.timeoutSec", 600);
181 // By default, check for updates when the browser is not running every 7 hours.
182 pref("app.update.background.interval", 25200);
183 // By default, snapshot Firefox Messaging System targeting for use by the
184 // background update task every 30 minutes.
185 pref("app.update.background.messaging.targeting.snapshot.intervalSec", 1800);
189 // If set to true, Firefox will automatically restart if it is left running
190 // with no browser windows open.
191 pref("app.update.noWindowAutoRestart.enabled", true);
192 // How long to wait after all browser windows are closed before restarting,
193 // in milliseconds. 5 min = 300000 ms
194 pref("app.update.noWindowAutoRestart.delayMs", 300000);
197 #if defined(MOZ_BACKGROUNDTASKS)
198 // The amount of time, in seconds, before background tasks time out and exit.
199 // Tasks can override this default (10 minutes).
200 pref("toolkit.backgroundtasks.defaultTimeoutSec", 600);
203 // Symmetric (can be overridden by individual extensions) update preferences.
205 // extensions.{GUID}.update.enabled
206 // extensions.{GUID}.update.url
209 pref("extensions.update.enabled", true);
210 pref("extensions.update.url", "https://versioncheck.addons.mozilla.org/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%");
211 pref("extensions.update.background.url", "https://versioncheck-bg.addons.mozilla.org/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%");
212 pref("extensions.update.interval", 86400); // Check for updates to Extensions and
215 pref("lightweightThemes.getMoreURL", "https://addons.mozilla.org/%LOCALE%/firefox/themes");
217 #if defined(MOZ_WIDEVINE_EME)
218 pref("browser.eme.ui.enabled", true);
220 pref("browser.eme.ui.enabled", false);
223 // UI tour experience.
224 pref("browser.uitour.enabled", true);
225 pref("browser.uitour.loglevel", "Error");
226 pref("browser.uitour.requireSecure", true);
227 pref("browser.uitour.themeOrigin", "https://addons.mozilla.org/%LOCALE%/firefox/themes/");
228 pref("browser.uitour.url", "https://www.mozilla.org/%LOCALE%/firefox/%VERSION%/tour/");
229 // How long to show a Hearbeat survey (two hours, in seconds)
230 pref("browser.uitour.surveyDuration", 7200);
232 pref("keyword.enabled", true);
234 // Fixup whitelists, the urlbar won't try to search for these words, but will
235 // instead consider them valid TLDs. Don't check these directly, use
236 // Services.uriFixup.isDomainKnown() instead.
237 pref("browser.fixup.domainwhitelist.localhost", true);
238 // https://tools.ietf.org/html/rfc2606
239 pref("browser.fixup.domainsuffixwhitelist.test", true);
240 pref("browser.fixup.domainsuffixwhitelist.example", true);
241 pref("browser.fixup.domainsuffixwhitelist.invalid", true);
242 pref("browser.fixup.domainsuffixwhitelist.localhost", true);
243 // https://tools.ietf.org/html/draft-wkumari-dnsop-internal-00
244 pref("browser.fixup.domainsuffixwhitelist.internal", true);
245 // https://tools.ietf.org/html/rfc6762
246 pref("browser.fixup.domainsuffixwhitelist.local", true);
248 // Whether to always go through the DNS server before sending a single word
249 // search string, that may contain a valid host, to a search engine.
250 pref("browser.fixup.dns_first_for_single_words", false);
252 #ifdef UNIX_BUT_NOT_MAC
253 pref("general.autoScroll", false);
255 pref("general.autoScroll", true);
258 // UI density of the browser chrome. This mostly affects toolbarbutton
259 // and urlbar spacing. The possible values are 0=normal, 1=compact, 2=touch.
260 pref("browser.uidensity", 0);
261 // Whether Firefox will automatically override the uidensity to "touch"
262 // while the user is in a touch environment (such as Windows tablet mode).
263 pref("browser.touchmode.auto", true);
264 // Whether Firefox will show the Compact Mode UIDensity option.
265 pref("browser.compactmode.show", false);
267 // At startup, check if we're the default browser and prompt user if not.
268 pref("browser.shell.checkDefaultBrowser", true);
269 pref("browser.shell.shortcutFavicons",true);
270 pref("browser.shell.mostRecentDateSetAsDefault", "");
271 pref("browser.shell.skipDefaultBrowserCheckOnFirstRun", true);
272 pref("browser.shell.didSkipDefaultBrowserCheckOnFirstRun", false);
273 pref("browser.shell.defaultBrowserCheckCount", 0);
275 // Attempt to set the default browser on Windows 10 using the UserChoice registry keys,
276 // before falling back to launching the modern Settings dialog.
277 pref("browser.shell.setDefaultBrowserUserChoice", true);
278 // When setting the default browser on Windows 10 using the UserChoice
279 // registry keys, also try to set Firefox as the default PDF handler.
280 pref("browser.shell.setDefaultPDFHandler", true);
281 // When setting Firefox as the default PDF handler (subject to conditions
282 // above), only set Firefox as the default PDF handler when the existing handler
283 // is a known browser, and not when existing handler is another PDF handler such
284 // as Acrobat Reader or Nitro PDF.
285 pref("browser.shell.setDefaultPDFHandler.onlyReplaceBrowsers", true);
289 // 0 = blank, 1 = home (browser.startup.homepage), 2 = last visited page, 3 = resume previous browser session
290 // The behavior of option 3 is detailed at: http://wiki.mozilla.org/Session_Restore
291 pref("browser.startup.page", 1);
292 pref("browser.startup.homepage", "about:home");
294 pref("browser.startup.homepage.abouthome_cache.enabled", true);
296 pref("browser.startup.homepage.abouthome_cache.enabled", false);
298 pref("browser.startup.homepage.abouthome_cache.loglevel", "Warn");
300 // Whether we should skip the homepage when opening the first-run page
301 pref("browser.startup.firstrunSkipsHomepage", true);
303 // Whether we should show the session-restore infobar on startup
304 pref("browser.startup.couldRestoreSession.count", 0);
306 // Show an about:blank window as early as possible for quick startup feedback.
307 // Held to nightly on Linux due to bug 1450626.
308 // Disabled on Mac because the bouncing dock icon already provides feedback.
309 #if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) && defined(NIGHTLY_BUILD)
310 pref("browser.startup.blankWindow", true);
312 pref("browser.startup.blankWindow", false);
315 // Show a skeleton UI window prior to loading libxul. Only visible for windows
316 // users as it is not implemented anywhere else.
318 pref("browser.startup.preXulSkeletonUI", true);
321 // Show an upgrade dialog on major upgrades.
322 pref("browser.startup.upgradeDialog.enabled", true);
324 // Don't create the hidden window during startup on
325 // platforms that don't always need it (Win/Linux).
326 pref("toolkit.lazyHiddenWindow", true);
328 pref("browser.chrome.site_icons", true);
329 // browser.warnOnQuit == false will override all other possible prompts when quitting or restarting
330 pref("browser.warnOnQuit", true);
332 // Whether to warn when quitting when using the shortcut key.
334 pref("browser.warnOnQuitShortcut", false);
336 pref("browser.warnOnQuitShortcut", true);
339 // TODO bug 1702563: Renable fullscreen autohide by default on macOS.
341 pref("browser.fullscreen.autohide", false);
343 pref("browser.fullscreen.autohide", true);
346 pref("browser.overlink-delay", 80);
348 pref("browser.theme.colorway-closet", true);
350 // Whether expired built-in colorways themes that are active or retained
351 // should be allowed to check for updates and be updated to an AMO hosted
352 // theme with the same id (as part of preparing to remove from mozilla-central
353 // all the expired built-in colorways themes, after existing users have been
354 // migrated to colorways themes hosted on AMO).
355 pref("browser.theme.colorway-migration", false);
357 // Whether using `ctrl` when hitting return/enter in the URL bar
358 // (or clicking 'go') should prefix 'www.' and suffix
359 // browser.fixup.alternate.suffix to the URL bar value prior to
361 pref("browser.urlbar.ctrlCanonizesURLs", true);
363 // Whether we announce to screen readers when tab-to-search results are
365 pref("browser.urlbar.accessibility.tabToSearch.announceResults", true);
367 // Control autoFill behavior
368 pref("browser.urlbar.autoFill", true);
370 // Whether enabling adaptive history autofill.
371 pref("browser.urlbar.autoFill.adaptiveHistory.enabled", false);
373 // Minimum char length of the user's search string to enable adaptive history
375 pref("browser.urlbar.autoFill.adaptiveHistory.minCharsThreshold", 0);
377 // Whether to warm up network connections for autofill or search results.
378 pref("browser.urlbar.speculativeConnect.enabled", true);
380 // Whether bookmarklets should be filtered out of Address Bar matches.
381 // This is enabled for security reasons, when true it is still possible to
382 // search for bookmarklets typing "javascript: " followed by the actual query.
383 pref("browser.urlbar.filter.javascript", true);
385 // Enable a certain level of urlbar logging to the Browser Console. See Log.jsm.
386 pref("browser.urlbar.loglevel", "Error");
388 // the maximum number of results to show in autocomplete when doing richResults
389 pref("browser.urlbar.maxRichResults", 10);
391 // The maximum number of historical search results to show.
392 pref("browser.urlbar.maxHistoricalSearchSuggestions", 2);
394 // The default behavior for the urlbar can be configured to use any combination
395 // of the match filters with each additional filter adding more results (union).
396 pref("browser.urlbar.suggest.bookmark", true);
397 pref("browser.urlbar.suggest.history", true);
398 pref("browser.urlbar.suggest.openpage", true);
399 pref("browser.urlbar.suggest.remotetab", true);
400 pref("browser.urlbar.suggest.searches", true);
401 pref("browser.urlbar.suggest.topsites", true);
402 pref("browser.urlbar.suggest.engines", true);
403 pref("browser.urlbar.suggest.calculator", false);
405 #if defined(EARLY_BETA_OR_EARLIER)
406 // Enable QuickActions and its urlbar search mode button.
407 pref("browser.urlbar.quickactions.enabled", true);
408 pref("browser.urlbar.suggest.quickactions", true);
409 pref("browser.urlbar.shortcuts.quickactions", true);
410 pref("browser.urlbar.quickactions.showPrefs", true);
411 pref("browser.urlbar.quickactions.showInZeroPrefix", false);
414 // Feature gate pref for weather suggestions in the urlbar.
415 pref("browser.urlbar.weather.featureGate", false);
417 // If `browser.urlbar.weather.featureGate` is true, this controls whether
418 // weather suggestions are turned on.
419 pref("browser.urlbar.suggest.weather", true);
421 // When `browser.urlbar.bestMatch.enabled` is true, this controls whether best
422 // match results are shown in the urlbar. This pref is exposed to the user in
423 // the UI, and it's sticky so that its user-branch value persists regardless of
424 // whatever Firefox Suggest experiments or rollouts the user is enrolled in over
426 pref("browser.urlbar.suggest.bestmatch", true, sticky);
428 // Whether non-sponsored quick suggest results are shown in the urlbar. This
429 // pref is exposed to the user in the UI, and it's sticky so that its
430 // user-branch value persists regardless of whatever Firefox Suggest scenarios,
431 // with their various default-branch values, the user is enrolled in over time.
432 pref("browser.urlbar.suggest.quicksuggest.nonsponsored", false, sticky);
434 // Whether sponsored quick suggest results are shown in the urlbar. This pref is
435 // exposed to the user in the UI, and it's sticky so that its user-branch value
436 // persists regardless of whatever Firefox Suggest scenarios, with their various
437 // default-branch values, the user is enrolled in over time.
438 pref("browser.urlbar.suggest.quicksuggest.sponsored", false, sticky);
440 // Whether data collection is enabled for quick suggest results in the urlbar.
441 // This pref is exposed to the user in the UI, and it's sticky so that its
442 // user-branch value persists regardless of whatever Firefox Suggest scenarios,
443 // with their various default-branch values, the user is enrolled in over time.
444 pref("browser.urlbar.quicksuggest.dataCollection.enabled", false, sticky);
446 // Whether the quick suggest feature in the urlbar is enabled.
447 pref("browser.urlbar.quicksuggest.enabled", false);
449 // Whether to show the QuickSuggest onboarding dialog.
450 pref("browser.urlbar.quicksuggest.shouldShowOnboardingDialog", true);
452 // Show QuickSuggest onboarding dialog on the nth browser restarts.
453 pref("browser.urlbar.quicksuggest.showOnboardingDialogAfterNRestarts", 0);
455 // The indexes of the sponsored and non-sponsored quick suggest results within
456 // the general results group.
457 pref("browser.urlbar.quicksuggest.sponsoredIndex", -1);
458 pref("browser.urlbar.quicksuggest.nonSponsoredIndex", -1);
460 // Whether Remote Settings is enabled as a quick suggest source.
461 pref("browser.urlbar.quicksuggest.remoteSettings.enabled", true);
463 // Whether quick suggest results can be shown in position specified in the
465 pref("browser.urlbar.quicksuggest.allowPositionInSuggestions", true);
467 // Whether non-sponsored quick suggest results are subject to impression
469 pref("browser.urlbar.quicksuggest.impressionCaps.nonSponsoredEnabled", false);
471 // Whether sponsored quick suggest results are subject to impression frequency
473 pref("browser.urlbar.quicksuggest.impressionCaps.sponsoredEnabled", false);
475 // Whether the usual non-best-match quick suggest results can be blocked. This
476 // pref is a fallback for the Nimbus variable `quickSuggestBlockingEnabled`.
477 pref("browser.urlbar.quicksuggest.blockingEnabled", false);
479 // Whether unit conversion is enabled.
481 pref("browser.urlbar.unitConversion.enabled", true);
483 pref("browser.urlbar.unitConversion.enabled", false);
486 // Whether to show search suggestions before general results like history and
488 pref("browser.urlbar.showSearchSuggestionsFirst", true);
490 // As a user privacy measure, don't fetch search suggestions if a pasted string
491 // is longer than this.
492 pref("browser.urlbar.maxCharsForSearchSuggestions", 100);
494 pref("browser.urlbar.trimURLs", true);
496 // If changed to true, copying the entire URL from the location bar will put the
497 // human readable (percent-decoded) URL on the clipboard.
498 pref("browser.urlbar.decodeURLsOnCopy", false);
500 // Whether or not to move tabs into the active window when using the "Switch to
501 // Tab" feature of the awesomebar.
502 pref("browser.urlbar.switchTabs.adoptIntoActiveWindow", false);
504 // Whether addresses and search results typed into the address bar
505 // should be opened in new tabs by default.
506 pref("browser.urlbar.openintab", false);
508 // Enable three-dot options button and menu for eligible results.
509 pref("browser.urlbar.resultMenu", false);
511 // If true, we show tail suggestions when available.
512 pref("browser.urlbar.richSuggestions.tail", true);
514 // If true, top sites may include sponsored ones.
515 pref("browser.urlbar.sponsoredTopSites", false);
517 // Global toggle for whether the show search terms feature
518 // can be used at all, and enabled/disabled by the user.
519 #if defined(EARLY_BETA_OR_EARLIER)
520 pref("browser.urlbar.showSearchTerms.featureGate", true);
522 pref("browser.urlbar.showSearchTerms.featureGate", false);
525 // If true, show the search term in the Urlbar while on
526 // a default search engine results page.
527 pref("browser.urlbar.showSearchTerms.enabled", true);
529 // Controls the empty search behavior in Search Mode:
531 // 1 - Show search history
532 // 2 - Show search and browsing history
533 pref("browser.urlbar.update2.emptySearchBehavior", 0);
535 // Whether the urlbar displays one-offs to filter searches to history,
536 // bookmarks, or tabs.
537 pref("browser.urlbar.shortcuts.bookmarks", true);
538 pref("browser.urlbar.shortcuts.tabs", true);
539 pref("browser.urlbar.shortcuts.history", true);
541 pref("browser.urlbar.eventTelemetry.enabled", false);
543 // Whether search engagement telemetry should be recorded.
544 pref("browser.urlbar.searchEngagementTelemetry.enabled", false);
546 // When we send events to Urlbar extensions, we wait this amount of time in
547 // milliseconds for them to respond before timing out.
548 pref("browser.urlbar.extension.timeout", 400);
550 // Controls when to DNS resolve single word search strings, after they were
551 // searched for. If the string is resolved as a valid host, show a
552 // "Did you mean to go to 'host'" prompt.
553 // 0 - never resolve; 1 - use heuristics (default); 2 - always resolve
554 pref("browser.urlbar.dnsResolveSingleWordsAfterSearch", 0);
556 // Whether the results panel should be kept open during IME composition.
557 // The default value is false because some IME open a picker panel, and we end
558 // up with two panels on top of each other. Since for now we can't detect that
559 // we leave this choice to the user, hopefully in the future this can be flipped
561 pref("browser.urlbar.keepPanelOpenDuringImeComposition", false);
563 // Whether Firefox Suggest group labels are shown in the urlbar view.
564 pref("browser.urlbar.groupLabels.enabled", true);
566 // Whether Merino is enabled as a quick suggest source in the urlbar.
567 pref("browser.urlbar.merino.enabled", true);
569 // The Merino endpoint URL, not including parameters.
570 pref("browser.urlbar.merino.endpointURL", "https://merino.services.mozilla.com/api/v1/suggest");
572 // Timeout for Merino fetches (ms).
573 pref("browser.urlbar.merino.timeoutMs", 200);
575 // Comma-separated list of providers to request from Merino
576 pref("browser.urlbar.merino.providers", "");
578 // Comma-separated list of client variants to send to Merino
579 pref("browser.urlbar.merino.clientVariants", "");
581 // Whether the best match feature in the urlbar is enabled.
582 pref("browser.urlbar.bestMatch.enabled", false);
584 // Whether best match results can be blocked. This pref is a fallback for the
585 // Nimbus variable `bestMatchBlockingEnabled`.
586 pref("browser.urlbar.bestMatch.blockingEnabled", false);
588 // Enable site specific search result.
589 pref("browser.urlbar.contextualSearch.enabled", false);
591 pref("browser.altClickSave", false);
593 // Enable logging downloads operations to the Console.
594 pref("browser.download.loglevel", "Error");
596 // Number of milliseconds to wait for the http headers (and thus
597 // the Content-Disposition filename) before giving up and falling back to
598 // picking a filename without that info in hand so that the user sees some
599 // feedback from their action.
600 pref("browser.download.saveLinkAsFilenameTimeout", 4000);
602 pref("browser.download.useDownloadDir", true);
603 pref("browser.download.folderList", 1);
604 pref("browser.download.manager.addToRecentDocs", true);
605 pref("browser.download.manager.resumeOnWakeDelay", 10000);
607 // This records whether or not the panel has been shown at least once.
608 pref("browser.download.panel.shown", false);
610 // This records whether or not to show the 'Open in system viewer' context menu item when appropriate
611 pref("browser.download.openInSystemViewerContextMenuItem", true);
613 // This records whether or not to show the 'Always open...' context menu item when appropriate
614 pref("browser.download.alwaysOpenInSystemViewerContextMenuItem", true);
616 // Open downloaded file types internally for the given types.
617 // This is a comma-separated list, the empty string ("") means no types are
618 // viewable internally.
619 pref("browser.download.viewableInternally.enabledTypes", "xml,svg,webp,avif,jxl");
622 // This controls whether the button is automatically shown/hidden depending
623 // on whether there are downloads to show.
624 pref("browser.download.autohideButton", true);
626 // Controls whether to open the downloads panel every time a download begins.
627 // The first download ever run in a new profile will still open the panel.
628 pref("browser.download.alwaysOpenPanel", true);
630 // Determines the behavior of the "Delete" item in the downloads context menu.
631 // Valid values are 0, 1, and 2.
632 // 0 - Don't remove the download from session list or history.
633 // 1 - Remove the download from session list, but not history.
634 // 2 - Remove the download from both session list and history.
635 pref("browser.download.clearHistoryOnDelete", 0);
638 pref("browser.helperApps.deleteTempFileOnExit", true);
641 // This controls the visibility of the radio button in the
642 // Unknown Content Type (Helper App) dialog that will open
643 // the content in the browser for PDF and for other
644 // Viewable Internally types
645 // (see browser.download.viewableInternally.enabledTypes)
646 pref("browser.helperApps.showOpenOptionForPdfJS", true);
647 pref("browser.helperApps.showOpenOptionForViewableInternally", true);
649 // search engine removal URL
650 pref("browser.search.searchEngineRemoval", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/search-engine-removal");
652 // search engines URL
653 pref("browser.search.searchEnginesURL", "https://addons.mozilla.org/%LOCALE%/firefox/search-engines/");
655 // search bar results always open in a new tab
656 pref("browser.search.openintab", false);
658 // context menu searches open in the foreground
659 pref("browser.search.context.loadInBackground", false);
661 // comma separated list of of engines to hide in the search panel.
662 pref("browser.search.hiddenOneOffs", "");
664 // Mirrors whether the search-container widget is in the navigation toolbar.
665 pref("browser.search.widget.inNavBar", false);
667 // Enables display of the options for the user using a separate default search
668 // engine in private browsing mode.
669 pref("browser.search.separatePrivateDefault.ui.enabled", false);
670 // The maximum amount of times the private default banner is shown.
671 pref("browser.search.separatePrivateDefault.ui.banner.max", 0);
673 // Enables the display of the Mozilla VPN banner in private browsing windows
674 pref("browser.privatebrowsing.vpnpromourl", "https://vpn.mozilla.org/?utm_source=firefox-browser&utm_medium=firefox-%CHANNEL%-browser&utm_campaign=private-browsing-vpn-link");
676 // Enables the new private browsing indicator.
677 pref("browser.privatebrowsing.enable-new-indicator", true);
679 // Enables the new about:privatebrowsing logo.
680 pref("browser.privatebrowsing.enable-new-logo", true);
682 // Whether the user has opted-in to recommended settings for data features.
683 pref("browser.dataFeatureRecommendations.enabled", false);
685 // Temporary pref to control whether or not Private Browsing windows show up
686 // as separate icons in the Windows taskbar.
687 pref("browser.privateWindowSeparation.enabled", true);
689 // Use dark theme variant for PBM windows. This is only supported if the theme
690 // sets darkTheme data.
691 pref("browser.theme.dark-private-windows", true);
693 // Controls visibility of the privacy segmentation preferences section.
694 pref("browser.privacySegmentation.preferences.show", false);
696 pref("browser.sessionhistory.max_entries", 50);
698 // Built-in default permissions.
699 pref("permissions.manager.defaultsUrl", "resource://app/defaults/permissions");
701 // Set default fallback values for site permissions we want
702 // the user to be able to globally change.
703 pref("permissions.default.camera", 0);
704 pref("permissions.default.microphone", 0);
705 pref("permissions.default.geo", 0);
706 pref("permissions.default.xr", 0);
707 pref("permissions.default.desktop-notification", 0);
708 pref("permissions.default.shortcuts", 0);
710 pref("permissions.desktop-notification.postPrompt.enabled", true);
711 pref("permissions.desktop-notification.notNow.enabled", false);
713 pref("permissions.fullscreen.allowed", false);
715 // handle links targeting new windows
716 // 1=current window/tab, 2=new window, 3=new tab in most recent window
717 pref("browser.link.open_newwindow", 3);
719 // handle external links (i.e. links opened from a different application)
720 // default: use browser.link.open_newwindow
721 // 1-3: see browser.link.open_newwindow for interpretation
722 pref("browser.link.open_newwindow.override.external", -1);
724 // 0: no restrictions - divert everything
725 // 1: don't divert window.open at all
726 // 2: don't divert window.open with features
727 pref("browser.link.open_newwindow.restriction", 2);
729 // If true, this pref causes windows opened by window.open to be forced into new
730 // tabs (rather than potentially opening separate windows, depending on
731 // window.open arguments) when the browser is in fullscreen mode.
732 // We set this differently on Mac because the fullscreen implementation there is
735 pref("browser.link.open_newwindow.disabled_in_fullscreen", true);
737 pref("browser.link.open_newwindow.disabled_in_fullscreen", false);
741 pref("browser.tabs.closeTabByDblclick", false);
742 pref("browser.tabs.closeWindowWithLastTab", true);
743 pref("browser.tabs.allowTabDetach", true);
744 // Open related links to a tab, e.g., link in current tab, at next to the
745 // current tab if |insertRelatedAfterCurrent| is true. Otherwise, always
746 // append new tab to the end.
747 pref("browser.tabs.insertRelatedAfterCurrent", true);
748 // Open all links, e.g., bookmarks, history items at next to current tab
749 // if |insertAfterCurrent| is true. Otherwise, append new tab to the end
750 // for non-related links. Note that if this is set to true, it will trump
751 // the value of browser.tabs.insertRelatedAfterCurrent.
752 pref("browser.tabs.insertAfterCurrent", false);
753 pref("browser.tabs.warnOnClose", false);
754 pref("browser.tabs.warnOnCloseOtherTabs", true);
755 pref("browser.tabs.warnOnOpen", true);
756 pref("browser.tabs.maxOpenBeforeWarn", 15);
757 pref("browser.tabs.loadInBackground", true);
758 pref("browser.tabs.opentabfor.middleclick", true);
759 pref("browser.tabs.loadDivertedInBackground", false);
760 pref("browser.tabs.loadBookmarksInBackground", false);
761 pref("browser.tabs.loadBookmarksInTabs", false);
762 pref("browser.tabs.tabClipWidth", 140);
763 pref("browser.tabs.tabMinWidth", 76);
764 // Users running in any of the following language codes will have the
765 // secondary text on tabs hidden due to size constraints and readability
766 // of the text at small font sizes.
767 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");
769 //Control the visibility of Tab Manager Menu.
770 pref("browser.tabs.tabmanager.enabled", true);
772 // When tabs opened by links in other tabs via a combination of
773 // browser.link.open_newwindow being set to 3 and target="_blank" etc are
775 // true return to the tab that opened this tab (its owner)
776 // false return to the adjacent tab (old default)
777 pref("browser.tabs.selectOwnerOnClose", true);
779 // This should match Chromium's audio indicator delay.
780 pref("browser.tabs.delayHidingAudioPlayingIconMS", 3000);
782 // Pref to control whether we use a separate privileged content process
783 // for about: pages. This pref name did not age well: we will have multiple
784 // types of privileged content processes, each with different privileges.
785 // types of privleged content processes, each with different privleges.
786 pref("browser.tabs.remote.separatePrivilegedContentProcess", true);
788 #if defined(NIGHTLY_BUILD) && !defined(MOZ_ASAN)
789 // This pref will cause assertions when a remoteType triggers a process switch
790 // to a new remoteType it should not be able to trigger.
791 pref("browser.tabs.remote.enforceRemoteTypeRestrictions", true);
794 // Pref to control whether we use a separate privileged content process
795 // for certain mozilla webpages (which are listed in the pref
796 // browser.tabs.remote.separatedMozillaDomains).
797 pref("browser.tabs.remote.separatePrivilegedMozillaWebContentProcess", true);
800 pref("browser.tabs.tooltipsShowPidAndActiveness", true);
802 pref("browser.tabs.tooltipsShowPidAndActiveness", false);
805 pref("browser.tabs.firefox-view", true);
806 pref("browser.tabs.firefox-view.logLevel", "Warn");
807 pref("browser.tabs.firefox-view.notify-for-tabs", false);
809 // allow_eval_* is enabled on Firefox Desktop only at this
811 pref("security.allow_eval_with_system_principal", false);
812 pref("security.allow_eval_in_parent_process", false);
814 pref("security.allow_parent_unrestricted_js_loads", false);
816 // Unload tabs when available memory is running low
817 #if defined(XP_MACOSX) || defined(XP_WIN)
818 pref("browser.tabs.unloadOnLowMemory", true);
820 pref("browser.tabs.unloadOnLowMemory", false);
823 // Tab Unloader does not unload tabs whose last inactive period is longer than
824 // this value (in milliseconds).
825 pref("browser.tabs.min_inactive_duration_before_unload", 600000);
827 #if defined(XP_MACOSX)
828 // During low memory periods, poll with this frequency (milliseconds)
829 // until memory is no longer low. Changes to the pref take effect immediately.
830 // Browser restart not required. Chosen to be consistent with the windows
831 // implementation, but otherwise the 10s value is arbitrary.
832 pref("browser.lowMemoryPollingIntervalMS", 10000);
834 // Pref to control the reponse taken on macOS when the OS is under memory
835 // pressure. Changes to the pref take effect immediately. Browser restart not
836 // required. The pref value is a bitmask:
837 // 0x0: No response (other than recording for telemetry, crash reporting)
838 // 0x1: Use the tab unloading feature to reduce memory use. Requires that
839 // the above "browser.tabs.unloadOnLowMemory" pref be set to true for tab
840 // unloading to occur.
841 // 0x2: Issue the internal "memory-pressure" notification to reduce memory use
842 // 0x3: Both 0x1 and 0x2.
843 #if defined(NIGHTLY_BUILD)
844 pref("browser.lowMemoryResponseMask", 3);
846 pref("browser.lowMemoryResponseMask", 0);
849 // Controls which macOS memory-pressure level triggers the browser low memory
850 // response. Changes to the pref take effect immediately. Browser restart not
851 // required. By default, use the "critical" level as that occurs after "warn"
852 // and we only want to trigger the low memory reponse when necessary.
853 // The macOS system memory-pressure level is either none, "warn", or
854 // "critical". The OS notifies the browser when the level changes. A false
855 // value for the pref indicates the low memory response should occur when
856 // reaching the "critical" level. A true value indicates the response should
857 // occur when reaching the "warn" level.
858 pref("browser.lowMemoryResponseOnWarn", false);
861 pref("browser.ctrlTab.sortByRecentlyUsed", false);
863 // By default, do not export HTML at shutdown.
864 // If true, at shutdown the bookmarks in your menu and toolbar will
865 // be exported as HTML to the bookmarks.html file.
866 pref("browser.bookmarks.autoExportHTML", false);
868 // The maximum number of daily bookmark backups to
869 // keep in {PROFILEDIR}/bookmarkbackups. Special values:
871 // 0: no backups created (and deletes all existing backups)
872 pref("browser.bookmarks.max_backups", 15);
874 // Whether menu should close after Ctrl-click, middle-click, etc.
875 pref("browser.bookmarks.openInTabClosesMenu", true);
877 // Where new bookmarks go by default.
878 // Use PlacesUIUtils.defaultParentGuid to read this; do NOT read the pref
880 // The value is one of:
881 // - a bookmarks guid
882 // - "toolbar", "menu" or "unfiled" for those folders.
883 // If we use the pref but the value isn't any of these, we'll fall back to
884 // the bookmarks toolbar as a default.
885 pref("browser.bookmarks.defaultLocation", "toolbar");
887 // Scripts & Windows prefs
888 pref("dom.disable_open_during_load", true);
890 // allow JS to move and resize existing windows
891 pref("dom.disable_window_move_resize", false);
892 // prevent JS from monkeying with window focus, etc
893 pref("dom.disable_window_flip", true);
895 // popups.policy 1=allow,2=reject
896 pref("privacy.popups.policy", 1);
897 pref("privacy.popups.usecustom", true);
898 pref("privacy.popups.showBrowserMessage", true);
900 pref("privacy.item.cookies", false);
902 pref("privacy.clearOnShutdown.history", true);
903 pref("privacy.clearOnShutdown.formdata", true);
904 pref("privacy.clearOnShutdown.downloads", true);
905 pref("privacy.clearOnShutdown.cookies", true);
906 pref("privacy.clearOnShutdown.cache", true);
907 pref("privacy.clearOnShutdown.sessions", true);
908 pref("privacy.clearOnShutdown.offlineApps", false);
909 pref("privacy.clearOnShutdown.siteSettings", false);
910 pref("privacy.clearOnShutdown.openWindows", false);
912 pref("privacy.cpd.history", true);
913 pref("privacy.cpd.formdata", true);
914 pref("privacy.cpd.passwords", false);
915 pref("privacy.cpd.downloads", true);
916 pref("privacy.cpd.cookies", true);
917 pref("privacy.cpd.cache", true);
918 pref("privacy.cpd.sessions", true);
919 pref("privacy.cpd.offlineApps", false);
920 pref("privacy.cpd.siteSettings", false);
921 pref("privacy.cpd.openWindows", false);
923 pref("privacy.history.custom", false);
925 // What default should we use for the time span in the sanitizer:
926 // 0 - Clear everything
931 // 5 - Last 5 minutes
933 pref("privacy.sanitize.timeSpan", 1);
935 pref("privacy.sanitize.migrateFx3Prefs", false);
937 pref("privacy.panicButton.enabled", true);
939 // Time until temporary permissions expire, in ms
940 pref("privacy.temporary_permission_expire_time_ms", 3600000);
942 pref("network.proxy.share_proxy_settings", false); // use the same proxy settings for all protocols
944 // simple gestures support
945 pref("browser.gesture.swipe.left", "Browser:BackOrBackDuplicate");
946 pref("browser.gesture.swipe.right", "Browser:ForwardOrForwardDuplicate");
947 pref("browser.gesture.swipe.up", "cmd_scrollTop");
948 pref("browser.gesture.swipe.down", "cmd_scrollBottom");
949 pref("browser.gesture.pinch.latched", false);
950 pref("browser.gesture.pinch.threshold", 25);
951 #if defined(XP_WIN) || defined(MOZ_WIDGET_GTK)
952 // Enabled for touch input display zoom.
953 pref("browser.gesture.pinch.out", "cmd_fullZoomEnlarge");
954 pref("browser.gesture.pinch.in", "cmd_fullZoomReduce");
955 pref("browser.gesture.pinch.out.shift", "cmd_fullZoomReset");
956 pref("browser.gesture.pinch.in.shift", "cmd_fullZoomReset");
958 // Disabled by default due to issues with track pad input.
959 pref("browser.gesture.pinch.out", "");
960 pref("browser.gesture.pinch.in", "");
961 pref("browser.gesture.pinch.out.shift", "");
962 pref("browser.gesture.pinch.in.shift", "");
964 pref("browser.gesture.twist.latched", false);
965 pref("browser.gesture.twist.threshold", 0);
966 pref("browser.gesture.twist.right", "cmd_gestureRotateRight");
967 pref("browser.gesture.twist.left", "cmd_gestureRotateLeft");
968 pref("browser.gesture.twist.end", "cmd_gestureRotateEnd");
969 #if defined(XP_WIN) || defined(MOZ_WIDGET_GTK)
970 pref("browser.gesture.tap", "cmd_fullZoomReset");
972 pref("browser.gesture.tap", "");
975 // 0: Nothing happens
976 // 1: Scrolling contents
977 // 2: Go back or go forward, in your history
978 // 3: Zoom in or out (reflowing zoom).
979 // 4: Treat vertical wheel as horizontal scroll
980 // 5: Zoom in or out (pinch zoom).
982 // On macOS, if the wheel has one axis only, shift+wheel comes through as a
983 // horizontal scroll event. Thus, we can't assign anything other than normal
984 // scrolling to shift+wheel.
985 pref("mousewheel.with_shift.action", 1);
986 pref("mousewheel.with_alt.action", 2);
987 pref("mousewheel.with_control.action", 1);
989 // On the other platforms (non-macOS), user may use legacy mouse which
990 // supports only vertical wheel but want to scroll horizontally. For such
991 // users, we should provide horizontal scroll with shift+wheel (same as
992 // Chrome). However, shift+wheel was used for navigating history. For users
993 // who want to keep using this feature, let's enable it with alt+wheel. This
994 // is better for consistency with macOS users.
995 pref("mousewheel.with_shift.action", 4);
996 pref("mousewheel.with_alt.action", 2);
999 pref("mousewheel.with_win.action", 1);
1001 pref("browser.xul.error_pages.expert_bad_cert", false);
1002 pref("browser.xul.error_pages.show_safe_browsing_details_on_load", false);
1004 // Enable captive portal detection.
1005 pref("network.captive-portal-service.enabled", true);
1007 // If true, network link events will change the value of navigator.onLine
1008 pref("network.manage-offline-status", true);
1010 // We want to make sure mail URLs are handled externally...
1011 pref("network.protocol-handler.external.mailto", true); // for mail
1012 pref("network.protocol-handler.external.news", true); // for news
1013 pref("network.protocol-handler.external.snews", true); // for secure news
1014 pref("network.protocol-handler.external.nntp", true); // also news
1016 pref("network.protocol-handler.external.ms-windows-store", true);
1019 // ...without warning dialogs
1020 pref("network.protocol-handler.warn-external.mailto", false);
1021 pref("network.protocol-handler.warn-external.news", false);
1022 pref("network.protocol-handler.warn-external.snews", false);
1023 pref("network.protocol-handler.warn-external.nntp", false);
1025 pref("network.protocol-handler.warn-external.ms-windows-store", false);
1028 // By default, all protocol handlers are exposed. This means that
1029 // the browser will respond to openURL commands for all URL types.
1030 // It will also try to open link clicks inside the browser before
1031 // failing over to the system handlers.
1032 pref("network.protocol-handler.expose-all", true);
1033 pref("network.protocol-handler.expose.mailto", false);
1034 pref("network.protocol-handler.expose.news", false);
1035 pref("network.protocol-handler.expose.snews", false);
1036 pref("network.protocol-handler.expose.nntp", false);
1038 pref("accessibility.typeaheadfind", false);
1039 pref("accessibility.typeaheadfind.timeout", 5000);
1040 pref("accessibility.typeaheadfind.linksonly", false);
1041 pref("accessibility.typeaheadfind.flashBar", 1);
1043 pref("plugins.testmode", false);
1045 // Should plugins that are hidden show the infobar UI?
1046 pref("plugins.show_infobar", false);
1048 #if defined(_ARM64_) && defined(XP_WIN)
1049 pref("plugin.default.state", 0);
1051 pref("plugin.default.state", 1);
1054 // Prefer HTML5 video over Flash content, and don't
1055 // load plugin instances with no src declared.
1056 // These prefs are documented in details on all.js.
1057 // With the "follow-ctp" setting, this will only
1058 // apply to users that have plugin.state.flash = 1.
1059 pref("plugins.favorfallback.mode", "follow-ctp");
1060 pref("plugins.favorfallback.rules", "nosrc,video");
1062 // Toggling Search bar on and off in about:preferences
1063 pref("browser.preferences.search", true);
1064 #if defined(NIGHTLY_BUILD)
1065 pref("browser.preferences.experimental", true);
1067 pref("browser.preferences.experimental", false);
1069 pref("browser.preferences.moreFromMozilla", true);
1070 pref("browser.preferences.experimental.hidden", false);
1071 pref("browser.preferences.defaultPerformanceSettings.enabled", true);
1073 pref("browser.proton.toolbar.version", 0);
1075 // Backspace and Shift+Backspace behavior
1076 // 0 goes Back/Forward
1077 // 1 act like PgUp/PgDown
1078 // 2 and other values, nothing
1079 pref("browser.backspace_action", 2);
1081 pref("intl.regional_prefs.use_os_locales", false);
1083 // this will automatically enable inline spellchecking (if it is available) for
1084 // editable elements in HTML
1085 // 0 = spellcheck nothing
1086 // 1 = check multi-line controls [default]
1087 // 2 = check multi/single line controls
1088 pref("layout.spellcheckDefault", 1);
1090 pref("browser.send_pings", false);
1092 pref("browser.geolocation.warning.infoURL", "https://www.mozilla.org/%LOCALE%/firefox/geolocation/");
1093 pref("browser.xr.warning.infoURL", "https://www.mozilla.org/%LOCALE%/firefox/xr/");
1095 pref("browser.sessionstore.resume_from_crash", true);
1096 pref("browser.sessionstore.resume_session_once", false);
1097 pref("browser.sessionstore.resuming_after_os_restart", false);
1099 // Minimal interval between two save operations in milliseconds (while the user is idle).
1100 pref("browser.sessionstore.interval.idle", 3600000); // 1h
1102 // Time (seconds) before we assume that the user is idle and that we don't need to
1103 // collect/save the session quite as often.
1104 pref("browser.sessionstore.idleDelay", 180); // 3 minutes
1106 // on which sites to save text data, POSTDATA and cookies
1107 // 0 = everywhere, 1 = unencrypted sites, 2 = nowhere
1108 pref("browser.sessionstore.privacy_level", 0);
1109 // how many tabs can be reopened (per window)
1110 pref("browser.sessionstore.max_tabs_undo", 25);
1111 // how many windows can be reopened (per session) - on non-OS X platforms this
1112 // pref may be ignored when dealing with pop-up windows to ensure proper startup
1113 pref("browser.sessionstore.max_windows_undo", 3);
1114 // number of crashes that can occur before the about:sessionrestore page is displayed
1115 // (this pref has no effect if more than 6 hours have passed since the last crash)
1116 pref("browser.sessionstore.max_resumed_crashes", 1);
1117 // number of back button session history entries to restore (-1 = all of them)
1118 pref("browser.sessionstore.max_serialize_back", 10);
1119 // number of forward button session history entries to restore (-1 = all of them)
1120 pref("browser.sessionstore.max_serialize_forward", -1);
1121 // restore_on_demand overrides MAX_CONCURRENT_TAB_RESTORES (sessionstore constant)
1122 // and restore_hidden_tabs. When true, tabs will not be restored until they are
1123 // focused (also applies to tabs that aren't visible). When false, the values
1124 // for MAX_CONCURRENT_TAB_RESTORES and restore_hidden_tabs are respected.
1125 // Selected tabs are always restored regardless of this pref.
1126 pref("browser.sessionstore.restore_on_demand", true);
1127 // Whether to automatically restore hidden tabs (i.e., tabs in other tab groups) or not
1128 pref("browser.sessionstore.restore_hidden_tabs", false);
1129 // If restore_on_demand is set, pinned tabs are restored on startup by default.
1130 // When set to true, this pref overrides that behavior, and pinned tabs will only
1131 // be restored when they are focused.
1132 pref("browser.sessionstore.restore_pinned_tabs_on_demand", false);
1133 // The version at which we performed the latest upgrade backup
1134 pref("browser.sessionstore.upgradeBackup.latestBuildID", "");
1135 // How many upgrade backups should be kept
1136 pref("browser.sessionstore.upgradeBackup.maxUpgradeBackups", 3);
1137 // End-users should not run sessionstore in debug mode
1138 pref("browser.sessionstore.debug", false);
1139 // Forget closed windows/tabs after two weeks
1140 pref("browser.sessionstore.cleanup.forget_closed_after", 1209600000);
1141 // Platform collects session storage data for session store
1142 pref("browser.sessionstore.collect_session_storage", true);
1144 // Don't quit the browser when Ctrl + Q is pressed.
1145 pref("browser.quitShortcut.disabled", false);
1147 // allow META refresh by default
1148 pref("accessibility.blockautorefresh", false);
1150 // Whether history is enabled or not.
1151 pref("places.history.enabled", true);
1153 // The default Places log level.
1154 pref("places.loglevel", "Error");
1156 // Whether or not diacritics must match in history text searches.
1157 pref("places.search.matchDiacritics", false);
1159 // the (maximum) number of the recent visits to sample
1160 // when calculating frecency
1161 pref("places.frecency.numVisits", 10);
1163 // buckets (in days) for frecency calculation
1164 pref("places.frecency.firstBucketCutoff", 4);
1165 pref("places.frecency.secondBucketCutoff", 14);
1166 pref("places.frecency.thirdBucketCutoff", 31);
1167 pref("places.frecency.fourthBucketCutoff", 90);
1169 // weights for buckets for frecency calculations
1170 pref("places.frecency.firstBucketWeight", 100);
1171 pref("places.frecency.secondBucketWeight", 70);
1172 pref("places.frecency.thirdBucketWeight", 50);
1173 pref("places.frecency.fourthBucketWeight", 30);
1174 pref("places.frecency.defaultBucketWeight", 10);
1176 // bonus (in percent) for visit transition types for frecency calculations
1177 pref("places.frecency.embedVisitBonus", 0);
1178 pref("places.frecency.framedLinkVisitBonus", 0);
1179 pref("places.frecency.linkVisitBonus", 100);
1180 pref("places.frecency.typedVisitBonus", 2000);
1181 // The bookmarks bonus is always added on top of any other bonus, including
1182 // the redirect source and the typed ones.
1183 pref("places.frecency.bookmarkVisitBonus", 75);
1184 // The redirect source bonus overwrites any transition bonus.
1185 // 0 would hide these pages, instead we want them low ranked. Thus we use
1186 // linkVisitBonus - bookmarkVisitBonus, so that a bookmarked source is in par
1187 // with a common link.
1188 pref("places.frecency.redirectSourceVisitBonus", 25);
1189 pref("places.frecency.downloadVisitBonus", 0);
1190 // The perm/temp redirects here relate to redirect targets, not sources.
1191 pref("places.frecency.permRedirectVisitBonus", 50);
1192 pref("places.frecency.tempRedirectVisitBonus", 40);
1193 pref("places.frecency.reloadVisitBonus", 0);
1194 pref("places.frecency.defaultVisitBonus", 0);
1196 // bonus (in percent) for place types for frecency calculations
1197 pref("places.frecency.unvisitedBookmarkBonus", 140);
1198 pref("places.frecency.unvisitedTypedBonus", 200);
1200 // Clear data by base domain (including partitioned storage) when the user
1201 // selects "Forget About This Site".
1202 pref("places.forgetThisSite.clearByBaseDomain", true);
1204 // Whether to warm up network connections for places: menus and places: toolbar.
1205 pref("browser.places.speculativeConnect.enabled", true);
1207 // Controls behavior of the "Add Exception" dialog launched from SSL error pages
1208 // 0 - don't pre-populate anything
1209 // 1 - pre-populate site URL, but don't fetch certificate
1210 // 2 - pre-populate site URL and pre-fetch certificate
1211 pref("browser.ssl_override_behavior", 2);
1213 // if true, use full page zoom instead of text zoom
1214 pref("browser.zoom.full", true);
1216 // Whether or not to save and restore zoom levels on a per-site basis.
1217 pref("browser.zoom.siteSpecific", true);
1219 // Whether or not to update background tabs to the current zoom level.
1220 pref("browser.zoom.updateBackgroundTabs", true);
1222 // The breakpad report server to link to in about:crashes
1223 pref("breakpad.reportURL", "https://crash-stats.mozilla.org/report/index/");
1225 // URL for "Learn More" for DataCollection
1226 pref("toolkit.datacollection.infoURL",
1227 "https://www.mozilla.org/legal/privacy/firefox.html");
1229 // URL for "Learn More" for Crash Reporter
1230 pref("toolkit.crashreporter.infoURL",
1231 "https://www.mozilla.org/legal/privacy/firefox.html#crash-reporter");
1233 // base URL for web-based support pages
1234 pref("app.support.baseURL", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/");
1236 // base url for web-based feedback pages
1237 pref("app.feedback.baseURL", "https://ideas.mozilla.org/");
1239 // Name of alternate about: page for certificate errors (when undefined, defaults to about:neterror)
1240 pref("security.alternate_certificate_error_page", "certerror");
1242 pref("security.certerrors.recordEventTelemetry", true);
1243 pref("security.certerrors.permanentOverride", true);
1244 pref("security.certerrors.mitm.priming.enabled", true);
1245 pref("security.certerrors.mitm.priming.endpoint", "https://mitmdetection.services.mozilla.com/");
1246 pref("security.certerrors.mitm.auto_enable_enterprise_roots", true);
1248 // Whether the bookmark panel should be shown when bookmarking a page.
1249 pref("browser.bookmarks.editDialog.showForNewBookmarks", true);
1251 // Don't try to alter this pref, it'll be reset the next time you use the
1252 // bookmarking dialog
1253 pref("browser.bookmarks.editDialog.firstEditField", "namePicker");
1255 // The number of recently selected folders in the edit bookmarks dialog.
1256 pref("browser.bookmarks.editDialog.maxRecentFolders", 7);
1258 // By default the Edit Bookmark dialog is instant-apply. This feature pref will allow to
1259 // just save on Accept, once the project is complete.
1260 pref("browser.bookmarks.editDialog.delayedApply.enabled", false);
1262 #if defined(XP_WIN) && defined(MOZ_SANDBOX)
1263 // This controls the strength of the Windows content process sandbox for
1264 // testing purposes. This will require a restart.
1265 // On windows these levels are:
1266 // See - security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp
1267 // SetSecurityLevelForContentProcess() for what the different settings mean.
1268 pref("security.sandbox.content.level", 6);
1271 #if defined(XP_MACOSX) && defined(MOZ_SANDBOX)
1272 // This pref is discussed in bug 1083344, the naming is inspired from its
1273 // Windows counterpart, but on Mac it's an integer which means:
1274 // 0 -> "no sandbox" (nightly only)
1275 // 1 -> "preliminary content sandboxing enabled: write access to
1276 // home directory is prevented"
1277 // 2 -> "preliminary content sandboxing enabled with profile protection:
1278 // write access to home directory is prevented, read and write access
1279 // to ~/Library and profile directories are prevented (excluding
1280 // $PROFILE/{extensions,chrome})"
1281 // 3 -> "no global read/write access, read access permitted to
1282 // $PROFILE/{extensions,chrome}"
1283 // This setting is read when the content process is started. On Mac the
1284 // content process is killed when all windows are closed, so a change will
1285 // take effect when the 1st window is opened.
1286 pref("security.sandbox.content.level", 3);
1288 // Disconnect content processes from the window server. Depends on
1289 // out-of-process WebGL and non-native theming. i.e., both in-process WebGL
1290 // and native theming depend on content processes having a connection to the
1291 // window server. Window server disconnection is automatically disabled (and
1292 // this pref overridden) if OOP WebGL is disabled. OOP WebGL is disabled
1294 pref("security.sandbox.content.mac.disconnect-windowserver", true);
1297 #if defined(XP_LINUX) && defined(MOZ_SANDBOX)
1298 // This pref is introduced as part of bug 742434, the naming is inspired from
1299 // its Windows/Mac counterpart, but on Linux it's an integer which means:
1300 // 0 -> "no sandbox"
1301 // 1 -> "content sandbox using seccomp-bpf when available" + ipc restrictions
1302 // 2 -> "seccomp-bpf + write file broker"
1303 // 3 -> "seccomp-bpf + read/write file brokering"
1304 // 4 -> all of the above + network/socket restrictions + chroot
1306 // The purpose of this setting is to allow Linux users or distros to disable
1307 // the sandbox while we fix their problems, or to allow running Firefox with
1308 // exotic configurations we can't reasonably support out of the box.
1310 pref("security.sandbox.content.level", 4);
1311 // Introduced as part of bug 1608558. Linux is currently the only platform
1312 // that uses a sandbox level for the socket process. There are currently
1314 // 0 -> "no sandbox"
1315 // 1 -> "sandboxed, allows socket operations and reading necessary certs"
1316 pref("security.sandbox.socket.process.level", 1);
1317 pref("security.sandbox.content.write_path_whitelist", "");
1318 pref("security.sandbox.content.read_path_whitelist", "");
1319 pref("security.sandbox.content.syscall_whitelist", "");
1322 #if defined(XP_OPENBSD) && defined(MOZ_SANDBOX)
1323 pref("security.sandbox.content.level", 1);
1326 #if defined(MOZ_SANDBOX)
1327 // ID (a UUID when set by gecko) that is used to form the name of a
1328 // sandbox-writable temporary directory to be used by content processes
1329 // when a temporary writable file is required in a level 1 sandbox.
1330 pref("security.sandbox.content.tempDirSuffix", "");
1331 pref("security.sandbox.plugin.tempDirSuffix", "");
1333 // This pref determines if messages relevant to sandbox violations are
1335 #if defined(XP_WIN) || defined(XP_MACOSX)
1336 pref("security.sandbox.logging.enabled", false);
1340 // This pref governs whether we attempt to work around problems caused by
1341 // plugins using OS calls to manipulate the cursor while running out-of-
1342 // process. These workarounds all involve intercepting (hooking) certain
1343 // OS calls in the plugin process, then arranging to make certain OS calls
1344 // in the browser process. Eventually plugins will be required to use the
1345 // NPAPI to manipulate the cursor, and these workarounds will be removed.
1348 pref("dom.ipc.plugins.nativeCursorSupport", true);
1352 pref("browser.taskbar.previews.enable", false);
1353 pref("browser.taskbar.previews.max", 20);
1354 pref("browser.taskbar.previews.cachetime", 5);
1355 pref("browser.taskbar.lists.enabled", true);
1356 pref("browser.taskbar.lists.frequent.enabled", true);
1357 pref("browser.taskbar.lists.recent.enabled", false);
1358 pref("browser.taskbar.lists.maxListItemCount", 7);
1359 pref("browser.taskbar.lists.tasks.enabled", true);
1360 pref("browser.taskbar.lists.refreshInSeconds", 120);
1363 // Preferences to be synced by default.
1364 // Preferences with the prefix `services.sync.prefs.sync-seen.` should have
1365 // a value of `false`, and means the value of the pref will be synced as soon
1366 // as a value for the pref is "seen", even if it is the default, and should be
1367 // used for prefs we sync but which have different values on different channels,
1368 // platforms or distributions.
1369 pref("services.sync.prefs.sync.accessibility.blockautorefresh", true);
1370 pref("services.sync.prefs.sync.accessibility.browsewithcaret", true);
1371 pref("services.sync.prefs.sync.accessibility.typeaheadfind", true);
1372 pref("services.sync.prefs.sync.accessibility.typeaheadfind.linksonly", true);
1373 pref("services.sync.prefs.sync.addons.ignoreUserEnabledChanges", true);
1374 pref("services.sync.prefs.sync.app.shield.optoutstudies.enabled", true);
1375 // The addons prefs related to repository verification are intentionally
1376 // not synced for security reasons. If a system is compromised, a user
1377 // could weaken the pref locally, install an add-on from an untrusted
1378 // source, and this would propagate automatically to other,
1379 // uncompromised Sync-connected devices.
1380 pref("services.sync.prefs.sync.browser.contentblocking.category", true);
1381 pref("services.sync.prefs.sync.browser.contentblocking.features.strict", true);
1382 pref("services.sync.prefs.sync.browser.crashReports.unsubmittedCheck.autoSubmit2", true);
1383 pref("services.sync.prefs.sync.browser.ctrlTab.sortByRecentlyUsed", true);
1384 pref("services.sync.prefs.sync.browser.discovery.enabled", true);
1385 pref("services.sync.prefs.sync.browser.download.useDownloadDir", true);
1386 pref("services.sync.prefs.sync.browser.firefox-view.feature-tour", true);
1387 pref("services.sync.prefs.sync.browser.formfill.enable", true);
1388 pref("services.sync.prefs.sync.browser.link.open_newwindow", true);
1389 pref("services.sync.prefs.sync.browser.menu.showViewImageInfo", true);
1390 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", true);
1391 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", true);
1392 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.showSearch", true);
1393 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsored", true);
1394 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSites", true);
1395 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.topsites", true);
1396 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.topSitesRows", true);
1397 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.snippets", true);
1398 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.section.topstories", true);
1399 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.topstories.rows", true);
1400 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.section.highlights", true);
1401 // Some linux distributions disable all highlights by default.
1402 pref("services.sync.prefs.sync-seen.browser.newtabpage.activity-stream.section.highlights", false);
1403 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includeVisited", true);
1404 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includeBookmarks", true);
1405 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includeDownloads", true);
1406 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includePocket", true);
1407 // Some linux distributions disable just pocket by default.
1408 pref("services.sync.prefs.sync-seen.browser.newtabpage.activity-stream.section.highlights.includePocket", false);
1409 pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.rows", true);
1410 pref("services.sync.prefs.sync.browser.newtabpage.enabled", true);
1411 pref("services.sync.prefs.sync.browser.newtabpage.pinned", true);
1412 pref("services.sync.prefs.sync.browser.offline-apps.notify", true);
1413 pref("services.sync.prefs.sync.browser.pdfjs.feature-tour", true);
1414 pref("services.sync.prefs.sync.browser.safebrowsing.downloads.enabled", true);
1415 pref("services.sync.prefs.sync.browser.safebrowsing.downloads.remote.block_potentially_unwanted", true);
1416 pref("services.sync.prefs.sync.browser.safebrowsing.malware.enabled", true);
1417 pref("services.sync.prefs.sync.browser.safebrowsing.phishing.enabled", true);
1418 pref("services.sync.prefs.sync.browser.search.update", true);
1419 pref("services.sync.prefs.sync.browser.search.widget.inNavBar", true);
1420 pref("services.sync.prefs.sync.browser.startup.homepage", true);
1421 pref("services.sync.prefs.sync.browser.startup.page", true);
1422 pref("services.sync.prefs.sync.browser.tabs.loadInBackground", true);
1423 pref("services.sync.prefs.sync.browser.tabs.warnOnClose", true);
1424 pref("services.sync.prefs.sync.browser.tabs.warnOnOpen", true);
1425 pref("services.sync.prefs.sync.browser.taskbar.previews.enable", true);
1426 pref("services.sync.prefs.sync.browser.urlbar.maxRichResults", true);
1427 pref("services.sync.prefs.sync.browser.urlbar.showSearchSuggestionsFirst", true);
1428 pref("services.sync.prefs.sync.browser.urlbar.suggest.bookmark", true);
1429 pref("services.sync.prefs.sync.browser.urlbar.suggest.history", true);
1430 pref("services.sync.prefs.sync.browser.urlbar.suggest.openpage", true);
1431 pref("services.sync.prefs.sync.browser.urlbar.suggest.searches", true);
1432 pref("services.sync.prefs.sync.browser.urlbar.suggest.topsites", true);
1433 pref("services.sync.prefs.sync.browser.urlbar.suggest.engines", true);
1434 pref("services.sync.prefs.sync.dom.disable_open_during_load", true);
1435 pref("services.sync.prefs.sync.dom.disable_window_flip", true);
1436 pref("services.sync.prefs.sync.dom.disable_window_move_resize", true);
1437 pref("services.sync.prefs.sync.dom.event.contextmenu.enabled", true);
1438 pref("services.sync.prefs.sync.dom.security.https_only_mode", true);
1439 pref("services.sync.prefs.sync.dom.security.https_only_mode_ever_enabled", true);
1440 pref("services.sync.prefs.sync.dom.security.https_only_mode_ever_enabled_pbm", true);
1441 pref("services.sync.prefs.sync.dom.security.https_only_mode_pbm", true);
1442 pref("services.sync.prefs.sync.extensions.update.enabled", true);
1443 pref("services.sync.prefs.sync.extensions.activeThemeID", true);
1444 pref("services.sync.prefs.sync.general.autoScroll", true);
1445 // general.autoScroll has a different default on Linux vs elsewhere.
1446 pref("services.sync.prefs.sync-seen.general.autoScroll", false);
1447 pref("services.sync.prefs.sync.general.smoothScroll", true);
1448 pref("services.sync.prefs.sync.intl.accept_languages", true);
1449 pref("services.sync.prefs.sync.intl.regional_prefs.use_os_locales", true);
1450 pref("services.sync.prefs.sync.layout.spellcheckDefault", true);
1451 pref("services.sync.prefs.sync.media.autoplay.default", true);
1452 pref("services.sync.prefs.sync.media.eme.enabled", true);
1453 // Some linux distributions disable eme by default.
1454 pref("services.sync.prefs.sync-seen.media.eme.enabled", false);
1455 pref("services.sync.prefs.sync.media.videocontrols.picture-in-picture.video-toggle.enabled", true);
1456 pref("services.sync.prefs.sync.network.cookie.cookieBehavior", true);
1457 pref("services.sync.prefs.sync.network.cookie.thirdparty.sessionOnly", true);
1458 pref("services.sync.prefs.sync.permissions.default.image", true);
1459 pref("services.sync.prefs.sync.pref.downloads.disable_button.edit_actions", true);
1460 pref("services.sync.prefs.sync.pref.privacy.disable_button.cookie_exceptions", true);
1461 pref("services.sync.prefs.sync.privacy.clearOnShutdown.cache", true);
1462 pref("services.sync.prefs.sync.privacy.clearOnShutdown.cookies", true);
1463 pref("services.sync.prefs.sync.privacy.clearOnShutdown.downloads", true);
1464 pref("services.sync.prefs.sync.privacy.clearOnShutdown.formdata", true);
1465 pref("services.sync.prefs.sync.privacy.clearOnShutdown.history", true);
1466 pref("services.sync.prefs.sync.privacy.clearOnShutdown.offlineApps", true);
1467 pref("services.sync.prefs.sync.privacy.clearOnShutdown.sessions", true);
1468 pref("services.sync.prefs.sync.privacy.clearOnShutdown.siteSettings", true);
1469 pref("services.sync.prefs.sync.privacy.donottrackheader.enabled", true);
1470 pref("services.sync.prefs.sync.privacy.sanitize.sanitizeOnShutdown", true);
1471 pref("services.sync.prefs.sync.privacy.trackingprotection.enabled", true);
1472 pref("services.sync.prefs.sync.privacy.trackingprotection.cryptomining.enabled", true);
1473 pref("services.sync.prefs.sync.privacy.trackingprotection.fingerprinting.enabled", true);
1474 pref("services.sync.prefs.sync.privacy.trackingprotection.pbmode.enabled", true);
1475 // We do not sync `privacy.resistFingerprinting` by default as it's an undocumented,
1476 // not-recommended footgun - see bug 1763278 for more.
1477 pref("services.sync.prefs.sync.privacy.reduceTimerPrecision", true);
1478 pref("services.sync.prefs.sync.privacy.resistFingerprinting.reduceTimerPrecision.microseconds", true);
1479 pref("services.sync.prefs.sync.privacy.resistFingerprinting.reduceTimerPrecision.jitter", true);
1480 pref("services.sync.prefs.sync.privacy.userContext.enabled", true);
1481 pref("services.sync.prefs.sync.privacy.userContext.newTabContainerOnLeftClick.enabled", true);
1482 pref("services.sync.prefs.sync.security.default_personal_cert", true);
1483 pref("services.sync.prefs.sync.services.sync.syncedTabs.showRemoteIcons", true);
1484 pref("services.sync.prefs.sync.signon.autofillForms", true);
1485 pref("services.sync.prefs.sync.signon.generation.enabled", true);
1486 pref("services.sync.prefs.sync.signon.management.page.breach-alerts.enabled", true);
1487 pref("services.sync.prefs.sync.signon.rememberSignons", true);
1488 pref("services.sync.prefs.sync.spellchecker.dictionary", true);
1489 pref("services.sync.prefs.sync.ui.osk.enabled", true);
1491 // A preference which, if false, means sync will only apply incoming preference
1492 // changes if there's already a local services.sync.prefs.sync.* control pref.
1493 // If true, all incoming preferences will be applied and the local "control
1494 // pref" updated accordingly.
1495 pref("services.sync.prefs.dangerously_allow_arbitrary", false);
1497 // A preference that controls whether we should show the icon for a remote tab.
1498 // This pref has no UI but exists because some people may be concerned that
1499 // fetching these icons to show remote tabs may leak information about that
1500 // user's tabs and bookmarks. Note this pref is also synced.
1501 pref("services.sync.syncedTabs.showRemoteIcons", true);
1503 // A preference (in milliseconds) controlling if we sync after a tab change and
1504 // how long to delay before we schedule the sync
1505 // Anything <= 0 means disabled
1506 pref("services.sync.syncedTabs.syncDelayAfterTabChange", 5000);
1508 // Whether the character encoding menu is under the main Firefox button. This
1509 // preference is a string so that localizers can alter it.
1510 pref("browser.menu.showCharacterEncoding", "chrome://browser/locale/browser.properties");
1512 // Whether prompts should be content modal (1) tab modal (2) or window modal(3) by default
1513 // This is a fallback value for when prompt callers do not specify a modalType.
1514 pref("prompts.defaultModalType", 3);
1516 pref("browser.topsites.useRemoteSetting", true);
1517 // Fetch sponsored Top Sites from Mozilla Tiles Service (Contile)
1518 pref("browser.topsites.contile.enabled", true);
1519 pref("browser.topsites.contile.endpoint", "https://contile.services.mozilla.com/v1/tiles");
1521 // The base URL for the Quick Suggest anonymizing proxy. To make a request to
1522 // the proxy, include a campaign ID in the path.
1523 pref("browser.partnerlink.attributionURL", "https://topsites.services.mozilla.com/cid/");
1524 pref("browser.partnerlink.campaign.topsites", "amzn_2020_a1");
1526 // Whether to show tab level system prompts opened via nsIPrompt(Service) as
1527 // SubDialogs in the TabDialogBox (true) or as TabModalPrompt in the
1528 // TabModalPromptBox (false).
1529 pref("prompts.tabChromePromptSubDialog", true);
1531 // Whether to show the dialogs opened at the content level, such as
1532 // alert() or prompt(), using a SubDialogManager in the TabDialogBox.
1533 pref("prompts.contentPromptSubDialog", true);
1535 // Whether to show window-modal dialogs opened for browser windows
1536 // in a SubDialog inside their parent, instead of an OS level window.
1537 pref("prompts.windowPromptSubDialog", true);
1539 // Activates preloading of the new tab url.
1540 pref("browser.newtab.preload", true);
1542 pref("browser.newtabpage.activity-stream.newNewtabExperience.colors", "#0090ED,#FF4F5F,#2AC3A2,#FF7139,#A172FF,#FFA437,#FF2A8A");
1544 // Activity Stream prefs that control to which page to redirect
1545 #ifndef RELEASE_OR_BETA
1546 pref("browser.newtabpage.activity-stream.debug", false);
1549 // The remote FxA root content URL for the Activity Stream firstrun page.
1550 pref("browser.newtabpage.activity-stream.fxaccounts.endpoint", "https://accounts.firefox.com/");
1552 // The pref that controls if the search shortcuts experiment is on
1553 pref("browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts", true);
1555 // ASRouter provider configuration
1556 pref("browser.newtabpage.activity-stream.asrouter.providers.cfr", "{\"id\":\"cfr\",\"enabled\":true,\"type\":\"remote-settings\",\"collection\":\"cfr\",\"updateCycleInMs\":3600000}");
1557 pref("browser.newtabpage.activity-stream.asrouter.providers.whats-new-panel", "{\"id\":\"whats-new-panel\",\"enabled\":true,\"type\":\"remote-settings\",\"collection\":\"whats-new-panel\",\"updateCycleInMs\":3600000}");
1558 pref("browser.newtabpage.activity-stream.asrouter.providers.message-groups", "{\"id\":\"message-groups\",\"enabled\":true,\"type\":\"remote-settings\",\"collection\":\"message-groups\",\"updateCycleInMs\":3600000}");
1559 // This url, if changed, MUST continue to point to an https url. Pulling arbitrary content to inject into
1560 // this page over http opens us up to a man-in-the-middle attack that we'd rather not face. If you are a downstream
1561 // repackager of this code using an alternate snippet url, please keep your users safe
1562 pref("browser.newtabpage.activity-stream.asrouter.providers.snippets", "{\"id\":\"snippets\",\"enabled\":false,\"type\":\"remote\",\"url\":\"https://snippets.cdn.mozilla.net/%STARTPAGE_VERSION%/%NAME%/%VERSION%/%APPBUILDID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/\",\"updateCycleInMs\":14400000}");
1563 pref("browser.newtabpage.activity-stream.asrouter.providers.messaging-experiments", "{\"id\":\"messaging-experiments\",\"enabled\":true,\"type\":\"remote-experiments\",\"updateCycleInMs\":3600000}");
1565 // ASRouter user prefs
1566 pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", true);
1567 pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", true);
1569 // The pref that controls if ASRouter uses the remote fluent files.
1570 // It's enabled by default, but could be disabled to force ASRouter to use the local files.
1571 pref("browser.newtabpage.activity-stream.asrouter.useRemoteL10n", true);
1573 // These prefs control if Discovery Stream is enabled.
1574 pref("browser.newtabpage.activity-stream.discoverystream.enabled", true);
1575 pref("browser.newtabpage.activity-stream.discoverystream.hardcoded-basic-layout", false);
1576 pref("browser.newtabpage.activity-stream.discoverystream.hybridLayout.enabled", false);
1577 pref("browser.newtabpage.activity-stream.discoverystream.hideCardBackground.enabled", false);
1578 pref("browser.newtabpage.activity-stream.discoverystream.fourCardLayout.enabled", false);
1579 pref("browser.newtabpage.activity-stream.discoverystream.newFooterSection.enabled", false);
1580 pref("browser.newtabpage.activity-stream.discoverystream.saveToPocketCard.enabled", false);
1581 pref("browser.newtabpage.activity-stream.discoverystream.saveToPocketCardRegions", "");
1582 pref("browser.newtabpage.activity-stream.discoverystream.hideDescriptions.enabled", false);
1583 pref("browser.newtabpage.activity-stream.discoverystream.hideDescriptionsRegions", "");
1584 pref("browser.newtabpage.activity-stream.discoverystream.compactGrid.enabled", false);
1585 pref("browser.newtabpage.activity-stream.discoverystream.compactImages.enabled", false);
1586 pref("browser.newtabpage.activity-stream.discoverystream.imageGradient.enabled", false);
1587 pref("browser.newtabpage.activity-stream.discoverystream.titleLines", 3);
1588 pref("browser.newtabpage.activity-stream.discoverystream.descLines", 3);
1589 pref("browser.newtabpage.activity-stream.discoverystream.readTime.enabled", true);
1590 pref("browser.newtabpage.activity-stream.discoverystream.newSponsoredLabel.enabled", false);
1591 pref("browser.newtabpage.activity-stream.discoverystream.essentialReadsHeader.enabled", false);
1592 pref("browser.newtabpage.activity-stream.discoverystream.recentSaves.enabled", false);
1593 pref("browser.newtabpage.activity-stream.discoverystream.editorsPicksHeader.enabled", false);
1594 pref("browser.newtabpage.activity-stream.discoverystream.spoc-positions", "1,5,7,11,18,20");
1595 pref("browser.newtabpage.activity-stream.discoverystream.widget-positions", "");
1597 pref("browser.newtabpage.activity-stream.discoverystream.spocs-endpoint", "");
1598 pref("browser.newtabpage.activity-stream.discoverystream.spocs-endpoint-query", "");
1599 pref("browser.newtabpage.activity-stream.discoverystream.sponsored-collections.enabled", false);
1601 // Changes the spoc content.
1602 pref("browser.newtabpage.activity-stream.discoverystream.spocAdTypes", "");
1603 pref("browser.newtabpage.activity-stream.discoverystream.spocZoneIds", "");
1604 pref("browser.newtabpage.activity-stream.discoverystream.spocTopsitesAdTypes", "");
1605 pref("browser.newtabpage.activity-stream.discoverystream.spocTopsitesZoneIds", "");
1606 pref("browser.newtabpage.activity-stream.discoverystream.spocSiteId", "");
1608 pref("browser.newtabpage.activity-stream.discoverystream.sendToPocket.enabled", false);
1610 // List of regions that do not get stories, regardless of locale-list-config.
1611 pref("browser.newtabpage.activity-stream.discoverystream.region-stories-block", "FR");
1612 // List of locales that get stories, regardless of region-stories-config.
1613 #ifdef NIGHTLY_BUILD
1614 pref("browser.newtabpage.activity-stream.discoverystream.locale-list-config", "en-US,en-CA,en-GB");
1616 pref("browser.newtabpage.activity-stream.discoverystream.locale-list-config", "");
1618 // List of regions that get stories by default.
1619 pref("browser.newtabpage.activity-stream.discoverystream.region-stories-config", "US,DE,CA,GB,IE,CH,AT,BE,IN");
1621 // List of regions that get spocs by default.
1622 pref("browser.newtabpage.activity-stream.discoverystream.region-spocs-config", "US,CA,DE,GB");
1623 // List of regions that don't get the 7 row layout.
1624 pref("browser.newtabpage.activity-stream.discoverystream.region-basic-config", "");
1626 // Allows Pocket story collections to be dismissed.
1627 pref("browser.newtabpage.activity-stream.discoverystream.isCollectionDismissible", true);
1628 pref("browser.newtabpage.activity-stream.discoverystream.personalization.enabled", true);
1629 // Configurable keys used by personalization.
1630 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");
1631 // System pref to allow Pocket stories personalization to be turned on/off.
1632 pref("browser.newtabpage.activity-stream.discoverystream.recs.personalized", false);
1633 // System pref to allow Pocket sponsored content personalization to be turned on/off.
1634 pref("browser.newtabpage.activity-stream.discoverystream.spocs.personalized", true);
1636 // User pref to show stories on newtab (feeds.system.topstories has to be set to true as well)
1637 pref("browser.newtabpage.activity-stream.feeds.section.topstories", true);
1639 // The pref controls if search hand-off is enabled for Activity Stream.
1640 pref("browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar", true);
1642 pref("browser.newtabpage.activity-stream.logowordmark.alwaysVisible", true);
1644 // URLs from the user's history that contain this search param will be hidden
1645 // from the top sites. The value is a string with one of the following forms:
1646 // - "" (empty) - Disable this feature
1647 // - "key" - Search param named "key" with any or no value
1648 // - "key=" - Search param named "key" with no value
1649 // - "key=value" - Search param named "key" with value "value"
1650 pref("browser.newtabpage.activity-stream.hideTopSitesWithSearchParam", "mfadid=adm");
1652 // Used to display triplet cards on newtab
1653 pref("trailhead.firstrun.newtab.triplets", "");
1654 // Separate about welcome
1655 pref("browser.aboutwelcome.enabled", true);
1656 // Used to set multistage welcome UX
1657 pref("browser.aboutwelcome.screens", "");
1658 pref("browser.aboutwelcome.skipFocus", true);
1659 // Used to enable template for MR 2022 Onboarding
1660 pref("browser.aboutwelcome.templateMR", true);
1661 // Used to enable window modal onboarding
1662 pref("browser.aboutwelcome.showModal", false);
1664 // The pref that controls if the What's New panel is enabled.
1665 pref("browser.messaging-system.whatsNewPanel.enabled", true);
1667 // Experiment Manager
1668 // See Console.sys.mjs LOG_LEVELS for all possible values
1669 pref("messaging-system.log", "warn");
1670 pref("messaging-system.rsexperimentloader.enabled", true);
1671 pref("messaging-system.rsexperimentloader.collection_id", "nimbus-desktop-experiments");
1672 pref("nimbus.debug", false);
1673 pref("nimbus.validation.enabled", true);
1675 // Nimbus QA prefs. Used to monitor pref-setting test experiments.
1676 pref("nimbus.qa.pref-1", "default");
1677 pref("nimbus.qa.pref-2", "default");
1679 // Enable the DOM fullscreen API.
1680 pref("full-screen-api.enabled", true);
1682 // Startup Crash Tracking
1683 // number of startup crashes that can occur before starting into safe mode automatically
1684 // (this pref has no effect if more than 6 hours have passed since the last crash)
1685 pref("toolkit.startup.max_resumed_crashes", 3);
1687 // Whether to use RegisterApplicationRestart to restart the browser and resume
1688 // the session on next Windows startup
1690 pref("toolkit.winRegisterApplicationRestart", true);
1693 // Used by pdf.js to know the first time firefox is run with it installed so it
1694 // can become the default pdf viewer.
1695 pref("pdfjs.firstRun", true);
1696 // The values of preferredAction and alwaysAskBeforeHandling before pdf.js
1697 // became the default.
1698 pref("pdfjs.previousHandler.preferredAction", 0);
1699 pref("pdfjs.previousHandler.alwaysAskBeforeHandling", false);
1701 // Try to convert PDFs sent as octet-stream
1702 pref("pdfjs.handleOctetStream", true);
1704 // Is the sidebar positioned ahead of the content browser
1705 pref("sidebar.position_start", true);
1707 pref("security.identitypopup.recordEventTelemetry", true);
1708 pref("security.protectionspopup.recordEventTelemetry", true);
1709 pref("security.app_menu.recordEventTelemetry", true);
1711 // Block insecure active content on https pages
1712 pref("security.mixed_content.block_active_content", true);
1714 // Show degraded UI for http pages.
1715 pref("security.insecure_connection_icon.enabled", true);
1716 // Show degraded UI for http pages in private mode.
1717 pref("security.insecure_connection_icon.pbmode.enabled", true);
1719 // Show "Not Secure" text for http pages; disabled for now
1720 pref("security.insecure_connection_text.enabled", false);
1721 pref("security.insecure_connection_text.pbmode.enabled", false);
1723 // 1 = allow MITM for certificate pinning checks.
1724 pref("security.cert_pinning.enforcement_level", 1);
1727 // If this turns true, Moz*Gesture events are not called stopPropagation()
1729 pref("dom.debug.propagate_gesture_events_through_content", false);
1731 // CustomizableUI debug logging.
1732 pref("browser.uiCustomization.debug", false);
1734 // CustomizableUI state of the browser's user interface
1735 pref("browser.uiCustomization.state", "");
1737 // If set to false, FxAccounts and Sync will be unavailable.
1738 // A restart is mandatory after flipping that preference.
1739 pref("identity.fxaccounts.enabled", true);
1741 // The remote FxA root content URL. Must use HTTPS.
1742 pref("identity.fxaccounts.remote.root", "https://accounts.firefox.com/");
1744 // The value of the context query parameter passed in fxa requests.
1745 pref("identity.fxaccounts.contextParam", "fx_desktop_v3");
1747 // The remote URL of the FxA Profile Server
1748 pref("identity.fxaccounts.remote.profile.uri", "https://profile.accounts.firefox.com/v1");
1750 // The remote URL of the FxA OAuth Server
1751 pref("identity.fxaccounts.remote.oauth.uri", "https://oauth.accounts.firefox.com/v1");
1753 // Whether FxA pairing using QR codes is enabled.
1754 pref("identity.fxaccounts.pairing.enabled", true);
1756 // The remote URI of the FxA pairing server
1757 pref("identity.fxaccounts.remote.pairing.uri", "wss://channelserver.services.mozilla.com");
1759 // Token server used by the FxA Sync identity.
1760 pref("identity.sync.tokenserver.uri", "https://token.services.mozilla.com/1.0/sync/1.5");
1762 // Auto-config URL for FxA self-hosters, makes an HTTP request to
1763 // [identity.fxaccounts.autoconfig.uri]/.well-known/fxa-client-configuration
1764 // This is now the prefered way of pointing to a custom FxA server, instead
1765 // of making changes to "identity.fxaccounts.*.uri".
1766 pref("identity.fxaccounts.autoconfig.uri", "");
1768 // URL for help link about Send Tab.
1769 pref("identity.sendtabpromo.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/send-tab");
1771 // URLs for promo links to mobile browsers. Note that consumers are expected to
1772 // append a value for utm_campaign.
1773 pref("identity.mobilepromo.android", "https://www.mozilla.org/firefox/android/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_campaign=");
1774 pref("identity.mobilepromo.ios", "https://www.mozilla.org/firefox/ios/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_campaign=");
1776 // Migrate any existing Firefox Account data from the default profile to the
1777 // Developer Edition profile.
1778 #ifdef MOZ_DEV_EDITION
1779 pref("identity.fxaccounts.migrateToDevEdition", true);
1781 pref("identity.fxaccounts.migrateToDevEdition", false);
1784 // If activated, send tab will use the new FxA commands backend.
1785 pref("identity.fxaccounts.commands.enabled", true);
1786 // How often should we try to fetch missed FxA commands on sync (in seconds).
1787 // Default is 24 hours.
1788 pref("identity.fxaccounts.commands.missed.fetch_interval", 86400);
1790 // Whether we should run a test-pattern through EME GMPs before assuming they'll
1792 pref("media.gmp.trial-create.enabled", true);
1794 // Note: when media.gmp-*.visible is true, provided we're running on a
1795 // supported platform/OS version, the corresponding CDM appears in the
1796 // plugins list, Firefox will download the GMP/CDM if enabled, and our
1797 // UI to re-enable EME prompts the user to re-enable EME if it's disabled
1798 // and script requests EME. If *.visible is false, we won't show the UI
1799 // to enable the CDM if its disabled; it's as if the keysystem is completely
1802 #ifdef MOZ_WIDEVINE_EME
1803 pref("media.gmp-widevinecdm.visible", true);
1804 pref("media.gmp-widevinecdm.enabled", true);
1807 pref("media.gmp-gmpopenh264.visible", true);
1808 pref("media.gmp-gmpopenh264.enabled", true);
1810 // Block WebAudio from playing automatically.
1811 pref("media.autoplay.block-webaudio", true);
1813 pref("media.videocontrols.picture-in-picture.enabled", true);
1814 pref("media.videocontrols.picture-in-picture.audio-toggle.enabled", true);
1815 pref("media.videocontrols.picture-in-picture.video-toggle.enabled", true);
1816 pref("media.videocontrols.picture-in-picture.video-toggle.visibility-threshold", "1.0");
1817 pref("media.videocontrols.picture-in-picture.keyboard-controls.enabled", true);
1819 pref("browser.translation.detectLanguage", false);
1820 pref("browser.translation.neverForLanguages", "");
1821 // Show the translation UI bits, like the info bar, notification icon and preferences.
1822 pref("browser.translation.ui.show", false);
1823 // Allows to define the translation engine. Google is default, Bing or Yandex are other options.
1824 pref("browser.translation.engine", "Google");
1826 // Telemetry settings.
1827 // Determines if Telemetry pings can be archived locally.
1828 pref("toolkit.telemetry.archive.enabled", true);
1829 // Enables sending the shutdown ping when Firefox shuts down.
1830 pref("toolkit.telemetry.shutdownPingSender.enabled", true);
1831 // Enables using the `pingsender` background task.
1832 pref("toolkit.telemetry.shutdownPingSender.backgroundtask.enabled", false);
1833 // Enables sending the shutdown ping using the pingsender from the first session.
1834 pref("toolkit.telemetry.shutdownPingSender.enabledFirstSession", false);
1835 // Enables sending a duplicate of the first shutdown ping from the first session.
1836 pref("toolkit.telemetry.firstShutdownPing.enabled", true);
1837 // Enables sending the 'new-profile' ping on new profiles.
1838 pref("toolkit.telemetry.newProfilePing.enabled", true);
1839 // Enables sending 'update' pings on Firefox updates.
1840 pref("toolkit.telemetry.updatePing.enabled", true);
1841 // Enables sending 'bhr' pings when the browser hangs.
1842 pref("toolkit.telemetry.bhrPing.enabled", true);
1844 // Ping Centre Telemetry settings.
1845 pref("browser.ping-centre.telemetry", true);
1846 pref("browser.ping-centre.log", false);
1848 // Enable GMP support in the addon manager.
1849 pref("media.gmp-provider.enabled", true);
1851 // Enable Dynamic First-Party Isolation by default.
1852 pref("network.cookie.cookieBehavior", 5 /* BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN */);
1854 // Target URL for the learn more link of the TCP in standard mode section.
1855 pref("privacy.restrict3rdpartystorage.preferences.learnMoreURLSuffix", "total-cookie-protection");
1857 // Enable Dynamic First-Party Isolation in the private browsing mode.
1858 pref("network.cookie.cookieBehavior.pbmode", 5 /* BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN */);
1860 // Enable fingerprinting blocking by default for all channels, only on desktop.
1861 pref("privacy.trackingprotection.fingerprinting.enabled", true);
1863 // Enable cryptomining blocking by default for all channels, only on desktop.
1864 pref("privacy.trackingprotection.cryptomining.enabled", true);
1866 pref("browser.contentblocking.database.enabled", true);
1868 pref("dom.storage_access.enabled", true);
1870 // Enable URL query stripping in Nightly.
1871 #ifdef NIGHTLY_BUILD
1872 pref("privacy.query_stripping.enabled", true);
1875 pref("browser.contentblocking.cryptomining.preferences.ui.enabled", true);
1876 pref("browser.contentblocking.fingerprinting.preferences.ui.enabled", true);
1877 // Enable cookieBehavior = BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN as an option in the custom category ui
1878 pref("browser.contentblocking.reject-and-isolate-cookies.preferences.ui.enabled", true);
1880 // Possible values for browser.contentblocking.features.strict pref:
1881 // Tracking Protection:
1882 // "tp": tracking protection enabled
1883 // "-tp": tracking protection disabled
1884 // Tracking Protection in private windows:
1885 // "tpPrivate": tracking protection in private windows enabled
1886 // "-tpPrivate": tracking protection in private windows disabled
1888 // "fp": fingerprinting blocking enabled
1889 // "-fp": fingerprinting blocking disabled
1891 // "cm": cryptomining blocking enabled
1892 // "-cm": cryptomining blocking disabled
1893 // Social Tracking Protection:
1894 // "stp": social tracking protection enabled
1895 // "-stp": social tracking protection disabled
1896 // Level 2 Tracking list in normal windows:
1897 // "lvl2": Level 2 tracking list enabled
1898 // "-lvl2": Level 2 tracking list disabled
1899 // Level 2 Tracking list in private windows:
1900 // "lvl2PBM": Level 2 tracking list enabled
1901 // "-lvl2PBM": Level 2 tracking list disabled
1902 // Restrict relaxing default referrer policy:
1903 // "rp": Restrict relaxing default referrer policy enabled
1904 // "-rp": Restrict relaxing default referrer policy disabled
1905 // Restrict relaxing default referrer policy for top navigation:
1906 // "rpTop": Restrict relaxing default referrer policy enabled
1907 // "-rpTop": Restrict relaxing default referrer policy disabled
1908 // OCSP cache partitioning:
1909 // "ocsp": OCSP cache partitioning enabled
1910 // "-ocsp": OCSP cache partitioning disabled
1911 // Query parameter stripping:
1912 // "qps": Query parameter stripping enabled
1913 // "-qps": Query parameter stripping disabled
1914 // Query parameter stripping for private windows:
1915 // "qpsPBM": Query parameter stripping enabled in private windows
1916 // "-qpsPBM": Query parameter stripping disabled in private windows
1918 // "cookieBehavior0": cookie behaviour BEHAVIOR_ACCEPT
1919 // "cookieBehavior1": cookie behaviour BEHAVIOR_REJECT_FOREIGN
1920 // "cookieBehavior2": cookie behaviour BEHAVIOR_REJECT
1921 // "cookieBehavior3": cookie behaviour BEHAVIOR_LIMIT_FOREIGN
1922 // "cookieBehavior4": cookie behaviour BEHAVIOR_REJECT_TRACKER
1923 // "cookieBehavior5": cookie behaviour BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN
1924 // Cookie behavior for private windows:
1925 // "cookieBehaviorPBM0": cookie behaviour BEHAVIOR_ACCEPT
1926 // "cookieBehaviorPBM1": cookie behaviour BEHAVIOR_REJECT_FOREIGN
1927 // "cookieBehaviorPBM2": cookie behaviour BEHAVIOR_REJECT
1928 // "cookieBehaviorPBM3": cookie behaviour BEHAVIOR_LIMIT_FOREIGN
1929 // "cookieBehaviorPBM4": cookie behaviour BEHAVIOR_REJECT_TRACKER
1930 // "cookieBehaviorPBM5": cookie behaviour BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN
1931 // One value from each section must be included in the browser.contentblocking.features.strict pref.
1932 pref("browser.contentblocking.features.strict", "tp,tpPrivate,cookieBehavior5,cookieBehaviorPBM5,cm,fp,stp,lvl2,lvl2PBM,rp,rpTop,ocsp,qps,qpsPBM");
1934 // Hide the "Change Block List" link for trackers/tracking content in the custom
1935 // Content Blocking/ETP panel. By default, it will not be visible. There is also
1936 // an UI migration in place to set this pref to true if a user has a custom block
1938 pref("browser.contentblocking.customBlockList.preferences.ui.enabled", false);
1940 pref("browser.contentblocking.reportBreakage.url", "https://tracking-protection-issues.herokuapp.com/new");
1942 // Enable Protections report's Lockwise card by default.
1943 pref("browser.contentblocking.report.lockwise.enabled", true);
1945 // Enable Protections report's Monitor card by default.
1946 pref("browser.contentblocking.report.monitor.enabled", true);
1948 // Disable Protections report's Proxy card by default.
1949 pref("browser.contentblocking.report.proxy.enabled", false);
1951 // Disable the mobile promotion by default.
1952 pref("browser.contentblocking.report.show_mobile_app", true);
1954 // Locales in which Send to Device emails are supported
1955 // The most recent list of supported locales can be found at https://github.com/mozilla/bedrock/blob/6a08c876f65924651554decc57b849c00874b4e7/bedrock/settings/base.py#L963
1956 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");
1958 // Avoid advertising in certain regions. Comma separated string of two letter ISO 3166-1 country codes.
1959 // We're currently blocking all of Ukraine (ua), but would prefer to block just Crimea (ua-43). Currently, the Mozilla Location Service APIs used by Region.sys.mjs only exposes the country, not the subdivision.
1960 pref("browser.vpn_promo.disallowed_regions", "ae,by,cn,cu,iq,ir,kp,om,ru,sd,sy,tm,tr,ua");
1962 // Default to enabling VPN promo messages to be shown when specified and allowed
1963 pref("browser.vpn_promo.enabled", true);
1964 // Only show vpn card to certain regions. Comma separated string of two letter ISO 3166-1 country codes.
1965 // The most recent list of supported countries can be found at https://support.mozilla.org/en-US/kb/mozilla-vpn-countries-available-subscribe
1966 // The full list of supported country codes can also be found at https://github.com/mozilla/bedrock/search?q=VPN_COUNTRY_CODES
1967 pref("browser.contentblocking.report.vpn_regions", "as,at,be,ca,ch,de,es,fi,fr,gb,gg,ie,im,io,it,je,mp,my,nl,nz,pr,se,sg,uk,um,us,vg,vi"
1970 // Avoid advertising Focus in certain regions. Comma separated string of two letter
1971 // ISO 3166-1 country codes.
1972 pref("browser.promo.focus.disallowed_regions", "cn");
1974 // Default to enabling focus promos to be shown where allowed.
1975 pref("browser.promo.focus.enabled", true);
1977 // Default to enabling pin promos to be shown where allowed.
1978 pref("browser.promo.pin.enabled", true);
1980 // Comma separated string of mozilla vpn supported platforms.
1981 pref("browser.contentblocking.report.vpn_platforms", "win,mac,linux");
1982 pref("browser.contentblocking.report.hide_vpn_banner", false);
1983 pref("browser.contentblocking.report.vpn_sub_id", "sub_HrfCZF7VPHzZkA");
1985 pref("browser.contentblocking.report.monitor.url", "https://monitor.firefox.com/?entrypoint=protection_report_monitor&utm_source=about-protections");
1986 pref("browser.contentblocking.report.monitor.how_it_works.url", "https://monitor.firefox.com/about");
1987 pref("browser.contentblocking.report.monitor.sign_in_url", "https://monitor.firefox.com/oauth/init?entrypoint=protection_report_monitor&utm_source=about-protections&email=");
1988 pref("browser.contentblocking.report.monitor.preferences_url", "https://monitor.firefox.com/user/preferences");
1989 pref("browser.contentblocking.report.monitor.home_page_url", "https://monitor.firefox.com/user/dashboard");
1990 pref("browser.contentblocking.report.manage_devices.url", "https://accounts.firefox.com/settings/clients");
1991 pref("browser.contentblocking.report.endpoint_url", "https://monitor.firefox.com/user/breach-stats?includeResolved=true");
1992 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");
1993 pref("browser.contentblocking.report.mobile-ios.url", "https://apps.apple.com/app/firefox-private-safe-browser/id989804926");
1994 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");
1995 pref("browser.contentblocking.report.vpn.url", "https://vpn.mozilla.org/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_campaign=about-protections-card");
1996 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");
1997 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--");
1998 pref("browser.contentblocking.report.vpn-ios.url", "https://apps.apple.com/us/app/firefox-private-network-vpn/id1489407738");
2000 // Protection Report's SUMO urls
2001 pref("browser.contentblocking.report.lockwise.how_it_works.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/password-manager-report");
2002 pref("browser.contentblocking.report.social.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/social-media-tracking-report");
2003 pref("browser.contentblocking.report.cookie.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/cross-site-tracking-report");
2004 pref("browser.contentblocking.report.tracker.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/tracking-content-report");
2005 pref("browser.contentblocking.report.fingerprinter.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/fingerprinters-report");
2006 pref("browser.contentblocking.report.cryptominer.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/cryptominers-report");
2008 pref("browser.contentblocking.cfr-milestone.enabled", true);
2009 pref("browser.contentblocking.cfr-milestone.milestone-achieved", 0);
2010 // Milestones should always be in increasing order
2011 pref("browser.contentblocking.cfr-milestone.milestones", "[1000, 5000, 10000, 25000, 50000, 100000, 250000, 314159, 500000, 750000, 1000000, 1250000, 1500000, 1750000, 2000000, 2250000, 2500000, 8675309]");
2013 // Enables the new Protections Panel.
2014 #ifdef NIGHTLY_BUILD
2015 pref("browser.protections_panel.enabled", true);
2016 pref("browser.protections_panel.infoMessage.seen", false);
2019 // Always enable newtab segregation using containers
2020 pref("privacy.usercontext.about_newtab_segregation.enabled", true);
2021 // Enable Contextual Identity Containers
2022 #ifdef NIGHTLY_BUILD
2023 pref("privacy.userContext.enabled", true);
2024 pref("privacy.userContext.ui.enabled", true);
2026 pref("privacy.userContext.enabled", false);
2027 pref("privacy.userContext.ui.enabled", false);
2029 pref("privacy.userContext.extension", "");
2030 // allows user to open container menu on a left click instead of a new
2031 // tab in the default container
2032 pref("privacy.userContext.newTabContainerOnLeftClick.enabled", false);
2034 #if defined(NIGHTLY_BUILD) || defined(XP_WIN) || defined(XP_MACOSX)
2035 // Set to true to allow the user to silence all notifications when
2036 // sharing the screen. Only shipping on Windows and macOS out to
2037 // release. Enabled for all desktop platforms on Nightly.
2038 pref("privacy.webrtc.allowSilencingNotifications", true);
2039 // Set to true to use the legacy WebRTC global indicator
2040 pref("privacy.webrtc.legacyGlobalIndicator", false);
2041 pref("privacy.webrtc.hideGlobalIndicator", false);
2043 pref("privacy.webrtc.allowSilencingNotifications", false);
2044 pref("privacy.webrtc.legacyGlobalIndicator", true);
2047 // Set to true to add toggles to the WebRTC indicator for globally
2048 // muting the camera and microphone.
2049 pref("privacy.webrtc.globalMuteToggles", false);
2051 // Set to true to enable a warning displayed when attempting
2052 // to switch tabs in a window that's being shared over WebRTC.
2053 pref("privacy.webrtc.sharedTabWarning", false);
2055 // Defines a grace period after camera or microphone use ends, where permission
2056 // is granted (even past navigation) to this tab + origin + device. This avoids
2057 // re-prompting without the user having to persist permission to the site, in a
2058 // common case of a web conference asking them for the camera in a lobby page,
2059 // before navigating to the actual meeting room page. Doesn't survive tab close.
2060 pref("privacy.webrtc.deviceGracePeriodTimeoutMs", 3600000);
2062 // Start the browser in e10s mode
2063 pref("browser.tabs.remote.autostart", true);
2064 pref("browser.tabs.remote.desktopbehavior", true);
2066 // Run media transport in a separate process?
2067 pref("media.peerconnection.mtransport_process", true);
2069 // For speculatively warming up tabs to improve perceived
2070 // performance while using the async tab switcher.
2071 pref("browser.tabs.remote.warmup.enabled", true);
2073 // Caches tab layers to improve perceived performance
2075 pref("browser.tabs.remote.tabCacheSize", 0);
2077 pref("browser.tabs.remote.warmup.maxTabs", 3);
2078 pref("browser.tabs.remote.warmup.unloadDelayMs", 2000);
2080 // For the about:tabcrashed page
2081 pref("browser.tabs.crashReporting.sendReport", true);
2082 pref("browser.tabs.crashReporting.includeURL", false);
2084 // If true, unprivileged extensions may use experimental APIs on
2085 // nightly and developer edition.
2086 pref("extensions.experiments.enabled", false);
2088 #if defined(XP_LINUX) || defined(XP_WIN)
2089 // Allows us to adjust the priority of child processes at the OS level
2090 pref("dom.ipc.processPriorityManager.enabled", true);
2094 pref("dom.ipc.processPriorityManager.backgroundUsesEcoQoS", true);
2097 // Don't limit how many nodes we care about on desktop:
2098 pref("reader.parse-node-limit", 0);
2100 // On desktop, we want the URLs to be included here for ease of debugging,
2101 // and because (normally) these errors are not persisted anywhere.
2102 pref("reader.errors.includeURLs", true);
2104 // What version of Pocket CTA to show in Reader Mode (Empty string is no CTA)
2105 pref("reader.pocket.ctaVersion", "");
2107 pref("view_source.tab", true);
2109 pref("dom.serviceWorkers.enabled", true);
2112 pref("dom.push.enabled", true);
2114 // These are the thumbnail width/height set in about:newtab.
2115 // If you change this, ENSURE IT IS THE SAME SIZE SET
2116 // by about:newtab. These values are in CSS pixels.
2117 pref("toolkit.pageThumbs.minWidth", 280);
2118 pref("toolkit.pageThumbs.minHeight", 190);
2120 // Enable speech synthesis
2121 pref("media.webspeech.synth.enabled", true);
2123 pref("browser.esedbreader.loglevel", "Error");
2125 pref("browser.laterrun.enabled", false);
2127 #ifdef FUZZING_SNAPSHOT
2128 pref("dom.ipc.processPrelaunch.enabled", false);
2130 pref("dom.ipc.processPrelaunch.enabled", true);
2133 pref("browser.migrate.brave.enabled", true);
2134 pref("browser.migrate.canary.enabled", true);
2136 pref("browser.migrate.chrome.enabled", true);
2137 // See comments in bug 1340115 on how we got to these numbers.
2138 pref("browser.migrate.chrome.history.limit", 2000);
2139 pref("browser.migrate.chrome.history.maxAgeInDays", 180);
2141 pref("browser.migrate.chrome-beta.enabled", true);
2142 pref("browser.migrate.chrome-dev.enabled", true);
2143 pref("browser.migrate.chromium.enabled", true);
2144 pref("browser.migrate.chromium-360se.enabled", true);
2145 pref("browser.migrate.chromium-edge.enabled", true);
2146 pref("browser.migrate.chromium-edge-beta.enabled", true);
2147 pref("browser.migrate.edge.enabled", true);
2148 pref("browser.migrate.firefox.enabled", true);
2149 pref("browser.migrate.ie.enabled", true);
2150 pref("browser.migrate.opera.enabled", true);
2151 pref("browser.migrate.opera-gx.enabled", true);
2152 pref("browser.migrate.safari.enabled", true);
2153 pref("browser.migrate.vivaldi.enabled", true);
2155 pref("browser.migrate.content-modal.enabled", false);
2157 pref("extensions.pocket.api", "api.getpocket.com");
2158 pref("extensions.pocket.enabled", true);
2159 pref("extensions.pocket.oAuthConsumerKey", "40249-e88c401e1b1f2242d9e441c4");
2160 pref("extensions.pocket.site", "getpocket.com");
2161 pref("extensions.pocket.onSaveRecs", true);
2162 pref("extensions.pocket.onSaveRecs.locales", "en-US,en-GB,en-CA");
2164 // Enable Pocket button home panel for non link pages.
2165 pref("extensions.pocket.showHome", true);
2167 // Control what version of the logged out doorhanger is displayed
2168 // Possibilities are: `control`, `control-one-button`, `variant_a`, `variant_b`, `variant_c`
2169 pref("extensions.pocket.loggedOutVariant", "control");
2171 // Just for the new Pocket panels, enables the email signup button.
2172 pref("extensions.pocket.refresh.emailButton.enabled", false);
2173 // Hides the recently saved section in the home panel.
2174 pref("extensions.pocket.refresh.hideRecentSaves.enabled", false);
2176 pref("signon.management.page.fileImport.enabled", false);
2178 #ifdef NIGHTLY_BUILD
2179 pref("signon.management.page.os-auth.enabled", true);
2181 // "not available" - feature is not available (will be removed after QA).
2182 // "available" - user can see feature offer.
2183 // "offered" - we have offered feature to user and they have not yet made a decision.
2184 // "enabled" - user opted in to the feature.
2185 // "disabled" - user opted out of the feature.
2186 // will be enabled after QA round
2187 pref("signon.firefoxRelay.feature", "not available");
2189 pref("signon.management.page.os-auth.enabled", false);
2190 pref("signon.firefoxRelay.feature", "not available");
2192 pref("signon.management.page.breach-alerts.enabled", true);
2193 pref("signon.management.page.vulnerable-passwords.enabled", true);
2194 pref("signon.management.page.sort", "name");
2195 // The utm_creative value is appended within the code (specific to the location on
2196 // where it is clicked). Be sure that if these two prefs are updated, that
2197 // the utm_creative param be last.
2198 pref("signon.management.page.breachAlertUrl",
2199 "https://monitor.firefox.com/breach-details/");
2200 pref("signon.passwordEditCapture.enabled", true);
2201 pref("signon.relatedRealms.enabled", false);
2202 pref("signon.showAutoCompleteFooter", true);
2203 pref("signon.showAutoCompleteImport", "import");
2204 pref("signon.suggestImportCount", 3);
2206 // Enable the "Simplify Page" feature in Print Preview. This feature
2207 // is disabled by default in toolkit.
2208 pref("print.use_simplify_page", true);
2210 // Space separated list of URLS that are allowed to send objects (instead of
2211 // only strings) through webchannels. Bug 1275612 tracks removing this pref and capability.
2212 pref("webchannel.allowObject.urlWhitelist", "https://content.cdn.mozilla.net https://install.mozilla.org");
2214 // Whether or not the browser should scan for unsubmitted
2215 // crash reports, and then show a notification for submitting
2217 #ifdef NIGHTLY_BUILD
2218 pref("browser.crashReports.unsubmittedCheck.enabled", true);
2220 pref("browser.crashReports.unsubmittedCheck.enabled", false);
2223 // chancesUntilSuppress is how many times we'll show the unsubmitted
2224 // crash report notification across different days and shutdown
2225 // without a user choice before we suppress the notification for
2226 // some number of days.
2227 pref("browser.crashReports.unsubmittedCheck.chancesUntilSuppress", 4);
2228 pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false);
2230 // Preferences for the form autofill toolkit component.
2231 // Checkbox in sync options for credit card data sync service
2232 pref("services.sync.engine.creditcards.available", true);
2233 // Whether the user enabled the OS re-auth dialog.
2234 pref("extensions.formautofill.reauth.enabled", false);
2236 // Whether or not to restore a session with lazy-browser tabs.
2237 pref("browser.sessionstore.restore_tabs_lazily", true);
2239 pref("browser.suppress_first_window_animation", true);
2241 // Preference that allows individual users to disable Screenshots.
2242 pref("extensions.screenshots.disabled", false);
2244 // Preference that determines whether Screenshots is opened as a dedicated browser component
2245 pref("screenshots.browser.component.enabled", false);
2247 // DoH Rollout: whether to clear the mode value at shutdown.
2248 pref("doh-rollout.clearModeOnShutdown", false);
2250 // URL for Learn More link for browser error logging in preferences
2251 pref("browser.chrome.errorReporter.infoURL",
2252 "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/nightly-error-collection");
2254 // Normandy client preferences
2255 pref("app.normandy.api_url", "https://normandy.cdn.mozilla.net/api/v1");
2256 pref("app.normandy.dev_mode", false);
2257 pref("app.normandy.enabled", true);
2258 pref("app.normandy.first_run", true);
2259 pref("app.normandy.logging.level", 50); // Warn
2260 pref("app.normandy.run_interval_seconds", 21600); // 6 hours
2261 pref("app.normandy.shieldLearnMoreUrl", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/shield");
2262 pref("app.normandy.last_seen_buildid", "");
2263 pref("app.normandy.onsync_skew_sec", 600);
2264 #ifdef MOZ_DATA_REPORTING
2265 pref("app.shield.optoutstudies.enabled", true);
2267 pref("app.shield.optoutstudies.enabled", false);
2270 // Multi-lingual preferences:
2271 // *.enabled - Are langpacks available for the build of Firefox?
2272 // *.downloadEnabled - Langpacks are allowed to be downloaded from AMO. AMO only serves
2273 // langpacks for release and beta. Unsupported releases (like Nightly) can be
2274 // manually tested with the following preference:
2275 // extensions.getAddons.langpacks.url: https://mock-amo-language-tools.glitch.me/?app=firefox&type=language&appversion=%VERSION%
2276 // *.liveReload - Switching a langpack will change the language without a restart.
2277 // *.liveReloadBidirectional - Allows switching when moving between LTR and RTL
2278 // languages without a full restart.
2279 // *.aboutWelcome.languageMismatchEnabled - Enables an onboarding menu in about:welcome
2280 // to allow a user to change their language when there is a language mismatch between
2281 // the app and browser.
2282 #if defined(RELEASE_OR_BETA) && !defined(MOZ_DEV_EDITION)
2283 pref("intl.multilingual.enabled", true);
2284 pref("intl.multilingual.downloadEnabled", true);
2285 pref("intl.multilingual.liveReload", true);
2286 pref("intl.multilingual.liveReloadBidirectional", false);
2287 pref("intl.multilingual.aboutWelcome.languageMismatchEnabled", true);
2289 pref("intl.multilingual.enabled", false);
2290 pref("intl.multilingual.downloadEnabled", false);
2291 pref("intl.multilingual.liveReload", false);
2292 pref("intl.multilingual.liveReloadBidirectional", false);
2293 pref("intl.multilingual.aboutWelcome.languageMismatchEnabled", false);
2296 // Coverage ping is disabled by default.
2297 pref("toolkit.coverage.enabled", false);
2298 pref("toolkit.coverage.endpoint.base", "https://coverage.mozilla.org");
2301 pref("browser.discovery.enabled", true);
2302 pref("browser.discovery.containers.enabled", true);
2303 pref("browser.discovery.sites", "addons.mozilla.org");
2305 pref("browser.engagement.recent_visited_origins.expiry", 86400); // 24 * 60 * 60 (24 hours in seconds)
2306 pref("browser.engagement.downloads-button.has-used", false);
2307 pref("browser.engagement.fxa-toolbar-menu-button.has-used", false);
2308 pref("browser.engagement.home-button.has-used", false);
2309 pref("browser.engagement.sidebar-button.has-used", false);
2310 pref("browser.engagement.library-button.has-used", false);
2311 pref("browser.engagement.ctrlTab.has-used", false);
2313 pref("browser.aboutConfig.showWarning", true);
2315 pref("browser.toolbars.keyboard_navigation", true);
2317 // The visibility of the bookmarks toolbar.
2318 // "newtab": Show on the New Tab Page
2319 // "always": Always show
2320 // "never": Never show
2321 pref("browser.toolbars.bookmarks.visibility", "newtab");
2323 // Visibility of the "Show Other Bookmarks" menuitem in the
2324 // bookmarks toolbar contextmenu.
2325 pref("browser.toolbars.bookmarks.showOtherBookmarks", true);
2327 // Prefs to control the Firefox Account toolbar menu.
2328 // This pref will surface existing Firefox Account information
2329 // as a button next to the hamburger menu. It allows
2330 // quick access to sign-in and manage your Firefox Account.
2331 pref("identity.fxaccounts.toolbar.enabled", true);
2332 pref("identity.fxaccounts.toolbar.accessed", false);
2334 // Prefs for different services supported by Firefox Account
2335 pref("identity.fxaccounts.service.monitorLoginUrl", "https://monitor.firefox.com/");
2337 // Check bundled omni JARs for corruption.
2338 pref("corroborator.enabled", true);
2340 // Toolbox preferences
2341 pref("devtools.toolbox.footer.height", 250);
2342 pref("devtools.toolbox.sidebar.width", 500);
2343 pref("devtools.toolbox.host", "bottom");
2344 pref("devtools.toolbox.previousHost", "right");
2345 pref("devtools.toolbox.selectedTool", "inspector");
2346 pref("devtools.toolbox.zoomValue", "1");
2347 pref("devtools.toolbox.splitconsoleEnabled", false);
2348 pref("devtools.toolbox.splitconsoleHeight", 100);
2349 pref("devtools.toolbox.tabsOrder", "");
2350 // This is only used for local Web Extension debugging,
2351 // and allows to keep the window on top of all others,
2352 // so that you can debug the Firefox window, while keeping the devtools
2354 pref("devtools.toolbox.alwaysOnTop", true);
2356 // When the Multiprocess Browser Toolbox is enabled, you can configure the scope of it:
2357 // - "everything" will enable debugging absolutely everything in the browser
2358 // All processes, all documents, all workers, all add-ons.
2359 // - "parent-process" will restrict debugging to the parent process
2360 // All privileged javascript, documents and workers running in the parent process.
2361 pref("devtools.browsertoolbox.scope", "parent-process");
2363 // This preference will enable watching top-level targets from the server side.
2364 pref("devtools.target-switching.server.enabled", true);
2366 // In DevTools, create a target for each frame (i.e. not only for top-level document and
2368 pref("devtools.every-frame-target.enabled", true);
2370 // Controls the hability to debug popups from the same DevTools
2371 // of the original tab the popups are coming from
2372 pref("devtools.popups.debug", false);
2374 // Toolbox Button preferences
2375 pref("devtools.command-button-pick.enabled", true);
2376 pref("devtools.command-button-frames.enabled", true);
2377 pref("devtools.command-button-splitconsole.enabled", true);
2378 pref("devtools.command-button-responsive.enabled", true);
2379 pref("devtools.command-button-screenshot.enabled", false);
2380 pref("devtools.command-button-rulers.enabled", false);
2381 pref("devtools.command-button-measure.enabled", false);
2382 pref("devtools.command-button-noautohide.enabled", false);
2383 pref("devtools.command-button-errorcount.enabled", true);
2384 #ifndef MOZILLA_OFFICIAL
2385 pref("devtools.command-button-experimental-prefs.enabled", true);
2388 // Inspector preferences
2389 // Enable the Inspector
2390 pref("devtools.inspector.enabled", true);
2391 // What was the last active sidebar in the inspector
2392 pref("devtools.inspector.selectedSidebar", "layoutview");
2393 pref("devtools.inspector.activeSidebar", "layoutview");
2394 pref("devtools.inspector.remote", false);
2396 // Enable the 3 pane mode in the inspector
2397 pref("devtools.inspector.three-pane-enabled", true);
2398 // Enable the 3 pane mode in the chrome inspector
2399 pref("devtools.inspector.chrome.three-pane-enabled", false);
2400 // Collapse pseudo-elements by default in the rule-view
2401 pref("devtools.inspector.show_pseudo_elements", false);
2402 // The default size for image preview tooltips in the rule-view/computed-view/markup-view
2403 pref("devtools.inspector.imagePreviewTooltipSize", 300);
2404 // Enable user agent style inspection in rule-view
2405 pref("devtools.inspector.showUserAgentStyles", false);
2406 // Show native anonymous content and user agent shadow roots
2407 pref("devtools.inspector.showAllAnonymousContent", false);
2408 // Enable the inline CSS compatiblity warning in inspector rule view
2409 pref("devtools.inspector.ruleview.inline-compatibility-warning.enabled", false);
2410 // Enable the compatibility tool in the inspector.
2411 pref("devtools.inspector.compatibility.enabled", true);
2412 // Enable overflow debugging in the inspector.
2413 pref("devtools.overflow.debugging.enabled", true);
2414 // Enable drag to edit properties in the inspector rule view.
2415 pref("devtools.inspector.draggable_properties", true);
2417 // Grid highlighter preferences
2418 pref("devtools.gridinspector.gridOutlineMaxColumns", 50);
2419 pref("devtools.gridinspector.gridOutlineMaxRows", 50);
2420 pref("devtools.gridinspector.showGridAreas", false);
2421 pref("devtools.gridinspector.showGridLineNumbers", false);
2422 pref("devtools.gridinspector.showInfiniteLines", false);
2423 // Max number of grid highlighters that can be displayed
2424 pref("devtools.gridinspector.maxHighlighters", 3);
2426 // Whether or not the box model panel is opened in the layout view
2427 pref("devtools.layout.boxmodel.opened", true);
2428 // Whether or not the flexbox panel is opened in the layout view
2429 pref("devtools.layout.flexbox.opened", true);
2430 // Whether or not the flexbox container panel is opened in the layout view
2431 pref("devtools.layout.flex-container.opened", true);
2432 // Whether or not the flexbox item panel is opened in the layout view
2433 pref("devtools.layout.flex-item.opened", true);
2434 // Whether or not the grid inspector panel is opened in the layout view
2435 pref("devtools.layout.grid.opened", true);
2437 // Enable hovering Box Model values and jumping to their source CSS rule in the
2439 #if defined(NIGHTLY_BUILD)
2440 pref("devtools.layout.boxmodel.highlightProperty", true);
2442 pref("devtools.layout.boxmodel.highlightProperty", false);
2445 // By how many times eyedropper will magnify pixels
2446 pref("devtools.eyedropper.zoom", 6);
2448 // Enable to collapse attributes that are too long.
2449 pref("devtools.markup.collapseAttributes", true);
2450 // Length to collapse attributes
2451 pref("devtools.markup.collapseAttributeLength", 120);
2452 // Whether to auto-beautify the HTML on copy.
2453 pref("devtools.markup.beautifyOnCopy", false);
2454 // Whether or not the DOM mutation breakpoints context menu are enabled in the
2456 pref("devtools.markup.mutationBreakpoints.enabled", true);
2458 // DevTools default color unit
2459 pref("devtools.defaultColorUnit", "authored");
2461 // Enable the Memory tools
2462 pref("devtools.memory.enabled", true);
2464 pref("devtools.memory.custom-census-displays", "{}");
2465 pref("devtools.memory.custom-label-displays", "{}");
2466 pref("devtools.memory.custom-tree-map-displays", "{}");
2468 pref("devtools.memory.max-individuals", 1000);
2469 pref("devtools.memory.max-retaining-paths", 10);
2471 // Enable the Performance tools
2472 pref("devtools.performance.enabled", true);
2474 // The default cache UI setting
2475 pref("devtools.cache.disabled", false);
2477 // The default service workers UI setting
2478 pref("devtools.serviceWorkers.testing.enabled", false);
2480 // Enable the Network Monitor
2481 pref("devtools.netmonitor.enabled", true);
2483 pref("devtools.netmonitor.features.search", true);
2484 pref("devtools.netmonitor.features.requestBlocking", true);
2486 // Enable the Application panel
2487 pref("devtools.application.enabled", true);
2489 // Enable the custom formatters feature
2490 // TODO remove once the custom formatters feature is stable (see bug 1734614)
2491 pref("devtools.custom-formatters", false);
2492 // This preference represents the user's choice to enable the custom formatters feature.
2493 // While the preference above will be removed once the feature is stable, this one is menat to stay.
2494 pref("devtools.custom-formatters.enabled", false);
2496 // The default Network Monitor UI settings
2497 pref("devtools.netmonitor.panes-network-details-width", 550);
2498 pref("devtools.netmonitor.panes-network-details-height", 450);
2499 pref("devtools.netmonitor.panes-search-width", 550);
2500 pref("devtools.netmonitor.panes-search-height", 450);
2501 pref("devtools.netmonitor.filters", "[\"all\"]");
2502 pref("devtools.netmonitor.visibleColumns",
2503 "[\"status\",\"method\",\"domain\",\"file\",\"initiator\",\"type\",\"transferred\",\"contentSize\",\"waterfall\"]"
2505 pref("devtools.netmonitor.columnsData",
2506 '[{"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}]');
2507 pref("devtools.netmonitor.msg.payload-preview-height", 128);
2508 pref("devtools.netmonitor.msg.visibleColumns",
2511 pref("devtools.netmonitor.msg.displayed-messages.limit", 500);
2513 pref("devtools.netmonitor.response.ui.limit", 10240);
2515 // Save request/response bodies yes/no.
2516 pref("devtools.netmonitor.saveRequestAndResponseBodies", true);
2518 // The default Network monitor HAR export setting
2519 pref("devtools.netmonitor.har.defaultLogDir", "");
2520 pref("devtools.netmonitor.har.defaultFileName", "%hostname_Archive [%date]");
2521 pref("devtools.netmonitor.har.jsonp", false);
2522 pref("devtools.netmonitor.har.jsonpCallback", "");
2523 pref("devtools.netmonitor.har.includeResponseBodies", true);
2524 pref("devtools.netmonitor.har.compress", false);
2525 pref("devtools.netmonitor.har.forceExport", false);
2526 pref("devtools.netmonitor.har.pageLoadedTimeout", 1500);
2527 pref("devtools.netmonitor.har.enableAutoExportToFile", false);
2530 pref("devtools.netmonitor.audits.slow", 500);
2532 // Enable the new Edit and Resend panel
2533 pref("devtools.netmonitor.features.newEditAndResend", true);
2535 pref("devtools.netmonitor.customRequest", '{}');
2537 // Enable the Storage Inspector
2538 pref("devtools.storage.enabled", true);
2540 // Enable the Style Editor.
2541 pref("devtools.styleeditor.enabled", true);
2542 pref("devtools.styleeditor.autocompletion-enabled", true);
2543 pref("devtools.styleeditor.showAtRulesSidebar", true);
2544 pref("devtools.styleeditor.atRulesSidebarWidth", 238);
2545 pref("devtools.styleeditor.navSidebarWidth", 245);
2546 pref("devtools.styleeditor.transitions", true);
2548 // Screenshot Option Settings.
2549 pref("devtools.screenshot.clipboard.enabled", false);
2550 pref("devtools.screenshot.audio.enabled", true);
2552 // Make sure the DOM panel is hidden by default
2553 pref("devtools.dom.enabled", false);
2555 // Enable the Accessibility panel.
2556 pref("devtools.accessibility.enabled", true);
2558 // Web console filters
2559 pref("devtools.webconsole.filter.error", true);
2560 pref("devtools.webconsole.filter.warn", true);
2561 pref("devtools.webconsole.filter.info", true);
2562 pref("devtools.webconsole.filter.log", true);
2563 pref("devtools.webconsole.filter.debug", true);
2564 pref("devtools.webconsole.filter.css", false);
2565 pref("devtools.webconsole.filter.net", false);
2566 pref("devtools.webconsole.filter.netxhr", false);
2568 // Webconsole autocomplete preference
2569 pref("devtools.webconsole.input.autocomplete",true);
2571 // Show context selector in console input
2572 pref("devtools.webconsole.input.context", true);
2574 // Set to true to eagerly show the results of webconsole terminal evaluations
2575 // when they don't have side effects.
2576 pref("devtools.webconsole.input.eagerEvaluation", true);
2578 // Browser console filters
2579 pref("devtools.browserconsole.filter.error", true);
2580 pref("devtools.browserconsole.filter.warn", true);
2581 pref("devtools.browserconsole.filter.info", true);
2582 pref("devtools.browserconsole.filter.log", true);
2583 pref("devtools.browserconsole.filter.debug", true);
2584 pref("devtools.browserconsole.filter.css", false);
2585 pref("devtools.browserconsole.filter.net", false);
2586 pref("devtools.browserconsole.filter.netxhr", false);
2588 // Max number of inputs to store in web console history.
2589 pref("devtools.webconsole.inputHistoryCount", 300);
2591 // Persistent logging: |true| if you want the relevant tool to keep all of the
2592 // logged messages after reloading the page, |false| if you want the output to
2593 // be cleared each time page navigation happens.
2594 pref("devtools.webconsole.persistlog", false);
2595 pref("devtools.netmonitor.persistlog", false);
2597 // Web Console timestamp: |true| if you want the logs and instructions
2598 // in the Web Console to display a timestamp, or |false| to not display
2600 pref("devtools.webconsole.timestampMessages", false);
2602 // Enable the webconsole sidebar toggle in Nightly builds.
2603 #if defined(NIGHTLY_BUILD)
2604 pref("devtools.webconsole.sidebarToggle", true);
2606 pref("devtools.webconsole.sidebarToggle", false);
2609 // Saved editor mode state in the console.
2610 pref("devtools.webconsole.input.editor", false);
2611 pref("devtools.browserconsole.input.editor", false);
2613 // Editor width for webconsole and browserconsole.
2614 pref("devtools.webconsole.input.editorWidth", 0);
2615 pref("devtools.browserconsole.input.editorWidth", 0);
2617 // Display an onboarding UI for the Editor mode.
2618 pref("devtools.webconsole.input.editorOnboarding", true);
2620 // Enable message grouping in the console, true by default
2621 pref("devtools.webconsole.groupWarningMessages", true);
2623 // Enable network monitoring the browser toolbox console/browser console.
2624 pref("devtools.browserconsole.enableNetworkMonitoring", false);
2626 // Enable client-side mapping service for source maps
2627 pref("devtools.source-map.client-service.enabled", true);
2629 // The number of lines that are displayed in the web console.
2630 pref("devtools.hud.loglimit", 10000);
2632 // The developer tools editor configuration:
2633 // - tabsize: how many spaces to use when a Tab character is displayed.
2634 // - expandtab: expand Tab characters to spaces.
2635 // - keymap: which keymap to use (can be 'default', 'emacs' or 'vim')
2636 // - autoclosebrackets: whether to permit automatic bracket/quote closing.
2637 // - detectindentation: whether to detect the indentation from the file
2638 // - enableCodeFolding: Whether to enable code folding or not.
2639 pref("devtools.editor.tabsize", 2);
2640 pref("devtools.editor.expandtab", true);
2641 pref("devtools.editor.keymap", "default");
2642 pref("devtools.editor.autoclosebrackets", true);
2643 pref("devtools.editor.detectindentation", true);
2644 pref("devtools.editor.enableCodeFolding", true);
2645 pref("devtools.editor.autocomplete", true);
2647 // The angle of the viewport.
2648 pref("devtools.responsive.viewport.angle", 0);
2649 // The width of the viewport.
2650 pref("devtools.responsive.viewport.width", 320);
2651 // The height of the viewport.
2652 pref("devtools.responsive.viewport.height", 480);
2653 // The pixel ratio of the viewport.
2654 pref("devtools.responsive.viewport.pixelRatio", 0);
2655 // Whether or not the viewports are left aligned.
2656 pref("devtools.responsive.leftAlignViewport.enabled", false);
2657 // Whether to reload when touch simulation is toggled
2658 pref("devtools.responsive.reloadConditions.touchSimulation", false);
2659 // Whether to reload when user agent is changed
2660 pref("devtools.responsive.reloadConditions.userAgent", false);
2661 // Whether to show the notification about reloading to apply emulation
2662 pref("devtools.responsive.reloadNotification.enabled", true);
2663 // Whether or not touch simulation is enabled.
2664 pref("devtools.responsive.touchSimulation.enabled", false);
2665 // The user agent of the viewport.
2666 pref("devtools.responsive.userAgent", "");
2667 // Show the custom user agent input by default
2668 pref("devtools.responsive.showUserAgentInput", true);
2670 // Show tab debug targets for This Firefox (on by default for local builds).
2671 #ifdef MOZILLA_OFFICIAL
2672 pref("devtools.aboutdebugging.local-tab-debugging", false);
2674 pref("devtools.aboutdebugging.local-tab-debugging", true);
2677 // Show process debug targets.
2678 pref("devtools.aboutdebugging.process-debugging", true);
2679 // Stringified array of network locations that users can connect to.
2680 pref("devtools.aboutdebugging.network-locations", "[]");
2681 // Debug target pane collapse/expand settings.
2682 pref("devtools.aboutdebugging.collapsibilities.installedExtension", false);
2683 pref("devtools.aboutdebugging.collapsibilities.otherWorker", false);
2684 pref("devtools.aboutdebugging.collapsibilities.serviceWorker", false);
2685 pref("devtools.aboutdebugging.collapsibilities.sharedWorker", false);
2686 pref("devtools.aboutdebugging.collapsibilities.tab", false);
2687 pref("devtools.aboutdebugging.collapsibilities.temporaryExtension", false);
2689 // about:debugging: only show system and hidden extensions in local builds by
2691 #ifdef MOZILLA_OFFICIAL
2692 pref("devtools.aboutdebugging.showHiddenAddons", false);
2694 pref("devtools.aboutdebugging.showHiddenAddons", true);
2697 // Map top-level await expressions in the console
2698 pref("devtools.debugger.features.map-await-expression", true);
2700 // This relies on javascript.options.asyncstack as well or it has no effect.
2701 pref("devtools.debugger.features.async-captured-stacks", true);
2702 pref("devtools.debugger.features.async-live-stacks", false);
2704 // Disable autohide for DevTools popups and tooltips.
2705 // This is currently not exposed by any UI to avoid making
2706 // about:devtools-toolbox tabs unusable by mistake.
2707 pref("devtools.popup.disable_autohide", false);
2709 // FirstStartup service time-out in ms
2710 pref("first-startup.timeout", 30000);
2712 // Enable the default browser agent.
2713 // The agent still runs as scheduled if this pref is disabled,
2714 // but it exits immediately before taking any action.
2716 pref("default-browser-agent.enabled", true);
2719 // Test Prefs that do nothing for testing
2720 #if defined(EARLY_BETA_OR_EARLIER)
2721 pref("app.normandy.test-prefs.bool", false);
2722 pref("app.normandy.test-prefs.integer", 0);
2723 pref("app.normandy.test-prefs.string", "");
2726 // Shows 'View Image Info' item in the image context menu
2727 #ifdef MOZ_DEV_EDITION
2728 pref("browser.menu.showViewImageInfo", true);
2730 pref("browser.menu.showViewImageInfo", false);
2733 // Mozilla-controlled domains that are allowed to use non-standard
2734 // context properties for SVG images for use in the browser UI. Please
2735 // keep this list short. This preference (and SVG `context-` keyword support)
2736 // are expected to go away once a standardized alternative becomes
2738 pref("svg.context-properties.content.allowed-domains", "profile.accounts.firefox.com,profile.stage.mozaws.net");
2740 // Preference that allows individual users to disable Firefox Translations.
2741 #ifdef NIGHTLY_BUILD
2742 pref("extensions.translations.disabled", true);
2745 // Turn on interaction measurements in Nightly only
2746 #ifdef NIGHTLY_BUILD
2747 pref("browser.places.interactions.enabled", true);
2750 // If the user has seen the Firefox View feature tour this value reflects
2751 // the id of the last screen they saw and whether they completed the tour
2752 pref("browser.firefox-view.feature-tour", "{\"screen\":\"FIREFOX_VIEW_SPOTLIGHT\",\"complete\":false}");
2753 // Number of times the user visited about:firefoxview
2754 pref("browser.firefox-view.view-count", 0);
2756 // If the user has seen the pdf.js feature tour this value reflects the tour
2757 // message id, the id of the last screen they saw, and whether they completed the tour
2758 pref("browser.pdfjs.feature-tour", "{\"screen\":\"\",\"complete\":false}");
2760 // Enables cookie banner handling in Nightly in Private Browsing Mode. See
2761 // StaticPrefList.yaml for a description of the prefs.
2762 #ifdef NIGHTLY_BUILD
2763 pref("cookiebanners.service.mode.privateBrowsing", 1);
2766 // Enables the cookie banner desktop UI.
2767 pref("cookiebanners.ui.desktop.enabled", false);