//@line 1 "$SRCDIR/browser/app/profile/001-base-profile.js"
// Preferences to harden Firefox's security and privacy
// Do not edit this file.

// Use the OS locale by default (tor-browser#17400)
pref("intl.locale.requested", "");

// Home page is blank rather than Firefox Home (Activity Stream).
// tor-browser#31575 and tor-browser#30662
pref("browser.startup.homepage", "about:blank");

// tor-browser#43164: Prevent search-bar from being auto-hidden when not used for awhile
// This preference is locked so that the browser itself can never set an actual
// value that would trigger the migration.
pref("browser.search.widget.lastUsed", "", locked);

// Disable initial homepage notifications
pref("browser.search.update", false);
pref("startup.homepage_welcome_url", "");
pref("startup.homepage_welcome_url.additional", "");

// Disable Firefox Welcome Dialog
pref("browser.aboutwelcome.enabled", false);

//@line 28 "$SRCDIR/browser/app/profile/001-base-profile.js"

// Bug 41668: allow users to apply updates. This is set also in firefox.js for
// all platforms, except for Windows. As explained on firefox.js, Firefox uses a
// per-installation preference on Windows. However, we patch this behavior, and
// we set this preference also for Windows.
pref("app.update.auto", true);

// Try to nag a bit more about updates: Pop up a restart dialog an hour after the initial dialog
pref("app.update.promptWaitTime", 3600);

//@line 45 "$SRCDIR/browser/app/profile/001-base-profile.js"

pref("browser.startup.homepage_override.buildID", "20100101");

// Disable the "Refresh" prompt that is displayed for stale profiles.
pref("browser.disableResetPrompt", true);

// Disk activity: Disable Browsing History Storage
pref("browser.privatebrowsing.autostart", true);
pref("browser.cache.disk.enable", false);
pref("permissions.memory_only", true);
pref("security.nocertdb", true);
pref("media.aboutwebrtc.hist.enabled", false);

// tor-browser#45214: Disable the megalist (contextual password manager).
pref("browser.contextual-password-manager.enabled", false);

// Disk Activity

// Disable auto-downloading to ~/Downloads and other download tweaks to minimize
// disk leaks (tor-browser#42050).
pref("browser.download.useDownloadDir", false);
pref("browser.download.always_ask_before_handling_new_types", true);
pref("browser.download.manager.addToRecentDocs", false);
pref("browser.download.start_downloads_in_tmp_dir", true);
// tor-browser#42147: Always delete temporary files, also on macOS (this pref is
// already true for other platforms).
// Also, this always happens in PBM. If not in PBM, requires
// browser.download.start_downloads_in_tmp_dir to be true too.
pref("browser.helperApps.deleteTempFileOnExit", true);

// Prevent download stuffing / DOS (tor-browser#41764)
pref("browser.download.enable_spam_prevention", true);

// tor-browser#45187: Disable offering to delete downloaded files when closing
// private browsing windows because it does not work as expected in 16.0.
pref("browser.download.enableDeletePrivate", false);

// tor-browser#41131: This is normally gated on
// privacy.sanitize.sanitizeOnShutdown, which is false by default. But in case
// users enable it, make sure background tasks are not used for this, since we
// disable them as well (but at compile time).
pref("network.cache.shutdown_purge_in_background_task", false);

// Misc privacy: Disk
pref("signon.rememberSignons", false);
pref("browser.formfill.enable", false);
pref("signon.formlessCapture.enabled", false); // Added with tor-browser#41496
pref("signon.autofillForms", false);
// NOTE: extensions.formautofill.available is a legacy preference that upstream
// has not removed yet, and is only used for a migration to the newer
// "*.supported" preferences. See bugzilla bug 1745248.
pref("extensions.formautofill.available", "");
// Suppress formautofill component. tor-browser#44460.
// NOTE: With the "formautofill" built-in extension removed from Base Browser
// builds, some of these preferences have almost no effect at the time of
// implementation, but we include them in case they help with future-proofing.
pref("extensions.formautofill.addresses.supported", "off");
pref("extensions.formautofill.addresses.experiments.enabled", false);
pref("extensions.formautofill.addresses.enabled", false);
pref("extensions.formautofill.creditCards.supported", "off");
pref("extensions.formautofill.creditCards.enabled", false);
// Do not store extra data (form, scrollbar positions, cookies, POST data) for
// the session restore functionality.
pref("browser.sessionstore.privacy_level", 2);
// Use the in-memory media cache and increase its maximum size (#29120)
pref("browser.privatebrowsing.forceMediaMemoryCache", true);
pref("media.memory_cache_max_size", 65536);
// tor-browser#41065: lie about the available quota.
// This value is in KiB, and will be divided by 5. Currently: 50GiB, to be
// coherent with Firefox's usual value. However, this might be too much for live
// systems.
// This will be the limit also after granting the persistent storage permission,
// but we are not interested in it, since we support only PBM.
// We can come back to it, and hardcode the two spaced differently, if we ever
// think we need it.
pref("dom.quotaManager.temporaryStorage.fixedLimit", 52428800);
// Disable restore in case of crash (tor-browser#41503)
// This should not be needed in PBM, but we added it anyway like other options.
pref("browser.sessionstore.resume_from_crash", false);
// Disable capturing thumbnails (tor-browser#41595)
// Also not needed in PBM at the moment.
pref("browser.pagethumbnails.capturing_disabled", true);
// tor-browser#41988: Remove page titles from window titles to prevent possible
// disk leaks, e.g., in system logs.
// For example, it happened that GNOME shell logged the window name that caused
// JS errors/unexpected conditions for unrelated issues.
// TODO: commented out for now because of UX concerns, to be reconsidered in 14.5
// pref("privacy.exposeContentTitleInWindow", false);
// pref("privacy.exposeContentTitleInWindow.pbm", false);

// tor-browser#42054: Opt-out from any built-in backup system, even though
// local, as it might be a violation of our standalone mode.
// Users can still opt-in if they wish.
pref("browser.backup.enabled", false);
pref("browser.backup.scheduled.enabled", false);
// tor-browser#45123: Disable the profile automated backup and restore service.
pref("browser.backup.archive.enabled", false);
pref("browser.backup.restore.enabled", false);

// Empty clipboard content from private windows on exit (tor-browser#42154)
pref("browser.privatebrowsing.preserveClipboard", false);

// tor-browser#42611: Do not include the URL of the image, when copying it.
// Also, do not save clipboard in history/cloud.
pref("clipboard.imageAsFile.enabled", false);
pref("clipboard.copyPrivateDataToClipboardCloudOrHistory", false);

// Enable HTTPS-Only mode (tor-browser#19850)
pref("dom.security.https_only_mode", true);
// The previous pref automatically sets this to true (see StaticPrefList.yaml),
// but set it anyway only as a defense-in-depth.
pref("dom.security.https_only_mode_pbm", true);
// tor-browser#43197, defense in depth if ever https-only got disabled
pref("dom.security.https_first_add_exception_on_failure", false);

// tor-browser#22320: Hide referer when coming from a .onion address
// We enable this here (rather than in Tor Browser) in case users of other
// base-browser derived browsers configure it to use a system Tor daemon
// to visit onion services.
pref("network.http.referer.hideOnionSource", true);

// Require Safe Negotiation ( https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/27719 )
// Blocks connections to servers that don't support RFC 5746 [2] as they're potentially vulnerable to a
// MiTM attack [3]. A server without RFC 5746 can be safe from the attack if it disables renegotiations
// but the problem is that the browser can't know that. Setting this pref to true is the only way for the
// browser to ensure there will be no unsafe renegotiations on the channel between the browser and the server
// [STATS] SSL Labs (July 2021) reports over 99% of top sites have secure renegotiation [4]
// [1] https://wiki.mozilla.org/Security:Renegotiation
// [2] https://datatracker.ietf.org/doc/html/rfc5746
// [3] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3555
// [4] https://www.ssllabs.com/ssl-pulse/
pref("security.ssl.require_safe_negotiation", true);

// lock those disabled by https://bugzilla.mozilla.org/show_bug.cgi?id=1036765
pref("security.ssl3.dhe_rsa_aes_128_sha", false, locked);
pref("security.ssl3.dhe_rsa_aes_256_sha", false, locked);

// Wrapping a static pref to lock it and prevent changing.
// See tor-browser#40565.
pref("security.tls.version.enable-deprecated", false, locked);

// tor-browser#44187: Disable session identifiers to make PBM and normal mode
// more similar.
pref("security.ssl.disable_session_identifiers", true);

// URL bar and (remote) suggestions
pref("browser.search.suggest.enabled", false);
pref("browser.search.suggest.enabled.private", false);
pref("browser.urlbar.suggest.searches", false);
// tor-browser#44511: Global opt-out for rich suggestions.
// Some of them are not remote, but we do not have the needed remote settings
// dump, so just disable all of them.
pref("browser.urlbar.suggest.quicksuggest.all", false);
pref("browser.urlbar.suggest.quicksuggest.nonsponsored", false);
pref("browser.urlbar.suggest.quicksuggest.sponsored", false);
// tor-browser#41576: Do not suggest weather and addons.
pref("browser.urlbar.suggest.addons", false);
pref("browser.urlbar.addons.featureGate", false);
pref("browser.urlbar.suggest.weather", false);
pref("browser.urlbar.weather.featureGate", false);
// tor-browser#42886: Disable trending results.
pref("browser.urlbar.suggest.trending", false);
pref("browser.urlbar.trending.featureGate", false);
pref("browser.urlbar.suggest.topsites", false);
// tor-browser#41691: Hide "Firefox Suggest" in the UI
pref("browser.urlbar.groupLabels.enabled", false);
// tor-browser#42735: Disable recent search suggestions
pref("browser.urlbar.recentsearches.featureGate", false);
pref("browser.urlbar.suggest.recentsearches", false);
pref("browser.urlbar.quicksuggest.enabled", false);
pref("browser.urlbar.quicksuggest.online.available", false);
pref("browser.urlbar.quicksuggest.online.enabled", false);
pref("browser.urlbar.richSuggestions.featureGate", false);
// tor-browser#44511: defense-in-depth to disable remote queries when pasting.
pref("browser.urlbar.maxCharsForSearchSuggestions", 0);

// Misc privacy: Remote
pref("browser.send_pings", false);
// Space separated list of URLs that are allowed to send objects (instead of
// only strings) through webchannels. The default for Firefox is some Mozilla
// domains.
pref("webchannel.allowObject.urlWhitelist", "");
pref("geo.enabled", false);
pref("geo.provider.network.url", "");
pref("geo.provider.ms-windows-location", false);
pref("geo.provider.use_corelocation", false);
pref("geo.provider.use_gpsd", false);
pref("geo.provider.use_geoclue", false);

pref("browser.safebrowsing.malware.enabled", false);
pref("browser.safebrowsing.phishing.enabled", false);
pref("browser.safebrowsing.downloads.enabled", false);
pref("browser.safebrowsing.downloads.remote.enabled", false);
pref("browser.safebrowsing.blockedURIs.enabled", false);
pref("browser.safebrowsing.downloads.remote.url", "");
pref("browser.safebrowsing.provider.google.updateURL", "");
pref("browser.safebrowsing.provider.google.gethashURL", "");
pref("browser.safebrowsing.provider.google4.updateURL", "");
pref("browser.safebrowsing.provider.google4.gethashURL", "");
pref("browser.safebrowsing.provider.mozilla.updateURL", "");
pref("browser.safebrowsing.provider.mozilla.gethashURL", "");

// Disable the UITour API
// See tor-browser#41457 and
// https://bugzilla.mozilla.org/show_bug.cgi?id=1915280
pref("browser.uitour.enabled", false);

// Make sure Unified Telemetry is really disabled, see: #18738.
pref("toolkit.telemetry.unified", false);
// This needs to be locked, or nightly builds will automatically lock it to true
pref("toolkit.telemetry.enabled", false, locked);
pref("toolkit.telemetry.server", "data:,");
pref("toolkit.telemetry.archive.enabled", false);
pref("toolkit.telemetry.newProfilePing.enabled", false); // Added in tor-browser#41496
pref("toolkit.telemetry.shutdownPingSender.enabled", false); // Added in tor-browser#41496
pref("toolkit.telemetry.firstShutdownPing.enabled", false); // Added in tor-browser#41496
pref("toolkit.telemetry.updatePing.enabled", false); // Make sure updater telemetry is disabled; see #25909.
pref("toolkit.telemetry.bhrPing.enabled", false);
pref("toolkit.telemetry.coverage.opt-out", true);
pref("datareporting.healthreport.uploadEnabled", false);
pref("datareporting.policy.dataSubmissionEnabled", false);
// Force all telemtry identifier to their canary values tor-browser#43750
pref("toolkit.telemetry.cachedClientID", "c0ffeec0-ffee-c0ff-eec0-ffeec0ffeec0", locked);
pref("toolkit.telemetry.cachedProfileGroupID", "decafdec-afde-cafd-ecaf-decafdecafde", locked);
pref("datareporting.dau.cachedUsageProfileID", "beefbeef-beef-beef-beef-beeefbeefbee", locked);
pref("datareporting.dau.cachedUsageProfileGroupID", "b0bacafe-b0ba-cafe-b0ba-cafeb0bacafe", locked);
pref("toolkit.coverage.opt-out", true);
pref("toolkit.coverage.endpoint.base", "");
pref("browser.tabs.crashReporting.sendReport", false);
pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false);
// Added in tor-browser#41496 even though false by default
pref("browser.crashReports.unsubmittedCheck.enabled", false);
// tor-browser#44026: Disable the modal that shows upstream terms of usage,
// since we opt out of their telemetry and data collection.
pref("browser.preonboarding.enabled", false);
// Disable checkbox in about:neterror that controls
// security.xfocsp.errorReporting.automatic. See tor-browser#42653.
pref("security.xfocsp.errorReporting.enabled", false);
// Added in tor-browser#41496 even though it shuld be already always disabled
// since we disable MOZ_CRASHREPORTER.
pref("breakpad.reportURL", "data:");
// tor-browser#43985: Disable captcha detector code that is just used upstream
// for identifying captchas with the purpose of sending telemetry about it.
pref("captchadetection.actor.enabled", false);
//@line 294 "$SRCDIR/browser/app/profile/001-base-profile.js"
// Disable sync by default
pref("identity.fxaccounts.enabled", false);
// Blank the sync URL as a defense in depth (added with tor-browser#41496)
pref("identity.sync.tokenserver.uri", "");
// Never sync with other browsers
pref("services.sync.engine.addons", false);
pref("services.sync.engine.addresses", false);
pref("services.sync.engine.bookmarks", false);
pref("services.sync.engine.creditcards", false);
pref("services.sync.engine.history", false);
pref("services.sync.engine.passwords", false);
pref("services.sync.engine.prefs", false);
pref("services.sync.engine.tabs", false);
pref("extensions.getAddons.cache.enabled", false); // https://blog.mozilla.org/addons/how-to-opt-out-of-add-on-metadata-updates/
pref("privacy.donottrackheader.enabled", false); // (mullvad-browser#17)
// Make sure there is no Tracking Protection active in Tor Browser, see: #17898.
pref("privacy.trackingprotection.enabled", false);
pref("privacy.trackingprotection.pbmode.enabled", false);
pref("privacy.trackingprotection.emailtracking.pbmode.enabled", false);
pref("privacy.trackingprotection.annotate_channels", false);
pref("privacy.trackingprotection.cryptomining.enabled", false);
pref("privacy.trackingprotection.fingerprinting.enabled", false);
pref("privacy.trackingprotection.socialtracking.enabled", false);
// Hide the Unified Trust Panel until we have new designs. tor-browser#44814.
pref("browser.urlbar.trustPanel.featureGate", false);
// tor-browser#43986: Explicitly disable bounce tracking protection
pref("privacy.bounceTrackingProtection.mode", 0);
pref("privacy.socialtracking.block_cookies.enabled", false);
pref("privacy.annotate_channels.strict_list.enabled", false);
// tor-browser#43178: for defense-in-depth, avoid remote overrides to FPP.
// Notice that it should not apply to RFP anyway...
pref("privacy.fingerprintingProtection.remoteOverrides.enabled", false);

// Disable Privacy-Preserving-Attribution (Bug #42687)
pref("dom.private-attribution.submission.enabled", false);

// Custom extensions preferences tor-browser#41581
pref("extensions.hideNoScript", true);
pref("extensions.hideUnifiedWhenEmpty", true);

// Disable activity stream in about:home (Bug #41029)
pref("browser.newtabpage.activity-stream.discoverystream.enabled", false);
pref("browser.newtabpage.activity-stream.feeds.section.topstories", false);
pref("browser.newtabpage.activity-stream.showSponsored", false);
pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false);
pref("browser.newtabpage.activity-stream.default.sites", "");
// Activity Stream telemetry
pref("browser.newtabpage.activity-stream.feeds.telemetry", false);
pref("browser.newtabpage.activity-stream.telemetry", false);

// tor-browser#40788: disable AS's calls to home.
// Notice that null is between quotes because it is a JSON string.
// Keep checked firefox.js to see if new entries are added.
pref("browser.newtabpage.activity-stream.asrouter.providers.cfr", "null");
pref("browser.newtabpage.activity-stream.asrouter.providers.message-groups", "null");
pref("browser.newtabpage.activity-stream.asrouter.providers.messaging-experiments", "null");

// Disable fetching asrouter.ftl and related console errors (tor-browser#40763).
pref("browser.newtabpage.activity-stream.asrouter.useRemoteL10n", false);

// tor-browser#42054: make sure search result telemetry is disabled.
pref("browser.search.serpEventTelemetryCategorization.enabled", false);



// ML components that we want to hide from the user. See tor-browser#44045.
// Many of these preferences are locked because the component is entirely
// removed, so they could not be functionally enabled.

// tor-browser#42872, #42555, #44045: Disable ML translations.
// Maybe re-enable after auditing and fixing the UX (tor-browser#41837).
// NOTE: whilst the "translations" component is still included in the build, we
// lock the preference because the engine is excluded and the
// "translations-models" RemoteSettings needed for the engine is empty.
pref("browser.translations.enable", false, locked);
// Hide some AI settings outside the "ai" setting pane. See tor-browser#44764.
// NOTE: This preference tracks whether the *user* opted out of all AI features
// in about:preferences. By itself, it does not provide global blocking of the
// AI features, which are often controlled by separate preferences below.
// However, some parts of the UI will react to this preference. See
// tor-browser#44541.
pref("browser.ai.control.default", "blocked", locked);
// Disables many (but not all) ML engines. Note, this does not have overall
// control over exposure to ML features. tor-browser#44045.
pref("browser.ml.enable", false, locked);
// Disable third party AI chatbot. tor-browser#43989.
pref("browser.ml.chat.enabled", false, locked);
// Disable LinkPreview. tor-browser#44045 and tor-browser#43867.
pref("browser.ml.linkPreview.enabled", false, locked);
// Disable Smart Tab Groups. tor-browser#44045.
pref("browser.tabs.groups.smart.enabled", false, locked);
pref("browser.tabs.groups.smart.userEnabled", false, locked);
// Don't expose ModelHub API for extensions. tor-browser#44045.
pref("extensions.ml.enabled", false, locked);
// Don't enable ML generated alt text. tor-browser#44045.
// pdfjs.enableAltText controls whether MLManager is created,
// pdfjs.enableGuessAltText controls whether the MLManager can create an ML
// engine. pdfs.enableAltText controls whether the latter preference can be
// changed by the user in the UI, but also has the side effect of hiding the
// UI controls for the non-ML preference pdfjs.enableNewAltTextWhenAddingImage.
// See bugzilla bug 1943456 comment 12.
pref("pdfjs.enableAltText", false, locked);
pref("pdfjs.enableAltTextForEnglish", false, locked);
pref("pdfjs.enableGuessAltText", false, locked);
pref("pdfjs.enableAltTextModelDownload", false, locked);
// Disable SuggestBackendMl. tor-browser#44045.
pref("browser.urlbar.quicksuggest.mlEnabled", false, locked);
// Disable SemanticHistory search. tor-browser#44045.
pref("places.semanticHistory.featureGate", false, locked);
// tor-browser#45120: Disable AIWindow
pref("browser.smartwindow.enabled", false);


// tor-browser#41945 - disable automatic cookie banners dismissal until
// we're sure it does not causes fingerprinting risks or other issues.
pref("cookiebanners.service.mode", 0);
pref("cookiebanners.service.mode.privateBrowsing", 0);
pref("cookiebanners.ui.desktop.enabled", false);

// Disable moreFromMozilla pane in the preferences/settings (tor-browser#41292).
pref("browser.preferences.moreFromMozilla", false);

// Disable webcompat reporter
pref("extensions.webcompat-reporter.enabled", false);

// Disable Content Analysis SDK (tor-browser#42364)
pref("browser.contentanalysis.enabled", false);
pref("browser.contentanalysis.default_result", 0);

// Disable contentRelevancy component (which itself is gated on Nimbus) (tor-browser#42867)
pref("toolkit.contentRelevancy.enabled", false);
pref("toolkit.contentRelevancy.ingestEnabled", false);
pref("toolkit.contentRelevancy.log", false);

pref("browser.search.region", "US"); // Disable GeoIP search lookups (#16254)
// Disable use of WiFi location information
pref("browser.region.network.scan", false);
pref("browser.region.network.url", "");
pref("browser.region.local-geocoding", false);
// Bug 40083: Make sure Region.sys.mjs fetching is disabled
pref("browser.region.update.enabled", false);

// Don't load Mozilla domains in a separate privileged tab process
pref("browser.tabs.remote.separatePrivilegedMozillaWebContentProcess", false);
pref("browser.tabs.remote.separatedMozillaDomains", "");

// Avoid DNS lookups on search terms
pref("browser.urlbar.dnsResolveSingleWordsAfterSearch", 0);

// Disable about:newtab and "first run" experiments
pref("messaging-system.rsexperimentloader.enabled", false);
// true means that you are *not* opting out. See its usage in various file.
pref("app.shield.optoutstudies.enabled", false);
// Disable nimbus rollouts.
// See bugzilla bug 2003350. See tor-browser#44520.
pref("nimbus.rollouts.enabled", false);
// Disable Normandy/Shield
pref("app.normandy.enabled", false);
pref("app.normandy.api_url", "");

// [SETTING] General>Browsing>Recommend extensions as you browse (Bug #40700)
pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false); // disable CFR [FF67+]

// [SETTING] General>Browsing>Recommend features as you browse (Bug #40700)
pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false); // disable CFR [FF67+]

// Clear the list of trusted recursive resolver services
pref("network.trr.default_provider_uri", "");

// Disable the /etc/hosts parser
// If true, entries from /etc/hosts will be excluded **from TRR results**.
// Vice-versa, if it is false, TRR will override any /etc/hosts customization.
pref("network.trr.exclude-etc-hosts", false);

// Disable crlite
pref("security.remote_settings.crlite_filters.enabled", false);
pref("security.pki.crlite_mode", 0);

// Disable website password breach alerts
pref("signon.management.page.breach-alerts.enabled", false);
// tor-browser#42814: Opt out from Firefox relay by default.
// Firefox would normally assign disabled when a user has been presented the
// opportunity to use the service and opted out (see firefox.js).
pref("signon.firefoxRelay.feature", "disabled");

// Disable remote "password recipes". They are a way to improve the UX of the
// password manager by havinc specific heuristics for some sites.
// It needs remote settings and in general we disable the password manager.
// More information about this feature at
// https://bugzilla.mozilla.org/show_bug.cgi?id=1119454
pref("signon.recipes.remoteRecipes.enabled", false);

// Disable ServiceWorkers by default. They do not work in PBM in any case.
// See https://bugzilla.mozilla.org/show_bug.cgi?id=1320796
pref("dom.serviceWorkers.enabled", false);
// Push notifications use an online Mozilla service and a persistent ID stored
// in dom.push.userAgentID, so disable them by default.
// See also https://support.mozilla.org/kb/push-notifications-firefox
pref("dom.push.enabled", false);
// As a defense in depth measure, also set the push server URL to empty.
// See tor-browser#18801.
pref("dom.push.serverURL", "");

// tor-browser#45072: Disable XSLT even before Mozilla does it for Firefox.
pref("dom.xslt.enabled", false);

// Fingerprinting
// tor-browser#41797: For release builds, lock RFP
// tor-browser#42125: Set (and lock in release) also exempted domains.
//@line 512 "$SRCDIR/browser/app/profile/001-base-profile.js"
pref("privacy.resistFingerprinting", true);
pref("privacy.resistFingerprinting.exemptedDomains", "");
//@line 515 "$SRCDIR/browser/app/profile/001-base-profile.js"
// tor-browser#43904: Enable this so we skip the blank window if user is resisting fingerprinting.
pref("privacy.resistFingerprinting.skipEarlyBlankFirstPaint", true);
// tor-browser#18603: failIfMajorPerformanceCaveat is an optional attribute that
// can be used when creating a WebGL context if the browser detects that the
// performance would be low. That could be used to fingerpting users with a not
// good graphics card, so disable it (actually, defense in depth, it is already
// disabled by default from Firefox).
pref("webgl.disable-fail-if-major-performance-caveat", true);
// tor-browser#16404: disable until we investigate it further (#22333)
pref("webgl.enable-webgl2", false);
// tor-browser#44763: disable WebGPU until audited.
pref("dom.webgpu.enabled", false);
pref("browser.link.open_newwindow.restriction", 0); // Bug 9881: Open popups in new tabs (to avoid fullscreen popups)
// tor-browser#42767: Disable offscreen canvas until verified it is not fingerprintable
pref("gfx.offscreencanvas.enabled", false);
// Prevent scripts from moving and resizing open windows
pref("dom.disable_window_move_resize", true);
// Set video VP9 to 0 for everyone (bug 22548)
pref("media.benchmark.vp9.threshold", 0);
// tor-browser#43950: Disable HEVC, as it will reveal lacking hardware support,
// or differences in installed codec for Linux systems.
pref("media.hevc.enabled", false);
pref("privacy.resistFingerprinting.block_mozAddonManager", true); // Bug 26114
pref("dom.webmidi.enabled", false); // Bug 41398: Disable Web MIDI API
// tor-browser#42043: Stop reporting device IDs (and spoof their number without
// RFP, RFP already reports 1 audioinput and 1 videoinput, but still has
// randomized IDs when this pref is true).
// Defense-in-depth (already the default value) from Firefox 119 or 120.
pref("media.devices.enumerate.legacy.enabled", false);
//@line 545 "$SRCDIR/browser/app/profile/001-base-profile.js"
// tor-browser#43769,42010,42138: Disable overscroll UX.
// Firefox has an overscroll effect that appears only when using a touch screen
// or a touchpad. So, theoretically it is a behavior difference also for desktop
// users.
// However, we could not find a way to actually measure this effect.
// Still, the UX impact on disabling this animation is minimal, therefore we do
// it just in case there is an actual way to measure it.
pref("apz.overscroll.enabled", false);
//@line 554 "$SRCDIR/browser/app/profile/001-base-profile.js"
pref("dom.vr.enabled", false); // Bug 21607: Disable WebVR for now
pref("security.webauth.webauthn", false); // Bug 26614: Disable Web Authentication API for now
// Disable SAB, no matter if the sites are cross-origin isolated.
pref("dom.postMessage.sharedArrayBuffer.withCOOP_COEP", false);
// Disable intermediate preloading (Bug 30682)
pref("security.remote_settings.intermediates.enabled", false);
// Bug 2874: Block Components.interfaces from content
pref("dom.use_components_shim", false);
// Enable letterboxing
pref("privacy.resistFingerprinting.letterboxing", true);
// tor-browser#41917: Center letterboxed area vertically
pref("privacy.resistFingerprinting.letterboxing.vcenter", true);
// tor-browser#41917: Letterboxing gradient background
pref("privacy.resistFingerprinting.letterboxing.gradient", true);
// tor-browser#41918: Should we reuse last window sizes if letterboxing is enabled
pref("privacy.resistFingerprinting.letterboxing.rememberSize", false);
// tor-browser#41695: How many warnings we show if user closes them without restoring the window size
pref("privacy.resistFingerprinting.resizeWarnings", 3);
// tor-browser#43402: Avoid a resize from the skeleton to the newwin size.
// Should be fixed in ESR-140 with Bug 1448423.
pref("browser.startup.blankWindow", false);
// Enforce Network Information API as disabled
pref("dom.netinfo.enabled", false);
pref("network.http.referer.defaultPolicy", 2); // Bug 32948: Make referer behavior consistent regardless of private browing mode status
pref("network.http.referer.defaultPolicy.pbmode", 2);
pref("network.http.referer.XOriginTrimmingPolicy", 2); // Bug 17228: Force trim referer to scheme+host+port in cross-origin requests
// Bug 40463: Disable Windows SSO
pref("network.http.windows-sso.enabled", false, locked);
// Bug 43165: Disable Microsoft SSO on macOS
pref("network.http.microsoft-entra-sso.enabled", false);
pref("network.microsoft-sso-authority-list", "");
// tor-browser#40424
pref("pdfjs.enableScripting", false);
// tor-browser#43850. Keep forced colors off by default for all platforms.
// Upstream sets a value of "0" for Windows.
pref("browser.display.document_color_use", 1);
// tor-browser#43366: do not use system accent color in inputs.
// See also https://bugzilla.mozilla.org/show_bug.cgi?id=1861362.
pref("widget.non-native-theme.use-theme-accent", false);
// tor-browser#43236: Disable vsync on Wayland to prevent refresh rate leaks.
pref("widget.wayland.vsync.enabled", false);
// tor-browser#44571: Disable HTML rating attribute for filtering web content.
// This could potentially be used as a fingerprinting vector based on if content
// marked with a specific rating is loaded or not.
pref("security.restrict_to_adults.always", false);
pref("security.restrict_to_adults.respect_platform", false);
// tor-browser#44521: Disable Wayland fractional scaling at least until we keep
// Xwayland as the default.
pref("widget.wayland.fractional-scale.enabled", false);

// tor-browser#41943: defense-in-depth, but do not lock anymore (enabled in Firefox 119, http://bugzil.la/1851162)
pref("javascript.options.spectre.disable_for_isolated_content", false);

// Third party stuff
pref("privacy.firstparty.isolate", true); // Always enforce first party isolation
// Only accept cookies from the originating site (block third party cookies)
pref("network.cookie.cookieBehavior", 1);
pref("network.cookie.cookieBehavior.pbmode", 1);
pref("network.predictor.enabled", false); // Temporarily disabled. See https://bugs.torproject.org/16633
pref("network.predictor.enable-prefetch", false);
pref("network.http.speculative-parallel-limit", 0);
pref("browser.places.speculativeConnect.enabled", false);
pref("network.prefetch-next", false);
pref("browser.urlbar.speculativeConnect.enabled", false);
// Bug 40220: Make sure tracker cookie purging is disabled.
// It depends on Firefox's tracking protection, which we currently do not enable
// See also tor-browser#30939.
pref("privacy.purge_trackers.enabled", false);
// Do not allow cross-origin sub-resources to open HTTP authentication
// credentials dialogs. Hardens against potential credentials phishing.
pref("network.auth.subresource-http-auth-allow", 1);

// tor-browser#42684: Disable network prefetch
pref("network.dns.disablePrefetch", true);
pref("network.dns.disablePrefetchFromHTTPS", true);
pref("dom.prefetch_dns_for_anchor_http_document", false);
pref("dom.prefetch_dns_for_anchor_https_document", false);

pref("network.protocol-handler.external-default", false);
pref("network.protocol-handler.external.mailto", false);
pref("network.protocol-handler.external.news", false);
pref("network.protocol-handler.external.nntp", false);
pref("network.protocol-handler.external.snews", false);
pref("network.protocol-handler.warn-external.mailto", true);
pref("network.protocol-handler.warn-external.news", true);
pref("network.protocol-handler.warn-external.nntp", true);
pref("network.protocol-handler.warn-external.snews", true);
//@line 645 "$SRCDIR/browser/app/profile/001-base-profile.js"
pref("network.proxy.allow_bypass", false, locked); // #40682
// Bug 40548: Disable proxy-bypass
pref("network.proxy.failover_direct", false, locked);
// Lock to 'true', which is already the firefox default, to prevent users
// from making themselves fingerprintable by disabling. This pref
// alters content load order in a page. See tor-browser#24686
pref("network.http.tailing.enabled", true, locked);

// Block 0.0.0.0
// https://bugzilla.mozilla.org/show_bug.cgi?id=1889130
// tor-browser#43811
pref("network.socket.ip_addr_any.disabled", true);

// tor-browser#23044: Make sure we don't have any GIO supported protocols
// (defense in depth measure).
// As of Firefox 118 (Bug 1843763), upstream does not add any protocol by
// default, but setting it to blank seems a good idea (tor-browser#42054).
pref("network.gio.supported-protocols", "");
pref("media.peerconnection.enabled", false); // Disable WebRTC interfaces
// Mullvad Browser enables WebRTC by default, meaning that there the following prefs
// are first-line defense, rather than "in depth" (mullvad-browser#40)
// tor-browser#41667 - Defense in depth: use mDNS to avoid local IP leaks on Android too if user enables WebRTC
pref("media.peerconnection.ice.obfuscate_host_addresses", true);
// tor-browser#41671 - Defense in depth: connect using TURN only, to avoid IP leaks if user enables WebRTC
pref("media.peerconnection.ice.relay_only", true);
// tor-browser#42029 - Defense-in-depth: disable non-proxied UDP WebRTC
pref("media.peerconnection.ice.default_address_only", true);
pref("media.peerconnection.ice.no_host", true);
pref("media.peerconnection.ice.proxy_only_if_behind_proxy", true);

// Disables media devices but only if `media.peerconnection.enabled` is set to
// `false` as well. (see bug 16328 for this defense-in-depth measure)
pref("media.navigator.enabled", false);
// GMPs (Gecko Media Plugins, https://wiki.mozilla.org/GeckoMediaPlugins)
// We make sure they don't show up on the Add-on panel and confuse users.
// And the external update/donwload server must not get pinged. We apply a
// clever solution for https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=769716.
// See tor-browser#15910.
pref("media.gmp-provider.enabled", false);
pref("media.gmp-manager.url.override", "data:text/plain,");
// Since ESR52 it is not enough anymore to block pinging the GMP update/download
// server. There is a local fallback that must be blocked now as well. See:
// https://bugzilla.mozilla.org/show_bug.cgi?id=1267495.
pref("media.gmp-manager.updateEnabled", false);
// Mozilla is relying on preferences to make sure no DRM blob is downloaded and
// run. Even though those prefs should be set correctly by specifying
// --disable-eme (which we do), we disable all of them here as well for defense
// in depth (see bug 16285 for more details).
pref("browser.eme.ui.enabled", false);
pref("media.gmp-widevinecdm.visible", false);
pref("media.gmp-widevinecdm.enabled", false);
pref("media.eme.enabled", false);
pref("media.mediadrm-widevinecdm.visible", false);
// The in-browser debugger for debugging chrome code is not coping with our
// restrictive DNS look-up policy. We use "127.0.0.1" instead of "localhost" as
// a workaround. See bug 16523 for more details.
pref("devtools.debugger.chrome-debugging-host", "127.0.0.1");
// Disable using UNC paths (bug 26424 and Mozilla's bug 1413868)
pref("network.file.disable_unc_paths", true);
// Enhance our treatment of file:// to avoid proxy bypasses (see Mozilla's bug
// 1412081 and CVE-2017-16541)
pref("network.file.path_blacklist", "/net");

// Security slider
pref("svg.disabled", false);
pref("mathml.disabled", false);

// Bug 40408
pref("svg.context-properties.content.allowed-domains", "");

// Network and performance
pref("security.ssl.enable_false_start", true);
// tor-browser#18945
pref("network.manage-offline-status", false);
// No need to leak things to Mozilla, see bug 21790 and tor-browser#40322
pref("network.captive-portal-service.enabled", false);
pref("network.connectivity-service.enabled", false);
pref("captivedetect.canonicalURL", "");

//@line 731 "$SRCDIR/browser/app/profile/001-base-profile.js"

// Extension support
pref("extensions.autoDisableScopes", 0);
// Only load extensions from the application and user profile.
// Do not load from the user directory (AddonManager.SCOPE_USER=2, which is
// shared between profiles, e.g., %appdata%\Mozilla\Extensions\ on Windows, or
// ~/.mozilla/extensions on Linux for Firefox), and do not load from system
// directories/the Windows registry (AddonManager.SCOPE_SYSTEM=8).
// More information: https://archive.ph/DYjAM
pref("extensions.enabledScopes", 5); // AddonManager.SCOPE_PROFILE=1 | AddonManager.SCOPE_APPLICATION=4
// We don't know what extensions Mozilla is advertising to our users and we
// don't want to have some random Google Analytics script running either on the
// about:addons page, see bug 22073, 22900 and 31601.
pref("extensions.getAddons.showPane", false);
pref("extensions.htmlaboutaddons.recommendations.enabled", false);
// Disable personalized Extension Recommendations in about:addons and
// addons.mozilla.org
pref("browser.discovery.enabled", false);
// tor-browser#26114: Allow NoScript to work on addons.mozilla.org and other Mozilla sites.
// Revisited and confirmed in tor-browser#41445.
pref("extensions.webextensions.restrictedDomains", "");
// Don't give Mozilla-recommended third-party extensions special privileges.
pref("extensions.postDownloadThirdPartyPrompt", false);
// tor-browser#41701: Reporting an extension does not work. The request goes to
// Mozilla and is always rejected anyway (HTTP 400).
pref("extensions.abuseReport.enabled", false);
// We are already providing the languages we support in multi-lingual packages.
// Therefore, do not allow download of additional language packs. They are not a
// privacy/security threat, we are disabling them for UX reasons. See bug 41377.
pref("intl.multilingual.downloadEnabled", false);

// Enforce certificate pinning, see: https://bugs.torproject.org/16206
pref("security.cert_pinning.enforcement_level", 2);

// Don't load OS client certs.
pref("security.osclientcerts.autoload", false);

// Don't allow MitM via enterprise roots, see bug 30681
pref("security.enterprise_roots.enabled", false);

// Don't ping Mozilla for MitM detection, see bug 32321
pref("security.certerrors.mitm.priming.enabled", false);

// Don't automatically enable enterprise roots, see bug 40166
pref("security.certerrors.mitm.auto_enable_enterprise_roots", false);

// Disable share menus on Mac and Windows tor-browser#41117
pref("browser.menu.share_url.allow", false, locked);


// tor-browser#41884: Do not start a search when clicking on the new tab button
// with the middle mouse button (to prevent searching for anything you might
// have selected or already in your clipboard).
pref("browser.tabs.searchclipboardfor.middleclick", false);

// tor-browser#41417: do not allow live reload until we switch to Fluent and
// stop using .textContent.
// Even after that, it might be a good idea to keep it off, as it is not handled
// very well, and it might give a window during which websites could fingerprint
// the change (see tor-browser#42349 and tor-browser#42771).
pref("intl.multilingual.liveReload", false);

// Enable URL query stripping to protect against cross-site tracking (tor-browser#41092)
pref("privacy.query_stripping.enabled", true);
pref("privacy.query_stripping.enabled.pbmode", true);
pref("privacy.query_stripping.strip_on_share.enabled", true);

// Ensure global privacy control headers are consistent in private browsing and
// non-private browsing (tor-browser#42777).
pref("privacy.globalprivacycontrol.enabled", true);
pref("privacy.globalprivacycontrol.pbmode.enabled", true);

// Disable platform text recognition functionality (tor-browser#42057)
pref("dom.text-recognition.enabled", false);

// tor-browser#45243: Disable taskbar tabs, as they need more polish from us.
pref("browser.taskbarTabs.enabled", false);

//@line 826 "$SRCDIR/browser/app/profile/001-base-profile.js"

//@line 832 "$SRCDIR/browser/app/profile/001-base-profile.js"

// If we are bundling fonts, whitelist those bundled fonts, and restrict system fonts to a selection.

//@line 836 "$SRCDIR/browser/app/profile/001-base-profile.js"

// Bug 40342: Always use bundled fonts
pref("gfx.bundled-fonts.activate", 1);

//@line 841 "$SRCDIR/browser/app/profile/001-base-profile.js"
pref("font.system.whitelist", "AppleGothic, Apple Color Emoji, Arial, Arial Black, Arial Narrow, Courier, Courier New, Geneva, Georgia, Heiti TC, Helvetica, Helvetica Neue, Hiragino Kaku Gothic ProN, Kailasa, Lucida Grande, Menlo, Monaco, PingFang HK, PingFang SC, PingFang TC, Songti SC, Songti TC, Tahoma, Thonburi, Times, Times New Roman, Verdana, STIX Two Math, Noto Sans Adlam, Noto Sans Armenian, Noto Sans Balinese, Noto Sans Bamum, Noto Sans Bassa Vah, Noto Sans Batak, Noto Sans Bengali, Noto Sans Buginese, Noto Sans Buhid, Noto Sans Canadian Aboriginal, Noto Sans Chakma, Noto Sans Cham, Noto Sans Cherokee, Noto Sans Coptic, Noto Sans Deseret, Noto Sans Devanagari, Noto Sans Elbasan, Noto Sans Ethiopic, Noto Sans Georgian, Noto Sans Grantha, Noto Sans Gujarati, Noto Sans Gunjala Gondi, Noto Sans Gurmukhi, Noto Sans Hanifi Rohingya, Noto Sans Hanunoo, Noto Sans Hebrew, Noto Sans Kannada, Noto Sans Khmer, Noto Sans Javanese, Noto Sans Kayah Li, Noto Sans Khojki, Noto Sans Khudawadi, Noto Sans Lao, Noto Sans Lepcha, Noto Sans Limbu, Noto Sans Lisu, Noto Sans Mahajani, Noto Sans Malayalam, Noto Sans Mandaic, Noto Sans Masaram Gondi, Noto Sans Medefaidrin, Noto Sans Meetei Mayek, Noto Sans Mende Kikakui, Noto Sans Miao, Noto Sans Modi, Noto Sans Mongolian, Noto Sans Mro, Noto Sans Multani, Noto Sans Newa, Noto Sans New Tai Lue, Noto Sans NKo, Noto Sans Ol Chiki, Noto Sans Oriya, Noto Sans Osage, Noto Sans Osmanya, Noto Sans Pahawh Hmong, Noto Sans Pau Cin Hau, Noto Sans Rejang, Noto Sans Runic, Noto Sans Samaritan, Noto Sans Saurashtra, Noto Sans Sharada, Noto Sans Shavian, Noto Sans Sinhala, Noto Sans Sora Sompeng, Noto Sans Soyombo, Noto Sans Sundanese, Noto Sans Syloti Nagri, Noto Sans Symbols 2, Noto Sans Symbols, Noto Sans Syriac, Noto Sans Tagalog, Noto Sans Tagbanwa, Noto Sans Tai Le, Noto Sans Tai Tham, Noto Sans Tai Viet, Noto Sans Takri, Noto Sans Tamil, Noto Sans Telugu, Noto Sans Thaana, Noto Sans Tifinagh Adrar, Noto Sans Tifinagh Agraw Imazighen, Noto Sans Tifinagh Ahaggar, Noto Sans Tifinagh Air, Noto Sans Tifinagh APT, Noto Sans Tifinagh Azawagh, Noto Sans Tifinagh Ghat, Noto Sans Tifinagh Hawad, Noto Sans Tifinagh, Noto Sans Tifinagh Rhissa Ixa, Noto Sans Tifinagh SIL, Noto Sans Tifinagh Tawellemmet, Noto Sans Tirhuta, Noto Sans Vai, Noto Sans Wancho, Noto Sans Warang Citi, Noto Sans Yi, Noto Sans Zanabazar Square, Noto Serif Armenian, Noto Serif Balinese, Noto Serif Bengali, Noto Serif Devanagari, Noto Serif Dogra, Noto Serif Ethiopic, Noto Serif Georgian, Noto Serif Grantha, Noto Serif Gujarati, Noto Serif Gurmukhi, Noto Serif Hebrew, Noto Serif Kannada, Noto Serif Khmer, Noto Serif Khojki, Noto Serif Lao, Noto Serif Malayalam, Noto Serif Myanmar, Noto Serif NP Hmong, Noto Serif Sinhala, Noto Serif Tamil, Noto Serif Telugu, Noto Serif Tibetan, Noto Serif Yezidi, Pyidaungsu");

// Armenian
pref("font.name-list.serif.x-armn", "Noto Serif Armenian, Times, Times New Roman");
pref("font.name-list.sans-serif.x-armn", "Noto Sans Armenian, Helvetica, Arial");
pref("font.name-list.monospace.x-armn", "Noto Sans Armenian, Menlo, Courier New");
// Bengali
pref("font.name-list.serif.x-beng", "Noto Serif Bengali, Times, Times New Roman");
pref("font.name-list.sans-serif.x-beng", "Noto Sans Bengali, Helvetica, Arial");
pref("font.name-list.monospace.x-beng", "Noto Sans Bengali, Menlo, Courier New");
// Canadian Aboriginal
pref("font.name-list.serif.x-cans", "Noto Serif Canadian Aboriginal, Times, Times New Roman");
pref("font.name-list.sans-serif.x-cans", "Noto Sans Canadian Aboriginal, Helvetica, Arial");
pref("font.name-list.monospace.x-cans", "Noto Sans Canadian Aboriginal, Menlo, Courier New");
// ChineseCN
pref("font.name-list.serif.zh-CN", "Songti SC, Times, Times New Roman");
pref("font.name-list.sans-serif.zh-CN", "PingFang SC, Helvetica, Arial");
pref("font.name-list.monospace.zh-CN", "PingFang SC, Menlo, Courier New");
// ChineseHK
pref("font.name-list.serif.zh-HK", "Songti TC, Times, Times New Roman");
pref("font.name-list.sans-serif.zh-HK", "PingFang HK, Helvetica, Arial");
pref("font.name-list.monospace.zh-HK", "PingFang HK, Menlo, Courier New");
// ChineseTW
pref("font.name-list.serif.zh-TW", "Songti TC, Times, Times New Roman");
pref("font.name-list.sans-serif.zh-TW", "PingFang TC, Helvetica, Arial");
pref("font.name-list.monospace.zh-TW", "PingFang TC, Menlo, Courier New");
// Devanagari
pref("font.name-list.serif.x-devanagari", "Noto Serif Devanagari, Times, Times New Roman");
pref("font.name-list.sans-serif.x-devanagari", "Noto Sans Devanagari, Helvetica, Arial");
pref("font.name-list.monospace.x-devanagari", "Noto Sans Devanagari, Menlo, Courier New");
// Ethiopic
pref("font.name-list.serif.x-ethi", "Noto Serif Ethiopic, Times, Times New Roman");
pref("font.name-list.sans-serif.x-ethi", "Noto Sans Ethiopic, Helvetica, Arial");
pref("font.name-list.monospace.x-ethi", "Noto Sans Ethiopic, Menlo, Courier New");
// Georgian
pref("font.name-list.serif.x-geor", "Noto Serif Georgian, Times, Times New Roman");
pref("font.name-list.sans-serif.x-geor", "Noto Sans Georgian, Helvetica, Arial");
pref("font.name-list.monospace.x-geor", "Noto Sans Georgian, Menlo, Courier New");
// Gujarati
pref("font.name-list.serif.x-gujr", "Noto Serif Gujarati, Times, Times New Roman");
pref("font.name-list.sans-serif.x-gujr", "Noto Sans Gujarati, Helvetica, Arial");
pref("font.name-list.monospace.x-gujr", "Noto Sans Gujarati, Menlo, Courier New");
// Gurmukhi
pref("font.name-list.serif.x-guru", "Noto Serif Gurmukhi, Times, Times New Roman");
pref("font.name-list.sans-serif.x-guru", "Noto Sans Gurmukhi, Helvetica, Arial");
pref("font.name-list.monospace.x-guru", "Noto Sans Gurmukhi, Menlo, Courier New");
// Hebrew
pref("font.name-list.serif.he", "Noto Serif Hebrew, Times, Times New Roman");
pref("font.name-list.sans-serif.he", "Noto Sans Hebrew, Helvetica, Arial");
pref("font.name-list.monospace.he", "Noto Sans Hebrew, Menlo, Courier New");
// Kannada
pref("font.name-list.serif.x-knda", "Noto Serif Kannada, Times, Times New Roman");
pref("font.name-list.sans-serif.x-knda", "Noto Sans Kannada, Helvetica, Arial");
pref("font.name-list.monospace.x-knda", "Noto Sans Kannada, Menlo, Courier New");
// Khmer
pref("font.name-list.serif.x-khmr", "Noto Serif Khmer, Times, Times New Roman");
pref("font.name-list.sans-serif.x-khmr", "Noto Sans Khmer, Helvetica, Arial");
pref("font.name-list.monospace.x-khmr", "Noto Sans Khmer, Menlo, Courier New");
// Malayalam
pref("font.name-list.serif.x-mlym", "Noto Serif Malayalam, Times, Times New Roman");
pref("font.name-list.sans-serif.x-mlym", "Noto Sans Malayalam, Helvetica, Arial");
pref("font.name-list.monospace.x-mlym", "Noto Sans Malayalam, Menlo, Courier New");
// Mathematics
pref("font.name-list.serif.x-math", "STIX Two Math, Times, Times New Roman");
pref("font.name-list.sans-serif.x-math", "STIX Two Math, Helvetica, Arial");
pref("font.name-list.monospace.x-math", "STIX Two Math, Menlo, Courier New");
// Oriya
pref("font.name-list.serif.x-orya", "Noto Sans Oriya, Times, Times New Roman");
pref("font.name-list.sans-serif.x-orya", "Noto Sans Oriya, Helvetica, Arial");
pref("font.name-list.monospace.x-orya", "Noto Sans Oriya, Menlo, Courier New");
// Sinhala
pref("font.name-list.serif.x-sinh", "Noto Serif Sinhala, Times, Times New Roman");
pref("font.name-list.sans-serif.x-sinh", "Noto Sans Sinhala, Helvetica, Arial");
pref("font.name-list.monospace.x-sinh", "Noto Sans Sinhala, Menlo, Courier New");
// Tamil
pref("font.name-list.serif.x-tamil", "Noto Serif Tamil, Times, Times New Roman");
pref("font.name-list.sans-serif.x-tamil", "Noto Sans Tamil, Helvetica, Arial");
pref("font.name-list.monospace.x-tamil", "Noto Sans Tamil, Menlo, Courier New");
// Telugu
pref("font.name-list.serif.x-telu", "Noto Serif Telugu, Times, Times New Roman");
pref("font.name-list.sans-serif.x-telu", "Noto Sans Telugu, Helvetica, Arial");
pref("font.name-list.monospace.x-telu", "Noto Sans Telugu, Menlo, Courier New");
// Tibetan
pref("font.name-list.serif.x-tibt", "Noto Serif Tibetan, Times, Times New Roman");
pref("font.name-list.sans-serif.x-tibt", "Noto Serif Tibetan, Helvetica, Arial");
pref("font.name-list.monospace.x-tibt", "Noto Serif Tibetan, Menlo, Courier New");
// Others (Balinese, Grantha, Khojki, Lao, Myanmar)
pref("font.name-list.serif.x-unicode", "Times, Times New Roman, Noto Serif Balinese, Noto Serif Grantha, Noto Serif Khojki, Noto Serif Lao, Noto Serif Myanmar");
pref("font.name-list.sans-serif.x-unicode", "Helvetica, Arial, Noto Sans Balinese, Noto Sans Grantha, Noto Sans Khojki, Noto Sans Lao, Pyidaungsu");
pref("font.name-list.monospace.x-unicode", "Menlo, Courier New, Noto Sans Balinese, Noto Sans Grantha, Noto Sans Khojki, Noto Sans Lao, Pyidaungsu");
// The rest are not customized, because they are covered only by one font
//@line 933 "$SRCDIR/browser/app/profile/001-base-profile.js"

//@line 1011 "$SRCDIR/browser/app/profile/001-base-profile.js"

//@line 1135 "$SRCDIR/browser/app/profile/001-base-profile.js"

// tor-browser#42630: Disable LaterRun.
//
// This preference is set in a few places in code. Even though it's locked,
// setting it will still change the value in `prefs.js`, but it will be ignored.
// If this is ever unlocked, the value in prefs.js will be used.
pref("browser.laterrun.enabled", false, locked);

// tor-browser#44123: Never trim the protocol off of URLs.
pref("browser.urlbar.trimURLs", false);

// tor-browser#45171: Disabled split view which is janky.
pref("browser.tabs.splitView.enabled", false);
//@line 2 "$SRCDIR/browser/app/profile/000-tor-browser.js"

pref("app.update.notifyDuringDownload", true);
pref("app.update.badgeWaitTime", 0);
// point to our feedback url rather than Mozilla's
pref("app.feedback.baseURL", "https://support.torproject.org/%LOCALE/get-in-touch/bug-or-feedback");

pref("browser.shell.checkDefaultBrowser", false);

// Proxy and proxy security
pref("network.proxy.socks", "127.0.0.1");
pref("network.proxy.socks_port", 9150);
pref("network.proxy.socks_remote_dns", true);
pref("network.proxy.no_proxies_on", ""); // For fingerprinting and local service vulns (#10419)
pref("network.proxy.allow_hijacking_localhost", true); // Allow proxies for localhost (#31065)
pref("network.proxy.type", 1);
// localhost is already blocked by setting `network.proxy.allow_hijacking_localhost` to
// true, allowing users to explicitly block ports makes them fingerprintable; for details, see
// Bug 41317: Tor Browser leaks banned ports in network.security.ports.banned
pref("network.security.ports.banned", "", locked);
pref("network.dns.disabled", true); // This should cover the #5741 patch for DNS leaks
pref("network.http.max-persistent-connections-per-proxy", 256);
// Disable DNS over HTTPS. Set to explicitly off MODE_TRROFF = 5.
// See tor-browser#41906.
pref("network.trr.mode", 5, locked);
// tor-browser#44155: Block Local Network Access (LNA)
pref("network.lna.enabled", true);
pref("network.lna.blocking", true);
pref("network.lna.block_trackers", true);

// Treat .onions as secure
pref("dom.securecontext.allowlist_onions", true);

// Disable HTTPS-Only mode for .onion domains (tor-browser#19850)
pref("dom.security.https_only_mode.upgrade_onion", false);

// Bug 40423/41137: Disable http/3
// We should re-enable it as soon as Tor gets UDP support
pref("network.http.http3.enable", false);

// 0 = do not use a second connection, see all.js and #7656
pref("network.http.connection-retry-timeout", 0);

// Tor Browser used to be compatible with non-Tor proxies. This feature is not
// available anymore, but this legacy preference can be still used to disable
// first-party domain circuit isolation.
// In general, it should not be used. This use-case is still supported only for
// sites that break with this isolation (and even in that case, its use should
// be reduced to the strictly required time).
pref("extensions.torbutton.use_nontor_proxy", false);

// Browser home page:
pref("browser.startup.homepage", "about:tor");

// General browser support url. tor-browser#43864 and tor-browser#40899.
pref("browser.base-browser-support-url", "https://support.torproject.org/tor-browser");

// tor-browser#40701: Add new download warning
pref("browser.download.showTorWarning", true);


// Tor connection setting preferences.

pref("torbrowser.settings.quickstart.enabled", false);
pref("torbrowser.settings.bridges.enabled", false);
// TorBridgeSource. Initially TorBridgeSource.Invalid = -1.
pref("torbrowser.settings.bridges.source", -1);
pref("torbrowser.settings.bridges.lox_id", "");
// obfs4|meek|snowflake|etc.
pref("torbrowser.settings.bridges.builtin_type", "");
// torbrowser.settings.bridges.bridge_strings.0
// torbrowser.settings.bridges.bridge_strings.1
// etc hold the bridge lines.
pref("torbrowser.settings.proxy.enabled", false);
// TorProxyType. Initially TorProxyType.Invalid = -1.
pref("torbrowser.settings.proxy.type", -1);
pref("torbrowser.settings.proxy.address", "");
pref("torbrowser.settings.proxy.port", 0);
pref("torbrowser.settings.proxy.username", "");
pref("torbrowser.settings.proxy.password", "");
pref("torbrowser.settings.firewall.enabled", false);
// comma-delimited list of port numbers.
pref("torbrowser.settings.firewall.allowed_ports", "");


// This pref specifies an ad-hoc "version" for various pref update hacks we need to do
pref("extensions.torbutton.pref_fixup_version", 0);

// Formerly tor-launcher defaults

pref("extensions.torlauncher.start_tor", true);
pref("extensions.torlauncher.prompt_at_startup", true);

pref("extensions.torlauncher.max_tor_log_entries", 1000);

// By default, Tor Launcher configures a TCP listener for the Tor
// control port, as defined by control_host and control_port.
// Set control_port_use_ipc to true to use an IPC object (e.g., a Unix
// domain socket) instead. You may also modify control_ipc_path to
// override the default IPC object location. If a relative path is used,
// it is handled like torrc_path (see below).
pref("extensions.torlauncher.control_host", "127.0.0.1");
pref("extensions.torlauncher.control_port", 9151);
pref("extensions.torlauncher.control_port_use_ipc", false);
pref("extensions.torlauncher.control_ipc_path", "");

// By default, Tor Launcher configures a TCP listener for the Tor
// SOCKS port. The host is taken from the network.proxy.socks pref and
// the port is taken from the network.proxy.socks_port pref.
// Set socks_port_use_ipc to true to use an IPC object (e.g., a Unix
// domain socket) instead. You may also modify socks_ipc_path to
// override the default IPC object location. If a relative path is used,
// it is handled like torrc_path (see below).
// Modify socks_port_flags to use a different set of SocksPort flags (but be
// careful).
pref("extensions.torlauncher.socks_port_use_ipc", false);
pref("extensions.torlauncher.socks_ipc_path", "");
pref("extensions.torlauncher.socks_port_flags", "ExtendedErrors IPv6Traffic PreferIPv6 KeepAliveIsolateSOCKSAuth");

// The tor_path is relative to the application directory. On Linux and
// Windows this is the Browser/ directory that contains the firefox
// executables, and on Mac OS it is the TorBrowser.app directory.
pref("extensions.torlauncher.tor_path", "");

// The torrc_path and tordatadir_path are relative to the data directory,
// which is TorBrowser-Data/ if it exists as a sibling of the application
// directory. If TorBrowser-Data/ does not exist, these paths are relative
// to the TorBrowser/ directory within the application directory.
pref("extensions.torlauncher.torrc_path", "");
pref("extensions.torlauncher.tordatadir_path", "");

// BridgeDB-related preferences (used for Moat).
pref("extensions.torlauncher.bridgedb_targets", "https://1723079976.rsc.cdn77.org|cdn.zk.mk+www.cdn77.com");
pref("extensions.torlauncher.moat_service", "https://bridges.torproject.org/moat");

// Log levels
pref("browser.new_identity.log_level", "Info");
pref("browser.tor_provider.log_level", "Warn");
pref("browser.tor_provider.cp_log_level", "Warn");
pref("lox.log_level", "Warn");
pref("torbrowser.bootstrap.log_level", "Info");
pref("browser.torsettings.log_level", "Warn");
pref("browser.torMoat.loglevel", "Warn");
pref("browser.tordomainisolator.loglevel", "Warn");
pref("browser.torcircuitpanel.loglevel", "Log");
pref("browser.tor_android.log_level", "Info");
pref("browser.dragdropfilter.log_level", "Warn");
pref("browser.onionAuthPrompt.loglevel", "Warn");
pref("browser.onionalias.log_level", "Warn");
pref("browser.torRequestWatch.log_level", "Warn");
