tor-browser

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

001-base-profile.js (67665B)


      1 // Preferences to harden Firefox's security and privacy
      2 // Do not edit this file.
      3 
      4 // Use the OS locale by default (tor-browser#17400)
      5 pref("intl.locale.requested", "");
      6 
      7 // Home page is blank rather than Firefox Home (Activity Stream).
      8 // tor-browser#31575 and tor-browser#30662
      9 pref("browser.startup.homepage", "about:blank");
     10 
     11 // tor-browser#43164: Prevent search-bar from being auto-hidden when not used for awhile
     12 // This preference is locked so that the browser itself can never set an actual
     13 // value that would trigger the migration.
     14 pref("browser.search.widget.lastUsed", "", locked);
     15 
     16 // Disable initial homepage notifications
     17 pref("browser.search.update", false);
     18 pref("startup.homepage_welcome_url", "");
     19 pref("startup.homepage_welcome_url.additional", "");
     20 
     21 // Disable Firefox Welcome Dialog
     22 pref("browser.aboutwelcome.enabled", false);
     23 
     24 #if MOZ_UPDATE_CHANNEL == release
     25 // tor-browser#42640: Disable Firefox Flame button due to unknown interactions with New Identity
     26 pref("browser.privatebrowsing.resetPBM.enabled", false, locked);
     27 #endif
     28 
     29 // Bug 41668: allow users to apply updates. This is set also in firefox.js for
     30 // all platforms, except for Windows. As explained on firefox.js, Firefox uses a
     31 // per-installation preference on Windows. However, we patch this behavior, and
     32 // we set this preference also for Windows.
     33 pref("app.update.auto", true);
     34 
     35 // Try to nag a bit more about updates: Pop up a restart dialog an hour after the initial dialog
     36 pref("app.update.promptWaitTime", 3600);
     37 
     38 #ifndef XP_MACOSX
     39 // Disable staged updates on platforms other than macOS.
     40 // Staged updates do not work on Windows due to #18292.
     41 // Also, on Windows and Linux any changes that are made to the browser profile
     42 // or Tor data after an update is staged will be lost.
     43 pref("app.update.staging.enabled", false);
     44 #endif
     45 
     46 pref("browser.startup.homepage_override.buildID", "20100101");
     47 
     48 // Disable the "Refresh" prompt that is displayed for stale profiles.
     49 pref("browser.disableResetPrompt", true);
     50 
     51 // Disk activity: Disable Browsing History Storage
     52 pref("browser.privatebrowsing.autostart", true);
     53 pref("browser.cache.disk.enable", false);
     54 pref("permissions.memory_only", true);
     55 pref("security.nocertdb", true);
     56 pref("media.aboutwebrtc.hist.enabled", false);
     57 
     58 // Disk Activity
     59 
     60 // Disable auto-downloading to ~/Downloads and other download tweaks to minimize
     61 // disk leaks (tor-browser#42050).
     62 pref("browser.download.useDownloadDir", false);
     63 pref("browser.download.always_ask_before_handling_new_types", true);
     64 pref("browser.download.manager.addToRecentDocs", false);
     65 pref("browser.download.start_downloads_in_tmp_dir", true);
     66 // tor-browser#42147: Always delete temporary files, also on macOS (this pref is
     67 // already true for other platforms).
     68 // Also, this always happens in PBM. If not in PBM, requires
     69 // browser.download.start_downloads_in_tmp_dir to be true too.
     70 pref("browser.helperApps.deleteTempFileOnExit", true);
     71 
     72 // Prevent download stuffing / DOS (tor-browser#41764)
     73 pref("browser.download.enable_spam_prevention", true);
     74 
     75 // tor-browser#41131: This is normally gated on
     76 // privacy.sanitize.sanitizeOnShutdown, which is false by default. But in case
     77 // users enable it, make sure background tasks are not used for this, since we
     78 // disable them as well (but at compile time).
     79 pref("network.cache.shutdown_purge_in_background_task", false);
     80 
     81 // Misc privacy: Disk
     82 pref("signon.rememberSignons", false);
     83 pref("browser.formfill.enable", false);
     84 pref("signon.formlessCapture.enabled", false); // Added with tor-browser#41496
     85 pref("signon.autofillForms", false);
     86 // NOTE: extensions.formautofill.available is a legacy preference that upstream
     87 // has not removed yet, and is only used for a migration to the newer
     88 // "*.supported" preferences. See bugzilla bug 1745248.
     89 pref("extensions.formautofill.available", "");
     90 // Suppress formautofill component. tor-browser#44460.
     91 // NOTE: With the "formautofill" built-in extension removed from Base Browser
     92 // builds, some of these preferences have almost no effect at the time of
     93 // implementation, but we include them in case they help with future-proofing.
     94 pref("extensions.formautofill.addresses.supported", "off");
     95 pref("extensions.formautofill.addresses.experiments.enabled", false);
     96 pref("extensions.formautofill.addresses.enabled", false);
     97 pref("extensions.formautofill.creditCards.supported", "off");
     98 pref("extensions.formautofill.creditCards.enabled", false);
     99 // Do not store extra data (form, scrollbar positions, cookies, POST data) for
    100 // the session restore functionality.
    101 pref("browser.sessionstore.privacy_level", 2);
    102 // Use the in-memory media cache and increase its maximum size (#29120)
    103 pref("browser.privatebrowsing.forceMediaMemoryCache", true);
    104 pref("media.memory_cache_max_size", 65536);
    105 // tor-browser#41065: lie about the available quota.
    106 // This value is in KiB, and will be divided by 5. Currently: 50GiB, to be
    107 // coherent with Firefox's usual value. However, this might be too much for live
    108 // systems.
    109 // This will be the limit also after granting the persistent storage permission,
    110 // but we are not interested in it, since we support only PBM.
    111 // We can come back to it, and hardcode the two spaced differently, if we ever
    112 // think we need it.
    113 pref("dom.quotaManager.temporaryStorage.fixedLimit", 52428800);
    114 // Disable restore in case of crash (tor-browser#41503)
    115 // This should not be needed in PBM, but we added it anyway like other options.
    116 pref("browser.sessionstore.resume_from_crash", false);
    117 // Disable capturing thumbnails (tor-browser#41595)
    118 // Also not needed in PBM at the moment.
    119 pref("browser.pagethumbnails.capturing_disabled", true);
    120 // tor-browser#41988: Remove page titles from window titles to prevent possible
    121 // disk leaks, e.g., in system logs.
    122 // For example, it happened that GNOME shell logged the window name that caused
    123 // JS errors/unexpected conditions for unrelated issues.
    124 // TODO: commented out for now because of UX concerns, to be reconsidered in 14.5
    125 // pref("privacy.exposeContentTitleInWindow", false);
    126 // pref("privacy.exposeContentTitleInWindow.pbm", false);
    127 
    128 // tor-browser#42054: Opt-out from any built-in backup system, even though
    129 // local, as it might be a violation of our standalone mode.
    130 // Users can still opt-in if they wish.
    131 pref("browser.backup.enabled", false);
    132 pref("browser.backup.scheduled.enabled", false);
    133 
    134 // Empty clipboard content from private windows on exit (tor-browser#42154)
    135 pref("browser.privatebrowsing.preserveClipboard", false);
    136 
    137 // tor-browser#42611: Do not include the URL of the image, when copying it.
    138 // Also, do not save clipboard in history/cloud.
    139 pref("clipboard.imageAsFile.enabled", false);
    140 pref("clipboard.copyPrivateDataToClipboardCloudOrHistory", false);
    141 
    142 // Enable HTTPS-Only mode (tor-browser#19850)
    143 pref("dom.security.https_only_mode", true);
    144 // The previous pref automatically sets this to true (see StaticPrefList.yaml),
    145 // but set it anyway only as a defense-in-depth.
    146 pref("dom.security.https_only_mode_pbm", true);
    147 // tor-browser#43197, defense in depth if ever https-only got disabled
    148 pref("dom.security.https_first_add_exception_on_failure", false);
    149 
    150 // tor-browser#22320: Hide referer when coming from a .onion address
    151 // We enable this here (rather than in Tor Browser) in case users of other
    152 // base-browser derived browsers configure it to use a system Tor daemon
    153 // to visit onion services.
    154 pref("network.http.referer.hideOnionSource", true);
    155 
    156 // Require Safe Negotiation ( https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/27719 )
    157 // Blocks connections to servers that don't support RFC 5746 [2] as they're potentially vulnerable to a
    158 // MiTM attack [3]. A server without RFC 5746 can be safe from the attack if it disables renegotiations
    159 // but the problem is that the browser can't know that. Setting this pref to true is the only way for the
    160 // browser to ensure there will be no unsafe renegotiations on the channel between the browser and the server
    161 // [STATS] SSL Labs (July 2021) reports over 99% of top sites have secure renegotiation [4]
    162 // [1] https://wiki.mozilla.org/Security:Renegotiation
    163 // [2] https://datatracker.ietf.org/doc/html/rfc5746
    164 // [3] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3555
    165 // [4] https://www.ssllabs.com/ssl-pulse/
    166 pref("security.ssl.require_safe_negotiation", true);
    167 
    168 // lock those disabled by https://bugzilla.mozilla.org/show_bug.cgi?id=1036765
    169 pref("security.ssl3.dhe_rsa_aes_128_sha", false, locked);
    170 pref("security.ssl3.dhe_rsa_aes_256_sha", false, locked);
    171 
    172 // Wrapping a static pref to lock it and prevent changing.
    173 // See tor-browser#40565.
    174 pref("security.tls.version.enable-deprecated", false, locked);
    175 
    176 // tor-browser#44187: Disable session identifiers to make PBM and normal mode
    177 // more similar.
    178 pref("security.ssl.disable_session_identifiers", true);
    179 
    180 // Misc privacy: Remote
    181 pref("browser.send_pings", false);
    182 // Space separated list of URLs that are allowed to send objects (instead of
    183 // only strings) through webchannels. The default for Firefox is some Mozilla
    184 // domains.
    185 pref("webchannel.allowObject.urlWhitelist", "");
    186 pref("geo.enabled", false);
    187 pref("geo.provider.network.url", "");
    188 pref("geo.provider.ms-windows-location", false);
    189 pref("geo.provider.use_corelocation", false);
    190 pref("geo.provider.use_gpsd", false);
    191 pref("geo.provider.use_geoclue", false);
    192 pref("browser.search.suggest.enabled", false);
    193 pref("browser.search.suggest.enabled.private", false);
    194 pref("browser.urlbar.suggest.searches", false);
    195 pref("browser.urlbar.suggest.quicksuggest.nonsponsored", false);
    196 pref("browser.urlbar.suggest.quicksuggest.sponsored", false);
    197 // tor-browser#41576: Do not suggest weather and addons.
    198 pref("browser.urlbar.suggest.addons", false);
    199 pref("browser.urlbar.addons.featureGate", false);
    200 pref("browser.urlbar.suggest.weather", false);
    201 pref("browser.urlbar.weather.featureGate", false);
    202 // tor-browser#42886: Disable trending results.
    203 pref("browser.urlbar.suggest.trending", false);
    204 pref("browser.urlbar.trending.featureGate", false);
    205 // tor-browser#42792: Explicitly turn off Pocket suggestions in the URL bar.
    206 pref("browser.urlbar.pocket.featureGate", false);
    207 // tor-browser#41691: Hide "Firefox Suggest" in the UI
    208 pref("browser.urlbar.groupLabels.enabled", false);
    209 pref("browser.safebrowsing.malware.enabled", false);
    210 pref("browser.safebrowsing.phishing.enabled", false);
    211 pref("browser.safebrowsing.downloads.enabled", false);
    212 pref("browser.safebrowsing.downloads.remote.enabled", false);
    213 pref("browser.safebrowsing.blockedURIs.enabled", false);
    214 pref("browser.safebrowsing.downloads.remote.url", "");
    215 pref("browser.safebrowsing.provider.google.updateURL", "");
    216 pref("browser.safebrowsing.provider.google.gethashURL", "");
    217 pref("browser.safebrowsing.provider.google4.updateURL", "");
    218 pref("browser.safebrowsing.provider.google4.gethashURL", "");
    219 pref("browser.safebrowsing.provider.mozilla.updateURL", "");
    220 pref("browser.safebrowsing.provider.mozilla.gethashURL", "");
    221 // tor-browser#42735: Disable recent search suggestions
    222 pref("browser.urlbar.recentsearches.featureGate", false);
    223 pref("browser.urlbar.suggest.recentsearches", false);
    224 
    225 // tor-browser#44262: Disable adding search engines from HTML forms
    226 pref("browser.urlbar.update2.engineAliasRefresh", false);
    227 
    228 // Disable the UITour API
    229 // See tor-browser#41457 and
    230 // https://bugzilla.mozilla.org/show_bug.cgi?id=1915280
    231 pref("browser.uitour.enabled", false);
    232 
    233 // Make sure Unified Telemetry is really disabled, see: #18738.
    234 pref("toolkit.telemetry.unified", false);
    235 // This needs to be locked, or nightly builds will automatically lock it to true
    236 pref("toolkit.telemetry.enabled", false, locked);
    237 pref("toolkit.telemetry.server", "data:,");
    238 pref("toolkit.telemetry.archive.enabled", false);
    239 pref("toolkit.telemetry.newProfilePing.enabled", false); // Added in tor-browser#41496
    240 pref("toolkit.telemetry.shutdownPingSender.enabled", false); // Added in tor-browser#41496
    241 pref("toolkit.telemetry.firstShutdownPing.enabled", false); // Added in tor-browser#41496
    242 pref("toolkit.telemetry.updatePing.enabled", false); // Make sure updater telemetry is disabled; see #25909.
    243 pref("toolkit.telemetry.bhrPing.enabled", false);
    244 pref("toolkit.telemetry.coverage.opt-out", true);
    245 pref("datareporting.healthreport.uploadEnabled", false);
    246 pref("datareporting.policy.dataSubmissionEnabled", false);
    247 // Force all telemtry identifier to their canary values tor-browser#43750
    248 pref("toolkit.telemetry.cachedClientID", "c0ffeec0-ffee-c0ff-eec0-ffeec0ffeec0", locked);
    249 pref("toolkit.telemetry.cachedProfileGroupID", "decafdec-afde-cafd-ecaf-decafdecafde", locked);
    250 pref("datareporting.dau.cachedUsageProfileID", "beefbeef-beef-beef-beef-beeefbeefbee", locked);
    251 pref("datareporting.dau.cachedUsageProfileGroupID", "b0bacafe-b0ba-cafe-b0ba-cafeb0bacafe", locked);
    252 pref("toolkit.coverage.opt-out", true);
    253 pref("toolkit.coverage.endpoint.base", "");
    254 pref("browser.tabs.crashReporting.sendReport", false);
    255 pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false);
    256 // Added in tor-browser#41496 even though false by default
    257 pref("browser.crashReports.unsubmittedCheck.enabled", false);
    258 // tor-browser#44026: Disable the modal that shows upstream terms of usage,
    259 // since we opt out of their telemetry and data collection.
    260 pref("browser.preonboarding.enabled", false);
    261 // Disable checkbox in about:neterror that controls
    262 // security.xfocsp.errorReporting.automatic. See tor-browser#42653.
    263 pref("security.xfocsp.errorReporting.enabled", false);
    264 // Added in tor-browser#41496 even though it shuld be already always disabled
    265 // since we disable MOZ_CRASHREPORTER.
    266 pref("breakpad.reportURL", "data:");
    267 // tor-browser#43985: Disable captcha detector code that is just used upstream
    268 // for identifying captchas with the purpose of sending telemetry about it.
    269 pref("captchadetection.actor.enabled", false);
    270 #ifdef XP_WIN
    271 // Defense-in-depth: ensure that the Windows default browser agent will
    272 // not ping Mozilla if it is somehow present (we omit it at build time).
    273 pref("default-browser-agent.enabled", false);
    274 #endif
    275 // Disable sync by default
    276 pref("identity.fxaccounts.enabled", false);
    277 // Blank the sync URL as a defense in depth (added with tor-browser#41496)
    278 pref("identity.sync.tokenserver.uri", "");
    279 // Never sync with other browsers
    280 pref("services.sync.engine.addons", false);
    281 pref("services.sync.engine.addresses", false);
    282 pref("services.sync.engine.bookmarks", false);
    283 pref("services.sync.engine.creditcards", false);
    284 pref("services.sync.engine.history", false);
    285 pref("services.sync.engine.passwords", false);
    286 pref("services.sync.engine.prefs", false);
    287 pref("services.sync.engine.tabs", false);
    288 pref("extensions.getAddons.cache.enabled", false); // https://blog.mozilla.org/addons/how-to-opt-out-of-add-on-metadata-updates/
    289 pref("privacy.donottrackheader.enabled", false); // (mullvad-browser#17)
    290 // Make sure there is no Tracking Protection active in Tor Browser, see: #17898.
    291 pref("privacy.trackingprotection.enabled", false);
    292 pref("privacy.trackingprotection.pbmode.enabled", false);
    293 pref("privacy.trackingprotection.emailtracking.pbmode.enabled", false);
    294 pref("privacy.trackingprotection.annotate_channels", false);
    295 pref("privacy.trackingprotection.cryptomining.enabled", false);
    296 pref("privacy.trackingprotection.fingerprinting.enabled", false);
    297 pref("privacy.trackingprotection.socialtracking.enabled", false);
    298 // tor-browser#43986: Explicitly disable bounce tracking protection
    299 pref("privacy.bounceTrackingProtection.mode", 0);
    300 pref("privacy.socialtracking.block_cookies.enabled", false);
    301 pref("privacy.annotate_channels.strict_list.enabled", false);
    302 // tor-browser#43178: for defense-in-depth, avoid remote overrides to FPP.
    303 // Notice that it should not apply to RFP anyway...
    304 pref("privacy.fingerprintingProtection.remoteOverrides.enabled", false);
    305 
    306 // Disable the Pocket extension (Bug #18886 and #31602)
    307 pref("extensions.pocket.enabled", false);
    308 
    309 // Disable Privacy-Preserving-Attribution (Bug #42687)
    310 pref("dom.private-attribution.submission.enabled", false);
    311 
    312 // Custom extensions preferences tor-browser#41581
    313 pref("extensions.hideNoScript", true);
    314 pref("extensions.hideUnifiedWhenEmpty", true);
    315 
    316 // Disable activity stream/"Recommended by Pocket" in about:home (Bug #41029)
    317 pref("browser.newtabpage.activity-stream.discoverystream.enabled", false);
    318 pref("browser.newtabpage.activity-stream.feeds.section.topstories", false);
    319 pref("browser.newtabpage.activity-stream.showSponsored", false);
    320 pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false);
    321 pref("browser.newtabpage.activity-stream.default.sites", "");
    322 // Activity Stream telemetry
    323 pref("browser.newtabpage.activity-stream.feeds.telemetry", false);
    324 pref("browser.newtabpage.activity-stream.telemetry", false);
    325 
    326 // tor-browser#40788: disable AS's calls to home.
    327 // Notice that null is between quotes because it is a JSON string.
    328 // Keep checked firefox.js to see if new entries are added.
    329 pref("browser.newtabpage.activity-stream.asrouter.providers.cfr", "null");
    330 pref("browser.newtabpage.activity-stream.asrouter.providers.message-groups", "null");
    331 pref("browser.newtabpage.activity-stream.asrouter.providers.messaging-experiments", "null");
    332 
    333 // Disable fetching asrouter.ftl and related console errors (tor-browser#40763).
    334 pref("browser.newtabpage.activity-stream.asrouter.useRemoteL10n", false);
    335 
    336 // tor-browser#42054: make sure search result telemetry is disabled.
    337 pref("browser.search.serpEventTelemetryCategorization.enabled", false);
    338 
    339 
    340 
    341 // ML components that we want to hide from the user. See tor-browser#44045.
    342 // Many of these preferences are locked because the component is entirely
    343 // removed, so they could not be functionally enabled.
    344 
    345 // tor-browser#42872, #42555, #44045: Disable ML translations.
    346 // Maybe re-enable after auditing and fixing the UX (tor-browser#41837).
    347 // NOTE: whilst the "translations" component is still included in the build, we
    348 // lock the preference because the engine is excluded and the
    349 // "translations-models" RemoteSettings needed for the engine is empty.
    350 pref("browser.translations.enable", false, locked);
    351 // Disables many (but not all) ML engines. Note, this does not have overall
    352 // control over exposure to ML features. tor-browser#44045.
    353 pref("browser.ml.enable", false, locked);
    354 // Disable third party AI chatbot. tor-browser#43989.
    355 pref("browser.ml.chat.enabled", false, locked);
    356 // Disable LinkPreview. tor-browser#44045 and tor-browser#43867.
    357 pref("browser.ml.linkPreview.enabled", false, locked);
    358 // Disable Smart Tab Groups. tor-browser#44045.
    359 pref("browser.tabs.groups.smart.enabled", false, locked);
    360 pref("browser.tabs.groups.smart.userEnabled", false, locked);
    361 // Don't expose ModelHub API for extensions. tor-browser#44045.
    362 pref("extensions.ml.enabled", false, locked);
    363 // Don't enable ML generated alt text. tor-browser#44045.
    364 // pdfjs.enableAltText controls whether MLManager is created,
    365 // pdfjs.enableGuessAltText controls whether the MLManager can create an ML
    366 // engine. pdfs.enableAltText controls whether the latter preference can be
    367 // changed by the user in the UI, but also has the side effect of hiding the
    368 // UI controls for the non-ML preference pdfjs.enableNewAltTextWhenAddingImage.
    369 // See bugzilla bug 1943456 comment 12.
    370 pref("pdfjs.enableAltText", false, locked);
    371 pref("pdfjs.enableAltTextForEnglish", false, locked);
    372 pref("pdfjs.enableGuessAltText", false, locked);
    373 pref("pdfjs.enableAltTextModelDownload", false, locked);
    374 // Disable SuggestBackendMl. tor-browser#44045.
    375 pref("browser.urlbar.quicksuggest.mlEnabled", false, locked);
    376 // Disable SemanticHistory search. tor-browser#44045.
    377 pref("places.semanticHistory.featureGate", false, locked);
    378 
    379 
    380 // tor-browser#41945 - disable automatic cookie banners dismissal until
    381 // we're sure it does not causes fingerprinting risks or other issues.
    382 pref("cookiebanners.service.mode", 0);
    383 pref("cookiebanners.service.mode.privateBrowsing", 0);
    384 pref("cookiebanners.ui.desktop.enabled", false);
    385 
    386 // Disable moreFromMozilla pane in the preferences/settings (tor-browser#41292).
    387 pref("browser.preferences.moreFromMozilla", false);
    388 
    389 // Disable webcompat reporter
    390 pref("extensions.webcompat-reporter.enabled", false);
    391 
    392 // Disable Content Analysis SDK (tor-browser#42364)
    393 pref("browser.contentanalysis.enabled", false);
    394 pref("browser.contentanalysis.default_result", 0);
    395 
    396 // Disable contentRelevancy component (which itself is gated on Nimbus) (tor-browser#42867)
    397 pref("toolkit.contentRelevancy.enabled", false);
    398 pref("toolkit.contentRelevancy.ingestEnabled", false);
    399 pref("toolkit.contentRelevancy.log", false);
    400 
    401 pref("browser.search.region", "US"); // Disable GeoIP search lookups (#16254)
    402 // Disable use of WiFi location information
    403 pref("browser.region.network.scan", false);
    404 pref("browser.region.network.url", "");
    405 pref("browser.region.local-geocoding", false);
    406 // Bug 40083: Make sure Region.sys.mjs fetching is disabled
    407 pref("browser.region.update.enabled", false);
    408 
    409 // Don't load Mozilla domains in a separate privileged tab process
    410 pref("browser.tabs.remote.separatePrivilegedMozillaWebContentProcess", false);
    411 pref("browser.tabs.remote.separatedMozillaDomains", "");
    412 
    413 // Avoid DNS lookups on search terms
    414 pref("browser.urlbar.dnsResolveSingleWordsAfterSearch", 0);
    415 
    416 // Disable about:newtab and "first run" experiments
    417 pref("messaging-system.rsexperimentloader.enabled", false);
    418 // true means that you are *not* opting out. See its usage in various file.
    419 pref("app.shield.optoutstudies.enabled", false);
    420 // Disable nimbus rollouts.
    421 // See bugzilla bug 2003350. See tor-browser#44520.
    422 pref("nimbus.rollouts.enabled", false);
    423 // Disable Normandy/Shield
    424 pref("app.normandy.enabled", false);
    425 pref("app.normandy.api_url", "");
    426 
    427 // [SETTING] General>Browsing>Recommend extensions as you browse (Bug #40700)
    428 pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false); // disable CFR [FF67+]
    429 
    430 // [SETTING] General>Browsing>Recommend features as you browse (Bug #40700)
    431 pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false); // disable CFR [FF67+]
    432 
    433 // Clear the list of trusted recursive resolver services
    434 pref("network.trr.default_provider_uri", "");
    435 
    436 // Disable the /etc/hosts parser
    437 // If true, entries from /etc/hosts will be excluded **from TRR results**.
    438 // Vice-versa, if it is false, TRR will override any /etc/hosts customization.
    439 pref("network.trr.exclude-etc-hosts", false);
    440 
    441 // Disable crlite
    442 pref("security.remote_settings.crlite_filters.enabled", false);
    443 pref("security.pki.crlite_mode", 0);
    444 
    445 // Disable website password breach alerts
    446 pref("signon.management.page.breach-alerts.enabled", false);
    447 // tor-browser#42814: Opt out from Firefox relay by default.
    448 // Firefox would normally assign disabled when a user has been presented the
    449 // opportunity to use the service and opted out (see firefox.js).
    450 pref("signon.firefoxRelay.feature", "disabled");
    451 
    452 // Disable remote "password recipes". They are a way to improve the UX of the
    453 // password manager by havinc specific heuristics for some sites.
    454 // It needs remote settings and in general we disable the password manager.
    455 // More information about this feature at
    456 // https://bugzilla.mozilla.org/show_bug.cgi?id=1119454
    457 pref("signon.recipes.remoteRecipes.enabled", false);
    458 
    459 // Disable ServiceWorkers by default. They do not work in PBM in any case.
    460 // See https://bugzilla.mozilla.org/show_bug.cgi?id=1320796
    461 pref("dom.serviceWorkers.enabled", false);
    462 // Push notifications use an online Mozilla service and a persistent ID stored
    463 // in dom.push.userAgentID, so disable them by default.
    464 // See also https://support.mozilla.org/kb/push-notifications-firefox
    465 pref("dom.push.enabled", false);
    466 // As a defense in depth measure, also set the push server URL to empty.
    467 // See tor-browser#18801.
    468 pref("dom.push.serverURL", "");
    469 
    470 // Fingerprinting
    471 // tor-browser#41797: For release builds, lock RFP
    472 // tor-browser#42125: Set (and lock in release) also exempted domains.
    473 #if MOZ_UPDATE_CHANNEL == release
    474 pref("privacy.resistFingerprinting", true, locked);
    475 pref("privacy.resistFingerprinting.exemptedDomains", "", locked);
    476 // tor-browser#42125: Some misleading guides suggest to set this to false, but
    477 // the result would be that the canvas is completely white
    478 // (see StaticPrefList.yaml), so lock it to true.
    479 // Might be removed (MozBug 1670447).
    480 pref("privacy.resistFingerprinting.randomDataOnCanvasExtract", true, locked);
    481 #else
    482 pref("privacy.resistFingerprinting", true);
    483 pref("privacy.resistFingerprinting.exemptedDomains", "");
    484 #endif
    485 // tor-browser#43904: Enable this so we skip the blank window if user is resisting fingerprinting.
    486 pref("privacy.resistFingerprinting.skipEarlyBlankFirstPaint", true);
    487 // tor-browser#18603: failIfMajorPerformanceCaveat is an optional attribute that
    488 // can be used when creating a WebGL context if the browser detects that the
    489 // performance would be low. That could be used to fingerpting users with a not
    490 // good graphics card, so disable it (actually, defense in depth, it is already
    491 // disabled by default from Firefox).
    492 pref("webgl.disable-fail-if-major-performance-caveat", true);
    493 // tor-browser#16404: disable until we investigate it further (#22333)
    494 pref("webgl.enable-webgl2", false);
    495 pref("browser.link.open_newwindow.restriction", 0); // Bug 9881: Open popups in new tabs (to avoid fullscreen popups)
    496 // tor-browser#42767: Disable offscreen canvas until verified it is not fingerprintable
    497 pref("gfx.offscreencanvas.enabled", false);
    498 // Prevent scripts from moving and resizing open windows
    499 pref("dom.disable_window_move_resize", true);
    500 // Set video VP9 to 0 for everyone (bug 22548)
    501 pref("media.benchmark.vp9.threshold", 0);
    502 // tor-browser#43950: Disable HEVC, as it will reveal lacking hardware support,
    503 // or differences in installed codec for Linux systems.
    504 pref("media.hevc.enabled", false);
    505 pref("privacy.resistFingerprinting.block_mozAddonManager", true); // Bug 26114
    506 pref("dom.webmidi.enabled", false); // Bug 41398: Disable Web MIDI API
    507 // tor-browser#42043: Stop reporting device IDs (and spoof their number without
    508 // RFP, RFP already reports 1 audioinput and 1 videoinput, but still has
    509 // randomized IDs when this pref is true).
    510 // Defense-in-depth (already the default value) from Firefox 119 or 120.
    511 pref("media.devices.enumerate.legacy.enabled", false);
    512 #ifndef ANDROID
    513 // Bug 42138: Disable touch-based overscroll UX
    514 pref("apz.overscroll.enabled", false);
    515 #endif
    516 pref("dom.vr.enabled", false); // Bug 21607: Disable WebVR for now
    517 pref("security.webauth.webauthn", false); // Bug 26614: Disable Web Authentication API for now
    518 // Disable SAB, no matter if the sites are cross-origin isolated.
    519 pref("dom.postMessage.sharedArrayBuffer.withCOOP_COEP", false);
    520 // Disable intermediate preloading (Bug 30682)
    521 pref("security.remote_settings.intermediates.enabled", false);
    522 // Bug 2874: Block Components.interfaces from content
    523 pref("dom.use_components_shim", false);
    524 // Enable letterboxing
    525 pref("privacy.resistFingerprinting.letterboxing", true);
    526 // tor-browser#41917: Center letterboxed area vertically
    527 pref("privacy.resistFingerprinting.letterboxing.vcenter", true);
    528 // tor-browser#41917: Letterboxing gradient background
    529 pref("privacy.resistFingerprinting.letterboxing.gradient", true);
    530 // tor-browser#41918: Should we reuse last window sizes if letterboxing is enabled
    531 pref("privacy.resistFingerprinting.letterboxing.rememberSize", false);
    532 // tor-browser#41695: How many warnings we show if user closes them without restoring the window size
    533 pref("privacy.resistFingerprinting.resizeWarnings", 3);
    534 // tor-browser#43402: Avoid a resize from the skeleton to the newwin size.
    535 // Should be fixed in ESR-140 with Bug 1448423.
    536 pref("browser.startup.blankWindow", false);
    537 // Enforce Network Information API as disabled
    538 pref("dom.netinfo.enabled", false);
    539 pref("network.http.referer.defaultPolicy", 2); // Bug 32948: Make referer behavior consistent regardless of private browing mode status
    540 pref("network.http.referer.defaultPolicy.pbmode", 2);
    541 pref("network.http.referer.XOriginTrimmingPolicy", 2); // Bug 17228: Force trim referer to scheme+host+port in cross-origin requests
    542 // Bug 40463: Disable Windows SSO
    543 pref("network.http.windows-sso.enabled", false, locked);
    544 // Bug 43165: Disable Microsoft SSO on macOS
    545 pref("network.http.microsoft-entra-sso.enabled", false);
    546 pref("network.microsoft-sso-authority-list", "");
    547 // tor-browser#40424
    548 pref("pdfjs.enableScripting", false);
    549 #if MOZ_UPDATE_CHANNEL == release
    550 // tor-browser#42255: pdfjs.disabled used to be part of RFP until Bug 1838415; lock pref to false in stable
    551 pref("pdfjs.disabled", false, locked);
    552 #endif
    553 // tor-browser#43850. Keep forced colors off by default for all platforms.
    554 // Upstream sets a value of "0" for Windows.
    555 pref("browser.display.document_color_use", 1);
    556 // Bug 40057: Ensure system colors are not used for CSS4 colors.
    557 // FIXME: This preference seems to be unread since bugzilla bug 1898096, but
    558 // still exists in the static preference list. Remove when upstream removes
    559 // this or confirms it will not be used again in the future.
    560 pref("browser.display.use_system_colors", false);
    561 // tor-browser#43366: do not use system accent color in inputs.
    562 // See also https://bugzilla.mozilla.org/show_bug.cgi?id=1861362.
    563 pref("widget.non-native-theme.use-theme-accent", false);
    564 // tor-browser#43236: Disable vsync on Wayland to prevent refresh rate leaks.
    565 pref("widget.wayland.vsync.enabled", false);
    566 // tor-browser#44571: Disable HTML rating attribute for filtering web content.
    567 // This could potentially be used as a fingerprinting vector based on if content
    568 // marked with a specific rating is loaded or not.
    569 pref("security.restrict_to_adults.always", false);
    570 pref("security.restrict_to_adults.respect_platform", false);
    571 
    572 // tor-browser#41943: defense-in-depth, but do not lock anymore (enabled in Firefox 119, http://bugzil.la/1851162)
    573 pref("javascript.options.spectre.disable_for_isolated_content", false);
    574 
    575 // Third party stuff
    576 pref("privacy.firstparty.isolate", true); // Always enforce first party isolation
    577 // tor-browser#40123 and #40308: Disable for now until audit
    578 pref("privacy.partition.network_state", false);
    579 // Only accept cookies from the originating site (block third party cookies)
    580 pref("network.cookie.cookieBehavior", 1);
    581 pref("network.cookie.cookieBehavior.pbmode", 1);
    582 pref("network.predictor.enabled", false); // Temporarily disabled. See https://bugs.torproject.org/16633
    583 pref("network.predictor.enable-prefetch", false);
    584 pref("network.http.speculative-parallel-limit", 0);
    585 pref("browser.places.speculativeConnect.enabled", false);
    586 pref("network.prefetch-next", false);
    587 pref("browser.urlbar.speculativeConnect.enabled", false);
    588 // Bug 40220: Make sure tracker cookie purging is disabled.
    589 // It depends on Firefox's tracking protection, which we currently do not enable
    590 // See also tor-browser#30939.
    591 pref("privacy.purge_trackers.enabled", false);
    592 // Do not allow cross-origin sub-resources to open HTTP authentication
    593 // credentials dialogs. Hardens against potential credentials phishing.
    594 pref("network.auth.subresource-http-auth-allow", 1);
    595 
    596 // tor-browser#42684: Disable network prefetch
    597 pref("network.dns.disablePrefetch", true);
    598 pref("network.dns.disablePrefetchFromHTTPS", true);
    599 pref("dom.prefetch_dns_for_anchor_http_document", false);
    600 pref("dom.prefetch_dns_for_anchor_https_document", false);
    601 
    602 pref("network.protocol-handler.external-default", false);
    603 pref("network.protocol-handler.external.mailto", false);
    604 pref("network.protocol-handler.external.news", false);
    605 pref("network.protocol-handler.external.nntp", false);
    606 pref("network.protocol-handler.external.snews", false);
    607 pref("network.protocol-handler.warn-external.mailto", true);
    608 pref("network.protocol-handler.warn-external.news", true);
    609 pref("network.protocol-handler.warn-external.nntp", true);
    610 pref("network.protocol-handler.warn-external.snews", true);
    611 #ifdef XP_WIN
    612  pref("network.protocol-handler.external.ms-windows-store", false);
    613  pref("network.protocol-handler.warn-external.ms-windows-store", true);
    614 #endif
    615 pref("network.proxy.allow_bypass", false, locked); // #40682
    616 // Bug 40548: Disable proxy-bypass
    617 pref("network.proxy.failover_direct", false, locked);
    618 // Lock to 'true', which is already the firefox default, to prevent users
    619 // from making themselves fingerprintable by disabling. This pref
    620 // alters content load order in a page. See tor-browser#24686
    621 pref("network.http.tailing.enabled", true, locked);
    622 
    623 // Block 0.0.0.0
    624 // https://bugzilla.mozilla.org/show_bug.cgi?id=1889130
    625 // tor-browser#43811
    626 pref("network.socket.ip_addr_any.disabled", true);
    627 
    628 // tor-browser#23044: Make sure we don't have any GIO supported protocols
    629 // (defense in depth measure).
    630 // As of Firefox 118 (Bug 1843763), upstream does not add any protocol by
    631 // default, but setting it to blank seems a good idea (tor-browser#42054).
    632 pref("network.gio.supported-protocols", "");
    633 pref("media.peerconnection.enabled", false); // Disable WebRTC interfaces
    634 // Mullvad Browser enables WebRTC by default, meaning that there the following prefs
    635 // are first-line defense, rather than "in depth" (mullvad-browser#40)
    636 // tor-browser#41667 - Defense in depth: use mDNS to avoid local IP leaks on Android too if user enables WebRTC
    637 pref("media.peerconnection.ice.obfuscate_host_addresses", true);
    638 // tor-browser#41671 - Defense in depth: connect using TURN only, to avoid IP leaks if user enables WebRTC
    639 pref("media.peerconnection.ice.relay_only", true);
    640 // tor-browser#42029 - Defense-in-depth: disable non-proxied UDP WebRTC
    641 pref("media.peerconnection.ice.default_address_only", true);
    642 pref("media.peerconnection.ice.no_host", true);
    643 pref("media.peerconnection.ice.proxy_only_if_behind_proxy", true);
    644 
    645 // Disables media devices but only if `media.peerconnection.enabled` is set to
    646 // `false` as well. (see bug 16328 for this defense-in-depth measure)
    647 pref("media.navigator.enabled", false);
    648 // GMPs (Gecko Media Plugins, https://wiki.mozilla.org/GeckoMediaPlugins)
    649 // We make sure they don't show up on the Add-on panel and confuse users.
    650 // And the external update/donwload server must not get pinged. We apply a
    651 // clever solution for https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=769716.
    652 // See tor-browser#15910.
    653 pref("media.gmp-provider.enabled", false);
    654 pref("media.gmp-manager.url.override", "data:text/plain,");
    655 // Since ESR52 it is not enough anymore to block pinging the GMP update/download
    656 // server. There is a local fallback that must be blocked now as well. See:
    657 // https://bugzilla.mozilla.org/show_bug.cgi?id=1267495.
    658 pref("media.gmp-manager.updateEnabled", false);
    659 // Mozilla is relying on preferences to make sure no DRM blob is downloaded and
    660 // run. Even though those prefs should be set correctly by specifying
    661 // --disable-eme (which we do), we disable all of them here as well for defense
    662 // in depth (see bug 16285 for more details).
    663 pref("browser.eme.ui.enabled", false);
    664 pref("media.gmp-widevinecdm.visible", false);
    665 pref("media.gmp-widevinecdm.enabled", false);
    666 pref("media.eme.enabled", false);
    667 pref("media.mediadrm-widevinecdm.visible", false);
    668 // The in-browser debugger for debugging chrome code is not coping with our
    669 // restrictive DNS look-up policy. We use "127.0.0.1" instead of "localhost" as
    670 // a workaround. See bug 16523 for more details.
    671 pref("devtools.debugger.chrome-debugging-host", "127.0.0.1");
    672 // Disable using UNC paths (bug 26424 and Mozilla's bug 1413868)
    673 pref("network.file.disable_unc_paths", true);
    674 // Enhance our treatment of file:// to avoid proxy bypasses (see Mozilla's bug
    675 // 1412081 and CVE-2017-16541)
    676 pref("network.file.path_blacklist", "/net");
    677 
    678 // Security slider
    679 pref("svg.disabled", false);
    680 pref("mathml.disabled", false);
    681 
    682 // Bug 40408
    683 pref("svg.context-properties.content.allowed-domains", "");
    684 
    685 // Network and performance
    686 pref("security.ssl.enable_false_start", true);
    687 // tor-browser#18945
    688 pref("network.manage-offline-status", false);
    689 // No need to leak things to Mozilla, see bug 21790 and tor-browser#40322
    690 pref("network.captive-portal-service.enabled", false);
    691 pref("network.connectivity-service.enabled", false);
    692 pref("captivedetect.canonicalURL", "");
    693 
    694 #ifdef XP_WIN
    695 // tor-browser#41683: Disable the network process on Windows
    696 // Mozilla already disables the network process for HTTP.
    697 // With this preference, we completely disable it, because we found that it
    698 // breaks stuff with mingw. See also tor-browser#41489.
    699 pref("network.process.enabled", false);
    700 #endif
    701 
    702 // Extension support
    703 pref("extensions.autoDisableScopes", 0);
    704 // Only load extensions from the application and user profile.
    705 // Do not load from the user directory (AddonManager.SCOPE_USER=2, which is
    706 // shared between profiles, e.g., %appdata%\Mozilla\Extensions\ on Windows, or
    707 // ~/.mozilla/extensions on Linux for Firefox), and do not load from system
    708 // directories/the Windows registry (AddonManager.SCOPE_SYSTEM=8).
    709 // More information: https://archive.ph/DYjAM
    710 pref("extensions.enabledScopes", 5); // AddonManager.SCOPE_PROFILE=1 | AddonManager.SCOPE_APPLICATION=4
    711 // We don't know what extensions Mozilla is advertising to our users and we
    712 // don't want to have some random Google Analytics script running either on the
    713 // about:addons page, see bug 22073, 22900 and 31601.
    714 pref("extensions.getAddons.showPane", false);
    715 pref("extensions.htmlaboutaddons.recommendations.enabled", false);
    716 // Disable personalized Extension Recommendations in about:addons and
    717 // addons.mozilla.org
    718 pref("browser.discovery.enabled", false);
    719 // tor-browser#26114: Allow NoScript to work on addons.mozilla.org and other Mozilla sites.
    720 // Revisited and confirmed in tor-browser#41445.
    721 pref("extensions.webextensions.restrictedDomains", "");
    722 // Don't give Mozilla-recommended third-party extensions special privileges.
    723 pref("extensions.postDownloadThirdPartyPrompt", false);
    724 // tor-browser#41701: Reporting an extension does not work. The request goes to
    725 // Mozilla and is always rejected anyway (HTTP 400).
    726 pref("extensions.abuseReport.enabled", false);
    727 // We are already providing the languages we support in multi-lingual packages.
    728 // Therefore, do not allow download of additional language packs. They are not a
    729 // privacy/security threat, we are disabling them for UX reasons. See bug 41377.
    730 pref("intl.multilingual.downloadEnabled", false);
    731 
    732 // Enforce certificate pinning, see: https://bugs.torproject.org/16206
    733 pref("security.cert_pinning.enforcement_level", 2);
    734 
    735 // Don't load OS client certs.
    736 pref("security.osclientcerts.autoload", false);
    737 
    738 // Don't allow MitM via enterprise roots, see bug 30681
    739 pref("security.enterprise_roots.enabled", false);
    740 
    741 // Don't ping Mozilla for MitM detection, see bug 32321
    742 pref("security.certerrors.mitm.priming.enabled", false);
    743 
    744 // Don't automatically enable enterprise roots, see bug 40166
    745 pref("security.certerrors.mitm.auto_enable_enterprise_roots", false);
    746 
    747 // Disable share menus on Mac and Windows tor-browser#41117
    748 pref("browser.menu.share_url.allow", false, locked);
    749 
    750 // Disable special URL bar behaviors
    751 pref("browser.urlbar.suggest.topsites", false);
    752 pref("browser.urlbar.quicksuggest.enabled", false);
    753 pref("browser.urlbar.quicksuggest.online.available", false);
    754 pref("browser.urlbar.quicksuggest.online.enabled", false);
    755 pref("browser.urlbar.richSuggestions.featureGate", false);
    756 pref("browser.urlbar.yelp.featureGate", false);
    757 pref("browser.urlbar.mdn.featureGate", false);
    758 
    759 // tor-browser#41884: Do not start a search when clicking on the new tab button
    760 // with the middle mouse button (to prevent searching for anything you might
    761 // have selected or already in your clipboard).
    762 pref("browser.tabs.searchclipboardfor.middleclick", false);
    763 
    764 // tor-browser#41417: do not allow live reload until we switch to Fluent and
    765 // stop using .textContent.
    766 // Even after that, it might be a good idea to keep it off, as it is not handled
    767 // very well, and it might give a window during which websites could fingerprint
    768 // the change (see tor-browser#42349 and tor-browser#42771).
    769 pref("intl.multilingual.liveReload", false);
    770 
    771 // Enable URL query stripping to protect against cross-site tracking (tor-browser#41092)
    772 pref("privacy.query_stripping.enabled", true);
    773 pref("privacy.query_stripping.enabled.pbmode", true);
    774 pref("privacy.query_stripping.strip_on_share.enabled", true);
    775 
    776 // Ensure global privacy control headers are consistent in private browsing and
    777 // non-private browsing (tor-browser#42777).
    778 pref("privacy.globalprivacycontrol.enabled", true);
    779 pref("privacy.globalprivacycontrol.pbmode.enabled", true);
    780 
    781 // Disable platform text recognition functionality (tor-browser#42057)
    782 pref("dom.text-recognition.enabled", false);
    783 
    784 // Log levels
    785 pref("browser.new_identity.log_level", "Info");
    786 
    787 #ifdef XP_WIN
    788 pref("browser.taskbar.lists.enabled", false);
    789 pref("browser.taskbar.lists.frequent.enabled", false);
    790 pref("browser.taskbar.lists.tasks.enabled", false);
    791 pref("browser.taskbar.lists.recent.enabled", false);
    792 
    793 // tor-browser#41806: Prevent the browser from adding a new Private Browsing
    794 // start menu item automatically
    795 pref("browser.privacySegmentation.createdShortcut", true);
    796 
    797 // Do not re-open the browser automatically after reboots when "Restart apps" is
    798 // enabled (tor-browser#41503)
    799 pref("toolkit.winRegisterApplicationRestart", false);
    800 // tor-browser#43051: Hide the checkbox to open the browser automatically on
    801 // Windows startup.
    802 pref("browser.startup.windowsLaunchOnLogin.enabled", false);
    803 #endif
    804 
    805 #ifdef ANDROID
    806 // tor-browser#43023 Force use of only standard emoji font
    807 // (not actually stopping samsung emoji font detection, but defense in depth and a step towards normalization)
    808 pref("font.name-list.emoji", "Noto Color Emoji");
    809 #endif
    810 
    811 // If we are bundling fonts, whitelist those bundled fonts, and restrict system fonts to a selection.
    812 
    813 #ifdef MOZ_BUNDLED_FONTS
    814 
    815 // Bug 40342: Always use bundled fonts
    816 pref("gfx.bundled-fonts.activate", 1);
    817 
    818 #ifdef XP_MACOSX
    819 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");
    820 
    821 // Armenian
    822 pref("font.name-list.serif.x-armn", "Noto Serif Armenian, Times, Times New Roman");
    823 pref("font.name-list.sans-serif.x-armn", "Noto Sans Armenian, Helvetica, Arial");
    824 pref("font.name-list.monospace.x-armn", "Noto Sans Armenian, Menlo, Courier New");
    825 // Bengali
    826 pref("font.name-list.serif.x-beng", "Noto Serif Bengali, Times, Times New Roman");
    827 pref("font.name-list.sans-serif.x-beng", "Noto Sans Bengali, Helvetica, Arial");
    828 pref("font.name-list.monospace.x-beng", "Noto Sans Bengali, Menlo, Courier New");
    829 // Canadian Aboriginal
    830 pref("font.name-list.serif.x-cans", "Noto Serif Canadian Aboriginal, Times, Times New Roman");
    831 pref("font.name-list.sans-serif.x-cans", "Noto Sans Canadian Aboriginal, Helvetica, Arial");
    832 pref("font.name-list.monospace.x-cans", "Noto Sans Canadian Aboriginal, Menlo, Courier New");
    833 // ChineseCN
    834 pref("font.name-list.serif.zh-CN", "Songti SC, Times, Times New Roman");
    835 pref("font.name-list.sans-serif.zh-CN", "PingFang SC, Helvetica, Arial");
    836 pref("font.name-list.monospace.zh-CN", "PingFang SC, Menlo, Courier New");
    837 // ChineseHK
    838 pref("font.name-list.serif.zh-HK", "Songti TC, Times, Times New Roman");
    839 pref("font.name-list.sans-serif.zh-HK", "PingFang HK, Helvetica, Arial");
    840 pref("font.name-list.monospace.zh-HK", "PingFang HK, Menlo, Courier New");
    841 // ChineseTW
    842 pref("font.name-list.serif.zh-TW", "Songti TC, Times, Times New Roman");
    843 pref("font.name-list.sans-serif.zh-TW", "PingFang TC, Helvetica, Arial");
    844 pref("font.name-list.monospace.zh-TW", "PingFang TC, Menlo, Courier New");
    845 // Devanagari
    846 pref("font.name-list.serif.x-devanagari", "Noto Serif Devanagari, Times, Times New Roman");
    847 pref("font.name-list.sans-serif.x-devanagari", "Noto Sans Devanagari, Helvetica, Arial");
    848 pref("font.name-list.monospace.x-devanagari", "Noto Sans Devanagari, Menlo, Courier New");
    849 // Ethiopic
    850 pref("font.name-list.serif.x-ethi", "Noto Serif Ethiopic, Times, Times New Roman");
    851 pref("font.name-list.sans-serif.x-ethi", "Noto Sans Ethiopic, Helvetica, Arial");
    852 pref("font.name-list.monospace.x-ethi", "Noto Sans Ethiopic, Menlo, Courier New");
    853 // Georgian
    854 pref("font.name-list.serif.x-geor", "Noto Serif Georgian, Times, Times New Roman");
    855 pref("font.name-list.sans-serif.x-geor", "Noto Sans Georgian, Helvetica, Arial");
    856 pref("font.name-list.monospace.x-geor", "Noto Sans Georgian, Menlo, Courier New");
    857 // Gujarati
    858 pref("font.name-list.serif.x-gujr", "Noto Serif Gujarati, Times, Times New Roman");
    859 pref("font.name-list.sans-serif.x-gujr", "Noto Sans Gujarati, Helvetica, Arial");
    860 pref("font.name-list.monospace.x-gujr", "Noto Sans Gujarati, Menlo, Courier New");
    861 // Gurmukhi
    862 pref("font.name-list.serif.x-guru", "Noto Serif Gurmukhi, Times, Times New Roman");
    863 pref("font.name-list.sans-serif.x-guru", "Noto Sans Gurmukhi, Helvetica, Arial");
    864 pref("font.name-list.monospace.x-guru", "Noto Sans Gurmukhi, Menlo, Courier New");
    865 // Hebrew
    866 pref("font.name-list.serif.he", "Noto Serif Hebrew, Times, Times New Roman");
    867 pref("font.name-list.sans-serif.he", "Noto Sans Hebrew, Helvetica, Arial");
    868 pref("font.name-list.monospace.he", "Noto Sans Hebrew, Menlo, Courier New");
    869 // Kannada
    870 pref("font.name-list.serif.x-knda", "Noto Serif Kannada, Times, Times New Roman");
    871 pref("font.name-list.sans-serif.x-knda", "Noto Sans Kannada, Helvetica, Arial");
    872 pref("font.name-list.monospace.x-knda", "Noto Sans Kannada, Menlo, Courier New");
    873 // Khmer
    874 pref("font.name-list.serif.x-khmr", "Noto Serif Khmer, Times, Times New Roman");
    875 pref("font.name-list.sans-serif.x-khmr", "Noto Sans Khmer, Helvetica, Arial");
    876 pref("font.name-list.monospace.x-khmr", "Noto Sans Khmer, Menlo, Courier New");
    877 // Malayalam
    878 pref("font.name-list.serif.x-mlym", "Noto Serif Malayalam, Times, Times New Roman");
    879 pref("font.name-list.sans-serif.x-mlym", "Noto Sans Malayalam, Helvetica, Arial");
    880 pref("font.name-list.monospace.x-mlym", "Noto Sans Malayalam, Menlo, Courier New");
    881 // Mathematics
    882 pref("font.name-list.serif.x-math", "STIX Two Math, Times, Times New Roman");
    883 pref("font.name-list.sans-serif.x-math", "STIX Two Math, Helvetica, Arial");
    884 pref("font.name-list.monospace.x-math", "STIX Two Math, Menlo, Courier New");
    885 // Oriya
    886 pref("font.name-list.serif.x-orya", "Noto Sans Oriya, Times, Times New Roman");
    887 pref("font.name-list.sans-serif.x-orya", "Noto Sans Oriya, Helvetica, Arial");
    888 pref("font.name-list.monospace.x-orya", "Noto Sans Oriya, Menlo, Courier New");
    889 // Sinhala
    890 pref("font.name-list.serif.x-sinh", "Noto Serif Sinhala, Times, Times New Roman");
    891 pref("font.name-list.sans-serif.x-sinh", "Noto Sans Sinhala, Helvetica, Arial");
    892 pref("font.name-list.monospace.x-sinh", "Noto Sans Sinhala, Menlo, Courier New");
    893 // Tamil
    894 pref("font.name-list.serif.x-tamil", "Noto Serif Tamil, Times, Times New Roman");
    895 pref("font.name-list.sans-serif.x-tamil", "Noto Sans Tamil, Helvetica, Arial");
    896 pref("font.name-list.monospace.x-tamil", "Noto Sans Tamil, Menlo, Courier New");
    897 // Telugu
    898 pref("font.name-list.serif.x-telu", "Noto Serif Telugu, Times, Times New Roman");
    899 pref("font.name-list.sans-serif.x-telu", "Noto Sans Telugu, Helvetica, Arial");
    900 pref("font.name-list.monospace.x-telu", "Noto Sans Telugu, Menlo, Courier New");
    901 // Tibetan
    902 pref("font.name-list.serif.x-tibt", "Noto Serif Tibetan, Times, Times New Roman");
    903 pref("font.name-list.sans-serif.x-tibt", "Noto Serif Tibetan, Helvetica, Arial");
    904 pref("font.name-list.monospace.x-tibt", "Noto Serif Tibetan, Menlo, Courier New");
    905 // Others (Balinese, Grantha, Khojki, Lao, Myanmar)
    906 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");
    907 pref("font.name-list.sans-serif.x-unicode", "Helvetica, Arial, Noto Sans Balinese, Noto Sans Grantha, Noto Sans Khojki, Noto Sans Lao, Pyidaungsu");
    908 pref("font.name-list.monospace.x-unicode", "Menlo, Courier New, Noto Sans Balinese, Noto Sans Grantha, Noto Sans Khojki, Noto Sans Lao, Pyidaungsu");
    909 // The rest are not customized, because they are covered only by one font
    910 #endif
    911 
    912 #ifdef XP_WIN
    913 pref("font.system.whitelist", "Arial, Cambria Math, Consolas, Courier New, Georgia, Lucida Console, MS Gothic, MS ゴシック, MS PGothic, MS Pゴシック, MV Boli, Malgun Gothic, Microsoft Himalaya, Microsoft JhengHei, Microsoft YaHei, 微软雅黑, Segoe UI, SimSun, 宋体, Sylfaen, Tahoma, Times New Roman, Verdana, Noto Sans Adlam, 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 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 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 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, Noto Naskh Arabic, Noto Sans, Noto Serif, Pyidaungsu, Twemoji Mozilla");
    914 
    915 pref("font.name-list.emoji", "Twemoji Mozilla");
    916 // Arabic
    917 pref("font.name-list.serif.ar", "Times New Roman, Noto Naskh Arabic");
    918 pref("font.name-list.sans-serif.ar", "Segoe UI, Tahoma, Arial, Noto Naskh Arabic");
    919 pref("font.name-list.monospace.ar", "Consolas, Noto Naskh Arabic");
    920 // Bengali
    921 pref("font.name-list.serif.x-beng", "Noto Serif Bengali, Times New Roman");
    922 pref("font.name-list.sans-serif.x-beng", "Noto Sans Bengali, Arial");
    923 pref("font.name-list.monospace.x-beng", "Noto Sans Bengali, Consolas");
    924 // Canadian Aboriginal
    925 pref("font.name-list.serif.x-cans", "Noto Serif Canadian Aboriginal, Times New Roman");
    926 pref("font.name-list.sans-serif.x-cans", "Noto Sans Canadian Aboriginal, Arial");
    927 pref("font.name-list.monospace.x-cans", "Noto Sans Canadian Aboriginal, Consolas");
    928 // Cyrillic (we use Noto only for fallback, system fonts have a good coverage)
    929 pref("font.name-list.serif.x-cyrillic", "Times New Roman, Noto Serif");
    930 pref("font.name-list.sans-serif.x-cyrillic", "Arial, Noto Sans");
    931 // Devanagari
    932 pref("font.name-list.serif.x-devanagari", "Noto Serif Devanagari, Times New Roman");
    933 pref("font.name-list.sans-serif.x-devanagari", "Noto Sans Devanagari, Arial");
    934 pref("font.name-list.monospace.x-devanagari", "Noto Sans Devanagari, Consolas");
    935 // Ethiopic
    936 pref("font.name-list.serif.x-ethi", "Noto Serif Ethiopic, Times New Roman");
    937 pref("font.name-list.sans-serif.x-ethi", "Noto Sans Ethiopic, Arial");
    938 pref("font.name-list.monospace.x-ethi", "Noto Sans Ethiopic, Consolas");
    939 // Georgian
    940 pref("font.name-list.serif.x-geor", "Noto Serif Georgian, Times New Roman");
    941 pref("font.name-list.sans-serif.x-geor", "Noto Sans Georgian, Arial");
    942 pref("font.name-list.monospace.x-geor", "Noto Sans Georgian, Consolas");
    943 // Gujarati
    944 pref("font.name-list.serif.x-gujr", "Noto Serif Gujarati, Times New Roman");
    945 pref("font.name-list.sans-serif.x-gujr", "Noto Sans Gujarati, Arial");
    946 pref("font.name-list.monospace.x-gujr", "Noto Sans Gujarati, Consolas");
    947 // Gurmukhi
    948 pref("font.name-list.serif.x-guru", "Noto Serif Gurmukhi, Times New Roman");
    949 pref("font.name-list.sans-serif.x-guru", "Noto Sans Gurmukhi, Arial");
    950 pref("font.name-list.monospace.x-guru", "Noto Sans Gurmukhi, Consolas");
    951 // Kannada
    952 pref("font.name-list.serif.x-knda", "Noto Serif Kannada, Times New Roman");
    953 pref("font.name-list.sans-serif.x-knda", "Noto Sans Kannada, Arial");
    954 pref("font.name-list.monospace.x-knda", "Noto Sans Kannada, Consolas");
    955 // Khmer
    956 pref("font.name-list.serif.x-khmr", "Noto Serif Khmer, Times New Roman");
    957 pref("font.name-list.sans-serif.x-khmr", "Noto Sans Khmer, Arial");
    958 pref("font.name-list.monospace.x-khmr", "Noto Sans Khmer, Consolas");
    959 // Malayalam
    960 pref("font.name-list.serif.x-mlym", "Noto Serif Malayalam, Times New Roman");
    961 pref("font.name-list.sans-serif.x-mlym", "Noto Sans Malayalam, Arial");
    962 pref("font.name-list.monospace.x-mlym", "Noto Sans Malayalam, Consolas");
    963 // Oriya
    964 pref("font.name-list.serif.x-orya", "Noto Sans Oriya, Times New Roman");
    965 pref("font.name-list.sans-serif.x-orya", "Noto Sans Oriya, Arial");
    966 pref("font.name-list.monospace.x-orya", "Noto Sans Oriya, Consolas");
    967 // Sinhala
    968 pref("font.name-list.serif.x-sinh", "Noto Serif Sinhala, Times New Roman");
    969 pref("font.name-list.sans-serif.x-sinh", "Noto Sans Sinhala, Arial");
    970 pref("font.name-list.monospace.x-sinh", "Noto Sans Sinhala, Consolas");
    971 // Tamil
    972 pref("font.name-list.serif.x-tamil", "Noto Serif Tamil, Times New Roman");
    973 pref("font.name-list.sans-serif.x-tamil", "Noto Sans Tamil, Arial");
    974 pref("font.name-list.monospace.x-tamil", "Noto Sans Tamil, Consolas");
    975 // Telugu
    976 pref("font.name-list.serif.x-telu", "Noto Serif Telugu, Times New Roman");
    977 pref("font.name-list.sans-serif.x-telu", "Noto Sans Telugu, Arial");
    978 pref("font.name-list.monospace.x-telu", "Noto Sans Telugu, Consolas");
    979 // Tibetan
    980 pref("font.name-list.serif.x-tibt", "Microsoft Himalaya, Noto Serif Tibetan, Times New Roman");
    981 pref("font.name-list.sans-serif.x-tibt", "Microsoft Himalaya, Noto Serif Tibetan, Arial");
    982 pref("font.name-list.monospace.x-tibt", "Microsoft Himalaya, Noto Serif Tibetan, Consolas");
    983 // Others (Balinese, Grantha, Khojki, Lao, Myanmar)
    984 pref("font.name-list.serif.x-unicode", "Times New Roman, Noto Serif Balinese, Noto Serif Grantha, Noto Serif Khojki, Noto Serif Lao, Noto Serif Myanmar");
    985 pref("font.name-list.sans-serif.x-unicode", "Arial, Noto Sans Balinese, Noto Sans Grantha, Noto Sans Khojki, Noto Sans Lao, Pyidaungsu");
    986 pref("font.name-list.monospace.x-unicode", "Consolas, Noto Sans Balinese, Noto Sans Grantha, Noto Sans Khojki, Noto Sans Lao, Pyidaungsu");
    987 // The rest are not customized, because they are covered only by one font
    988 #endif
    989 
    990 #ifdef XP_LINUX
    991 pref("font.system.whitelist", "Arimo, Cousine, Noto Color Emoji, Noto Naskh Arabic, 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 JP, Noto Sans Javanese, Noto Sans KR, Noto Sans Kannada, Noto Sans Kayah Li, Noto Sans Khmer, 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 NKo, Noto Sans New Tai Lue, Noto Sans Newa, 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 SC, 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, Noto Sans Symbols 2, Noto Sans Syriac, Noto Sans TC, 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 Thai, Noto Sans Tifinagh, Noto Sans Tifinagh APT, Noto Sans Tifinagh Adrar, Noto Sans Tifinagh Agraw Imazighen, Noto Sans Tifinagh Ahaggar, Noto Sans Tifinagh Air, Noto Sans Tifinagh Azawagh, Noto Sans Tifinagh Ghat, Noto Sans Tifinagh Hawad, 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 Thai, Noto Serif Tibetan, Noto Serif Yezidi, Pyidaungsu, STIX Two Math, Tinos, Twemoji Mozilla");
    992 
    993 pref("font.name-list.emoji", "Noto Color Emoji, Twemoji Mozilla");
    994 // Arabic
    995 pref("font.name-list.serif.ar", "Noto Naskh Arabic, Tinos");
    996 pref("font.name-list.sans-serif.ar", "Noto Naskh Arabic, Arimo");
    997 pref("font.name-list.monospace.ar", "Noto Naskh Arabic, Cousine");
    998 // Armenian
    999 pref("font.name-list.serif.x-armn", "Noto Serif Armenian, Tinos");
   1000 pref("font.name-list.sans-serif.x-armn", "Noto Sans Armenian, Arimo");
   1001 pref("font.name-list.sans-serif.x-armn", "Noto Sans Armenian, Cousine");
   1002 // Bengali
   1003 pref("font.name-list.serif.x-beng", "Noto Serif Bengali, Tinos");
   1004 pref("font.name-list.sans-serif.x-beng", "Noto Sans Bengali, Arimo");
   1005 pref("font.name-list.monospace.x-beng", "Noto Sans Bengali, Cousine");
   1006 // Canadian Aboriginal
   1007 pref("font.name-list.serif.x-cans", "Noto Serif Canadian Aboriginal, Tinos");
   1008 pref("font.name-list.sans-serif.x-cans", "Noto Sans Canadian Aboriginal, Arimo");
   1009 pref("font.name-list.monospace.x-cans", "Noto Sans Canadian Aboriginal, Cousine");
   1010 // ChineseCN
   1011 pref("font.name-list.serif.zh-CN", "Noto Sans SC, Tinos");
   1012 pref("font.name-list.sans-serif.zh-CN", "Noto Sans SC, Arimo");
   1013 pref("font.name-list.monospace.zh-CN", "Noto Sans SC, Cousine");
   1014 // ChineseHK
   1015 pref("font.name-list.serif.zh-HK", "Noto Sans TC, Tinos");
   1016 pref("font.name-list.sans-serif.zh-HK", "Noto Sans TC, Arimo");
   1017 pref("font.name-list.monospace.zh-HK", "Noto Sans TC, Cousine");
   1018 // ChineseTW
   1019 pref("font.name-list.serif.zh-TW", "Noto Sans TC, Tinos");
   1020 pref("font.name-list.sans-serif.zh-TW", "Noto Sans TC, Arimo");
   1021 pref("font.name-list.monospace.zh-TW", "Noto Sans TC, Cousine");
   1022 // Cyrillic
   1023 pref("font.name-list.serif.x-cyrillic", "Tinos");
   1024 pref("font.name-list.sans-serif.x-cyrillic", "Arimo");
   1025 pref("font.name-list.monospace.x-cyrillic", "Cousine");
   1026 // Devanagari
   1027 pref("font.name-list.serif.x-devanagari", "Noto Serif Devanagari, Tinos");
   1028 pref("font.name-list.sans-serif.x-devanagari", "Noto Sans Devanagari, Arimo");
   1029 pref("font.name-list.monospace.x-devanagari", "Noto Sans Devanagari, Cousine");
   1030 // Ethiopic
   1031 pref("font.name-list.serif.x-ethi", "Noto Serif Ethiopic, Tinos");
   1032 pref("font.name-list.sans-serif.x-ethi", "Noto Sans Ethiopic, Arimo");
   1033 pref("font.name-list.monospace.x-ethi", "Noto Sans Ethiopic, Cousine");
   1034 // Georgian
   1035 pref("font.name-list.serif.x-geor", "Noto Serif Georgian, Tinos");
   1036 pref("font.name-list.sans-serif.x-geor", "Noto Sans Georgian, Arimo");
   1037 pref("font.name-list.monospace.x-geor", "Noto Sans Georgian, Cousine");
   1038 // Greek
   1039 pref("font.name-list.serif.el", "Tinos");
   1040 pref("font.name-list.sans-serif.el", "Arimo");
   1041 pref("font.name-list.monospace.el", "Cousine");
   1042 // Gujarati
   1043 pref("font.name-list.serif.x-gujr", "Noto Serif Gujarati, Tinos");
   1044 pref("font.name-list.sans-serif.x-gujr", "Noto Sans Gujarati, Arimo");
   1045 pref("font.name-list.monospace.x-gujr", "Noto Sans Gujarati, Cousine");
   1046 // Gurmukhi
   1047 pref("font.name-list.serif.x-guru", "Noto Serif Gurmukhi, Tinos");
   1048 pref("font.name-list.sans-serif.x-guru", "Noto Sans Gurmukhi, Arimo");
   1049 pref("font.name-list.monospace.x-guru", "Noto Sans Gurmukhi, Cousine");
   1050 // Hebrew
   1051 pref("font.name-list.serif.he", "Noto Serif Hebrew, Tinos");
   1052 pref("font.name-list.sans-serif.he", "Noto Sans Hebrew, Arimo");
   1053 pref("font.name-list.monospace.he", "Noto Sans Hebrew, Cousine");
   1054 // Japanese
   1055 pref("font.name-list.serif.ja", "Noto Sans JP, Tinos");
   1056 pref("font.name-list.sans-serif.ja", "Noto Sans JP, Arimo");
   1057 pref("font.name-list.monospace.ja", "Noto Sans JP, Cousine");
   1058 // Kannada
   1059 pref("font.name-list.serif.x-knda", "Noto Serif Kannada, Tinos");
   1060 pref("font.name-list.sans-serif.x-knda", "Noto Sans Kannada, Arimo");
   1061 pref("font.name-list.monospace.x-knda", "Noto Sans Kannada, Cousine");
   1062 // Khmer
   1063 pref("font.name-list.serif.x-khmr", "Noto Serif Khmer, Tinos");
   1064 pref("font.name-list.sans-serif.x-khmr", "Noto Sans Khmer, Arimo");
   1065 pref("font.name-list.monospace.x-khmr", "Noto Sans Khmer, Cousine");
   1066 // Korean
   1067 pref("font.name-list.serif.ko", "Noto Sans KR Regular");
   1068 pref("font.name-list.sans-serif.ko", "Noto Sans KR Regular");
   1069 pref("font.name-list.monospace.ko", "Noto Sans KR Regular");
   1070 // Malayalam
   1071 pref("font.name-list.serif.x-mlym", "Noto Serif Malayalam, Tinos");
   1072 pref("font.name-list.sans-serif.x-mlym", "Noto Sans Malayalam, Arimo");
   1073 pref("font.name-list.monospace.x-mlym", "Noto Sans Malayalam, Cousine");
   1074 // Mathematics
   1075 pref("font.name-list.serif.x-math", "STIX Two Math, Tinos");
   1076 pref("font.name-list.sans-serif.x-math", "STIX Two Math, Arimo");
   1077 pref("font.name-list.monospace.x-math", "STIX Two Math, Cousine");
   1078 // Oriya
   1079 pref("font.name-list.serif.x-orya", "Noto Sans Oriya, Tinos");
   1080 pref("font.name-list.sans-serif.x-orya", "Noto Sans Oriya, Arimo");
   1081 pref("font.name-list.monospace.x-orya", "Noto Sans Oriya, Cousine");
   1082 // Sinhala
   1083 pref("font.name-list.serif.x-sinh", "Noto Serif Sinhala, Tinos");
   1084 pref("font.name-list.sans-serif.x-sinh", "Noto Sans Sinhala, Arimo");
   1085 pref("font.name-list.monospace.x-sinh", "Noto Sans Sinhala, Cousine");
   1086 // Tamil
   1087 pref("font.name-list.serif.x-tamil", "Noto Serif Tamil, Tinos");
   1088 pref("font.name-list.sans-serif.x-tamil", "Noto Sans Tamil, Arimo");
   1089 pref("font.name-list.monospace.x-tamil", "Noto Sans Tamil, Cousine");
   1090 // Telugu
   1091 pref("font.name-list.serif.x-telu", "Noto Serif Telugu, Tinos");
   1092 pref("font.name-list.sans-serif.x-telu", "Noto Sans Telugu, Arimo");
   1093 pref("font.name-list.monospace.x-telu", "Noto Sans Telugu, Cousine");
   1094 // Thai
   1095 pref("font.name-list.serif.th", "Noto Serif Thai, Tinos");
   1096 pref("font.name-list.sans-serif.th", "Noto Sans Thai, Arimo");
   1097 pref("font.name-list.monospace.th", "Noto Sans Thai, Cousine");
   1098 // Tibetan
   1099 pref("font.name-list.serif.x-tibt", "Noto Serif Tibetan, Tinos");
   1100 pref("font.name-list.sans-serif.x-tibt", "Noto Serif Tibetan, Arimo");
   1101 pref("font.name-list.monospace.x-tibt", "Noto Serif Tibetan, Cousine");
   1102 // Western
   1103 pref("font.name-list.serif.x-western", "Tinos");
   1104 pref("font.name-list.sans-serif.x-western", "Arimo");
   1105 pref("font.name-list.monospace.x-western", "Cousine");
   1106 // Others (Balinese, Grantha, Khojki, Lao, Myanmar)
   1107 pref("font.name-list.serif.x-unicode", "Tinos, Noto Serif Balinese, Noto Serif Grantha, Noto Serif Khojki, Noto Serif Lao, Noto Serif Myanmar");
   1108 pref("font.name-list.sans-serif.x-unicode", "Arimo, Noto Sans Balinese, Noto Sans Grantha, Noto Sans Khojki, Noto Sans Lao, Pyidaungsu");
   1109 pref("font.name-list.monospace.x-unicode", "Cousine, Noto Sans Balinese, Noto Sans Grantha, Noto Sans Khojki, Noto Sans Lao, Pyidaungsu");
   1110 // The rest are not customized, because they are covered only by one font
   1111 #endif
   1112 #endif
   1113 
   1114 // tor-browser#42630: Disable LaterRun.
   1115 //
   1116 // This preference is set in a few places in code. Even though it's locked,
   1117 // setting it will still change the value in `prefs.js`, but it will be ignored.
   1118 // If this is ever unlocked, the value in prefs.js will be used.
   1119 pref("browser.laterrun.enabled", false, locked);
   1120 
   1121 // tor-browser#44123: Never trim the protocol off of URLs.
   1122 pref("browser.urlbar.trimURLs", false);