all.js (198118B)
1 // -*- indent-tabs-mode: nil; js-indent-level: 2 -*- 2 // This Source Code Form is subject to the terms of the Mozilla Public 3 // License, v. 2.0. If a copy of the MPL was not distributed with this 4 // file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 5 6 // The prefs in this file are shipped with the GRE and should apply to all 7 // embedding situations. Application-specific preferences belong somewhere 8 // else, such as browser/app/profile/firefox.js or 9 // mobile/android/app/geckoview-prefs.js. 10 // 11 // NOTE: Not all prefs should be defined in this (or any other) data file. 12 // Static prefs are defined in StaticPrefList.yaml. Those prefs should *not* 13 // appear in this file. 14 // 15 // For the syntax used by this file, consult the comments at the top of 16 // modules/libpref/parser/src/lib.rs. 17 // 18 // Please indent all prefs defined within #ifdef/#ifndef conditions. This 19 // improves readability, particular for conditional blocks that exceed a single 20 // screen. 21 22 pref("security.tls.insecure_fallback_hosts", ""); 23 24 pref("security.default_personal_cert", "Ask Every Time"); 25 26 // This preference controls what signature algorithms are accepted for signed 27 // apps (i.e. add-ons). The number is interpreted as a bit mask with the 28 // following semantic: 29 // The lowest order bit determines which PKCS#7 algorithms are accepted. 30 // xxx_0_: SHA-1 and/or SHA-256 PKCS#7 allowed 31 // xxx_1_: SHA-256 PKCS#7 allowed 32 // The next two bits determine whether COSE is required and PKCS#7 is allowed 33 // x_00_x: COSE disabled, ignore files, PKCS#7 must verify 34 // x_01_x: COSE is verified if present, PKCS#7 must verify 35 // x_10_x: COSE is required, PKCS#7 must verify if present 36 // x_11_x: COSE is required, PKCS#7 disabled (fail when present) 37 pref("security.signed_app_signatures.policy", 2); 38 39 // Issuer we use to detect MitM proxies. Set to the issuer of the cert of the 40 // Firefox update service. The string format is whatever NSS uses to print a DN. 41 // This value is set and cleared automatically. 42 pref("security.pki.mitm_canary_issuer", ""); 43 // Pref to disable the MitM proxy checks. 44 pref("security.pki.mitm_canary_issuer.enabled", true); 45 46 // It is set to true when a non-built-in root certificate is detected on a 47 // Firefox update service's connection. 48 // This value is set automatically. 49 // The difference between security.pki.mitm_canary_issuer and this pref is that 50 // here the root is trusted but not a built-in, whereas for 51 // security.pki.mitm_canary_issuer.enabled, the root is not trusted. 52 pref("security.pki.mitm_detected", false); 53 54 // Intermediate CA Preloading settings 55 pref("security.remote_settings.intermediates.enabled", true); 56 pref("security.remote_settings.intermediates.downloads_per_poll", 5000); 57 pref("security.remote_settings.intermediates.parallel_downloads", 8); 58 59 pref("security.remote_settings.crlite_filters.enabled", true); 60 61 pref("security.osreauthenticator.blank_password", false); 62 pref("security.osreauthenticator.password_last_changed_lo", 0); 63 pref("security.osreauthenticator.password_last_changed_hi", 0); 64 65 pref("security.crash_tracking.js_load_1.prevCrashes", 0); 66 pref("security.crash_tracking.js_load_1.maxCrashes", 1); 67 68 pref("general.useragent.compatMode.firefox", false); 69 70 pref("general.config.obscure_value", 13); // for MCD .cfg files 71 72 // Whether middle button click with a modifier key starts to autoscroll or 73 // does nothing. 74 pref("general.autoscroll.prevent_to_start.shiftKey", true); // Shift 75 pref("general.autoscroll.prevent_to_start.ctrlKey", false); // Control 76 pref("general.autoscroll.prevent_to_start.altKey", false); // Alt 77 // Command on macOS, Windows key on Windows or Super key on Linux 78 pref("general.autoscroll.prevent_to_start.metaKey", false); 79 80 // When this pref is set to true, middle click on non-editable content keeps 81 // selected range rather than collapsing selection at the clicked position. 82 // This behavior is incompatible with Chrome, so enabling this could cause 83 // breaking some web apps. 84 // Note that this pref is ignored when "general.autoScroll" is set to false 85 // or "middlemouse.paste" is set to true. For the former case, there is no 86 // reason do be incompatible with Chrome. For the latter case, the selection 87 // change is important for "paste" event listeners even if it's non-editable 88 // content. 89 pref("general.autoscroll.prevent_to_collapse_selection_by_middle_mouse_down", false); 90 91 // maximum number of dated backups to keep at any time 92 pref("browser.bookmarks.max_backups", 5); 93 94 pref("browser.cache.disk_cache_ssl", true); 95 // The half life used to re-compute cache entries frecency in hours. 96 pref("browser.cache.frecency_half_life_hours", 6); 97 98 // Don't show "Open with" option on download dialog if true. 99 pref("browser.download.forbid_open_with", false); 100 101 // Enable indexedDB logging. 102 pref("dom.indexedDB.logging.enabled", true); 103 // Detailed output in log messages. 104 pref("dom.indexedDB.logging.details", true); 105 // Enable profiler marks for indexedDB events. 106 pref("dom.indexedDB.logging.profiler-marks", false); 107 108 // The number of workers per domain allowed to run concurrently. 109 // We're going for effectively infinite, while preventing abuse. 110 pref("dom.workers.maxPerDomain", 512); 111 112 // The amount of time (milliseconds) service workers keep running after each event. 113 pref("dom.serviceWorkers.idle_timeout", 30000); 114 115 // The amount of time (milliseconds) service workers can be kept running using waitUntil promises 116 // or executing "long-running" JS after the "idle_timeout" period has expired. 117 pref("dom.serviceWorkers.idle_extended_timeout", 30000); 118 119 // The amount of time (milliseconds) an update request is delayed when triggered 120 // by a service worker that doesn't control any clients. 121 pref("dom.serviceWorkers.update_delay", 1000); 122 123 // Enable test for 24 hours update, service workers will always treat last update check time is over 24 hours 124 pref("dom.serviceWorkers.testUpdateOverOneDay", false); 125 126 // Blacklist of domains of web apps which are not aware of strict keypress 127 // dispatching behavior. This is comma separated list. If you need to match 128 // all sub-domains, you can specify it as "*.example.com". Additionally, you 129 // can limit the path. E.g., "example.com/foo" means "example.com/foo*". So, 130 // if you need to limit under a directory, the path should end with "/" like 131 // "example.com/foo/". Note that this cannot limit port number for now. 132 pref("dom.keyboardevent.keypress.hack.dispatch_non_printable_keys", "www.icloud.com"); 133 // Pref for end-users and policy to add additional values. 134 pref("dom.keyboardevent.keypress.hack.dispatch_non_printable_keys.addl", ""); 135 136 // Blacklist of domains of web apps which handle keyCode and charCode of 137 // keypress events with a path only for Firefox (i.e., broken if we set 138 // non-zero keyCode or charCode value to the other). The format is exactly 139 // same as "dom.keyboardevent.keypress.hack.dispatch_non_printable_keys". So, 140 // check its explanation for the detail. 141 pref("dom.keyboardevent.keypress.hack.use_legacy_keycode_and_charcode", "*.collabserv.com,*.gov.online.office365.us,*.officeapps-df.live.com,*.officeapps.live.com,*.online.office.de,*.partner.officewebapps.cn,*.scniris.com"); 142 // Pref for end-users and policy to add additional values. 143 pref("dom.keyboardevent.keypress.hack.use_legacy_keycode_and_charcode.addl", ""); 144 145 // Text recognition is a platform dependent feature, so even if this preference is 146 // enabled here, the feature may not be visible in all browsers. 147 pref("dom.text-recognition.enabled", true); 148 149 // Fastback caching - if this pref is negative, then we calculate the number 150 // of content viewers to cache based on the amount of available memory. 151 pref("browser.sessionhistory.max_total_viewers", -1); 152 153 // See http://whatwg.org/specs/web-apps/current-work/#ping 154 pref("browser.send_pings", false); 155 pref("browser.send_pings.max_per_link", 1); // limit the number of pings that are sent per link click 156 pref("browser.send_pings.require_same_host", false); // only send pings to the same host if this is true 157 158 pref("browser.helperApps.neverAsk.saveToDisk", ""); 159 pref("browser.helperApps.neverAsk.openFile", ""); 160 pref("browser.helperApps.deleteTempFileOnExit", false); 161 162 pref("browser.triple_click_selects_paragraph", true); 163 164 // Disable support for MathML 165 pref("mathml.disabled", false); 166 167 // Enable scale transform for stretchy MathML operators. See bug 414277. 168 pref("mathml.scale_stretchy_operators.enabled", true); 169 170 // We'll throttle the download if the download rate is throttle-factor times 171 // the estimated playback rate, AND we satisfy the cache readahead_limit 172 // above. The estimated playback rate is time_duration/length_in_bytes. 173 // This means we'll only throttle the download if there's no concern that 174 // throttling would cause us to stop and buffer. 175 pref("media.throttle-factor", 2); 176 177 // Master HTML5 media volume scale. 178 pref("media.volume_scale", "1.0"); 179 180 // Whether we should play videos opened in a "video document", i.e. videos 181 // opened as top-level documents, as opposed to inside a media element. 182 pref("media.play-stand-alone", true); 183 184 #ifdef MOZ_WMF 185 pref("media.wmf.play-stand-alone", true); 186 #endif 187 188 // GMP storage version number. At startup we check the version against 189 // media.gmp.storage.version.observed, and if the versions don't match, 190 // we clear storage and set media.gmp.storage.version.observed=expected. 191 // This provides a mechanism to clear GMP storage when non-compatible 192 // changes are made. 193 pref("media.gmp.storage.version.expected", 1); 194 195 // Filter what triggers user notifications. 196 // See DecoderDoctorDocumentWatcher::ReportAnalysis for details. 197 #ifdef NIGHTLY_BUILD 198 pref("media.decoder-doctor.notifications-allowed", "MediaWMFNeeded,MediaWidevineNoWMF,MediaCannotInitializePulseAudio,MediaCannotPlayNoDecoders,MediaUnsupportedLibavcodec,MediaPlatformDecoderNotFound,MediaDecodeError"); 199 #else 200 pref("media.decoder-doctor.notifications-allowed", "MediaWMFNeeded,MediaWidevineNoWMF,MediaCannotInitializePulseAudio,MediaCannotPlayNoDecoders,MediaUnsupportedLibavcodec,MediaPlatformDecoderNotFound"); 201 #endif 202 pref("media.decoder-doctor.decode-errors-allowed", ""); 203 pref("media.decoder-doctor.decode-warnings-allowed", ""); 204 // Whether we report partial failures. 205 pref("media.decoder-doctor.verbose", false); 206 // URL to report decode issues 207 pref("media.decoder-doctor.new-issue-endpoint", "https://webcompat.com/issues/new"); 208 209 pref("media.videocontrols.picture-in-picture.enabled", false); 210 pref("media.videocontrols.picture-in-picture.display-text-tracks.enabled", true); 211 pref("media.videocontrols.picture-in-picture.video-toggle.enabled", false); 212 pref("media.videocontrols.picture-in-picture.video-toggle.always-show", false); 213 pref("media.videocontrols.picture-in-picture.video-toggle.min-video-secs", 45); 214 pref("media.videocontrols.picture-in-picture.video-toggle.position", "right"); 215 pref("media.videocontrols.picture-in-picture.video-toggle.has-used", false); 216 pref("media.videocontrols.picture-in-picture.display-text-tracks.toggle.enabled", true); 217 pref("media.videocontrols.picture-in-picture.display-text-tracks.size", "medium"); 218 pref("media.videocontrols.picture-in-picture.improved-video-controls.enabled", true); 219 pref("media.videocontrols.picture-in-picture.respect-disablePictureInPicture", true); 220 pref("media.videocontrols.keyboard-tab-to-all-controls", true); 221 222 #ifdef MOZ_WEBRTC 223 pref("media.navigator.video.enabled", true); 224 pref("media.navigator.video.default_fps",30); 225 // Whether to expose the resizeMode constraint/setting/capability to content. 226 // Kept false while implementing the feature in bug 1286945 and dependencies, 227 // to allow for gradually gaining support and test coverage. 228 pref("media.navigator.video.resize_mode.enabled", true); 229 pref("media.navigator.video.default_resize_mode", 1); // 0=none, 1=crop-and-scale 230 pref("media.navigator.video.use_remb", true); 231 pref("media.navigator.video.use_transport_cc", true); 232 pref("media.peerconnection.video.use_rtx", true); 233 pref("media.peerconnection.video.use_rtx.blocklist", "doxy.me,*.doxy.me"); 234 pref("media.peerconnection.sdp.quirk.duplicate_fingerprint.allowlist", ""); 235 pref("media.navigator.video.use_tmmbr", false); 236 pref("media.navigator.audio.use_fec", true); 237 pref("media.navigator.video.offer_rtcp_rsize", true); 238 239 #ifdef NIGHTLY_BUILD 240 pref("media.peerconnection.sdp.parser", "sipcc"); 241 pref("media.peerconnection.sdp.alternate_parse_mode", "parallel"); 242 pref("media.peerconnection.sdp.strict_success", false); 243 pref("media.navigator.video.red_ulpfec_enabled", true); 244 #else 245 pref("media.peerconnection.sdp.parser", "sipcc"); 246 pref("media.peerconnection.sdp.alternate_parse_mode", "never"); 247 pref("media.peerconnection.sdp.strict_success", false); 248 pref("media.navigator.video.red_ulpfec_enabled", true); 249 #endif 250 251 pref("media.peerconnection.sctp.use_dcsctp", true); 252 pref("media.peerconnection.sdp.disable_stereo_fmtp", false); 253 pref("media.webrtc.debug.log_file", ""); 254 255 pref("media.navigator.video.default_width",0); // adaptive default 256 pref("media.navigator.video.default_height",0); // adaptive default 257 pref("media.navigator.video.max_fs", 12288); // Enough for 2048x1536 258 pref("media.navigator.video.max_fr", 60); 259 pref("media.navigator.video.disable_h264_baseline", false); 260 pref("media.navigator.video.h264.level", 31); // 0x42E01f - level 3.1 261 pref("media.navigator.video.h264.max_br", 0); 262 pref("media.navigator.video.h264.max_mbps", 0); 263 pref("media.peerconnection.video.vp9_enabled", true); 264 pref("media.peerconnection.video.vp9_preferred", false); 265 pref("media.getusermedia.audio.max_channels", 0); 266 #if defined(ANDROID) 267 pref("media.getusermedia.camera.off_while_disabled.enabled", false); 268 pref("media.getusermedia.microphone.off_while_disabled.enabled", false); 269 #else 270 pref("media.getusermedia.camera.off_while_disabled.enabled", true); 271 pref("media.getusermedia.microphone.off_while_disabled.enabled", false); 272 #endif 273 pref("media.getusermedia.camera.off_while_disabled.delay_ms", 3000); 274 pref("media.getusermedia.microphone.off_while_disabled.delay_ms", 3000); 275 // Desktop is typically VGA capture or more; and qm_select will not drop resolution 276 // below 1/2 in each dimension (or so), so QVGA (320x200) is the lowest here usually. 277 pref("media.peerconnection.video.min_bitrate", 0); 278 pref("media.peerconnection.video.start_bitrate", 0); 279 pref("media.peerconnection.video.max_bitrate", 0); 280 pref("media.peerconnection.video.min_bitrate_estimate", 0); 281 pref("media.peerconnection.video.denoising", false); 282 pref("media.navigator.audio.fake_frequency", 1000); 283 pref("media.navigator.permission.disabled", false); 284 pref("media.navigator.streams.fake", false); 285 pref("media.peerconnection.default_iceservers", "[]"); 286 pref("media.peerconnection.allow_old_setParameters", true); 287 pref("media.peerconnection.ice.loopback", false); // Set only for testing in offline environments. 288 pref("media.peerconnection.ice.tcp", true); 289 pref("media.peerconnection.ice.tcp_so_sock_count", 0); // Disable SO gathering 290 pref("media.peerconnection.ice.link_local", false); // Set only for testing IPV6 in networks that don't assign IPV6 addresses 291 pref("media.peerconnection.ice.force_interface", ""); // Limit to only a single interface 292 pref("media.peerconnection.ice.relay_only", false); // Limit candidates to TURN 293 pref("media.peerconnection.use_document_iceservers", true); 294 295 pref("media.peerconnection.identity.timeout", 10000); 296 pref("media.peerconnection.ice.stun_client_maximum_transmits", 7); 297 pref("media.peerconnection.ice.trickle_grace_period", 5000); 298 pref("media.peerconnection.ice.no_host", false); 299 pref("media.peerconnection.ice.default_address_only", false); 300 // See Bug 1581947 for Android hostname obfuscation 301 #if defined(MOZ_WIDGET_ANDROID) 302 pref("media.peerconnection.ice.obfuscate_host_addresses", false); 303 #else 304 pref("media.peerconnection.ice.obfuscate_host_addresses", true); 305 #endif 306 pref("media.peerconnection.ice.obfuscate_host_addresses.blocklist", ""); 307 pref("media.peerconnection.ice.proxy_only_if_behind_proxy", false); 308 pref("media.peerconnection.ice.proxy_only", false); 309 pref("media.peerconnection.ice.proxy_only_if_pbmode", false); 310 pref("media.peerconnection.turn.disable", false); 311 pref("media.peerconnection.treat_warnings_as_errors", false); 312 #ifdef NIGHTLY_BUILD 313 pref("media.peerconnection.description.legacy.enabled", false); 314 #else 315 pref("media.peerconnection.description.legacy.enabled", true); 316 #endif 317 318 // 770 = DTLS 1.0, 771 = DTLS 1.2, 772 = DTLS 1.3 319 pref("media.peerconnection.dtls.version.min", 771); 320 pref("media.peerconnection.dtls.version.max", 772); 321 322 pref("media.peerconnection.sctp.default_max_streams", 2048); 323 324 #if defined(XP_MACOSX) 325 pref("media.getusermedia.audio.processing.platform.enabled", true); 326 #else 327 pref("media.getusermedia.audio.processing.platform.enabled", false); 328 #endif 329 // These values (aec, agc, and noise) are from: 330 // third_party/libwebrtc/modules/audio_processing/include/audio_processing.h 331 pref("media.getusermedia.audio.processing.aec.enabled", true); 332 pref("media.getusermedia.audio.processing.aec", 1); // kModerateSuppression 333 pref("media.getusermedia.audio.processing.aec.mobile", false); 334 pref("media.getusermedia.audio.processing.noise.enabled", true); 335 pref("media.getusermedia.audio.processing.noise", 2); // kHigh 336 pref("media.getusermedia.audio.processing.agc.enabled", true); 337 pref("media.getusermedia.audio.processing.agc", 1); // kAdaptiveDigital 338 pref("media.getusermedia.audio.processing.agc2.forced", true); 339 pref("media.getusermedia.audio.processing.hpf.enabled", true); 340 pref("media.getusermedia.audio.processing.transient.enabled", true); 341 #endif // MOZ_WEBRTC 342 343 #if !defined(ANDROID) 344 pref("media.getusermedia.screensharing.enabled", true); 345 #endif 346 347 pref("media.getusermedia.audio.capture.enabled", false); 348 349 // WebVTT debug logging. 350 pref("media.webvtt.debug.logging", false); 351 352 // Whether to allow recording of AudioNodes with MediaRecorder 353 pref("media.recorder.audio_node.enabled", false); 354 355 // Whether MediaRecorder's video encoder should allow dropping frames in order 356 // to keep up under load. Useful for tests but beware of memory consumption! 357 pref("media.recorder.video.frame_drops", true); 358 359 pref("media.cubeb.output_voice_routing", true); 360 361 // Force cubeb to use the mock context, which exposes only fake devices. 362 pref("media.cubeb.force_mock_context", false); 363 364 // APZ preferences. For documentation/details on what these prefs do, check 365 // gfx/layers/apz/src/AsyncPanZoomController.cpp. 366 pref("apz.overscroll.stop_velocity_threshold", "0.01"); 367 pref("apz.overscroll.stretch_factor", "0.35"); 368 369 pref("apz.zoom-to-focused-input.enabled", true); 370 371 pref("formhelper.autozoom.force-disable.test-only", false); 372 373 #ifdef XP_MACOSX 374 // Whether to run in native HiDPI mode on machines with "Retina"/HiDPI 375 // display. 376 // <= 0 : hidpi mode disabled, display will just use pixel-based upscaling. 377 // == 1 : hidpi supported if all screens share the same backingScaleFactor. 378 // >= 2 : hidpi supported even with mixed backingScaleFactors (somewhat 379 // broken). 380 pref("gfx.hidpi.enabled", 2); 381 #endif 382 383 pref("gfx.downloadable_fonts.enabled", true); 384 pref("gfx.downloadable_fonts.fallback_delay", 3000); 385 pref("gfx.downloadable_fonts.fallback_delay_short", 100); 386 387 #ifdef XP_WIN 388 pref("gfx.font_rendering.directwrite.use_gdi_table_loading", true); 389 #endif 390 391 // comma separated list of backends to use in order of preference 392 // e.g., pref("gfx.canvas.azure.backends", "direct2d,skia"); 393 pref("gfx.canvas.azure.backends", "skia"); 394 pref("gfx.content.azure.backends", "skia"); 395 396 #ifdef XP_WIN 397 pref("gfx.webrender.flip-sequential", false); 398 pref("gfx.webrender.dcomp-win.enabled", true); 399 pref("gfx.webrender.triple-buffering.enabled", true); 400 #endif 401 402 // WebRender debugging utilities. 403 pref("gfx.webrender.debug.texture-cache", false); 404 pref("gfx.webrender.debug.texture-cache.clear-evicted", true); 405 pref("gfx.webrender.debug.render-targets", false); 406 pref("gfx.webrender.debug.gpu-cache", false); 407 pref("gfx.webrender.debug.alpha-primitives", false); 408 pref("gfx.webrender.debug.profiler", false); 409 pref("gfx.webrender.debug.gpu-time-queries", false); 410 pref("gfx.webrender.debug.gpu-sample-queries", false); 411 pref("gfx.webrender.debug.disable-batching", false); 412 pref("gfx.webrender.debug.epochs", false); 413 pref("gfx.webrender.debug.echo-driver-messages", false); 414 pref("gfx.webrender.debug.show-overdraw", false); 415 pref("gfx.webrender.debug.slow-frame-indicator", false); 416 pref("gfx.webrender.debug.picture-caching", false); 417 pref("gfx.webrender.debug.picture-borders", false); 418 pref("gfx.webrender.debug.force-picture-invalidation", false); 419 pref("gfx.webrender.debug.primitives", false); 420 pref("gfx.webrender.debug.small-screen", false); 421 pref("gfx.webrender.debug.obscure-images", false); 422 pref("gfx.webrender.debug.glyph-flashing", false); 423 pref("gfx.webrender.debug.capture-profiler", false); 424 pref("gfx.webrender.debug.profiler-ui", "Default"); 425 pref("gfx.webrender.debug.window-visibility", false); 426 pref("gfx.webrender.debug.external-composite-borders", false); 427 428 pref("gfx.webrender.multithreading", true); 429 #ifdef XP_WIN 430 pref("gfx.webrender.pbo-uploads", false); 431 pref("gfx.webrender.batched-texture-uploads", true); 432 pref("gfx.webrender.draw-calls-for-texture-copy", true); 433 #else 434 pref("gfx.webrender.pbo-uploads", true); 435 pref("gfx.webrender.batched-texture-uploads", false); 436 pref("gfx.webrender.draw-calls-for-texture-copy", false); 437 #endif 438 439 440 pref("accessibility.warn_on_browsewithcaret", true); 441 442 pref("accessibility.browsewithcaret_shortcut.enabled", true); 443 444 // We follow the "Click in the scrollbar to:" system preference on OS X and 445 // "gtk-primary-button-warps-slider" property with GTK (since 2.24 / 3.6), 446 // unless this preference is explicitly set. 447 #if !defined(XP_MACOSX) && !defined(MOZ_WIDGET_GTK) 448 pref("ui.scrollToClick", 0); 449 #endif 450 451 // These are some selection-related colors which have no per platform 452 // implementation. 453 #if !defined(XP_MACOSX) 454 pref("ui.textSelectDisabledBackground", "#b0b0b0"); 455 #endif 456 457 // This makes the selection stand out when typeaheadfind is on. 458 // Used with nsISelectionController::SELECTION_ATTENTION 459 pref("ui.textSelectAttentionBackground", "#38d878"); 460 pref("ui.textSelectAttentionForeground", "#ffffff"); 461 462 // This makes the matched text stand out when findbar highlighting is on. 463 // Used with nsISelectionController::SELECTION_FIND 464 pref("ui.textHighlightBackground", "#ef0fff"); 465 // The foreground color for the matched text in findbar highlighting 466 // Used with nsISelectionController::SELECTION_FIND 467 pref("ui.textHighlightForeground", "#ffffff"); 468 469 // We want the ability to forcibly disable platform a11y, because 470 // some non-a11y-related components attempt to bring it up. See bug 471 // 538530 for details about Windows; we have a pref here that allows it 472 // to be disabled for performance and testing resons. 473 // See bug 761589 for the crossplatform aspect. 474 // 475 // This pref is checked only once, and the browser needs a restart to 476 // pick up any changes. 477 // 478 // Values are -1 always on. 1 always off, 0 is auto as some platform perform 479 // further checks. 480 pref("accessibility.force_disabled", 0); 481 482 pref("focusmanager.testmode", false); 483 484 // Type Ahead Find 485 pref("accessibility.typeaheadfind", true); 486 // Enable FAYT by pressing / or " 487 pref("accessibility.typeaheadfind.manual", true); 488 // casesensitive: controls the find bar's case-sensitivity 489 // 0 - "never" (case-insensitive) 490 // 1 - "always" (case-sensitive) 491 // other - "auto" (case-sensitive for mixed-case input, insensitive otherwise) 492 pref("accessibility.typeaheadfind.casesensitive", 0); 493 pref("accessibility.typeaheadfind.linksonly", true); 494 pref("accessibility.typeaheadfind.startlinksonly", false); 495 // timeout: controls the delay in milliseconds after which the quick-find dialog will close 496 // if no further keystrokes are pressed 497 // set to a zero or negative value to keep dialog open until it's manually closed 498 pref("accessibility.typeaheadfind.timeout", 4000); 499 pref("accessibility.typeaheadfind.soundURL", "beep"); 500 pref("accessibility.typeaheadfind.wrappedSoundURL", ""); 501 pref("accessibility.typeaheadfind.enablesound", true); 502 #ifdef XP_MACOSX 503 pref("accessibility.typeaheadfind.prefillwithselection", false); 504 #else 505 pref("accessibility.typeaheadfind.prefillwithselection", true); 506 #endif 507 pref("accessibility.typeaheadfind.matchesCountLimit", 1000); 508 pref("findbar.highlightAll", false); 509 pref("findbar.entireword", false); 510 pref("findbar.iteratorTimeout", 100); 511 // matchdiacritics: controls the find bar's diacritic matching 512 // 0 - "never" (ignore diacritics) 513 // 1 - "always" (match diacritics) 514 // other - "auto" (match diacritics if input has diacritics, ignore otherwise) 515 pref("findbar.matchdiacritics", 0); 516 pref("findbar.modalHighlight", false); 517 518 // use Mac OS X Appearance panel text smoothing setting when rendering text, disabled by default 519 pref("gfx.use_text_smoothing_setting", false); 520 521 // Number of characters to consider emphasizing for rich autocomplete results 522 pref("toolkit.autocomplete.richBoundaryCutoff", 200); 523 524 pref("toolkit.scrollbox.scrollIncrement", 20); 525 pref("toolkit.scrollbox.clickToScroll.scrollDelay", 150); 526 527 pref("toolkit.shopping.ohttpConfigURL", "https://prod.ohttp-gateway.prod.webservices.mozgcp.net/ohttp-configs"); 528 pref("toolkit.shopping.ohttpRelayURL", "https://mozilla-ohttp.fastly-edge.com/"); 529 530 // Controls logging for Sqlite.sys.mjs. 531 pref("toolkit.sqlitejsm.loglevel", "Error"); 532 533 pref("toolkit.tabbox.switchByScrolling", false); 534 535 // Telemetry settings. 536 // Server to submit telemetry pings to. 537 pref("toolkit.telemetry.server", "https://incoming.telemetry.mozilla.org"); 538 // Telemetry server owner. Please change if you set toolkit.telemetry.server to a different server 539 pref("toolkit.telemetry.server_owner", "Mozilla"); 540 // Determines whether full SQL strings are returned when they might contain sensitive info 541 // i.e. dynamically constructed SQL strings or SQL executed by addons against addon DBs 542 pref("toolkit.telemetry.debugSlowSql", false); 543 // Whether to use the unified telemetry behavior, requires a restart. 544 pref("toolkit.telemetry.unified", true); 545 546 // DAP related preferences 547 pref("toolkit.telemetry.dap_enabled", false); 548 pref("toolkit.telemetry.dap.logLevel", "Warn"); 549 // Verification tasks 550 pref("toolkit.telemetry.dap_task1_enabled", false); 551 pref("toolkit.telemetry.dap_task1_taskid", ""); 552 // URL visit counting 553 pref("toolkit.telemetry.dap_visit_counting_enabled", false); 554 // Note: format of patterns is "<proto>://<host>/<path>" 555 // See https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns 556 pref("toolkit.telemetry.dap_visit_counting_experiment_list", "[]"); 557 // DAP protocol Leader endpoint. Operated by DivviUp/ISRG. 558 // - HPKE key is base64url-encoded response of the /hpke_config path on server. 559 pref("toolkit.telemetry.dap.leader.url", "https://dap-09-3.api.divviup.org"); 560 pref("toolkit.telemetry.dap.leader.hpke", "ACkAACAAAQABACDk8wgwe2-TqHyaL74uqjVWMcF1zi9pxiwQhu4aPwncYw"); 561 // DAP protocol Helper endpoint. Operated by Mozilla. 562 // - HPKE key is base64url-encoded response of the /hpke_config path on server. 563 pref("toolkit.telemetry.dap.helper.url", "https://dap.services.mozilla.com"); 564 pref("toolkit.telemetry.dap.helper.hpke", "ACkAACAAAQABACAucqWdIQRN6BxumPBRXIlg2JsxcznwWX7vyqzM3cjuQA"); 565 566 // Controls telemetry logs for the Translations feature throughout Firefox. 567 pref("toolkit.telemetry.translations.logLevel", "Error"); 568 569 // pref for mozilla to induce a new ping from users. This value should only ever be increased 570 // and doing so will induce a new data ping from all users, so be careful. Mozilla may edit 571 // this pref via our remote update/experimentation system 572 pref("toolkit.telemetry.user_characteristics_ping.current_version", 0); 573 // pref containing the value for the user of the last version of the ping we sent 574 pref("toolkit.telemetry.user_characteristics_ping.last_version_sent", 0); 575 // if a user wants to disable this type of ping explicitly, set this to true 576 // firefox/mozilla will not modify this value. 577 pref("toolkit.telemetry.user_characteristics_ping.opt-out", false); 578 // if a user wants to send a single ping of this type, they can set it 579 // to true. It will be set to false again after a successfull ping. 580 pref("toolkit.telemetry.user_characteristics_ping.send-once", false); 581 // A unique identifier for the user characteristics ping. This is not the same as 582 // the telemetry client id (which is not sent in this ping), it is cleared when a 583 // user opts-out of telemetry, it is set upon first telemetry submission 584 pref("toolkit.telemetry.user_characteristics_ping.uuid", ""); 585 pref("toolkit.telemetry.user_characteristics_ping.logLevel", "Warn"); 586 587 // AsyncShutdown delay before crashing in case of shutdown freeze 588 // ASan, TSan and code coverage builds can be considerably slower. Extend the 589 // grace period for both the asyncshutdown and the terminator. 590 #if defined(MOZ_ASAN) 591 pref("toolkit.asyncshutdown.crash_timeout", 300000); // 5 minutes 592 #elif defined(MOZ_TSAN) 593 pref("toolkit.asyncshutdown.crash_timeout", 360000); // 6 minutes 594 #elif defined(MOZ_CODE_COVERAGE) 595 pref("toolkit.asyncshutdown.crash_timeout", 180000); // 3 minutes 596 #else 597 pref("toolkit.asyncshutdown.crash_timeout", 60000); // 1 minute 598 #endif // !defined(MOZ_ASAN) && !defined(MOZ_TSAN) 599 // Extra logging for AsyncShutdown barriers and phases 600 pref("toolkit.asyncshutdown.log", false); 601 602 // Enable JS dump() function. 603 // IMPORTANT: These prefs must be here even though they're also defined in 604 // StaticPrefList.yaml. They are required because MOZILLA_OFFICIAL is false in 605 // local full builds but true in artifact builds. Without these definitions 606 // here, dumping is disabled in artifact builds (see Bug 1490412). 607 #ifdef MOZILLA_OFFICIAL 608 pref("browser.dom.window.dump.enabled", false, sticky); 609 pref("devtools.console.stdout.chrome", false, sticky); 610 #else 611 pref("browser.dom.window.dump.enabled", true, sticky); 612 pref("devtools.console.stdout.chrome", true, sticky); 613 #endif 614 615 pref("devtools.console.stdout.content", false, sticky); 616 617 // Controls whether EventEmitter module throws dump message on each emit 618 pref("toolkit.dump.emit", false); 619 620 // Preferences for the new performance panel. Note that some preferences are duplicated 621 // with a ".remote" postfix. This is because we have one set of preference for local 622 // profiling, and a second set for remote profiling. 623 624 // This pref configures the base URL for the profiler.firefox.com instance to 625 // use. This is useful so that a developer can change it while working on 626 // profiler.firefox.com, or in tests. This isn't exposed directly to the user. 627 pref("devtools.performance.recording.ui-base-url", "https://profiler.firefox.com"); 628 // When gathering profiles from child processes, this is the longest time (in 629 // seconds) allowed between two responses. 0 = Use internal default. 630 pref("devtools.performance.recording.child.timeout_s", 15); 631 // The popup is only enabled by default on Nightly, Dev Edition, and debug buildsd since 632 // it's a developer focused item. It can still be enabled by going to profiler.firefox.com, 633 // but by default it is off on Release and Beta. Note that this only adds it to the 634 // the customization palette, not to the navbar. 635 #if defined(NIGHTLY_BUILD) || defined(MOZ_DEV_EDITION) || defined(DEBUG) 636 pref("devtools.performance.popup.feature-flag", true); 637 #else 638 pref("devtools.performance.popup.feature-flag", false); 639 #endif 640 // The preset to use for the recording settings. If set to "custom" then the pref 641 // values below will be used. 642 #if defined(NIGHTLY_BUILD) || !defined(MOZILLA_OFFICIAL) 643 // Use a more advanced preset on Nightly and local builds. 644 pref("devtools.performance.recording.preset", "firefox-platform"); 645 pref("devtools.performance.recording.preset.remote", "firefox-platform"); 646 #else 647 pref("devtools.performance.recording.preset", "web-developer"); 648 pref("devtools.performance.recording.preset.remote", "web-developer"); 649 #endif 650 // The profiler's active tab view has a few issues. Disable it until the issues 651 // are ironed out. 652 pref("devtools.performance.recording.active-tab-view.enabled", false); 653 // Profiler buffer size. It is the maximum number of 8-bytes entries in the 654 // profiler's buffer. 10000000 is ~80mb. 655 pref("devtools.performance.recording.entries", 10000000); 656 pref("devtools.performance.recording.entries.remote", 10000000); 657 // Profiler interval in microseconds. 1000µs is 1ms 658 pref("devtools.performance.recording.interval", 1000); 659 pref("devtools.performance.recording.interval.remote", 1000); 660 // Profiler duration of entries in the profiler's buffer in seconds. 661 // `0` means no time limit for the markers, they roll off naturally from the 662 // circular buffer. 663 pref("devtools.performance.recording.duration", 0); 664 pref("devtools.performance.recording.duration.remote", 0); 665 // Profiler feature set. See tools/profiler/core/platform.cpp for features and 666 // explanations. Remote profiling also includes the java feature by default. 667 // If the remote debuggee isn't an Android phone, then this feature will 668 // be ignored. 669 pref("devtools.performance.recording.features", "[\"js\",\"stackwalk\",\"cpu\",\"screenshots\",\"memory\"]"); 670 pref("devtools.performance.recording.features.remote", "[\"js\",\"stackwalk\",\"cpu\",\"screenshots\",\"memory\",\"java\"]"); 671 // Threads to be captured by the profiler. 672 pref("devtools.performance.recording.threads", "[\"GeckoMain\",\"Compositor\",\"Renderer\"]"); 673 pref("devtools.performance.recording.threads.remote", "[\"GeckoMain\",\"Compositor\",\"Renderer\"]"); 674 // A JSON array of strings, where each string is a file path to an objdir on 675 // the host machine. This is used in order to look up symbol information from 676 // build artifacts of local builds. 677 pref("devtools.performance.recording.objdirs", "[]"); 678 pref("devtools.performance.recording.power.external-url", ""); 679 pref("devtools.performance.recording.markers.external-url", ""); 680 // The popup will display some introductory text the first time it is displayed. 681 pref("devtools.performance.popup.intro-displayed", false); 682 // This preference controls whether the "more actions" menu in about:profiling 683 // contains entries that help Firefox developers. 684 #if defined(NIGHTLY_BUILD) || !defined(MOZILLA_OFFICIAL) 685 pref("devtools.performance.aboutprofiling.has-developer-options", true); 686 #else 687 pref("devtools.performance.aboutprofiling.has-developer-options", false); 688 #endif 689 690 // Compatibility preferences 691 // Stringified array of target browsers that users investigate. 692 pref("devtools.inspector.compatibility.target-browsers", ""); 693 694 // view source 695 pref("view_source.editor.path", ""); 696 // allows to add further arguments to the editor; use the %LINE% placeholder 697 // for jumping to a specific line (e.g. "/line:%LINE%" or "--goto %LINE%") 698 pref("view_source.editor.args", ""); 699 700 // whether or not to draw images while dragging 701 pref("nglayout.enable_drag_images", true); 702 703 // URI fixup prefs 704 pref("browser.fixup.alternate.prefix", "www."); 705 pref("browser.fixup.alternate.protocol", "https"); 706 pref("browser.fixup.alternate.suffix", ".com"); 707 pref("browser.fixup.fallback-to-https", true); 708 709 // NOTE: On most platforms we save print settins to prefs with the name of the 710 // printer in the pref name (Android being the notable exception, where prefs 711 // are saved "globally" without a printer name in the pref name). For those 712 // platforms, the prefs below simply act as default values for when we 713 // encounter a printer for the first time, but only a subset of prefs will be 714 // used in this case. See nsPrintSettingsService::InitPrintSettingsFromPrefs 715 // for the restrictions on which prefs can act as defaults. 716 717 // Print/Preview Shrink-To-Fit won't shrink below 20% for text-ish documents. 718 pref("print.shrink-to-fit.scale-limit-percent", 20); 719 720 // Whether or not to force the Page Setup submenu of the File menu to shown 721 pref("print.show_page_setup_menu", false); 722 723 // Print header customization 724 // Use the following codes: 725 // &T - Title 726 // &U - Document URL 727 // &D - Date/Time 728 // &P - Page Number 729 // &PT - Page Number "of" Page total 730 // Set each header to a string containing zero or one of these codes 731 // and the code will be replaced in that string by the corresponding data 732 pref("print.print_headerleft", "&T"); 733 pref("print.print_headercenter", ""); 734 pref("print.print_headerright", "&U"); 735 pref("print.print_footerleft", "&PT"); 736 pref("print.print_footercenter", ""); 737 pref("print.print_footerright", "&D"); 738 739 // A list of comma separated key:value pairs, so: 740 // 741 // key1:value1,key2:value2 742 // 743 // Which allows testing extra CUPS-related printer settings for monochrome 744 // printing. 745 pref("print.cups.monochrome.extra_settings", ""); 746 747 // xxxbsmedberg: more toolkit prefs 748 749 // Save the Printings after each print job 750 pref("print.save_print_settings", true); 751 752 // Enables the "more settings" in Print Preview to match previous 753 // configuration. 754 pref("print.more-settings.open", false); 755 756 // Enables you to specify a user unwriteable margin, if a printer's actual 757 // unwriteable margin is greater than this the printer one will be used. 758 // This is used by both Printing and Print Preview 759 // Units are in 1/100ths of an inch. 760 pref("print.print_edge_top", 0); 761 pref("print.print_edge_left", 0); 762 pref("print.print_edge_right", 0); 763 pref("print.print_edge_bottom", 0); 764 765 // Should this just be checking for MOZ_WIDGET_GTK? 766 #if defined(ANDROID) || defined(XP_UNIX) && !defined(XP_MACOSX) 767 pref("print.print_reversed", false); 768 // This is the default. Probably just remove this. 769 pref("print.print_in_color", true); 770 #endif 771 772 // Scripts & Windows prefs 773 pref("dom.beforeunload_timeout_ms", 1000); 774 pref("dom.disable_window_flip", false); 775 pref("dom.disable_window_move_resize", false); 776 777 pref("dom.allow_scripts_to_close_windows", false); 778 779 pref("dom.popup_allowed_events", "change click dblclick auxclick mousedown mouseup pointerdown pointerup notificationclick reset submit touchend contextmenu"); 780 781 pref("dom.storage.shadow_writes", false); 782 pref("dom.storage.snapshot_prefill", 16384); 783 pref("dom.storage.snapshot_gradual_prefill", 4096); 784 pref("dom.storage.snapshot_reusing", true); 785 pref("dom.storage.client_validation", true); 786 787 // Enable time picker UI. By default, disabled. 788 pref("dom.forms.datetime.timepicker", false); 789 790 // Enable search in <select> dropdowns (more than 40 options) 791 pref("dom.forms.selectSearch", false); 792 // Allow for webpages to provide custom styling for <select> 793 // popups. 794 // 795 // Disabled on GTK (originally due to bug 1338283, but not enabled since, and 796 // native appearance might be preferred). 797 // Disabled on macOS because native appearance is preferred, see bug 1703866. 798 #if defined(MOZ_WIDGET_GTK) || defined(XP_MACOSX) 799 pref("dom.forms.select.customstyling", false); 800 #else 801 pref("dom.forms.select.customstyling", true); 802 #endif 803 804 pref("dom.cycle_collector.incremental", true); 805 806 // List of domains exempted from RFP. The list is comma separated domain list. 807 pref("privacy.resistFingerprinting.exemptedDomains", "*.example.invalid"); 808 809 // If privacy.fingerprintingProtection is enabled, this pref can be used to add 810 // or remove features from its effects 811 pref("privacy.fingerprintingProtection.overrides", ""); 812 813 // If privacy.fingerprintingProtection is enabled, this pref can be used to add 814 // or remove features on a domain granular level. 815 pref("privacy.fingerprintingProtection.granularOverrides", ""); 816 817 // If privacy.baselineFingerprintingProtection is enabled, this pref can be used to add 818 // or remove features from its effects 819 pref("privacy.baselineFingerprintingProtection.overrides", ""); 820 821 // If privacy.baselineFingerprintingProtection is enabled, this pref can be used to add 822 // or remove features on a domain granular level. 823 pref("privacy.baselineFingerprintingProtection.granularOverrides", ""); 824 825 // Fix cookie blocking breakage by providing ephemeral Paritioned LocalStorage 826 // for a list of hosts when detected as trackers. 827 // (See nsICookieService::BEHAVIOR_REJECT_TRACKER cookie behavior) 828 // See: Bug 1505212, Bug 1659394, Bug 1631811, Bug 1665035. 829 pref("privacy.restrict3rdpartystorage.partitionedHosts", "accounts.google.com/o/oauth2/,d35nw2lg0ahg0v.cloudfront.net/,datastudio.google.com/embed/reporting/,d3qlaywcwingl6.cloudfront.net/"); 830 831 // If a host is contained in this pref list, user-interaction is required 832 // before granting the storage access permission. 833 pref("privacy.restrict3rdpartystorage.userInteractionRequiredForHosts", ""); 834 835 // The url decoration tokens used to for stripping document referrers based on. 836 // A list separated by spaces. This pref isn't meant to be changed by users. 837 pref("privacy.restrict3rdpartystorage.url_decorations", ""); 838 839 // Excessive reporting of blocked popups can be a DOS vector, 840 // by overloading the main process as popups get blocked and when 841 // users try to restore all popups, which is the most visible 842 // option in our UI at the time of writing. 843 // We will invisibly drop any popups from a page that has already 844 // opened more than this number of popups. 845 pref("privacy.popups.maxReported", 100); 846 847 // Purging first-party tracking cookies. 848 pref("privacy.purge_trackers.enabled", true); 849 #ifdef NIGHTLY_BUILD 850 pref("privacy.purge_trackers.logging.level", "Warn"); 851 #else 852 pref("privacy.purge_trackers.logging.level", "Error"); 853 #endif 854 855 // Allowable amount of cookies to purge in a batch. 856 pref("privacy.purge_trackers.max_purge_count", 100); 857 858 // Whether purging should not clear data from domains 859 // that are associated with other domains which have 860 // user interaction (even if they don't have user 861 // interaction directly). 862 pref("privacy.purge_trackers.consider_entity_list", false); 863 864 pref("dom.event.contextmenu.enabled", true); 865 866 pref("javascript.enabled", true); 867 pref("javascript.options.wasm", true); 868 pref("javascript.options.wasm_trustedprincipals", true); 869 pref("javascript.options.wasm_verbose", false); 870 pref("javascript.options.wasm_baselinejit", true); 871 872 pref("javascript.options.asyncstack", true); 873 // Broadly capturing async stack data adds overhead that is only advisable for 874 // developers, so we only enable it when the devtools are open, by default. 875 pref("javascript.options.asyncstack_capture_debuggee_only", true); 876 877 // This preference instructs the JS engine to discard the 878 // source of any privileged JS after compilation. This saves 879 // memory, but makes things like Function.prototype.toSource() 880 // fail. 881 pref("javascript.options.discardSystemSource", false); 882 883 // Many of the the following preferences tune the SpiderMonkey GC, if you 884 // change the defaults here please also consider changing them in 885 // js/src/jsgc.cpp. They're documented in js/src/jsapi.h. 886 887 // JSGC_MAX_BYTES 888 // SpiderMonkey defaults to 2^32-1 bytes, but this is measured in MB so that 889 // cannot be represented directly in order to show it in about:config. 890 pref("javascript.options.mem.max", -1); 891 892 // JSGC_MIN_NURSERY_BYTES / JSGC_MAX_NURSERY_BYTES 893 pref("javascript.options.mem.nursery.min_kb", 256); 894 pref("javascript.options.mem.nursery.max_kb", 65536); 895 896 // JSGC_MODE 897 pref("javascript.options.mem.gc_per_zone", true); 898 pref("javascript.options.mem.gc_incremental", true); 899 900 // JSGC_INCREMENTAL_WEAKMAP_ENABLED 901 pref("javascript.options.mem.incremental_weakmap", true); 902 903 // JSGC_SLICE_TIME_BUDGET_MS 904 // Override the shell's default of unlimited slice time. 905 pref("javascript.options.mem.gc_incremental_slice_ms", 5); 906 907 // JSGC_COMPACTING_ENABLED 908 pref("javascript.options.mem.gc_compacting", true); 909 910 // JSGC_NURSERY_ENABLED 911 pref("javascript.options.mem.gc_generational", true); 912 913 #ifdef NIGHTLY_BUILD 914 // JSGC_SEMISPACE_NURSERY_ENABLED 915 pref("javascript.options.mem.gc_experimental_semispace_nursery", false); 916 #endif 917 918 // JSGC_PARALLEL_MARKING_ENABLED 919 // This only applies to the main runtime and does not affect workers. 920 #ifndef ANDROID 921 pref("javascript.options.mem.gc_parallel_marking", true); 922 #else 923 pref("javascript.options.mem.gc_parallel_marking", false); 924 #endif 925 926 // JSGC_PARALLEL_MARKING_THRESHOLD_MB 927 // Minimum heap size at which to use parallel marking, if enabled. 928 #if defined(XP_WIN) 929 pref("javascript.options.mem.gc_parallel_marking_threshold_mb", 8); 930 #elif defined(XP_MACOSX) 931 pref("javascript.options.mem.gc_parallel_marking_threshold_mb", 4); 932 #elif defined(ANDROID) 933 pref("javascript.options.mem.gc_parallel_marking_threshold_mb", 16); 934 #elif defined(XP_UNIX) 935 pref("javascript.options.mem.gc_parallel_marking_threshold_mb", 16); 936 #endif 937 938 // JSGC_MAX_MARKING_THREADS 939 pref("javascript.options.mem.gc_max_parallel_marking_threads", 2); 940 941 // JSGC_HIGH_FREQUENCY_TIME_LIMIT 942 pref("javascript.options.mem.gc_high_frequency_time_limit_ms", 1000); 943 944 // JSGC_SMALL_HEAP_SIZE_MAX 945 pref("javascript.options.mem.gc_small_heap_size_max_mb", 100); 946 947 // JSGC_LARGE_HEAP_SIZE_MIN 948 pref("javascript.options.mem.gc_large_heap_size_min_mb", 500); 949 950 // JSGC_HIGH_FREQUENCY_SMALL_HEAP_GROWTH 951 pref("javascript.options.mem.gc_high_frequency_small_heap_growth", 300); 952 953 // JSGC_HIGH_FREQUENCY_LARGE_HEAP_GROWTH 954 pref("javascript.options.mem.gc_high_frequency_large_heap_growth", 150); 955 956 // JSGC_LOW_FREQUENCY_HEAP_GROWTH 957 pref("javascript.options.mem.gc_low_frequency_heap_growth", 150); 958 959 // JSGC_BALANCED_HEAP_LIMITS_ENABLED 960 pref("javascript.options.mem.gc_balanced_heap_limits", false); 961 962 // JSGC_HEAP_GROWTH_FACTOR 963 pref("javascript.options.mem.gc_heap_growth_factor", 50); 964 965 // JSGC_ALLOCATION_THRESHOLD 966 pref("javascript.options.mem.gc_allocation_threshold_mb", 27); 967 968 // JSGC_MALLOC_THRESHOLD_BASE 969 pref("javascript.options.mem.gc_malloc_threshold_base_mb", 38); 970 971 // JSGC_SMALL_HEAP_INCREMENTAL_LIMIT 972 pref("javascript.options.mem.gc_small_heap_incremental_limit", 150); 973 974 // JSGC_LARGE_HEAP_INCREMENTAL_LIMIT 975 pref("javascript.options.mem.gc_large_heap_incremental_limit", 110); 976 977 // JSGC_URGENT_THRESHOLD_MB 978 pref("javascript.options.mem.gc_urgent_threshold_mb", 16); 979 980 // JSGC_MIN_EMPTY_CHUNK_COUNT 981 pref("javascript.options.mem.gc_min_empty_chunk_count", 1); 982 983 // JSGC_HELPER_THREAD_RATIO 984 pref("javascript.options.mem.gc_helper_thread_ratio", 50); 985 986 // JSGC_MAX_HELPER_THREADS 987 pref("javascript.options.mem.gc_max_helper_threads", 8); 988 989 // Eager nursery collection parameters: 990 // JSGC_NURSERY_EAGER_COLLECTION_THRESHOLD_KB 991 pref("javascript.options.mem.nursery_eager_collection_threshold_kb", 256); 992 // JSGC_NURSERY_EAGER_COLLECTION_THRESHOLD_PERCENT 993 pref("javascript.options.mem.nursery_eager_collection_threshold_percent", 25); 994 // JSGC_NURSERY_EAGER_COLLECTION_TIMEOUT_MS 995 pref("javascript.options.mem.nursery_eager_collection_timeout_ms", 5000); 996 997 // JSGC_NURSERY_MAX_TIME_GOAL_MS 998 pref("javascript.options.mem.nursery_max_time_goal_ms", 4); 999 1000 #ifdef JS_GC_ZEAL 1001 pref("javascript.options.mem.gc_zeal.mode", 0); 1002 pref("javascript.options.mem.gc_zeal.frequency", 5000); 1003 #endif 1004 1005 pref("javascript.options.shared_memory", true); 1006 1007 pref("javascript.options.throw_on_debuggee_would_run", false); 1008 pref("javascript.options.dump_stack_on_debuggee_would_run", false); 1009 1010 // advanced prefs 1011 pref("image.animation_mode", "normal"); 1012 1013 pref("keyword.enabled", true); 1014 1015 // Fixup whitelists, the urlbar won't try to search for these words, but will 1016 // instead consider them valid TLDs. Don't check these directly, use 1017 // Services.uriFixup.isDomainKnown() instead. 1018 pref("browser.fixup.domainwhitelist.localhost", true); 1019 // https://tools.ietf.org/html/rfc2606 1020 pref("browser.fixup.domainsuffixwhitelist.test", true); 1021 pref("browser.fixup.domainsuffixwhitelist.example", true); 1022 pref("browser.fixup.domainsuffixwhitelist.invalid", true); 1023 pref("browser.fixup.domainsuffixwhitelist.localhost", true); 1024 // https://tools.ietf.org/html/draft-wkumari-dnsop-internal-00 1025 pref("browser.fixup.domainsuffixwhitelist.internal", true); 1026 // https://tools.ietf.org/html/rfc6762 1027 pref("browser.fixup.domainsuffixwhitelist.local", true); 1028 1029 // Whether to always go through the DNS server before sending a single word 1030 // search string, that may contain a valid host, to a search engine. 1031 pref("browser.fixup.dns_first_for_single_words", false); 1032 1033 // If there is ever a security firedrill that requires 1034 // us to block certian ports global, this is the pref 1035 // to use. Is is a comma delimited list of port numbers 1036 // for example: 1037 // pref("network.security.ports.banned", "1,2,3,4,5"); 1038 // prevents necko connecting to ports 1-5 unless the protocol 1039 // overrides. 1040 1041 // Transmit UDP busy-work to the LAN when anticipating low latency 1042 // network reads and on wifi to mitigate 802.11 Power Save Polling delays 1043 pref("network.tickle-wifi.enabled", false); 1044 pref("network.tickle-wifi.duration", 400); 1045 pref("network.tickle-wifi.delay", 16); 1046 1047 // Default action for unlisted external protocol handlers 1048 pref("network.protocol-handler.external-default", true); // OK to load 1049 pref("network.protocol-handler.warn-external-default", true); // warn before load 1050 1051 // Prevent using external protocol handlers for these schemes 1052 pref("network.protocol-handler.external.hcp", false); 1053 pref("network.protocol-handler.external.vbscript", false); 1054 pref("network.protocol-handler.external.javascript", false); 1055 pref("network.protocol-handler.external.data", false); 1056 pref("network.protocol-handler.external.ie.http", false); 1057 pref("network.protocol-handler.external.iehistory", false); 1058 pref("network.protocol-handler.external.ierss", false); 1059 pref("network.protocol-handler.external.mk", false); 1060 pref("network.protocol-handler.external.ms-cxh", false); 1061 pref("network.protocol-handler.external.ms-cxh-full", false); 1062 pref("network.protocol-handler.external.ms-help", false); 1063 pref("network.protocol-handler.external.ms-msdt", false); 1064 pref("network.protocol-handler.external.res", false); 1065 pref("network.protocol-handler.external.search", false); 1066 pref("network.protocol-handler.external.search-ms", false); 1067 pref("network.protocol-handler.external.shell", false); 1068 pref("network.protocol-handler.external.vnd.ms.radio", false); 1069 #ifdef XP_MACOSX 1070 pref("network.protocol-handler.external.help", false); 1071 #endif 1072 pref("network.protocol-handler.external.disk", false); 1073 pref("network.protocol-handler.external.disks", false); 1074 pref("network.protocol-handler.external.afp", false); 1075 pref("network.protocol-handler.external.moz-icon", false); 1076 1077 // Don't allow external protocol handlers for common typos 1078 pref("network.protocol-handler.external.ttp", false); // http 1079 pref("network.protocol-handler.external.htp", false); // http 1080 pref("network.protocol-handler.external.ttps", false); // https 1081 pref("network.protocol-handler.external.tps", false); // https 1082 pref("network.protocol-handler.external.ps", false); // https 1083 pref("network.protocol-handler.external.htps", false); // https 1084 pref("network.protocol-handler.external.ile", false); // file 1085 pref("network.protocol-handler.external.le", false); // file 1086 1087 // An exposed protocol handler is one that can be used in all contexts. A 1088 // non-exposed protocol handler is one that can only be used internally by the 1089 // application. For example, a non-exposed protocol would not be loaded by the 1090 // application in response to a link click or a X-remote openURL command. 1091 // Instead, it would be deferred to the system's external protocol handler. 1092 // Only internal/built-in protocol handlers can be marked as exposed. 1093 1094 // This pref controls the default settings. Per protocol settings can be used 1095 // to override this value. 1096 pref("network.protocol-handler.expose-all", true); 1097 1098 // Example: make IMAP an exposed protocol 1099 // pref("network.protocol-handler.expose.imap", true); 1100 1101 // Whether IOService.connectivity and NS_IsOffline depends on connectivity status 1102 pref("network.manage-offline-status", true); 1103 1104 // <http> 1105 pref("network.http.version", "1.1"); // default 1106 // pref("network.http.version", "1.0"); // uncomment this out in case of problems 1107 // pref("network.http.version", "0.9"); // it'll work too if you're crazy 1108 // keep-alive option is effectively obsolete. Nevertheless it'll work with 1109 // some older 1.0 servers: 1110 1111 pref("network.http.proxy.version", "1.1"); // default 1112 // pref("network.http.proxy.version", "1.0"); // uncomment this out in case of problems 1113 // (required if using junkbuster proxy) 1114 1115 // Whether we should respect the BE_CONSERVATIVE (aka nsIHttpChannelInternal.beConservative) 1116 // flag when connecting to a proxy. If the configured proxy accepts only TLS 1.3, system 1117 // requests like updates will not pass through. Setting this pref to false will fix that 1118 // problem. 1119 // Default at true to preserve the behavior we had before for backward compat. 1120 pref("network.http.proxy.respect-be-conservative", true); 1121 1122 // this preference can be set to override the socket type used for normal 1123 // HTTP traffic. an empty value indicates the normal TCP/IP socket type. 1124 pref("network.http.default-socket-type", ""); 1125 1126 // There is a problem with some IIS7 servers that don't close the connection 1127 // properly after it times out (bug #491541). Default timeout on IIS7 is 1128 // 120 seconds. We need to reuse or drop the connection within this time. 1129 // We set the timeout a little shorter to keep a reserve for cases when 1130 // the packet is lost or delayed on the route. 1131 pref("network.http.keep-alive.timeout", 115); 1132 1133 // Timeout connections if an initial response is not received after 5 mins. 1134 pref("network.http.response.timeout", 300); 1135 1136 // Limit the absolute number of http connections. 1137 // Note: the socket transport service will clamp the number below this if the OS 1138 // cannot allocate that many FDs 1139 #ifdef ANDROID 1140 pref("network.http.max-connections", 128); 1141 #else 1142 pref("network.http.max-connections", 900); 1143 #endif 1144 1145 // If NOT connecting via a proxy, then 1146 // a new connection will only be attempted if the number of active persistent 1147 // connections to the server is less then max-persistent-connections-per-server. 1148 pref("network.http.max-persistent-connections-per-server", 6); 1149 1150 // Number of connections that we can open beyond the standard parallelism limit defined 1151 // by max-persistent-connections-per-server/-proxy to handle urgent-start marked requests 1152 pref("network.http.max-urgent-start-excessive-connections-per-host", 3); 1153 1154 // If connecting via a proxy, then a 1155 // new connection will only be attempted if the number of active persistent 1156 // connections to the proxy is less then max-persistent-connections-per-proxy. 1157 pref("network.http.max-persistent-connections-per-proxy", 32); 1158 1159 // amount of time (in seconds) to suspend pending requests, before spawning a 1160 // new connection, once the limit on the number of persistent connections per 1161 // host has been reached. however, a new connection will not be created if 1162 // max-connections or max-connections-per-server has also been reached. 1163 pref("network.http.request.max-start-delay", 10); 1164 1165 // If a connection is reset, we will retry it max-attempts times. 1166 pref("network.http.request.max-attempts", 10); 1167 1168 // Maximum number of consecutive redirects before aborting. 1169 pref("network.http.redirection-limit", 20); 1170 1171 // Enable http compression: comment this out in case of problems with 1.1 1172 // NOTE: support for "compress" has been disabled per bug 196406. 1173 // NOTE: separate values with comma+space (", "): see bug 576033 1174 pref("network.http.accept-encoding", "gzip, deflate"); 1175 pref("network.http.accept-encoding.secure", "gzip, deflate, br, zstd"); 1176 // dictionary compression is always only for secure connections 1177 // Added to network.http.accept-encoding.secure 1178 pref("network.http.accept-encoding.dictionary", "dcb, dcz"); 1179 1180 // Prompt for redirects resulting in unsafe HTTP requests 1181 pref("network.http.prompt-temp-redirect", false); 1182 1183 // If true generate CORRUPTED_CONTENT errors for entities that 1184 // contain an invalid Assoc-Req response header 1185 pref("network.http.assoc-req.enforce", false); 1186 1187 // On networks deploying QoS, it is recommended that these be lockpref()'d, 1188 // since inappropriate marking can easily overwhelm bandwidth reservations 1189 // for certain services (i.e. EF for VoIP, AF4x for interactive video, 1190 // AF3x for broadcast/streaming video, etc) 1191 1192 // default value for HTTP 1193 // in a DSCP environment this should be 40 (0x28, or AF11), per RFC-4594, 1194 // Section 4.8 "High-Throughput Data Service Class" 1195 pref("network.http.qos", 0); 1196 1197 // The number of milliseconds after sending a SYN for an HTTP connection, 1198 // to wait before trying a different connection. 0 means do not use a second 1199 // connection. 1200 pref("network.http.connection-retry-timeout", 250); 1201 1202 // The number of seconds after sending initial SYN for an HTTP connection 1203 // to give up if the OS does not give up first 1204 pref("network.http.connection-timeout", 90); 1205 1206 // Close a connection if tls handshake does not finish in given number of 1207 // seconds. 1208 pref("network.http.tls-handshake-timeout", 30); 1209 1210 // The number of seconds after which we time out a connection of a retry (fallback) 1211 // socket when a certain IP family is already preferred. This shorter connection 1212 // timeout allows us to find out more quickly that e.g. an IPv6 host is no longer 1213 // available and let us try an IPv4 address, if provided for the host name. 1214 // Set to '0' to use the default connection timeout. 1215 pref("network.http.fallback-connection-timeout", 5); 1216 1217 // The number of seconds to allow active connections to prove that they have 1218 // traffic before considered stalled, after a network change has been detected 1219 // and signalled. 1220 pref("network.http.network-changed.timeout", 5); 1221 1222 // The maximum number of current global half open sockets allowable 1223 // when starting a new speculative connection. 1224 pref("network.http.speculative-parallel-limit", 20); 1225 1226 // Whether or not to block requests for non head js/css items (e.g. media) 1227 // while those elements load. 1228 pref("network.http.rendering-critical-requests-prioritization", true); 1229 1230 // Disable IPv6 for backup connections to workaround problems about broken 1231 // IPv6 connectivity. 1232 pref("network.http.fast-fallback-to-IPv4", true); 1233 1234 // Http3 qpack table size. 1235 pref("network.http.http3.default-qpack-table-size", 65536); // 64k 1236 // Maximal number of streams that can be blocked on waiting for qpack 1237 // instructions. 1238 pref("network.http.http3.default-max-stream-blocked", 20); 1239 1240 1241 // This is only for testing! 1242 // This adds alt-svc mapping and it has a form of <host-name>;<alt-svc-header> 1243 // Example: example1.com;h3=":443",example2.com;h3=":443" 1244 pref("network.http.http3.alt-svc-mapping-for-testing", ""); 1245 1246 // alt-svc allows separation of transport routing from 1247 // the origin host without using a proxy. 1248 pref("network.http.altsvc.enabled", true); 1249 pref("network.http.altsvc.oe", false); 1250 1251 pref("network.http.diagnostics", false); 1252 1253 pref("network.http.pacing.requests.enabled", true); 1254 pref("network.http.pacing.requests.min-parallelism", 6); 1255 pref("network.http.pacing.requests.hz", 80); 1256 pref("network.http.pacing.requests.burst", 10); 1257 1258 // TCP Keepalive config for HTTP connections. 1259 pref("network.http.tcp_keepalive.short_lived_connections", true); 1260 // Max time from initial request during which conns are considered short-lived. 1261 pref("network.http.tcp_keepalive.short_lived_time", 60); 1262 // Idle time of TCP connection until first keepalive probe sent. 1263 pref("network.http.tcp_keepalive.short_lived_idle_time", 10); 1264 1265 pref("network.http.tcp_keepalive.long_lived_connections", true); 1266 pref("network.http.tcp_keepalive.long_lived_idle_time", 600); 1267 1268 pref("network.http.enforce-framing.http1", false); // should be named "strict" 1269 pref("network.http.enforce-framing.soft", true); 1270 pref("network.http.enforce-framing.strict_chunked_encoding", true); 1271 1272 // The ratio of the transaction count for the focused window and the count of 1273 // all available active connections. 1274 pref("network.http.focused_window_transaction_ratio", "0.9"); 1275 1276 // This is the size of the flow control window (KB) (i.e., the amount of data 1277 // that the parent can send to the child before getting an ack). 0 for disable 1278 // the flow control. 1279 pref("network.http.send_window_size", 1024); 1280 1281 // By default the Accept header sent for documents loaded over HTTP(S) is derived 1282 // by DocumentAcceptHeader() in nsHttpHandler.cpp. If set, this pref overrides it. 1283 // There is also image.http.accept which works in scope of image. 1284 pref("network.http.accept", ""); 1285 1286 // The max time to spend on xpcom events between two polls in ms. 1287 pref("network.sts.max_time_for_events_between_two_polls", 100); 1288 1289 // The number of seconds we don't let poll() handing indefinitely after network 1290 // link change has been detected so we can detect breakout of the pollable event. 1291 // Expected in seconds, 0 to disable. 1292 pref("network.sts.poll_busy_wait_period", 50); 1293 1294 // The number of seconds we cap poll() timeout to during the network link change 1295 // detection period. 1296 // Expected in seconds, 0 to disable. 1297 pref("network.sts.poll_busy_wait_period_timeout", 7); 1298 1299 // During shutdown we limit PR_Close calls. If time exceeds this pref (in ms) 1300 // let sockets just leak. 1301 pref("network.sts.max_time_for_pr_close_during_shutdown", 5000); 1302 1303 // When the polling socket pair we use to wake poll() up on demand doesn't 1304 // get signalled (is not readable) within this timeout, we try to repair it. 1305 // This timeout can be disabled by setting this pref to 0. 1306 // The value is expected in seconds. 1307 pref("network.sts.pollable_event_timeout", 6); 1308 1309 // 2147483647 == PR_INT32_MAX == ~2 GB 1310 pref("network.websocket.max-message-size", 2147483647); 1311 1312 // the number of seconds to wait for websocket connection to be opened 1313 pref("network.websocket.timeout.open", 20); 1314 1315 // the number of seconds to wait for a clean close after sending the client 1316 // close message 1317 pref("network.websocket.timeout.close", 20); 1318 1319 // the number of seconds of idle read activity to sustain before sending a 1320 // ping probe. 0 to disable. 1321 pref("network.websocket.timeout.ping.request", 0); 1322 1323 // the deadline, expressed in seconds, for some read activity to occur after 1324 // generating a ping. If no activity happens then an error and unclean close 1325 // event is sent to the javascript websockets application 1326 pref("network.websocket.timeout.ping.response", 10); 1327 1328 // the maximum number of concurrent websocket sessions. By specification there 1329 // is never more than one handshake oustanding to an individual host at 1330 // one time. 1331 pref("network.websocket.max-connections", 200); 1332 1333 // by default scripts loaded from a https:// origin can only open secure 1334 // (i.e. wss://) websockets. 1335 pref("network.websocket.allowInsecureFromHTTPS", false); 1336 1337 // by default we delay websocket reconnects to same host/port if previous 1338 // connection failed, per RFC 6455 section 7.2.3 1339 pref("network.websocket.delay-failed-reconnects", true); 1340 1341 // </ws> 1342 1343 // enables the prefetch service (i.e., prefetching of <link rel="next"> and 1344 // <link rel="prefetch"> URLs). 1345 pref("network.prefetch-next", true); 1346 1347 // The following prefs pertain to the negotiate-auth extension (see bug 17578), 1348 // which provides transparent Kerberos or NTLM authentication using the SPNEGO 1349 // protocol. Each pref is a comma-separated list of keys, where each key has 1350 // the format: 1351 // [scheme "://"] [host [":" port]] 1352 // For example, "foo.com" would match "http://www.foo.com/bar", etc. 1353 1354 // This list controls which URIs can use the negotiate-auth protocol. This 1355 // list should be limited to the servers you know you'll need to login to. 1356 pref("network.negotiate-auth.trusted-uris", ""); 1357 // This list controls which URIs can support delegation. 1358 pref("network.negotiate-auth.delegation-uris", ""); 1359 1360 // Do not allow SPNEGO by default when challenged by a local server. 1361 pref("network.negotiate-auth.allow-non-fqdn", false); 1362 1363 // Allow SPNEGO by default when challenged by a proxy server. 1364 pref("network.negotiate-auth.allow-proxies", true); 1365 1366 // Path to a specific gssapi library 1367 pref("network.negotiate-auth.gsslib", ""); 1368 1369 // Specify if the gss lib comes standard with the OS 1370 pref("network.negotiate-auth.using-native-gsslib", true); 1371 1372 #ifdef XP_WIN 1373 // Default to using the SSPI intead of GSSAPI on windows 1374 pref("network.auth.use-sspi", true); 1375 #endif 1376 1377 // Controls which NTLM authentication implementation we default to. True forces 1378 // the use of our generic (internal) NTLM authentication implementation vs. any 1379 // native implementation provided by the os. This pref is for diagnosing issues 1380 // with native NTLM. (See bug 520607 for details.) Using generic NTLM authentication 1381 // can expose the user to reflection attack vulnerabilities. Do not change this 1382 // unless you know what you're doing! 1383 // This pref should be removed 6 months after the release of firefox 3.6. 1384 pref("network.auth.force-generic-ntlm", false); 1385 1386 // The following prefs are used to enable automatic use of the operating 1387 // system's NTLM implementation to silently authenticate the user with their 1388 // Window's domain logon. The trusted-uris pref follows the format of the 1389 // trusted-uris pref for negotiate authentication. 1390 pref("network.automatic-ntlm-auth.allow-proxies", true); 1391 pref("network.automatic-ntlm-auth.allow-non-fqdn", false); 1392 pref("network.automatic-ntlm-auth.trusted-uris", ""); 1393 1394 // The string to return to the server as the 'workstation' that the 1395 // user is using. Bug 1046421 notes that the previous default, of the 1396 // system hostname, could be used for user fingerprinting. 1397 // 1398 // However, in some network environments where allowedWorkstations is in use 1399 // to provide a level of host-based access control, it must be set to a string 1400 // that is listed in allowedWorkstations for the user's account in their 1401 // AD Domain. 1402 pref("network.generic-ntlm-auth.workstation", "WORKSTATION"); 1403 1404 // This preference controls whether to allow sending default credentials (SSO) to 1405 // NTLM/Negotiate servers allowed in the "trusted uri" list when navigating them 1406 // in a Private Browsing window. 1407 // If set to false, Private Browsing windows will not use default credentials and ask 1408 // for credentials from the user explicitly. 1409 // If set to true, and a server URL conforms other conditions for sending default 1410 // credentials, those will be sent automatically in Private Browsing windows. 1411 // 1412 // This preference has no effect when the browser is set to "Never Remember History", 1413 // in that case default credentials will always be used. 1414 pref("network.auth.private-browsing-sso", false); 1415 1416 // Control how throttling of http responses works - number of ms that each 1417 // suspend and resume period lasts (prefs named appropriately) 1418 // This feature is occasionally causing visible regressions (download too slow for 1419 // too long time, jitter in video/audio in background tabs...) 1420 pref("network.http.throttle.enable", false); 1421 1422 // V1 prefs 1423 pref("network.http.throttle.suspend-for", 900); 1424 pref("network.http.throttle.resume-for", 100); 1425 1426 // Common prefs 1427 // Delay we resume throttled background responses after the last unthrottled 1428 // response has finished. Prevents resuming too soon during an active page load 1429 // at which sub-resource reqeusts quickly come and go. 1430 pref("network.http.throttle.hold-time-ms", 800); 1431 // After the last transaction activation or last data chunk response we only 1432 // throttle for this period of time. This prevents comet and unresponsive 1433 // http requests to engage long-standing throttling. 1434 pref("network.http.throttle.max-time-ms", 500); 1435 1436 // Give higher priority to requests resulting from a user interaction event 1437 // like click-to-play, image fancy-box zoom, navigation. 1438 pref("network.http.on_click_priority", true); 1439 1440 pref("network.proxy.http", ""); 1441 pref("network.proxy.http_port", 0); 1442 pref("network.proxy.ssl", ""); 1443 pref("network.proxy.ssl_port", 0); 1444 pref("network.proxy.socks", ""); 1445 pref("network.proxy.socks_port", 0); 1446 pref("network.proxy.socks_version", 5); 1447 pref("network.proxy.proxy_over_tls", true); 1448 pref("network.proxy.no_proxies_on", ""); 1449 pref("network.proxy.failover_timeout", 1800); // 30 minutes 1450 pref("network.online", true); //online/offline 1451 1452 // This pref contains the list of hostnames (such as 1453 // "mozilla.org,example.net"). For these hosts, firefox will treat 1454 // SameSite=None if nothing else is specified, even if 1455 // network.cookie.sameSite.laxByDefault if set to true. 1456 // To know the correct syntax, see nsContentUtils::IsURIInList() 1457 pref("network.cookie.sameSite.laxByDefault.disabledHosts", ""); 1458 1459 pref("network.cookie.maxNumber", 3000); 1460 pref("network.cookie.maxPerHost", 180); 1461 // Cookies quota for each host. If cookies exceed the limit maxPerHost, 1462 // we evict cookies until we have the quota amount. 1463 pref("network.cookie.quotaPerHost", 150); 1464 1465 // The PAC file to load. Ignored unless network.proxy.type is 2. 1466 pref("network.proxy.autoconfig_url", ""); 1467 // Strip off paths when sending URLs to PAC scripts 1468 pref("network.proxy.autoconfig_url.include_path", false); 1469 1470 // If we cannot load the PAC file, then try again (doubling from interval_min 1471 // until we reach interval_max or the PAC file is successfully loaded). 1472 pref("network.proxy.autoconfig_retry_interval_min", 5); // 5 seconds 1473 pref("network.proxy.autoconfig_retry_interval_max", 300); // 5 minutes 1474 pref("network.proxy.enable_wpad_over_dhcp", true); 1475 1476 pref("converter.html2txt.structs", true); // Output structured phrases (strong, em, code, sub, sup, b, i, u) 1477 pref("converter.html2txt.header_strategy", 1); // 0 = no indention; 1 = indention, increased with header level; 2 = numbering and slight indention 1478 1479 // The default value of this pref depends on the current app locale, 1480 // and so should always be read via Services.locale.acceptLanguages. 1481 pref("intl.accept_languages", "und"); 1482 1483 // this pref allows user to request that all internationalization formatters 1484 // like date/time formatting, unit formatting, calendars etc. should use 1485 // OS locale set instead of the app locale set. 1486 pref("intl.regional_prefs.use_os_locales", false); 1487 1488 pref("font.cjk_pref_fallback_order", "zh-cn,zh-hk,zh-tw,ja,ko"); 1489 1490 // This pref controls pseudolocales for testing localization. 1491 // See https://firefox-source-docs.mozilla.org/l10n/fluent/tutorial.html#manually-testing-ui-with-pseudolocalization 1492 pref("intl.l10n.pseudo", ""); 1493 1494 // use en-US hyphenation by default for content tagged with plain lang="en" 1495 pref("intl.hyphenation-alias.en", "en-us"); 1496 // and for other subtags of en-*, if no specific patterns are available 1497 pref("intl.hyphenation-alias.en-*", "en-us"); 1498 1499 pref("intl.hyphenation-alias.af-*", "af"); 1500 pref("intl.hyphenation-alias.bg-*", "bg"); 1501 pref("intl.hyphenation-alias.bn-*", "bn"); 1502 pref("intl.hyphenation-alias.ca-*", "ca"); 1503 pref("intl.hyphenation-alias.cs-*", "cs"); 1504 pref("intl.hyphenation-alias.cy-*", "cy"); 1505 pref("intl.hyphenation-alias.da-*", "da"); 1506 pref("intl.hyphenation-alias.eo-*", "eo"); 1507 pref("intl.hyphenation-alias.es-*", "es"); 1508 pref("intl.hyphenation-alias.et-*", "et"); 1509 pref("intl.hyphenation-alias.fi-*", "fi"); 1510 pref("intl.hyphenation-alias.fr-*", "fr"); 1511 pref("intl.hyphenation-alias.gl-*", "gl"); 1512 pref("intl.hyphenation-alias.gu-*", "gu"); 1513 pref("intl.hyphenation-alias.hi-*", "hi"); 1514 pref("intl.hyphenation-alias.hr-*", "hr"); 1515 pref("intl.hyphenation-alias.hsb-*", "hsb"); 1516 pref("intl.hyphenation-alias.hu-*", "hu"); 1517 pref("intl.hyphenation-alias.ia-*", "ia"); 1518 pref("intl.hyphenation-alias.is-*", "is"); 1519 pref("intl.hyphenation-alias.it-*", "it"); 1520 pref("intl.hyphenation-alias.kn-*", "kn"); 1521 pref("intl.hyphenation-alias.ku-*", "ku"); 1522 pref("intl.hyphenation-alias.la-*", "la"); 1523 pref("intl.hyphenation-alias.lt-*", "lt"); 1524 pref("intl.hyphenation-alias.ml-*", "ml"); 1525 pref("intl.hyphenation-alias.mn-*", "mn"); 1526 pref("intl.hyphenation-alias.nl-*", "nl"); 1527 pref("intl.hyphenation-alias.or-*", "or"); 1528 pref("intl.hyphenation-alias.pa-*", "pa"); 1529 pref("intl.hyphenation-alias.pl-*", "pl"); 1530 pref("intl.hyphenation-alias.pt-*", "pt"); 1531 pref("intl.hyphenation-alias.ru-*", "ru"); 1532 pref("intl.hyphenation-alias.sl-*", "sl"); 1533 pref("intl.hyphenation-alias.sv-*", "sv"); 1534 pref("intl.hyphenation-alias.ta-*", "ta"); 1535 pref("intl.hyphenation-alias.te-*", "te"); 1536 pref("intl.hyphenation-alias.tr-*", "tr"); 1537 pref("intl.hyphenation-alias.uk-*", "uk"); 1538 1539 // Assamese and Marathi use the same patterns as Bengali and Hindi respectively 1540 pref("intl.hyphenation-alias.as", "bn"); 1541 pref("intl.hyphenation-alias.as-*", "bn"); 1542 pref("intl.hyphenation-alias.mr", "hi"); 1543 pref("intl.hyphenation-alias.mr-*", "hi"); 1544 1545 // Czech patterns are also used for Slovak 1546 pref("intl.hyphenation-alias.sk", "cs"); 1547 pref("intl.hyphenation-alias.sk-*", "cs"); 1548 1549 // use reformed (1996) German patterns by default unless specifically tagged as de-1901 1550 // (these prefs may soon be obsoleted by better BCP47-based tag matching, but for now...) 1551 pref("intl.hyphenation-alias.de", "de-1996"); 1552 pref("intl.hyphenation-alias.de-*", "de-1996"); 1553 pref("intl.hyphenation-alias.de-AT-1901", "de-1901"); 1554 pref("intl.hyphenation-alias.de-DE-1901", "de-1901"); 1555 pref("intl.hyphenation-alias.de-CH-*", "de-CH"); 1556 1557 // patterns from TeX are tagged as "sh" (Serbo-Croatian) macrolanguage; 1558 // alias "sr" (Serbian) and "bs" (Bosnian) to those patterns 1559 // (Croatian has its own separate patterns). 1560 pref("intl.hyphenation-alias.sr", "sh"); 1561 pref("intl.hyphenation-alias.bs", "sh"); 1562 pref("intl.hyphenation-alias.sh-*", "sh"); 1563 pref("intl.hyphenation-alias.sr-*", "sh"); 1564 pref("intl.hyphenation-alias.bs-*", "sh"); 1565 1566 // Norwegian has two forms, Bokmål and Nynorsk, with "no" as a macrolanguage encompassing both. 1567 // For "no", we'll alias to "nb" (Bokmål) as that is the more widely used written form. 1568 pref("intl.hyphenation-alias.no", "nb"); 1569 pref("intl.hyphenation-alias.no-*", "nb"); 1570 pref("intl.hyphenation-alias.nb-*", "nb"); 1571 pref("intl.hyphenation-alias.nn-*", "nn"); 1572 1573 // In German, where all proper nouns are capitalized, we allow hyphenation of 1574 // capitalized words. 1575 pref("intl.hyphenate-capitalized.de-1996", true); 1576 pref("intl.hyphenate-capitalized.de-1901", true); 1577 pref("intl.hyphenate-capitalized.de-CH", true); 1578 1579 // Also allow hyphenation of capitalized words in some languages that tend to 1580 // have a a lot of long compound words. 1581 // (Should this be extended to other languages? Should the default be changed?) 1582 pref("intl.hyphenate-capitalized.af", true); 1583 pref("intl.hyphenate-capitalized.fi", true); 1584 pref("intl.hyphenate-capitalized.nl", true); 1585 1586 // All prefs of default font should be "auto". 1587 pref("font.name.serif.ar", ""); 1588 pref("font.name.sans-serif.ar", ""); 1589 pref("font.name.monospace.ar", ""); 1590 pref("font.name.cursive.ar", ""); 1591 1592 pref("font.name.serif.el", ""); 1593 pref("font.name.sans-serif.el", ""); 1594 pref("font.name.monospace.el", ""); 1595 pref("font.name.cursive.el", ""); 1596 1597 pref("font.name.serif.he", ""); 1598 pref("font.name.sans-serif.he", ""); 1599 pref("font.name.monospace.he", ""); 1600 pref("font.name.cursive.he", ""); 1601 1602 pref("font.name.serif.ja", ""); 1603 pref("font.name.sans-serif.ja", ""); 1604 pref("font.name.monospace.ja", ""); 1605 pref("font.name.cursive.ja", ""); 1606 1607 pref("font.name.serif.ko", ""); 1608 pref("font.name.sans-serif.ko", ""); 1609 pref("font.name.monospace.ko", ""); 1610 pref("font.name.cursive.ko", ""); 1611 1612 pref("font.name.serif.th", ""); 1613 pref("font.name.sans-serif.th", ""); 1614 pref("font.name.monospace.th", ""); 1615 pref("font.name.cursive.th", ""); 1616 1617 pref("font.name.serif.x-cyrillic", ""); 1618 pref("font.name.sans-serif.x-cyrillic", ""); 1619 pref("font.name.monospace.x-cyrillic", ""); 1620 pref("font.name.cursive.x-cyrillic", ""); 1621 1622 pref("font.name.serif.x-unicode", ""); 1623 pref("font.name.sans-serif.x-unicode", ""); 1624 pref("font.name.monospace.x-unicode", ""); 1625 pref("font.name.cursive.x-unicode", ""); 1626 1627 pref("font.name.serif.x-western", ""); 1628 pref("font.name.sans-serif.x-western", ""); 1629 pref("font.name.monospace.x-western", ""); 1630 pref("font.name.cursive.x-western", ""); 1631 1632 pref("font.name.serif.zh-CN", ""); 1633 pref("font.name.sans-serif.zh-CN", ""); 1634 pref("font.name.monospace.zh-CN", ""); 1635 pref("font.name.cursive.zh-CN", ""); 1636 1637 pref("font.name.serif.zh-TW", ""); 1638 pref("font.name.sans-serif.zh-TW", ""); 1639 pref("font.name.monospace.zh-TW", ""); 1640 pref("font.name.cursive.zh-TW", ""); 1641 1642 pref("font.name.serif.zh-HK", ""); 1643 pref("font.name.sans-serif.zh-HK", ""); 1644 pref("font.name.monospace.zh-HK", ""); 1645 pref("font.name.cursive.zh-HK", ""); 1646 1647 pref("font.name.serif.x-devanagari", ""); 1648 pref("font.name.sans-serif.x-devanagari", ""); 1649 pref("font.name.monospace.x-devanagari", ""); 1650 pref("font.name.cursive.x-devanagari", ""); 1651 1652 pref("font.name.serif.x-tamil", ""); 1653 pref("font.name.sans-serif.x-tamil", ""); 1654 pref("font.name.monospace.x-tamil", ""); 1655 pref("font.name.cursive.x-tamil", ""); 1656 1657 pref("font.name.serif.x-armn", ""); 1658 pref("font.name.sans-serif.x-armn", ""); 1659 pref("font.name.monospace.x-armn", ""); 1660 pref("font.name.cursive.x-armn", ""); 1661 1662 pref("font.name.serif.x-beng", ""); 1663 pref("font.name.sans-serif.x-beng", ""); 1664 pref("font.name.monospace.x-beng", ""); 1665 pref("font.name.cursive.x-beng", ""); 1666 1667 pref("font.name.serif.x-cans", ""); 1668 pref("font.name.sans-serif.x-cans", ""); 1669 pref("font.name.monospace.x-cans", ""); 1670 pref("font.name.cursive.x-cans", ""); 1671 1672 pref("font.name.serif.x-ethi", ""); 1673 pref("font.name.sans-serif.x-ethi", ""); 1674 pref("font.name.monospace.x-ethi", ""); 1675 pref("font.name.cursive.x-ethi", ""); 1676 1677 pref("font.name.serif.x-geor", ""); 1678 pref("font.name.sans-serif.x-geor", ""); 1679 pref("font.name.monospace.x-geor", ""); 1680 pref("font.name.cursive.x-geor", ""); 1681 1682 pref("font.name.serif.x-gujr", ""); 1683 pref("font.name.sans-serif.x-gujr", ""); 1684 pref("font.name.monospace.x-gujr", ""); 1685 pref("font.name.cursive.x-gujr", ""); 1686 1687 pref("font.name.serif.x-guru", ""); 1688 pref("font.name.sans-serif.x-guru", ""); 1689 pref("font.name.monospace.x-guru", ""); 1690 pref("font.name.cursive.x-guru", ""); 1691 1692 pref("font.name.serif.x-khmr", ""); 1693 pref("font.name.sans-serif.x-khmr", ""); 1694 pref("font.name.monospace.x-khmr", ""); 1695 pref("font.name.cursive.x-khmr", ""); 1696 1697 pref("font.name.serif.x-mlym", ""); 1698 pref("font.name.sans-serif.x-mlym", ""); 1699 pref("font.name.monospace.x-mlym", ""); 1700 pref("font.name.cursive.x-mlym", ""); 1701 1702 pref("font.name.serif.x-orya", ""); 1703 pref("font.name.sans-serif.x-orya", ""); 1704 pref("font.name.monospace.x-orya", ""); 1705 pref("font.name.cursive.x-orya", ""); 1706 1707 pref("font.name.serif.x-telu", ""); 1708 pref("font.name.sans-serif.x-telu", ""); 1709 pref("font.name.monospace.x-telu", ""); 1710 pref("font.name.cursive.x-telu", ""); 1711 1712 pref("font.name.serif.x-knda", ""); 1713 pref("font.name.sans-serif.x-knda", ""); 1714 pref("font.name.monospace.x-knda", ""); 1715 pref("font.name.cursive.x-knda", ""); 1716 1717 pref("font.name.serif.x-sinh", ""); 1718 pref("font.name.sans-serif.x-sinh", ""); 1719 pref("font.name.monospace.x-sinh", ""); 1720 pref("font.name.cursive.x-sinh", ""); 1721 1722 pref("font.name.serif.x-tibt", ""); 1723 pref("font.name.sans-serif.x-tibt", ""); 1724 pref("font.name.monospace.x-tibt", ""); 1725 pref("font.name.cursive.x-tibt", ""); 1726 1727 pref("font.name.serif.x-math", ""); 1728 pref("font.name.sans-serif.x-math", ""); 1729 pref("font.name.monospace.x-math", ""); 1730 pref("font.name.cursive.x-math", ""); 1731 1732 pref("font.name-list.serif.x-math", "Latin Modern Math, STIX Two Math, XITS Math, Cambria Math, Libertinus Math, DejaVu Math TeX Gyre, TeX Gyre Bonum Math, TeX Gyre Pagella Math, TeX Gyre Schola, TeX Gyre Termes Math, STIX Math, Asana Math, STIXGeneral, DejaVu Serif, DejaVu Sans, serif"); 1733 pref("font.name-list.sans-serif.x-math", "sans-serif"); 1734 pref("font.name-list.monospace.x-math", "monospace"); 1735 1736 // Some CJK fonts have bad underline offset, their CJK character glyphs are overlapped (or adjoined) to its underline. 1737 // These fonts are ignored the underline offset, instead of it, the underline is lowered to bottom of its em descent. 1738 pref("font.blacklist.underline_offset", "FangSong,Gulim,GulimChe,MingLiU,MingLiU-ExtB,MingLiU_HKSCS,MingLiU-HKSCS-ExtB,MS Gothic,MS Mincho,MS PGothic,MS PMincho,MS UI Gothic,PMingLiU,PMingLiU-ExtB,SimHei,SimSun,SimSun-ExtB,Hei,Kai,Apple LiGothic,Apple LiSung,Osaka"); 1739 1740 // security-sensitive dialogs should delay button enabling. In milliseconds. 1741 pref("security.dialog_enable_delay", 1000); 1742 pref("security.notification_enable_delay", 500); 1743 1744 #ifdef EARLY_BETA_OR_EARLIER 1745 // Disallow web documents loaded with the SystemPrincipal 1746 pref("security.disallow_non_local_systemprincipal_in_tests", false); 1747 #endif 1748 1749 // Insecure Form Field Warning 1750 pref("security.insecure_field_warning.ignore_local_ip_address", true); 1751 1752 // Remote settings preferences 1753 pref("services.settings.poll_interval", 86400); // 24H 1754 1755 // The percentage of clients who will report uptake telemetry as 1756 // events instead of just a histogram. This only applies on Release; 1757 // other channels always report events. 1758 pref("services.common.uptake.sampleRate", 1); // 1% 1759 1760 pref("extensions.abuseReport.enabled", false); 1761 // Whether Firefox integrated abuse reporting feature should be opening the new abuse report form hosted on AMO. 1762 pref("extensions.abuseReport.amoFormURL", "https://addons.mozilla.org/%LOCALE%/firefox/feedback/addon/%addonID%/"); 1763 pref("extensions.addonAbuseReport.url", "https://services.addons.mozilla.org/api/v5/abuse/report/addon/"); 1764 1765 // Blocklist preferences 1766 pref("extensions.blocklist.enabled", true); 1767 pref("extensions.blocklist.detailsURL", "https://blocked.cdn.mozilla.net/"); 1768 pref("extensions.blocklist.itemURL", "https://blocked.cdn.mozilla.net/%blockID%.html"); 1769 pref("extensions.blocklist.addonItemURL", "https://addons.mozilla.org/%LOCALE%/firefox/blocked-addon/%addonID%/%addonVersion%/"); 1770 // Controls what level the blocklist switches from warning about items to forcibly 1771 // blocking them. 1772 pref("extensions.blocklist.level", 2); 1773 // Whether event pages should be enabled for "manifest_version: 2" extensions. 1774 pref("extensions.eventPages.enabled", true); 1775 // Whether MV3 restrictions for actions popup urls should be extended to MV2 extensions 1776 // (only allowing same extension urls to be used as action popup urls). 1777 pref("extensions.manifestV2.actionsPopupURLRestricted", false); 1778 #ifndef MOZ_WEBEXT_WEBIDL_ENABLED 1779 // Defined in StaticPrefList.yaml but overridden here to lock it. 1780 pref("extensions.backgroundServiceWorker.enabled", false, locked); 1781 #endif 1782 // Whether to enable the updated openPopup API. 1783 #ifdef NIGHTLY_BUILD 1784 pref("extensions.openPopupWithoutUserGesture.enabled", true); 1785 #else 1786 pref("extensions.openPopupWithoutUserGesture.enabled", false); 1787 #endif 1788 // Install origins restriction. 1789 pref("extensions.install_origins.enabled", false); 1790 1791 // TODO: bug 1830712: remove prefs related to browser_style deprecation. 1792 pref("extensions.browser_style_mv3.supported", false); 1793 pref("extensions.browser_style_mv3.same_as_mv2", false); 1794 1795 // Experimental Inference API 1796 pref("extensions.ml.enabled", true); 1797 1798 // Local model management page enabled 1799 pref("extensions.htmlaboutaddons.local_model_management", true); 1800 1801 // Middle-mouse handling 1802 pref("middlemouse.paste", false); 1803 pref("middlemouse.contentLoadURL", false); 1804 pref("middlemouse.scrollbarPosition", false); 1805 1806 #if defined(XP_WIN) || defined(XP_MACOSX) || defined(MOZ_WIDGET_GTK) 1807 // Setting false you can disable 4th button and/or 5th button of your mouse. 1808 // 4th button is typically mapped to "Back" and 5th button is typically mapped 1809 // to "Forward" button. 1810 pref("mousebutton.4th.enabled", true); 1811 pref("mousebutton.5th.enabled", true); 1812 #endif 1813 1814 // mousewheel.*.action can specify the action when you use mosue wheel. 1815 // When no modifier keys are pressed or two or more modifires are pressed, 1816 // .default is used. 1817 // 0: Nothing happens 1818 // 1: Scrolling contents 1819 // 2: Go back or go forward, in your history 1820 // 3: Zoom in or out (reflowing zoom). 1821 // 4: Treat vertical wheel as horizontal scroll 1822 // This treats vertical wheel operation (i.e., deltaY) as horizontal 1823 // scroll. deltaX and deltaZ are always ignored. So, only 1824 // "delta_multiplier_y" pref affects the scroll speed. 1825 // 5: Zoom in or out (pinch zoom). 1826 pref("mousewheel.default.action", 1); 1827 pref("mousewheel.with_alt.action", 2); 1828 pref("mousewheel.with_control.action", 3); 1829 // Command key on Mac, Windows log key on Windows and Linux 1830 pref("mousewheel.with_meta.action", 1); 1831 pref("mousewheel.with_shift.action", 4); 1832 1833 // mousewheel.*.action.override_x will override the action 1834 // when the mouse wheel is rotated along the x direction. 1835 // -1: Don't override the action. 1836 // 0 to 3: Override the action with the specified value. 1837 // Note that 4 isn't available because it doesn't make sense to apply the 1838 // default action only for y direction to this pref. 1839 pref("mousewheel.default.action.override_x", -1); 1840 pref("mousewheel.with_alt.action.override_x", -1); 1841 pref("mousewheel.with_control.action.override_x", -1); 1842 // Command key on Mac, Windows log key on Windows and Linux 1843 pref("mousewheel.with_meta.action.override_x", -1); 1844 pref("mousewheel.with_shift.action.override_x", -1); 1845 1846 // mousewheel.*.delta_multiplier_* can specify the value muliplied by the delta 1847 // value. The values will be used after divided by 100. I.e., 100 means 1.0, 1848 // -100 means -1.0. If the values were negative, the direction would be 1849 // reverted. The absolue value must be 100 or larger. 1850 pref("mousewheel.default.delta_multiplier_x", 100); 1851 pref("mousewheel.default.delta_multiplier_y", 100); 1852 pref("mousewheel.default.delta_multiplier_z", 100); 1853 pref("mousewheel.with_alt.delta_multiplier_x", 100); 1854 pref("mousewheel.with_alt.delta_multiplier_y", 100); 1855 pref("mousewheel.with_alt.delta_multiplier_z", 100); 1856 pref("mousewheel.with_control.delta_multiplier_x", 100); 1857 pref("mousewheel.with_control.delta_multiplier_y", 100); 1858 pref("mousewheel.with_control.delta_multiplier_z", 100); 1859 // Command key on Mac, Windows log key on Windows and Linux 1860 pref("mousewheel.with_meta.delta_multiplier_x", 100); 1861 pref("mousewheel.with_meta.delta_multiplier_y", 100); 1862 pref("mousewheel.with_meta.delta_multiplier_z", 100); 1863 pref("mousewheel.with_shift.delta_multiplier_x", 100); 1864 pref("mousewheel.with_shift.delta_multiplier_y", 100); 1865 pref("mousewheel.with_shift.delta_multiplier_z", 100); 1866 1867 // enable single finger gesture input (win7+ tablets) 1868 pref("gestures.enable_single_finger_input", true); 1869 1870 pref("dom.use_watchdog", true); 1871 1872 // Stop all scripts in a compartment when the "stop script" dialog is used. 1873 pref("dom.global_stop_script", true); 1874 1875 // Enable multi by default. 1876 #if !defined(MOZ_ASAN) && !defined(MOZ_TSAN) 1877 pref("dom.ipc.processCount", 8); 1878 #elif defined(FUZZING_SNAPSHOT) 1879 pref("dom.ipc.processCount", 1); 1880 #else 1881 pref("dom.ipc.processCount", 4); 1882 #endif 1883 1884 // Default to allow only one file:// URL content process. 1885 pref("dom.ipc.processCount.file", 1); 1886 1887 // WebExtensions only support a single extension process. 1888 pref("dom.ipc.processCount.extension", 1); 1889 1890 // The privileged about process only supports a single content process. 1891 pref("dom.ipc.processCount.privilegedabout", 1); 1892 1893 // Limit the privileged mozilla process to a single instance only 1894 // to avoid multiple of these content processes 1895 pref("dom.ipc.processCount.privilegedmozilla", 1); 1896 1897 // Maximum number of isolated content processes per-origin. 1898 #ifdef ANDROID 1899 pref("dom.ipc.processCount.webIsolated", 1); 1900 #else 1901 pref("dom.ipc.processCount.webIsolated", 4); 1902 #endif 1903 1904 // For now we allow a single inference process 1905 pref("dom.ipc.processCount.inference", 1); 1906 1907 // Keep a single privileged about process alive for performance reasons. 1908 // e.g. we do not want to throw content processes out every time we navigate 1909 // away from about:newtab. 1910 pref("dom.ipc.keepProcessesAlive.privilegedabout", 1); 1911 1912 // Disable support for SVG 1913 pref("svg.disabled", false); 1914 1915 // This pref will cause assertions when a remoteType triggers a process switch 1916 // to a new remoteType it should not be able to trigger. 1917 pref("browser.tabs.remote.enforceRemoteTypeRestrictions", false); 1918 1919 // Pref to control whether we use a separate privileged content process 1920 // for about: pages. This pref name did not age well: we will have multiple 1921 // types of privileged content processes, each with different privileges. 1922 pref("browser.tabs.remote.separatePrivilegedContentProcess", false); 1923 1924 // The domains we will isolate into the Mozilla Content Process. Comma-separated 1925 // full domains: any subdomains of the domains listed will also be allowed. 1926 pref("browser.tabs.remote.separatedMozillaDomains", "addons.mozilla.org,accounts.firefox.com"); 1927 1928 // Default font types and sizes by locale 1929 pref("font.default.ar", "sans-serif"); 1930 pref("font.minimum-size.ar", 0); 1931 pref("font.size.variable.ar", 16); 1932 pref("font.size.monospace.ar", 13); 1933 1934 pref("font.default.el", "serif"); 1935 pref("font.minimum-size.el", 0); 1936 pref("font.size.variable.el", 16); 1937 pref("font.size.monospace.el", 13); 1938 1939 pref("font.default.he", "sans-serif"); 1940 pref("font.minimum-size.he", 0); 1941 pref("font.size.variable.he", 16); 1942 pref("font.size.monospace.he", 13); 1943 1944 pref("font.default.ja", "sans-serif"); 1945 pref("font.minimum-size.ja", 0); 1946 pref("font.size.variable.ja", 16); 1947 pref("font.size.monospace.ja", 16); 1948 1949 pref("font.default.ko", "sans-serif"); 1950 pref("font.minimum-size.ko", 0); 1951 pref("font.size.variable.ko", 16); 1952 pref("font.size.monospace.ko", 16); 1953 1954 pref("font.default.th", "sans-serif"); 1955 pref("font.minimum-size.th", 0); 1956 pref("font.size.variable.th", 16); 1957 pref("font.size.monospace.th", 13); 1958 1959 pref("font.default.x-cyrillic", "serif"); 1960 pref("font.minimum-size.x-cyrillic", 0); 1961 pref("font.size.variable.x-cyrillic", 16); 1962 pref("font.size.monospace.x-cyrillic", 13); 1963 1964 pref("font.default.x-devanagari", "serif"); 1965 pref("font.minimum-size.x-devanagari", 0); 1966 pref("font.size.variable.x-devanagari", 16); 1967 pref("font.size.monospace.x-devanagari", 13); 1968 1969 pref("font.default.x-tamil", "serif"); 1970 pref("font.minimum-size.x-tamil", 0); 1971 pref("font.size.variable.x-tamil", 16); 1972 pref("font.size.monospace.x-tamil", 13); 1973 1974 pref("font.default.x-armn", "serif"); 1975 pref("font.minimum-size.x-armn", 0); 1976 pref("font.size.variable.x-armn", 16); 1977 pref("font.size.monospace.x-armn", 13); 1978 1979 pref("font.default.x-beng", "serif"); 1980 pref("font.minimum-size.x-beng", 0); 1981 pref("font.size.variable.x-beng", 16); 1982 pref("font.size.monospace.x-beng", 13); 1983 1984 pref("font.default.x-cans", "serif"); 1985 pref("font.minimum-size.x-cans", 0); 1986 pref("font.size.variable.x-cans", 16); 1987 pref("font.size.monospace.x-cans", 13); 1988 1989 pref("font.default.x-ethi", "serif"); 1990 pref("font.minimum-size.x-ethi", 0); 1991 pref("font.size.variable.x-ethi", 16); 1992 pref("font.size.monospace.x-ethi", 13); 1993 1994 pref("font.default.x-geor", "serif"); 1995 pref("font.minimum-size.x-geor", 0); 1996 pref("font.size.variable.x-geor", 16); 1997 pref("font.size.monospace.x-geor", 13); 1998 1999 pref("font.default.x-gujr", "serif"); 2000 pref("font.minimum-size.x-gujr", 0); 2001 pref("font.size.variable.x-gujr", 16); 2002 pref("font.size.monospace.x-gujr", 13); 2003 2004 pref("font.default.x-guru", "serif"); 2005 pref("font.minimum-size.x-guru", 0); 2006 pref("font.size.variable.x-guru", 16); 2007 pref("font.size.monospace.x-guru", 13); 2008 2009 pref("font.default.x-khmr", "serif"); 2010 pref("font.minimum-size.x-khmr", 0); 2011 pref("font.size.variable.x-khmr", 16); 2012 pref("font.size.monospace.x-khmr", 13); 2013 2014 pref("font.default.x-mlym", "serif"); 2015 pref("font.minimum-size.x-mlym", 0); 2016 pref("font.size.variable.x-mlym", 16); 2017 pref("font.size.monospace.x-mlym", 13); 2018 2019 pref("font.default.x-orya", "serif"); 2020 pref("font.minimum-size.x-orya", 0); 2021 pref("font.size.variable.x-orya", 16); 2022 pref("font.size.monospace.x-orya", 13); 2023 2024 pref("font.default.x-telu", "serif"); 2025 pref("font.minimum-size.x-telu", 0); 2026 pref("font.size.variable.x-telu", 16); 2027 pref("font.size.monospace.x-telu", 13); 2028 2029 pref("font.default.x-knda", "serif"); 2030 pref("font.minimum-size.x-knda", 0); 2031 pref("font.size.variable.x-knda", 16); 2032 pref("font.size.monospace.x-knda", 13); 2033 2034 pref("font.default.x-sinh", "serif"); 2035 pref("font.minimum-size.x-sinh", 0); 2036 pref("font.size.variable.x-sinh", 16); 2037 pref("font.size.monospace.x-sinh", 13); 2038 2039 pref("font.default.x-tibt", "serif"); 2040 pref("font.minimum-size.x-tibt", 0); 2041 pref("font.size.variable.x-tibt", 16); 2042 pref("font.size.monospace.x-tibt", 13); 2043 2044 pref("font.default.x-unicode", "serif"); 2045 pref("font.minimum-size.x-unicode", 0); 2046 pref("font.size.variable.x-unicode", 16); 2047 pref("font.size.monospace.x-unicode", 13); 2048 2049 pref("font.default.x-western", "serif"); 2050 pref("font.minimum-size.x-western", 0); 2051 pref("font.size.variable.x-western", 16); 2052 pref("font.size.monospace.x-western", 13); 2053 2054 pref("font.default.zh-CN", "sans-serif"); 2055 pref("font.minimum-size.zh-CN", 0); 2056 pref("font.size.variable.zh-CN", 16); 2057 pref("font.size.monospace.zh-CN", 16); 2058 2059 pref("font.default.zh-HK", "sans-serif"); 2060 pref("font.minimum-size.zh-HK", 0); 2061 pref("font.size.variable.zh-HK", 16); 2062 pref("font.size.monospace.zh-HK", 16); 2063 2064 pref("font.default.zh-TW", "sans-serif"); 2065 pref("font.minimum-size.zh-TW", 0); 2066 pref("font.size.variable.zh-TW", 16); 2067 pref("font.size.monospace.zh-TW", 16); 2068 2069 // mathml.css sets font-size to "inherit" and font-family to "serif" so only 2070 // font.name.*.x-math and font.minimum-size.x-math are really relevant. 2071 pref("font.default.x-math", "serif"); 2072 pref("font.minimum-size.x-math", 0); 2073 pref("font.size.variable.x-math", 16); 2074 pref("font.size.monospace.x-math", 13); 2075 2076 #ifdef XP_WIN 2077 2078 pref("font.name-list.emoji", "Segoe UI Emoji, Twemoji Mozilla"); 2079 2080 pref("font.name-list.serif.ar", "Times New Roman"); 2081 pref("font.name-list.sans-serif.ar", "Segoe UI, Tahoma, Arial"); 2082 pref("font.name-list.monospace.ar", "Consolas"); 2083 pref("font.name-list.cursive.ar", "Comic Sans MS"); 2084 2085 pref("font.name-list.serif.el", "Times New Roman"); 2086 pref("font.name-list.sans-serif.el", "Arial"); 2087 pref("font.name-list.monospace.el", "Consolas"); 2088 pref("font.name-list.cursive.el", "Comic Sans MS"); 2089 2090 pref("font.name-list.serif.he", "Narkisim, David"); 2091 pref("font.name-list.sans-serif.he", "Arial"); 2092 pref("font.name-list.monospace.he", "Fixed Miriam Transparent, Miriam Fixed, Rod, Consolas, Courier New"); 2093 pref("font.name-list.cursive.he", "Guttman Yad, Ktav, Arial"); 2094 2095 pref("font.name-list.serif.ja", "Yu Mincho, MS PMincho, MS Mincho, Noto Serif CJK JP, Noto Serif JP, Meiryo, Yu Gothic, MS PGothic, MS Gothic"); 2096 pref("font.name-list.sans-serif.ja", "Meiryo, Yu Gothic, MS PGothic, MS Gothic, Noto Sans CJK JP, Noto Sans JP"); 2097 pref("font.name-list.monospace.ja", "BIZ UDGothic, MS Gothic, MS Mincho, Meiryo, Yu Gothic, Yu Mincho"); 2098 2099 pref("font.name-list.serif.ko", "Batang, Noto Serif CJK KR, Noto Serif KR, Gulim"); 2100 pref("font.name-list.sans-serif.ko", "Malgun Gothic, Gulim, Noto Sans CJK KR, Noto Sans KR"); 2101 pref("font.name-list.monospace.ko", "GulimChe"); 2102 pref("font.name-list.cursive.ko", "Gungsuh"); 2103 2104 pref("font.name-list.serif.th", "Tahoma"); 2105 pref("font.name-list.sans-serif.th", "Tahoma"); 2106 pref("font.name-list.monospace.th", "Tahoma"); 2107 pref("font.name-list.cursive.th", "Tahoma"); 2108 2109 pref("font.name-list.serif.x-cyrillic", "Times New Roman"); 2110 pref("font.name-list.sans-serif.x-cyrillic", "Arial"); 2111 pref("font.name-list.monospace.x-cyrillic", "Consolas"); 2112 pref("font.name-list.cursive.x-cyrillic", "Comic Sans MS"); 2113 2114 pref("font.name-list.serif.x-unicode", "Times New Roman"); 2115 pref("font.name-list.sans-serif.x-unicode", "Arial"); 2116 pref("font.name-list.monospace.x-unicode", "Consolas"); 2117 pref("font.name-list.cursive.x-unicode", "Comic Sans MS"); 2118 2119 pref("font.name-list.serif.x-western", "Times New Roman"); 2120 pref("font.name-list.sans-serif.x-western", "Arial"); 2121 pref("font.name-list.monospace.x-western", "Consolas"); 2122 pref("font.name-list.cursive.x-western", "Comic Sans MS"); 2123 2124 pref("font.name-list.serif.zh-CN", "SimSun, MS Song, SimSun-ExtB, Noto Serif CJK SC, Noto Serif SC"); 2125 pref("font.name-list.sans-serif.zh-CN", "Microsoft YaHei, SimHei, Noto Sans CJK SC, Noto Sans SC"); 2126 pref("font.name-list.monospace.zh-CN", "NSimSun, SimSun, MS Song, SimSun-ExtB"); 2127 pref("font.name-list.cursive.zh-CN", "KaiTi, KaiTi_GB2312"); 2128 2129 // Per Taiwanese users' demand. They don't want to use TC fonts for 2130 // rendering Latin letters. (bug 88579) 2131 pref("font.name-list.serif.zh-TW", "Times New Roman, PMingLiu, MingLiU, MingLiU-ExtB, Noto Serif CJK TC, Noto Serif TC"); 2132 pref("font.name-list.sans-serif.zh-TW", "Arial, Microsoft JhengHei, PMingLiU, MingLiU, MingLiU-ExtB, Noto Sans CJK TC, Noto Sans TC"); 2133 pref("font.name-list.monospace.zh-TW", "MingLiU, MingLiU-ExtB"); 2134 pref("font.name-list.cursive.zh-TW", "DFKai-SB"); 2135 2136 // hkscsm3u.ttf (HKSCS-2001) : http://www.microsoft.com/hk/hkscs 2137 // Hong Kong users have the same demand about glyphs for Latin letters (bug 88579) 2138 pref("font.name-list.serif.zh-HK", "Times New Roman, MingLiu_HKSCS, Ming(for ISO10646), MingLiU, MingLiU_HKSCS-ExtB, Noto Serif CJK HK, Noto Serif HK, Microsoft JhengHei"); 2139 pref("font.name-list.sans-serif.zh-HK", "Arial, MingLiU_HKSCS, Ming(for ISO10646), MingLiU, MingLiU_HKSCS-ExtB, Microsoft JhengHei, Noto Sans CJK HK, Noto Sans HK"); 2140 pref("font.name-list.monospace.zh-HK", "MingLiU_HKSCS, Ming(for ISO10646), MingLiU, MingLiU_HKSCS-ExtB, Microsoft JhengHei"); 2141 pref("font.name-list.cursive.zh-HK", "DFKai-SB"); 2142 2143 pref("font.name-list.serif.x-devanagari", "Kokila, Raghindi"); 2144 pref("font.name-list.sans-serif.x-devanagari", "Nirmala UI, Mangal"); 2145 pref("font.name-list.monospace.x-devanagari", "Mangal, Nirmala UI"); 2146 2147 pref("font.name-list.serif.x-tamil", "Latha"); 2148 pref("font.name-list.monospace.x-tamil", "Latha"); 2149 2150 // http://www.alanwood.net/unicode/fonts.html 2151 2152 pref("font.name-list.serif.x-armn", "Sylfaen"); 2153 pref("font.name-list.sans-serif.x-armn", "Arial AMU"); 2154 pref("font.name-list.monospace.x-armn", "Arial AMU"); 2155 2156 pref("font.name-list.serif.x-beng", "Vrinda, Akaash, Likhan, Ekushey Punarbhaba"); 2157 pref("font.name-list.sans-serif.x-beng", "Nirmala Text, Vrinda, Akaash, Likhan, Ekushey Punarbhaba"); 2158 pref("font.name-list.monospace.x-beng", "Mitra Mono, Likhan, Mukti Narrow"); 2159 2160 pref("font.name-list.serif.x-cans", "Aboriginal Serif, BJCree Uni"); 2161 pref("font.name-list.sans-serif.x-cans", "Aboriginal Sans"); 2162 pref("font.name-list.monospace.x-cans", "Aboriginal Sans, OskiDakelh, Pigiarniq, Uqammaq"); 2163 2164 pref("font.name-list.serif.x-ethi", "Visual Geez Unicode, Visual Geez Unicode Agazian"); 2165 pref("font.name-list.sans-serif.x-ethi", "GF Zemen Unicode"); 2166 pref("font.name-list.monospace.x-ethi", "Ethiopia Jiret"); 2167 pref("font.name-list.cursive.x-ethi", "Visual Geez Unicode Title"); 2168 2169 pref("font.name-list.serif.x-geor", "Sylfaen, BPG Paata Khutsuri U, TITUS Cyberbit Basic"); 2170 pref("font.name-list.sans-serif.x-geor", "BPG Classic 99U"); 2171 pref("font.name-list.monospace.x-geor", "BPG Classic 99U"); 2172 2173 pref("font.name-list.serif.x-gujr", "Shruti"); 2174 pref("font.name-list.sans-serif.x-gujr", "Shruti"); 2175 pref("font.name-list.monospace.x-gujr", "Shruti"); 2176 2177 pref("font.name-list.serif.x-guru", "Raavi, Saab"); 2178 pref("font.name-list.sans-serif.x-guru", ""); 2179 pref("font.name-list.monospace.x-guru", "Raavi, Saab"); 2180 2181 pref("font.name-list.serif.x-khmr", "PhnomPenh OT,.Mondulkiri U GR 1.5, Khmer OS"); 2182 pref("font.name-list.sans-serif.x-khmr", "Khmer OS"); 2183 pref("font.name-list.monospace.x-khmr", "Khmer OS, Khmer OS System"); 2184 2185 pref("font.name-list.serif.x-mlym", "Rachana_w01, AnjaliOldLipi, Kartika, ThoolikaUnicode"); 2186 pref("font.name-list.sans-serif.x-mlym", "Rachana_w01, AnjaliOldLipi, Kartika, ThoolikaUnicode"); 2187 pref("font.name-list.monospace.x-mlym", "Rachana_w01, AnjaliOldLipi, Kartika, ThoolikaUnicode"); 2188 2189 pref("font.name-list.serif.x-orya", "ori1Uni, Kalinga"); 2190 pref("font.name-list.sans-serif.x-orya", "ori1Uni, Kalinga"); 2191 pref("font.name-list.monospace.x-orya", "ori1Uni, Kalinga"); 2192 2193 pref("font.name-list.serif.x-telu", "Gautami, Akshar Unicode"); 2194 pref("font.name-list.sans-serif.x-telu", "Gautami, Akshar Unicode"); 2195 pref("font.name-list.monospace.x-telu", "Gautami, Akshar Unicode"); 2196 2197 pref("font.name-list.serif.x-knda", "Tunga, AksharUnicode"); 2198 pref("font.name-list.sans-serif.x-knda", "Tunga, AksharUnicode"); 2199 pref("font.name-list.monospace.x-knda", "Tunga, AksharUnicode"); 2200 2201 pref("font.name-list.serif.x-sinh", "Iskoola Pota, AksharUnicode"); 2202 pref("font.name-list.sans-serif.x-sinh", "Iskoola Pota, AksharUnicode"); 2203 pref("font.name-list.monospace.x-sinh", "Iskoola Pota, AksharUnicode"); 2204 2205 pref("font.name-list.serif.x-tibt", "Tibetan Machine Uni, Jomolhari, Microsoft Himalaya"); 2206 pref("font.name-list.sans-serif.x-tibt", "Tibetan Machine Uni, Jomolhari, Microsoft Himalaya"); 2207 pref("font.name-list.monospace.x-tibt", "Tibetan Machine Uni, Jomolhari, Microsoft Himalaya"); 2208 2209 pref("font.minimum-size.th", 10); 2210 2211 pref("font.default.x-devanagari", "sans-serif"); 2212 2213 pref("font.name-list.serif.x-math", "Latin Modern Math, STIX Two Math, XITS Math, Cambria Math, Libertinus Math, DejaVu Math TeX Gyre, TeX Gyre Bonum Math, TeX Gyre Pagella Math, TeX Gyre Schola, TeX Gyre Termes Math, STIX Math, Asana Math, STIXGeneral, DejaVu Serif, DejaVu Sans, Times New Roman"); 2214 pref("font.name-list.sans-serif.x-math", "Arial"); 2215 pref("font.name-list.monospace.x-math", "Consolas"); 2216 pref("font.name-list.cursive.x-math", "Comic Sans MS"); 2217 2218 // ClearType tuning parameters for directwrite. 2219 // 2220 // Allows overriding of underlying registry values in: 2221 // HKCU/Software/Microsoft/Avalon.Graphics/<display> (contrast and level) 2222 // HKLM/Software/Microsoft/Avalon.Graphics/<display> (gamma, pixel structure) 2223 // and selection of the ClearType/antialiasing mode. 2224 // 2225 // A value of -1 implies use the default value, otherwise value ranges 2226 // follow registry settings: 2227 // gamma [1000, 2200] default: based on screen, typically 2200 (== 2.2) 2228 // enhanced contrast [0, 1000] default: 50 2229 // cleartype level [0, 100] default: 100 2230 // pixel structure [0, 2] default: 0 (flat/RGB/BGR) 2231 // rendering mode [0, 5] default: 0 2232 // 0 = use default for font & size; 2233 // 1 = aliased; 2234 // 2 = GDI Classic; 2235 // 3 = GDI Natural Widths; 2236 // 4 = Natural; 2237 // 5 = Natural Symmetric 2238 // 2239 // See: 2240 // http://msdn.microsoft.com/en-us/library/aa970267.aspx 2241 // http://msdn.microsoft.com/en-us/library/dd368190%28v=VS.85%29.aspx 2242 // Note: DirectWrite uses the "Enhanced Contrast Level" value rather than the 2243 // "Text Contrast Level" value 2244 2245 pref("gfx.font_rendering.cleartype_params.gamma", -1); 2246 pref("gfx.font_rendering.cleartype_params.enhanced_contrast", -1); 2247 pref("gfx.font_rendering.cleartype_params.cleartype_level", -1); 2248 pref("gfx.font_rendering.cleartype_params.pixel_structure", -1); 2249 pref("gfx.font_rendering.cleartype_params.rendering_mode", -1); 2250 2251 // We no longer force "GDI Classic" mode on any fonts by default. 2252 pref("gfx.font_rendering.cleartype_params.force_gdi_classic_for_families", ""); 2253 pref("gfx.font_rendering.cleartype_params.force_gdi_classic_max_size", 0); 2254 2255 // Switch the keyboard layout per window 2256 pref("intl.keyboard.per_window_layout", false); 2257 2258 // If composition_font is set, Gecko sets the font to IME. IME may use 2259 // the fonts on their window like candidate window. If they are empty, 2260 // Gecko uses the system default font which is set to the IM context. 2261 // The font name must not start with '@'. When the writing mode is vertical, 2262 // Gecko inserts '@' to the start of the font name automatically. 2263 // FYI: Changing these prefs requires to restart. 2264 pref("intl.imm.composition_font", ""); 2265 2266 // Japanist 2003's candidate window is broken if the font is "@System" which 2267 // is default composition font for vertical writing mode. 2268 // You can specify font to use on candidate window of Japanist 2003. 2269 // This value must not start with '@'. 2270 // FYI: Changing this pref requires to restart. 2271 pref("intl.imm.composition_font.japanist_2003", "MS PGothic"); 2272 2273 // Even if IME claims that they support vertical writing mode but it may not 2274 // support vertical writing mode for its candidate window. This pref allows 2275 // to ignore the claim. 2276 // FYI: Changing this pref requires to restart. 2277 pref("intl.imm.vertical_writing.always_assume_not_supported", false); 2278 2279 // We cannot retrieve active IME name with IMM32 API if a TIP of TSF is 2280 // active. This pref can specify active IME name when Japanese TIP is active. 2281 // For example: 2282 // Google Japanese Input: "Google 日本語入力 IMM32 モジュール" 2283 // ATOK 2011: "ATOK 2011" (similarly, e.g., ATOK 2013 is "ATOK 2013") 2284 pref("intl.imm.japanese.assume_active_tip_name_as", ""); 2285 2286 // Enable system settings cache for mouse wheel message handling. 2287 // Note that even if this pref is set to true, Gecko may not cache the system 2288 // settings if Gecko detects that the cache won't be refreshed properly when 2289 // the settings are changed. 2290 pref("mousewheel.system_settings_cache.enabled", true); 2291 2292 // This is a pref to test system settings cache for mouse wheel message 2293 // handling. If this is set to true, Gecko forcibly use the cache. 2294 pref("mousewheel.system_settings_cache.force_enabled", false); 2295 2296 // If your mouse drive sends WM_*SCROLL messages when you turn your mouse 2297 // wheel, set this to true. Then, gecko processes them as mouse wheel 2298 // messages. 2299 pref("mousewheel.emulate_at_wm_scroll", false); 2300 2301 // Some odd touchpad utils give focus to window under cursor when user tries 2302 // to scroll. If this is true, Gecko tries to emulate such odd behavior. 2303 // Don't make this true unless you want to debug. Enabling this pref causes 2304 // making damage to the performance. 2305 pref("mousewheel.debug.make_window_under_cursor_foreground", false); 2306 2307 // Enables or disabled the TrackPoint hack, -1 is autodetect, 0 is off, 2308 // and 1 is on. Set this to 1 if TrackPoint scrolling is not working. 2309 pref("ui.trackpoint_hack.enabled", -1); 2310 2311 // Setting this to a non-empty string overrides the Win32 "window class" used 2312 // for "normal" windows. Setting this to MozillaUIWindowClass might make 2313 // some trackpad drivers behave better. 2314 pref("ui.window_class_override", ""); 2315 2316 // Enables or disables the Elantech gesture hacks. -1 is autodetect, 0 is 2317 // off, and 1 is on. Set this to 1 if three-finger swipe gestures do not 2318 // cause page back/forward actions, or if pinch-to-zoom does not work. 2319 pref("ui.elantech_gesture_hacks.enabled", -1); 2320 2321 // Show the Windows on-screen keyboard (osk.exe) when a text field is focused. 2322 pref("ui.osk.enabled", true); 2323 // Only show the on-screen keyboard if there are no physical keyboards 2324 // attached to the device. 2325 pref("ui.osk.detect_physical_keyboard", true); 2326 // Path to TabTip.exe on local machine. Cached for performance reasons. 2327 pref("ui.osk.on_screen_keyboard_path", ""); 2328 // This pref stores the "reason" that the on-screen keyboard was either 2329 // shown or not shown when focus is moved to an editable text field. It is 2330 // used to help debug why the keyboard is either not appearing when expected 2331 // or appearing when it is not expected. 2332 pref("ui.osk.debug.keyboardDisplayReason", ""); 2333 2334 #endif // XP_WIN 2335 2336 #ifdef XP_MACOSX 2337 // Mac specific preference defaults 2338 pref("browser.drag_out_of_frame_style", 1); 2339 2340 // default fonts (in UTF8 and using canonical names) 2341 // to determine canonical font names, use a debug build and 2342 // enable NSPR logging for module fontInfoLog:5 2343 // canonical names immediately follow '(fontinit) family:' in the log 2344 2345 // For some scripts there is no commonly-installed monospace font, so we just use 2346 // the same as serif/sans-serif, but we prefix the list with Menlo so that at least 2347 // Latin text will be monospaced if it occurs when that lang code is in effect. 2348 2349 pref("font.name-list.emoji", "Apple Color Emoji"); 2350 2351 pref("font.name-list.serif.ar", "Al Bayan"); 2352 pref("font.name-list.sans-serif.ar", "Geeza Pro"); 2353 pref("font.name-list.monospace.ar", "Menlo, Geeza Pro"); 2354 pref("font.name-list.cursive.ar", "DecoType Naskh"); 2355 pref("font.name-list.fantasy.ar", "KufiStandardGK"); 2356 2357 pref("font.name-list.serif.el", "Times, Times New Roman"); 2358 pref("font.name-list.sans-serif.el", "Helvetica, Lucida Grande"); 2359 pref("font.name-list.monospace.el", "Menlo"); 2360 pref("font.name-list.cursive.el", "Lucida Grande, Times"); 2361 pref("font.name-list.fantasy.el", "Lucida Grande, Times"); 2362 2363 pref("font.name-list.serif.he", "Times New Roman"); 2364 pref("font.name-list.sans-serif.he", "Arial"); 2365 pref("font.name-list.monospace.he", "Menlo, Courier New"); 2366 pref("font.name-list.cursive.he", "Times New Roman"); 2367 pref("font.name-list.fantasy.he", "Times New Roman"); 2368 2369 pref("font.name-list.serif.ja", "Hiragino Mincho ProN, Hiragino Mincho Pro"); 2370 pref("font.name-list.sans-serif.ja", "Hiragino Kaku Gothic ProN, Hiragino Kaku Gothic Pro, Hiragino Sans"); 2371 pref("font.name-list.monospace.ja", "Osaka-Mono, Menlo, Hiragino Kaku Gothic ProN, Hiragino Sans"); 2372 2373 pref("font.name-list.serif.ko", "AppleMyungjo"); 2374 pref("font.name-list.sans-serif.ko", "Apple SD Gothic Neo, AppleGothic"); 2375 pref("font.name-list.monospace.ko", "Menlo, Apple SD Gothic Neo, AppleGothic"); 2376 2377 pref("font.name-list.serif.th", "Thonburi"); 2378 pref("font.name-list.sans-serif.th", "Thonburi"); 2379 pref("font.name-list.monospace.th", "Menlo, Ayuthaya"); 2380 2381 pref("font.name-list.serif.x-armn", "Noto Sans Armenian"); 2382 pref("font.name-list.sans-serif.x-armn", "Noto Sans Armenian"); 2383 pref("font.name-list.monospace.x-armn", "Menlo, Noto Sans Armenian"); 2384 2385 // SolaimanLipi, Rupali http://ekushey.org/?page/mac_download 2386 pref("font.name-list.serif.x-beng", "Bangla MN"); 2387 pref("font.name-list.sans-serif.x-beng", "Bangla Sangam MN"); 2388 pref("font.name-list.monospace.x-beng", "Menlo, Bangla Sangam MN"); 2389 2390 pref("font.name-list.serif.x-cans", "Euphemia UCAS"); 2391 pref("font.name-list.sans-serif.x-cans", "Euphemia UCAS"); 2392 pref("font.name-list.monospace.x-cans", "Menlo, Euphemia UCAS"); 2393 2394 pref("font.name-list.serif.x-cyrillic", "Times, Times New Roman"); 2395 pref("font.name-list.sans-serif.x-cyrillic", "Helvetica, Arial"); 2396 pref("font.name-list.monospace.x-cyrillic", "Menlo"); 2397 pref("font.name-list.cursive.x-cyrillic", "Geneva"); 2398 pref("font.name-list.fantasy.x-cyrillic", "Charcoal CY"); 2399 2400 pref("font.name-list.serif.x-devanagari", "ITF Devanagari, Devanagari MT"); 2401 pref("font.name-list.sans-serif.x-devanagari", "Kohinoor Devanagari, Devanagari Sangam MN, Devanagari MT"); 2402 pref("font.name-list.monospace.x-devanagari", "Menlo, Kohinoor Devanagari, Devanagari Sangam MN, Devanagari MT"); 2403 2404 // Abyssinica SIL http://scripts.sil.org/AbyssinicaSIL_Download 2405 pref("font.name-list.serif.x-ethi", "Kefa, Abyssinica SIL"); 2406 pref("font.name-list.sans-serif.x-ethi", "Kefa, Abyssinica SIL"); 2407 pref("font.name-list.monospace.x-ethi", "Menlo, Kefa, Abyssinica SIL"); 2408 2409 // no suitable fonts for georgian ship with mac os x 2410 // however some can be freely downloaded 2411 // TITUS Cyberbit Basic http://titus.fkidg1.uni-frankfurt.de/unicode/tituut.asp 2412 // Zuzumbo http://homepage.mac.com/rsiradze/FileSharing91.html 2413 pref("font.name-list.serif.x-geor", "TITUS Cyberbit Basic"); 2414 pref("font.name-list.sans-serif.x-geor", "Zuzumbo"); 2415 pref("font.name-list.monospace.x-geor", "Menlo, Zuzumbo"); 2416 2417 pref("font.name-list.serif.x-gujr", "Gujarati MT"); 2418 pref("font.name-list.sans-serif.x-gujr", "Gujarati Sangam MN, Gujarati MT"); 2419 pref("font.name-list.monospace.x-gujr", "Menlo, Gujarati Sangam MN, Gujarati MT"); 2420 2421 pref("font.name-list.serif.x-guru", "Gurmukhi MT"); 2422 pref("font.name-list.sans-serif.x-guru", "Gurmukhi MT"); 2423 pref("font.name-list.monospace.x-guru", "Menlo, Gurmukhi MT"); 2424 2425 pref("font.name-list.serif.x-khmr", "Khmer MN"); 2426 pref("font.name-list.sans-serif.x-khmr", "Khmer Sangam MN"); 2427 pref("font.name-list.monospace.x-khmr", "Menlo, Khmer Sangam MN"); 2428 2429 pref("font.name-list.serif.x-mlym", "Malayalam MN"); 2430 pref("font.name-list.sans-serif.x-mlym", "Malayalam Sangam MN"); 2431 pref("font.name-list.monospace.x-mlym", "Menlo, Malayalam Sangam MN"); 2432 2433 pref("font.name-list.serif.x-orya", "Oriya MN"); 2434 pref("font.name-list.sans-serif.x-orya", "Oriya Sangam MN"); 2435 pref("font.name-list.monospace.x-orya", "Menlo, Oriya Sangam MN"); 2436 2437 // Pothana http://web.nickshanks.com/typography/telugu/ 2438 pref("font.name-list.serif.x-telu", "Telugu MN, Pothana"); 2439 pref("font.name-list.sans-serif.x-telu", "Telugu Sangam MN, Pothana"); 2440 pref("font.name-list.monospace.x-telu", "Menlo, Telugu Sangam MN, Pothana"); 2441 2442 // Kedage http://web.nickshanks.com/typography/kannada/ 2443 pref("font.name-list.serif.x-knda", "Kannada MN, Kedage"); 2444 pref("font.name-list.sans-serif.x-knda", "Kannada Sangam MN, Kedage"); 2445 pref("font.name-list.monospace.x-knda", "Menlo, Kannada Sangam MN, Kedage"); 2446 2447 pref("font.name-list.serif.x-sinh", "Sinhala MN"); 2448 pref("font.name-list.sans-serif.x-sinh", "Sinhala Sangam MN"); 2449 pref("font.name-list.monospace.x-sinh", "Menlo, Sinhala Sangam MN"); 2450 2451 pref("font.name-list.serif.x-tamil", "InaiMathi"); 2452 pref("font.name-list.sans-serif.x-tamil", "InaiMathi"); 2453 pref("font.name-list.monospace.x-tamil", "Menlo, InaiMathi"); 2454 2455 // Kailasa ships with mac os x >= 10.5 2456 pref("font.name-list.serif.x-tibt", "Kailasa"); 2457 pref("font.name-list.sans-serif.x-tibt", "Kailasa"); 2458 pref("font.name-list.monospace.x-tibt", "Menlo, Kailasa"); 2459 2460 pref("font.name-list.serif.x-unicode", "Times"); 2461 pref("font.name-list.sans-serif.x-unicode", "Helvetica"); 2462 pref("font.name-list.monospace.x-unicode", "Menlo"); 2463 pref("font.name-list.cursive.x-unicode", "Apple Chancery"); 2464 pref("font.name-list.fantasy.x-unicode", "Papyrus"); 2465 2466 pref("font.name-list.serif.x-western", "Times, Times New Roman"); 2467 pref("font.name-list.sans-serif.x-western", "Helvetica, Arial"); 2468 pref("font.name-list.monospace.x-western", "Menlo"); 2469 pref("font.name-list.cursive.x-western", "Apple Chancery"); 2470 pref("font.name-list.fantasy.x-western", "Papyrus"); 2471 2472 pref("font.name-list.serif.zh-CN", "Times New Roman, Songti SC, STSong, Heiti SC"); 2473 pref("font.name-list.sans-serif.zh-CN", "Arial, PingFang SC, STHeiti, Heiti SC"); 2474 pref("font.name-list.monospace.zh-CN", "Menlo, PingFang SC, STHeiti, Heiti SC"); 2475 pref("font.name-list.cursive.zh-CN", "Kaiti SC"); 2476 2477 pref("font.name-list.serif.zh-TW", "Times New Roman, Songti TC, LiSong Pro, Heiti TC"); 2478 pref("font.name-list.sans-serif.zh-TW", "Arial, PingFang TC, Heiti TC, LiHei Pro"); 2479 pref("font.name-list.monospace.zh-TW", "Menlo, PingFang TC, Heiti TC, LiHei Pro"); 2480 pref("font.name-list.cursive.zh-TW", "Kaiti TC"); 2481 2482 pref("font.name-list.serif.zh-HK", "Times New Roman, Songti TC, LiSong Pro, Heiti TC"); 2483 pref("font.name-list.sans-serif.zh-HK", "Arial, PingFang TC, Heiti TC, LiHei Pro"); 2484 pref("font.name-list.monospace.zh-HK", "Menlo, PingFang TC, Heiti TC, LiHei Pro"); 2485 pref("font.name-list.cursive.zh-HK", "Kaiti TC"); 2486 2487 // XP_MACOSX changes to default font sizes 2488 pref("font.minimum-size.th", 10); 2489 2490 pref("font.name-list.serif.x-math", "Latin Modern Math, STIX Two Math, XITS Math, Cambria Math, Libertinus Math, DejaVu Math TeX Gyre, TeX Gyre Bonum Math, TeX Gyre Pagella Math, TeX Gyre Schola, TeX Gyre Termes Math, STIX Math, Asana Math, STIXGeneral, DejaVu Serif, DejaVu Sans, Symbol, Times"); 2491 pref("font.name-list.sans-serif.x-math", "Helvetica"); 2492 pref("font.name-list.monospace.x-math", "Menlo"); 2493 pref("font.name-list.cursive.x-math", "Apple Chancery"); 2494 pref("font.name-list.fantasy.x-math", "Papyrus"); 2495 2496 // Individual font faces to be treated as independent families, 2497 // listed as <Postscript name of face:Owning family name> 2498 pref("font.single-face-list", "Osaka-Mono:Osaka"); 2499 2500 // optimization hint for fonts with localized names to be read in at startup, otherwise read in at lookup miss 2501 // names are canonical family names (typically English names) 2502 pref("font.preload-names-list", "Hiragino Kaku Gothic ProN,Hiragino Mincho ProN,STSong"); 2503 2504 // Override font-weight values for some problematic families Apple ships 2505 // (see bug 931426). 2506 // The name here is the font's PostScript name, which can be checked in 2507 // the Font Book utility or other tools. 2508 pref("font.weight-override.AppleSDGothicNeo-Thin", 100); // Ensure Thin < UltraLight < Light 2509 pref("font.weight-override.AppleSDGothicNeo-UltraLight", 200); 2510 pref("font.weight-override.AppleSDGothicNeo-Light", 300); 2511 pref("font.weight-override.AppleSDGothicNeo-Heavy", 900); // Ensure Heavy > ExtraBold (800) 2512 2513 pref("font.weight-override.Avenir-Book", 300); // Ensure Book < Roman (400) 2514 pref("font.weight-override.Avenir-BookOblique", 300); 2515 pref("font.weight-override.Avenir-MediumOblique", 500); // Harmonize MediumOblique with Medium 2516 pref("font.weight-override.Avenir-Black", 900); // Ensure Black > Heavy (800) 2517 pref("font.weight-override.Avenir-BlackOblique", 900); 2518 2519 pref("font.weight-override.AvenirNext-MediumItalic", 500); // Harmonize MediumItalic with Medium 2520 pref("font.weight-override.AvenirNextCondensed-MediumItalic", 500); 2521 2522 pref("font.weight-override.HelveticaNeue-Light", 300); // Ensure Light > Thin (200) 2523 pref("font.weight-override.HelveticaNeue-LightItalic", 300); 2524 2525 // Macbook touchpad two finger pixel scrolling 2526 pref("mousewheel.enable_pixel_scrolling", true); 2527 2528 #endif // XP_MACOSX 2529 2530 #ifdef XP_IOS 2531 // For many scripts there is no standard "monospaced" font, so we just use 2532 // the same as serif/sans-serif, but we prefix the list with Menlo so that at 2533 // least any runs of Latin text found when that lang code is in effect will be 2534 // monospaced, even if the "native" script can't be. 2535 2536 // For non-Latin/Greek/Cyrillic scripts, there may not be any serif/sans-serif 2537 // distinction available, so both generics resolve to the same font. 2538 2539 pref("font.name-list.emoji", "Apple Color Emoji"); 2540 2541 pref("font.name-list.serif.ar", "Al Nile"); 2542 pref("font.name-list.sans-serif.ar", "Geeza Pro"); 2543 pref("font.name-list.monospace.ar", "Menlo, Geeza Pro"); 2544 2545 pref("font.name-list.serif.el", "Times New Roman"); 2546 pref("font.name-list.sans-serif.el", "Arial"); 2547 pref("font.name-list.monospace.el", "Menlo"); 2548 2549 pref("font.name-list.serif.he", "Times New Roman"); 2550 pref("font.name-list.sans-serif.he", "Arial"); 2551 pref("font.name-list.monospace.he", "Menlo"); 2552 2553 pref("font.name-list.serif.ja", "Hiragino Mincho ProN"); 2554 pref("font.name-list.sans-serif.ja", "Hiragino Sans"); 2555 pref("font.name-list.monospace.ja", "Menlo, Hiragino Sans"); 2556 2557 pref("font.name-list.serif.ko", "Apple SD Gothic Neo"); 2558 pref("font.name-list.sans-serif.ko", "Apple SD Gothic Neo"); 2559 pref("font.name-list.monospace.ko", "Menlo, Apple SD Gothic Neo"); 2560 2561 pref("font.name-list.serif.th", "Thonburi"); 2562 pref("font.name-list.sans-serif.th", "Thonburi"); 2563 pref("font.name-list.monospace.th", "Menlo, Thonburi"); 2564 2565 // XXX Unsure if the "SF Armenian" font is present/visible as standard? 2566 pref("font.name-list.serif.x-armn", "SF Armenian"); 2567 pref("font.name-list.sans-serif.x-armn", "SF Armenian"); 2568 pref("font.name-list.monospace.x-armn", "Menlo, SF Armenian"); 2569 2570 pref("font.name-list.serif.x-beng", "Kohinoor Bangla"); 2571 pref("font.name-list.sans-serif.x-beng", "Kohinoor Bangla"); 2572 pref("font.name-list.monospace.x-beng", "Menlo, Kohinoor Bangla"); 2573 2574 pref("font.name-list.serif.x-cans", "Euphemia UCAS"); 2575 pref("font.name-list.sans-serif.x-cans", "Euphemia UCAS"); 2576 pref("font.name-list.monospace.x-cans", "Menlo, Euphemia UCAS"); 2577 2578 pref("font.name-list.serif.x-cyrillic", "Times New Roman"); 2579 pref("font.name-list.sans-serif.x-cyrillic", "Arial"); 2580 pref("font.name-list.monospace.x-cyrillic", "Menlo"); 2581 2582 pref("font.name-list.serif.x-devanagari", "Kohinoor Devanagari, Devanagari Sangam MN"); 2583 pref("font.name-list.sans-serif.x-devanagari", "Kohinoor Devanagari, Devanagari Sangam MN"); 2584 pref("font.name-list.monospace.x-devanagari", "Menlo, Kohinoor Devanagari, Devanagari Sangam MN"); 2585 2586 pref("font.name-list.serif.x-ethi", "Kefa"); 2587 pref("font.name-list.sans-serif.x-ethi", "Kefa"); 2588 pref("font.name-list.monospace.x-ethi", "Menlo, Kefa"); 2589 2590 // XXX Is "SF Georgian" present/visible as standard? 2591 pref("font.name-list.serif.x-geor", "SF Georgian"); 2592 pref("font.name-list.sans-serif.x-geor", "SF Georgian"); 2593 pref("font.name-list.monospace.x-geor", "Menlo, SF Georgian"); 2594 2595 pref("font.name-list.serif.x-gujr", "Kohinoor Gujarati"); 2596 pref("font.name-list.sans-serif.x-gujr", "Kohinoor Gujarati"); 2597 pref("font.name-list.monospace.x-gujr", "Menlo, Kohinoor Gujarati"); 2598 2599 // XXX Check spelling: "Mukta Mahee" or "MuktaMahee"? 2600 pref("font.name-list.serif.x-guru", "Mukta Mahee"); 2601 pref("font.name-list.sans-serif.x-guru", "Mukta Mahee"); 2602 pref("font.name-list.monospace.x-guru", "Menlo, Mukta Mahee"); 2603 2604 pref("font.name-list.serif.x-khmr", "Khmer Sangam MN"); 2605 pref("font.name-list.sans-serif.x-khmr", "Khmer Sangam MN"); 2606 pref("font.name-list.monospace.x-khmr", "Menlo, Khmer Sangam MN"); 2607 2608 pref("font.name-list.serif.x-mlym", "Malayalam Sangam MN"); 2609 pref("font.name-list.sans-serif.x-mlym", "Malayalam Sangam MN"); 2610 pref("font.name-list.monospace.x-mlym", "Menlo, Malayalam Sangam MN"); 2611 2612 pref("font.name-list.serif.x-orya", "Noto Sans Oriya"); 2613 pref("font.name-list.sans-serif.x-orya", "Noto Sans Oriya"); 2614 pref("font.name-list.monospace.x-orya", "Menlo, Noto Sans Oriya"); 2615 2616 pref("font.name-list.serif.x-telu", "Kohinoor Telugu"); 2617 pref("font.name-list.sans-serif.x-telu", "Kohinoor Telugu"); 2618 pref("font.name-list.monospace.x-telu", "Menlo, Kohinoor Telugu"); 2619 2620 pref("font.name-list.serif.x-knda", "Noto Sans Kannada"); 2621 pref("font.name-list.sans-serif.x-knda", "Noto Sans Kannada"); 2622 pref("font.name-list.monospace.x-knda", "Menlo, Noto Sans Kannada"); 2623 2624 pref("font.name-list.serif.x-sinh", "Sinhala Sangam MN"); 2625 pref("font.name-list.sans-serif.x-sinh", "Sinhala Sangam MN"); 2626 pref("font.name-list.monospace.x-sinh", "Menlo, Sinhala Sangam MN"); 2627 2628 pref("font.name-list.serif.x-tamil", "Tamil Sangam MN"); 2629 pref("font.name-list.sans-serif.x-tamil", "Tamil Sangam MN"); 2630 pref("font.name-list.monospace.x-tamil", "Menlo, Tamil Sangam MN"); 2631 2632 pref("font.name-list.serif.x-tibt", "Kailasa"); 2633 pref("font.name-list.sans-serif.x-tibt", "Kailasa"); 2634 pref("font.name-list.monospace.x-tibt", "Menlo, Kailasa"); 2635 2636 pref("font.name-list.serif.x-unicode", "Times New Roman"); 2637 pref("font.name-list.sans-serif.x-unicode", "Arial"); 2638 pref("font.name-list.monospace.x-unicode", "Menlo"); 2639 2640 pref("font.name-list.serif.x-western", "Times New Roman"); 2641 pref("font.name-list.sans-serif.x-western", "Arial"); 2642 pref("font.name-list.monospace.x-western", "Menlo"); 2643 2644 // XXX Is there an alternative that would be better for 'serif'? 2645 pref("font.name-list.serif.zh-CN", "Times New Roman, PingFang SC"); 2646 pref("font.name-list.sans-serif.zh-CN", "Arial, PingFang SC"); 2647 pref("font.name-list.monospace.zh-CN", "Menlo, PingFang SC"); 2648 2649 pref("font.name-list.serif.zh-TW", "Times New Roman, PingFang TC"); 2650 pref("font.name-list.sans-serif.zh-TW", "Arial, PingFang TC"); 2651 pref("font.name-list.monospace.zh-TW", "Menlo, PingFang TC"); 2652 2653 pref("font.name-list.serif.zh-HK", "Times New Roman, PingFang HK"); 2654 pref("font.name-list.sans-serif.zh-HK", "Arial, PingFang HK"); 2655 pref("font.name-list.monospace.zh-HK", "Menlo, PingFang HK"); 2656 2657 pref("font.name-list.serif.x-math", "STIX Two Math, Symbol, Apple Symbols"); 2658 pref("font.name-list.sans-serif.x-math", "Arial"); 2659 pref("font.name-list.monospace.x-math", "Menlo"); 2660 2661 #endif // XP_IOS 2662 2663 #ifdef ANDROID 2664 // Handled differently under Mac/Windows 2665 pref("network.protocol-handler.warn-external.file", false); 2666 pref("browser.drag_out_of_frame_style", 1); 2667 2668 // Middle-mouse handling 2669 pref("middlemouse.paste", true); 2670 pref("middlemouse.scrollbarPosition", true); 2671 2672 // Tab focus model bit field: 2673 // 1 focuses text controls, 2 focuses other form elements, 4 adds links. 2674 // Leave this at the default, 7, to match mozilla1.0-era user expectations. 2675 // pref("accessibility.tabfocus", 1); 2676 2677 pref("helpers.global_mime_types_file", "/etc/mime.types"); 2678 pref("helpers.global_mailcap_file", "/etc/mailcap"); 2679 pref("helpers.private_mime_types_file", "~/.mime.types"); 2680 pref("helpers.private_mailcap_file", "~/.mailcap"); 2681 #endif // ANDROID 2682 2683 #if !defined(ANDROID) && !defined(XP_MACOSX) && defined(XP_UNIX) 2684 // Handled differently under Mac/Windows 2685 pref("network.protocol-handler.warn-external.file", false); 2686 pref("browser.drag_out_of_frame_style", 1); 2687 2688 // Middle-mouse handling 2689 pref("middlemouse.paste", true); 2690 pref("middlemouse.scrollbarPosition", true); 2691 2692 // Tab focus model bit field: 2693 // 1 focuses text controls, 2 focuses other form elements, 4 adds links. 2694 // Leave this at the default, 7, to match mozilla1.0-era user expectations. 2695 // pref("accessibility.tabfocus", 1); 2696 2697 pref("helpers.global_mime_types_file", "/etc/mime.types"); 2698 pref("helpers.global_mailcap_file", "/etc/mailcap"); 2699 pref("helpers.private_mime_types_file", "~/.mime.types"); 2700 pref("helpers.private_mailcap_file", "~/.mailcap"); 2701 2702 // font names 2703 2704 // fontconfig doesn't support emoji yet 2705 // https://lists.freedesktop.org/archives/fontconfig/2016-October/005842.html 2706 pref("font.name-list.emoji", "Noto Color Emoji, Twemoji Mozilla"); 2707 2708 pref("font.name-list.serif.ar", "serif"); 2709 pref("font.name-list.sans-serif.ar", "sans-serif"); 2710 pref("font.name-list.monospace.ar", "monospace"); 2711 pref("font.name-list.cursive.ar", "cursive"); 2712 pref("font.size.monospace.ar", 12); 2713 2714 pref("font.name-list.serif.el", "serif"); 2715 pref("font.name-list.sans-serif.el", "sans-serif"); 2716 pref("font.name-list.monospace.el", "monospace"); 2717 pref("font.name-list.cursive.el", "cursive"); 2718 pref("font.size.monospace.el", 12); 2719 2720 pref("font.name-list.serif.he", "serif"); 2721 pref("font.name-list.sans-serif.he", "sans-serif"); 2722 pref("font.name-list.monospace.he", "monospace"); 2723 pref("font.name-list.cursive.he", "cursive"); 2724 pref("font.size.monospace.he", 12); 2725 2726 pref("font.name-list.serif.ja", "serif"); 2727 pref("font.name-list.sans-serif.ja", "sans-serif"); 2728 pref("font.name-list.monospace.ja", "monospace"); 2729 pref("font.name-list.cursive.ja", "cursive"); 2730 2731 pref("font.name-list.serif.ko", "serif"); 2732 pref("font.name-list.sans-serif.ko", "sans-serif"); 2733 pref("font.name-list.monospace.ko", "monospace"); 2734 pref("font.name-list.cursive.ko", "cursive"); 2735 2736 pref("font.name-list.serif.th", "serif"); 2737 pref("font.name-list.sans-serif.th", "sans-serif"); 2738 pref("font.name-list.monospace.th", "monospace"); 2739 pref("font.name-list.cursive.th", "cursive"); 2740 pref("font.minimum-size.th", 13); 2741 2742 pref("font.name-list.serif.x-armn", "serif"); 2743 pref("font.name-list.sans-serif.x-armn", "sans-serif"); 2744 pref("font.name-list.monospace.x-armn", "monospace"); 2745 pref("font.name-list.cursive.x-armn", "cursive"); 2746 2747 pref("font.name-list.serif.x-beng", "serif"); 2748 pref("font.name-list.sans-serif.x-beng", "sans-serif"); 2749 pref("font.name-list.monospace.x-beng", "monospace"); 2750 pref("font.name-list.cursive.x-beng", "cursive"); 2751 2752 pref("font.name-list.serif.x-cans", "serif"); 2753 pref("font.name-list.sans-serif.x-cans", "sans-serif"); 2754 pref("font.name-list.monospace.x-cans", "monospace"); 2755 pref("font.name-list.cursive.x-cans", "cursive"); 2756 2757 pref("font.name-list.serif.x-cyrillic", "serif"); 2758 pref("font.name-list.sans-serif.x-cyrillic", "sans-serif"); 2759 pref("font.name-list.monospace.x-cyrillic", "monospace"); 2760 pref("font.name-list.cursive.x-cyrillic", "cursive"); 2761 pref("font.size.monospace.x-cyrillic", 12); 2762 2763 pref("font.name-list.serif.x-devanagari", "serif"); 2764 pref("font.name-list.sans-serif.x-devanagari", "sans-serif"); 2765 pref("font.name-list.monospace.x-devanagari", "monospace"); 2766 pref("font.name-list.cursive.x-devanagari", "cursive"); 2767 2768 pref("font.name-list.serif.x-ethi", "serif"); 2769 pref("font.name-list.sans-serif.x-ethi", "sans-serif"); 2770 pref("font.name-list.monospace.x-ethi", "monospace"); 2771 pref("font.name-list.cursive.x-ethi", "cursive"); 2772 2773 pref("font.name-list.serif.x-geor", "serif"); 2774 pref("font.name-list.sans-serif.x-geor", "sans-serif"); 2775 pref("font.name-list.monospace.x-geor", "monospace"); 2776 pref("font.name-list.cursive.x-geor", "cursive"); 2777 2778 pref("font.name-list.serif.x-gujr", "serif"); 2779 pref("font.name-list.sans-serif.x-gujr", "sans-serif"); 2780 pref("font.name-list.monospace.x-gujr", "monospace"); 2781 pref("font.name-list.cursive.x-gujr", "cursive"); 2782 2783 pref("font.name-list.serif.x-guru", "serif"); 2784 pref("font.name-list.sans-serif.x-guru", "sans-serif"); 2785 pref("font.name-list.monospace.x-guru", "monospace"); 2786 pref("font.name-list.cursive.x-guru", "cursive"); 2787 2788 pref("font.name-list.serif.x-khmr", "serif"); 2789 pref("font.name-list.sans-serif.x-khmr", "sans-serif"); 2790 pref("font.name-list.monospace.x-khmr", "monospace"); 2791 pref("font.name-list.cursive.x-khmr", "cursive"); 2792 2793 pref("font.name-list.serif.x-knda", "serif"); 2794 pref("font.name-list.sans-serif.x-knda", "sans-serif"); 2795 pref("font.name-list.monospace.x-knda", "monospace"); 2796 pref("font.name-list.cursive.x-knda", "cursive"); 2797 2798 pref("font.name-list.serif.x-mlym", "serif"); 2799 pref("font.name-list.sans-serif.x-mlym", "sans-serif"); 2800 pref("font.name-list.monospace.x-mlym", "monospace"); 2801 pref("font.name-list.cursive.x-mlym", "cursive"); 2802 2803 pref("font.name-list.serif.x-orya", "serif"); 2804 pref("font.name-list.sans-serif.x-orya", "sans-serif"); 2805 pref("font.name-list.monospace.x-orya", "monospace"); 2806 pref("font.name-list.cursive.x-orya", "cursive"); 2807 2808 pref("font.name-list.serif.x-sinh", "serif"); 2809 pref("font.name-list.sans-serif.x-sinh", "sans-serif"); 2810 pref("font.name-list.monospace.x-sinh", "monospace"); 2811 pref("font.name-list.cursive.x-sinh", "cursive"); 2812 2813 pref("font.name-list.serif.x-tamil", "serif"); 2814 pref("font.name-list.sans-serif.x-tamil", "sans-serif"); 2815 pref("font.name-list.monospace.x-tamil", "monospace"); 2816 pref("font.name-list.cursive.x-tamil", "cursive"); 2817 2818 pref("font.name-list.serif.x-telu", "serif"); 2819 pref("font.name-list.sans-serif.x-telu", "sans-serif"); 2820 pref("font.name-list.monospace.x-telu", "monospace"); 2821 pref("font.name-list.cursive.x-telu", "cursive"); 2822 2823 pref("font.name-list.serif.x-tibt", "serif"); 2824 pref("font.name-list.sans-serif.x-tibt", "sans-serif"); 2825 pref("font.name-list.monospace.x-tibt", "monospace"); 2826 pref("font.name-list.cursive.x-tibt", "cursive"); 2827 2828 pref("font.name-list.serif.x-unicode", "serif"); 2829 pref("font.name-list.sans-serif.x-unicode", "sans-serif"); 2830 pref("font.name-list.monospace.x-unicode", "monospace"); 2831 pref("font.name-list.cursive.x-unicode", "cursive"); 2832 pref("font.size.monospace.x-unicode", 12); 2833 2834 pref("font.name-list.serif.x-western", "serif"); 2835 pref("font.name-list.sans-serif.x-western", "sans-serif"); 2836 pref("font.name-list.monospace.x-western", "monospace"); 2837 pref("font.name-list.cursive.x-western", "cursive"); 2838 pref("font.size.monospace.x-western", 12); 2839 2840 pref("font.name-list.serif.zh-CN", "serif"); 2841 pref("font.name-list.sans-serif.zh-CN", "sans-serif"); 2842 pref("font.name-list.monospace.zh-CN", "monospace"); 2843 pref("font.name-list.cursive.zh-CN", "cursive"); 2844 2845 pref("font.name-list.serif.zh-HK", "serif"); 2846 pref("font.name-list.sans-serif.zh-HK", "sans-serif"); 2847 pref("font.name-list.monospace.zh-HK", "monospace"); 2848 pref("font.name-list.cursive.zh-HK", "cursive"); 2849 2850 pref("font.name-list.serif.zh-TW", "serif"); 2851 pref("font.name-list.sans-serif.zh-TW", "sans-serif"); 2852 pref("font.name-list.monospace.zh-TW", "monospace"); 2853 pref("font.name-list.cursive.zh-TW", "cursive"); 2854 2855 pref("intl.ime.use_simple_context_on_password_field", false); 2856 2857 // uim may use key snooper to listen to key events. Unfortunately, we cannot 2858 // know whether it uses or not since it's a build option. So, we need to make 2859 // distribution switchable whether we think uim uses key snooper or not with 2860 // this pref. Debian 9.x still uses uim as their default IM and it uses key 2861 // snooper. So, let's use true for its default value. 2862 pref("intl.ime.hack.uim.using_key_snooper", true); 2863 2864 #endif // !ANDROID && !XP_MACOSX && XP_UNIX 2865 2866 #if defined(ANDROID) 2867 2868 pref("font.size.monospace.ar", 12); 2869 2870 pref("font.default.el", "sans-serif"); 2871 pref("font.size.monospace.el", 12); 2872 2873 pref("font.size.monospace.he", 12); 2874 2875 pref("font.default.x-cyrillic", "sans-serif"); 2876 pref("font.size.monospace.x-cyrillic", 12); 2877 2878 pref("font.default.x-unicode", "sans-serif"); 2879 pref("font.size.monospace.x-unicode", 12); 2880 2881 pref("font.default.x-western", "sans-serif"); 2882 pref("font.size.monospace.x-western", 12); 2883 2884 #endif // ANDROID 2885 2886 #if defined(ANDROID) 2887 // We use the bundled Charis SIL Compact as serif font for Firefox for Android 2888 2889 pref("font.name-list.emoji", "SamsungColorEmoji, Noto Color Emoji"); 2890 2891 pref("font.name-list.serif.ar", "Noto Naskh Arabic, Noto Serif, Droid Serif"); 2892 pref("font.name-list.sans-serif.ar", "Noto Naskh Arabic, Roboto, Google Sans, Droid Sans"); 2893 pref("font.name-list.monospace.ar", "Noto Naskh Arabic"); 2894 2895 pref("font.name-list.serif.el", "Droid Serif, Noto Serif"); // not Charis SIL Compact, only has a few Greek chars 2896 pref("font.name-list.sans-serif.el", "Roboto, Google Sans, Droid Sans"); 2897 pref("font.name-list.monospace.el", "Droid Sans Mono"); 2898 2899 pref("font.name-list.serif.he", "Droid Serif, Noto Serif, Noto Serif Hebrew"); 2900 pref("font.name-list.sans-serif.he", "Roboto, Google Sans, Noto Sans Hebrew, Droid Sans Hebrew, Droid Sans, Arial"); 2901 pref("font.name-list.monospace.he", "Droid Sans Mono"); 2902 2903 pref("font.name-list.serif.ja", "Charis SIL Compact, Noto Serif CJK JP, Noto Serif, Droid Serif"); 2904 pref("font.name-list.sans-serif.ja", "Roboto, Google Sans, Droid Sans, MotoyaLMaru, MotoyaLCedar, Noto Sans JP, Noto Sans CJK JP, SEC CJK JP, Droid Sans Japanese"); 2905 pref("font.name-list.monospace.ja", "MotoyaLMaru, MotoyaLCedar, Noto Sans Mono CJK JP, SEC Mono CJK JP, Droid Sans Mono"); 2906 2907 pref("font.name-list.serif.ko", "Charis SIL Compact, Noto Serif CJK KR, Noto Serif, Droid Serif, HYSerif"); 2908 pref("font.name-list.sans-serif.ko", "Roboto, Google Sans, SmartGothic, NanumGothic, Noto Sans KR, Noto Sans CJK KR, One UI Sans KR VF, SamsungKorean_v2.0, SEC CJK KR, DroidSansFallback, Droid Sans Fallback"); 2909 pref("font.name-list.monospace.ko", "Droid Sans Mono, Noto Sans Mono CJK KR, SEC Mono CJK KR"); 2910 2911 pref("font.name-list.serif.th", "Charis SIL Compact, Noto Serif, Noto Serif Thai, Droid Serif"); 2912 pref("font.name-list.sans-serif.th", "Roboto, Google Sans, Noto Sans Thai, Droid Sans Thai, Droid Sans"); 2913 pref("font.name-list.monospace.th", "Droid Sans Mono"); 2914 2915 pref("font.name-list.serif.x-armn", "Noto Serif Armenian"); 2916 pref("font.name-list.sans-serif.x-armn", "Noto Sans Armenian"); 2917 2918 pref("font.name-list.serif.x-beng", "Noto Serif Bengali"); 2919 pref("font.name-list.sans-serif.x-beng", "Noto Sans Bengali"); 2920 2921 pref("font.name-list.serif.x-cyrillic", "Charis SIL Compact, Noto Serif, Droid Serif"); 2922 pref("font.name-list.sans-serif.x-cyrillic", "Roboto, Google Sans, Droid Sans"); 2923 pref("font.name-list.monospace.x-cyrillic", "Droid Sans Mono"); 2924 2925 pref("font.name-list.serif.x-devanagari", "Noto Serif Devanagari"); 2926 pref("font.name-list.sans-serif.x-devanagari", "Noto Sans Devanagari"); 2927 2928 pref("font.name-list.serif.x-ethi", "Noto Serif Ethiopic"); 2929 pref("font.name-list.sans-serif.x-ethi", "Noto Sans Ethiopic"); 2930 2931 pref("font.name-list.serif.x-geor", "Noto Serif Georgian"); 2932 pref("font.name-list.sans-serif.x-geor", "Noto Sans Georgian"); 2933 2934 pref("font.name-list.serif.x-gujr", "Noto Serif Gujarati"); 2935 pref("font.name-list.sans-serif.x-gujr", "Noto Sans Gujarati"); 2936 2937 pref("font.name-list.serif.x-guru", "Noto Serif Gurmukhi"); 2938 pref("font.name-list.sans-serif.x-guru", "Noto Sans Gurmukhi"); 2939 2940 pref("font.name-list.serif.x-khmr", "Noto Serif Khmer"); 2941 pref("font.name-list.sans-serif.x-khmr", "Noto Sans Khmer"); 2942 2943 pref("font.name-list.serif.x-knda", "Noto Serif Kannada"); 2944 pref("font.name-list.sans-serif.x-knda", "Noto Sans Kannada"); 2945 2946 pref("font.name-list.serif.x-mlym", "Noto Serif Malayalam"); 2947 pref("font.name-list.sans-serif.x-mlym", "Noto Sans Malayalam"); 2948 2949 pref("font.name-list.sans-serif.x-orya", "Noto Sans Oriya"); 2950 2951 pref("font.name-list.serif.x-sinh", "Noto Serif Sinhala"); 2952 pref("font.name-list.sans-serif.x-sinh", "Noto Sans Sinhala"); 2953 2954 pref("font.name-list.serif.x-tamil", "Noto Serif Tamil"); 2955 pref("font.name-list.sans-serif.x-tamil", "Noto Sans Tamil"); 2956 2957 pref("font.name-list.serif.x-telu", "Noto Serif Telugu"); 2958 pref("font.name-list.sans-serif.x-telu", "Noto Sans Telugu"); 2959 2960 pref("font.name-list.serif.x-tibt", "Noto Serif Tibetan"); 2961 pref("font.name-list.sans-serif.x-tibt", "Noto Sans Tibetan"); 2962 2963 pref("font.name-list.serif.x-unicode", "Charis SIL Compact, Noto Serif, Droid Serif"); 2964 pref("font.name-list.sans-serif.x-unicode", "Roboto, Google Sans, Droid Sans"); 2965 pref("font.name-list.monospace.x-unicode", "Droid Sans Mono"); 2966 pref("font.name-list.cursive.x-unicode", "Dancing Script"); 2967 2968 pref("font.name-list.serif.x-western", "Charis SIL Compact, Noto Serif, Droid Serif"); 2969 pref("font.name-list.sans-serif.x-western", "Roboto, Google Sans, Droid Sans"); 2970 pref("font.name-list.monospace.x-western", "Droid Sans Mono"); 2971 pref("font.name-list.cursive.x-western", "Dancing Script"); 2972 2973 pref("font.name-list.serif.zh-CN", "Charis SIL Compact, Noto Serif CJK SC, Noto Serif, Droid Serif, Droid Sans Fallback"); 2974 pref("font.name-list.sans-serif.zh-CN", "Roboto, Google Sans, Droid Sans, Noto Sans SC, Noto Sans CJK SC, SEC CJK SC, Droid Sans Fallback"); 2975 pref("font.name-list.monospace.zh-CN", "Droid Sans Mono, Noto Sans Mono CJK SC, SEC Mono CJK SC, Noto Sans CJK SC, MiSans VF, MiSans, Droid Sans Fallback"); 2976 2977 pref("font.name-list.serif.zh-HK", "Charis SIL Compact, Noto Serif CJK TC, Noto Serif, Droid Serif, Droid Sans Fallback"); 2978 pref("font.name-list.sans-serif.zh-HK", "Roboto, Google Sans, Droid Sans, Noto Sans TC, Noto Sans SC, Noto Sans CJK TC, SEC CJK TC, Droid Sans Fallback"); 2979 pref("font.name-list.monospace.zh-HK", "Droid Sans Mono, Noto Sans Mono CJK TC, SEC Mono CJK TC, Noto Sans CJK TC, MiSans TC VF, MiSans TC, Droid Sans Fallback"); 2980 2981 pref("font.name-list.serif.zh-TW", "Charis SIL Compact, Noto Serif CJK TC, Noto Serif, Droid Serif, Droid Sans Fallback"); 2982 pref("font.name-list.sans-serif.zh-TW", "Roboto, Google Sans, Droid Sans, Noto Sans TC, Noto Sans SC, Noto Sans CJK TC, SEC CJK TC, Droid Sans Fallback"); 2983 pref("font.name-list.monospace.zh-TW", "Droid Sans Mono, Noto Sans Mono CJK TC, SEC Mono CJK TC, Noto Sans CJK TC, MiSans TC VF, MiSans TC, Droid Sans Fallback"); 2984 2985 pref("font.name-list.serif.x-math", "Latin Modern Math, STIX Two Math, XITS Math, Cambria Math, Libertinus Math, DejaVu Math TeX Gyre, TeX Gyre Bonum Math, TeX Gyre Pagella Math, TeX Gyre Schola, TeX Gyre Termes Math, STIX Math, Asana Math, STIXGeneral, DejaVu Serif, DejaVu Sans, Charis SIL Compact"); 2986 pref("font.name-list.sans-serif.x-math", "Roboto, Google Sans"); 2987 pref("font.name-list.monospace.x-math", "Droid Sans Mono"); 2988 2989 #endif 2990 2991 // Login Manager prefs 2992 pref("signon.rememberSignons", true); 2993 pref("signon.autofillForms", true); 2994 pref("signon.autofillForms.autocompleteOff", true); 2995 pref("signon.autofillForms.http", false); 2996 pref("signon.autologin.proxy", false); 2997 pref("signon.capture.inputChanges.enabled", true); 2998 pref("signon.formlessCapture.enabled", true); 2999 pref("signon.formRemovalCapture.enabled", true); 3000 pref("signon.generation.available", true); 3001 pref("signon.improvedPasswordRules.enabled", true); 3002 pref("signon.backup.enabled", true); 3003 pref("signon.generation.confidenceThreshold", "0.75"); 3004 pref("signon.generation.enabled", true); 3005 pref("signon.passwordEditCapture.enabled", false); 3006 pref("signon.privateBrowsingCapture.enabled", true); 3007 pref("signon.storeWhenAutocompleteOff", true); 3008 pref("signon.userInputRequiredToCapture.enabled", true); 3009 pref("signon.usernameOnlyForm.lookupThreshold", 5); 3010 pref("signon.debug", false); 3011 pref("signon.recipes.path", "resource://app/defaults/settings/main/password-recipes.json"); 3012 pref("signon.recipes.remoteRecipes.enabled", true); 3013 pref("signon.relatedRealms.enabled", false); 3014 pref("signon.schemeUpgrades", true); 3015 pref("signon.includeOtherSubdomainsInLookup", true); 3016 // This temporarily prevents the primary password to reprompt for autocomplete. 3017 pref("signon.masterPasswordReprompt.timeout_ms", 900000); // 15 Minutes 3018 pref("signon.showAutoCompleteFooter", false); 3019 pref("signon.firefoxRelay.base_url", "https://relay.firefox.com/api/v1/"); 3020 pref("signon.firefoxRelay.learn_more_url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/firefox-relay-integration"); 3021 pref("signon.firefoxRelay.manage_url", "https://relay.firefox.com/accounts/profile/?utm_medium=firefox-desktop&utm_source=modal&utm_campaign=limit&utm_content=manage-masks-global"); 3022 pref("signon.firefoxRelay.terms_of_service_url", "https://www.mozilla.org/%LOCALE%/about/legal/terms/subscription-services/"); 3023 pref("signon.firefoxRelay.privacy_policy_url", "https://www.mozilla.org/%LOCALE%/privacy/subscription-services/"); 3024 pref("signon.signupDetection.confidenceThreshold", "0.75"); 3025 3026 #ifdef NIGHTLY_BUILD 3027 pref("signon.rustMirror.enabled", true); 3028 #else 3029 pref("signon.rustMirror.enabled", false); 3030 #endif 3031 3032 // Satchel (Form Manager) prefs 3033 pref("browser.formfill.debug", false); 3034 pref("browser.formfill.enable", true); 3035 pref("browser.formfill.expire_days", 180); 3036 pref("browser.formfill.agedWeight", 2); 3037 pref("browser.formfill.bucketSize", 1); 3038 pref("browser.formfill.maxTimeGroupings", 25); 3039 pref("browser.formfill.timeGroupingSize", 604800); 3040 pref("browser.formfill.boundaryWeight", 25); 3041 pref("browser.formfill.prefixWeight", 5); 3042 3043 // Zoom prefs 3044 pref("browser.zoom.full", false); 3045 pref("toolkit.zoomManager.zoomValues", ".3,.5,.67,.8,.9,1,1.1,1.2,1.33,1.5,1.7,2,2.4,3,4,5"); 3046 3047 // 3048 // Image-related prefs 3049 // 3050 3051 // By default the Accept header sent for images loaded over HTTP(S) is derived 3052 // by ImageAcceptHeader() in nsHttpHandler.cpp. If set, this pref overrides it. 3053 // There is also network.http.accept which works in scope of document. 3054 pref("image.http.accept", ""); 3055 3056 // sendbuffer of 0 means use OS default, sendbuffer unset means use 3057 // gecko default which varies depending on windows version and is OS 3058 // default on non windows 3059 // pref("network.tcp.sendbuffer", 0); 3060 3061 // TCP Keepalive 3062 pref("network.tcp.keepalive.enabled", true); 3063 // Default idle time before first TCP keepalive probe; same time for interval 3064 // between successful probes. Can be overridden in socket transport API. 3065 // Win, Linux and Mac. 3066 pref("network.tcp.keepalive.idle_time", 600); // seconds; 10 mins 3067 // Default timeout for retransmission of unack'd keepalive probes. 3068 // Win and Linux only; not configurable on Mac. 3069 #if defined(XP_UNIX) && !defined(XP_MACOSX) || defined(XP_WIN) 3070 pref("network.tcp.keepalive.retry_interval", 1); // seconds 3071 #endif 3072 // Default maximum probe retransmissions. 3073 // Linux only; not configurable on Win and Mac; fixed at 10 and 8 respectively. 3074 #if defined(XP_UNIX) && !defined(XP_MACOSX) 3075 pref("network.tcp.keepalive.probe_count", 4); 3076 #endif 3077 3078 #ifdef MOZ_WIDGET_GTK 3079 pref("widget.disable-workspace-management", false); 3080 #endif 3081 3082 // All the Geolocation preferences are here. 3083 // 3084 pref("geo.provider.network.url", "https://www.googleapis.com/geolocation/v1/geolocate?key=%GOOGLE_LOCATION_SERVICE_API_KEY%"); 3085 3086 // Timeout to wait before sending the location request. 3087 pref("geo.provider.network.timeToWaitBeforeSending", 5000); 3088 // Timeout for outbound network geolocation provider. 3089 pref("geo.provider.network.timeout", 60000); 3090 3091 #ifdef XP_MACOSX 3092 pref("geo.provider.use_corelocation", true); 3093 #endif 3094 3095 // Set to false if things are really broken. 3096 #ifdef XP_WIN 3097 pref("geo.provider.ms-windows-location", true); 3098 #endif 3099 3100 // Region 3101 pref("browser.region.log", false); 3102 pref("browser.region.network.url", "https://location.services.mozilla.com/v1/country?key=%MOZILLA_API_KEY%"); 3103 // Include wifi data in region request. 3104 pref("browser.region.network.scan", false); 3105 // Timeout for whole region request. 3106 pref("browser.region.timeout", 5000); 3107 pref("browser.region.update.enabled", true); 3108 3109 pref("browser.meta_refresh_when_inactive.disabled", false); 3110 3111 // XPInstall prefs 3112 pref("xpinstall.whitelist.required", true); 3113 // Only Firefox requires add-on signatures 3114 pref("xpinstall.signatures.required", false); 3115 pref("extensions.langpacks.signatures.required", false); 3116 pref("extensions.webExtensionsMinPlatformVersion", "42.0a1"); 3117 pref("extensions.experiments.enabled", true); 3118 3119 // Other webextensions prefs 3120 pref("extensions.webextensions.keepStorageOnUninstall", false); 3121 pref("extensions.webextensions.keepUuidOnUninstall", false); 3122 // Redirect basedomain used by identity api 3123 pref("extensions.webextensions.identity.redirectDomain", "extensions.allizom.org"); 3124 pref("extensions.webextensions.restrictedDomains", "accounts-static.cdn.mozilla.net,accounts.firefox.com,addons.cdn.mozilla.net,addons.mozilla.org,api.accounts.firefox.com,content.cdn.mozilla.net,discovery.addons.mozilla.org,oauth.accounts.firefox.com,profile.accounts.firefox.com,support.mozilla.org,sync.services.mozilla.com"); 3125 3126 // Extensions are prevented from accessing Quarantined Domains by default. 3127 pref("extensions.quarantinedDomains.enabled", true); 3128 pref("extensions.quarantinedDomains.list", ""); 3129 3130 // Include origin permissions in the install prompt for MV3 extensions. 3131 pref("extensions.originControls.grantByDefault", true); 3132 3133 // Whether or not the moz-extension resource loads are remoted. For debugging 3134 // purposes only. Setting this to false will break moz-extension URI loading 3135 // unless other process sandboxing and extension remoting prefs are changed. 3136 pref("extensions.webextensions.protocol.remote", true); 3137 3138 // Whether or not the installed extensions should be migrated to the storage.local IndexedDB backend. 3139 pref("extensions.webextensions.ExtensionStorageIDB.enabled", true); 3140 3141 // Whether to allow the inline options browser in HTML about:addons page. 3142 pref("extensions.htmlaboutaddons.inline-options.enabled", true); 3143 // Show recommendations on the extension and theme list views. 3144 pref("extensions.htmlaboutaddons.recommendations.enabled", true); 3145 3146 // The URL for the privacy policy related to recommended add-ons. 3147 pref("extensions.recommendations.privacyPolicyUrl", ""); 3148 // The URL for a recommended theme, shown on the theme page in about:addons. 3149 pref("extensions.recommendations.themeRecommendationUrl", ""); 3150 3151 // Report Site Issue button 3152 // Note that on enabling the button in other release channels, make sure to 3153 // disable it in problematic tests, see disableNonReleaseActions() inside 3154 // browser/modules/test/browser/head.js 3155 pref("extensions.webcompat-reporter.newIssueEndpoint", "https://webcompat.com/issues/new"); 3156 #if MOZ_UPDATE_CHANNEL != release && MOZ_UPDATE_CHANNEL != esr 3157 pref("extensions.webcompat-reporter.enabled", true); 3158 #else 3159 pref("extensions.webcompat-reporter.enabled", false); 3160 #endif 3161 3162 // Add-on content security policies. 3163 pref("extensions.webextensions.base-content-security-policy", "script-src 'self' https://* http://localhost:* http://127.0.0.1:* moz-extension: blob: filesystem: 'unsafe-eval' 'wasm-unsafe-eval' 'unsafe-inline';"); 3164 pref("extensions.webextensions.base-content-security-policy.v3", "script-src 'self' 'wasm-unsafe-eval';"); 3165 pref("extensions.webextensions.base-content-security-policy.v3-with-localhost", "script-src 'self' 'wasm-unsafe-eval' http://localhost:* http://127.0.0.1:*;"); 3166 pref("extensions.webextensions.default-content-security-policy", "script-src 'self' 'wasm-unsafe-eval';"); 3167 pref("extensions.webextensions.default-content-security-policy.v3", "script-src 'self'; upgrade-insecure-requests;"); 3168 3169 3170 pref("network.buffer.cache.count", 24); 3171 pref("network.buffer.cache.size", 32768); 3172 3173 // Web Notification 3174 pref("dom.webnotifications.requireinteraction.count", 3); 3175 3176 // DOM full-screen API. 3177 #ifdef XP_MACOSX 3178 // Whether to use macOS native full screen for Fullscreen API 3179 pref("full-screen-api.macos-native-full-screen", true); 3180 #endif 3181 // transition duration of fade-to-black and fade-from-black, unit: ms 3182 #ifndef MOZ_WIDGET_GTK 3183 pref("full-screen-api.transition-duration.enter", "200 200"); 3184 pref("full-screen-api.transition-duration.leave", "200 200"); 3185 #else 3186 pref("full-screen-api.transition-duration.enter", "0 0"); 3187 pref("full-screen-api.transition-duration.leave", "0 0"); 3188 #endif 3189 // timeout for black screen in fullscreen transition, unit: ms 3190 pref("full-screen-api.transition.timeout", 1000); 3191 // time for the warning box stays on the screen before sliding out, unit: ms 3192 pref("full-screen-api.warning.timeout", 3000); 3193 // delay for the warning box to show when pointer stays on the top, unit: ms 3194 pref("full-screen-api.warning.delay", 500); 3195 3196 // DOM pointerlock API 3197 // time for the warning box stays on the screen before sliding out, unit: ms 3198 pref("pointer-lock-api.warning.timeout", 3000); 3199 3200 // Push 3201 3202 pref("dom.push.loglevel", "Error"); 3203 3204 pref("dom.push.serverURL", "wss://push.services.mozilla.com/"); 3205 pref("dom.push.userAgentID", ""); 3206 3207 // The maximum number of push messages that a service worker can receive 3208 // without user interaction. 3209 pref("dom.push.maxQuotaPerSubscription", 16); 3210 3211 // The maximum number of recent message IDs to store for each push 3212 // subscription, to avoid duplicates for unacknowledged messages. 3213 pref("dom.push.maxRecentMessageIDsPerSubscription", 100); 3214 3215 // The delay between receiving a push message and updating the quota for a 3216 // subscription. 3217 pref("dom.push.quotaUpdateDelay", 3000); // 3 seconds 3218 3219 // Is the network connection allowed to be up? 3220 // This preference should be used in UX to enable/disable push. 3221 pref("dom.push.connection.enabled", true); 3222 3223 // Exponential back-off start is 5 seconds like in HTTP/1.1. 3224 // Maximum back-off is pingInterval. 3225 pref("dom.push.retryBaseInterval", 5000); 3226 3227 // Interval at which to ping PushServer to check connection status. In 3228 // milliseconds. If no reply is received within requestTimeout, the connection 3229 // is considered closed. 3230 pref("dom.push.pingInterval", 1800000); // 30 minutes 3231 3232 // How long before we timeout 3233 pref("dom.push.requestTimeout", 10000); 3234 3235 // How long must we wait before declaring that a window is a "ghost" (i.e., a 3236 // likely leak)? This should be longer than it usually takes for an eligible 3237 // window to be collected via the GC/CC. 3238 pref("memory.ghost_window_timeout_seconds", 60); 3239 3240 // Don't dump memory reports on OOM, by default. 3241 pref("memory.dump_reports_on_oom", false); 3242 3243 // Number of stack frames to capture in createObjectURL for about:memory. 3244 pref("memory.blob_report.stack_frames", 0); 3245 3246 // path to OSVR DLLs 3247 pref("gfx.vr.osvr.utilLibPath", ""); 3248 pref("gfx.vr.osvr.commonLibPath", ""); 3249 pref("gfx.vr.osvr.clientLibPath", ""); 3250 pref("gfx.vr.osvr.clientKitLibPath", ""); 3251 3252 // nsMemoryInfoDumper can watch a fifo in the temp directory and take various 3253 // actions when the fifo is written to. Disable this in general. 3254 pref("memory_info_dumper.watch_fifo.enabled", false); 3255 3256 // If minInterval is 0, the check will only happen 3257 // when the service has a strong suspicion we are in a captive portal 3258 pref("network.captive-portal-service.minInterval", 60000); // 60 seconds 3259 pref("network.captive-portal-service.maxInterval", 1500000); // 25 minutes 3260 // Every 10 checks, the delay is increased by a factor of 5 3261 pref("network.captive-portal-service.backoffFactor", "5.0"); 3262 pref("network.captive-portal-service.enabled", false); 3263 3264 pref("network.connectivity-service.enabled", true); 3265 pref("network.connectivity-service.DNSv4.domain", "example.org"); 3266 pref("network.connectivity-service.DNSv6.domain", "example.org"); 3267 pref("network.connectivity-service.DNS_HTTPS.domain", "cloudflare-dns.com"); 3268 pref("network.connectivity-service.IPv4.url", "http://detectportal.firefox.com/success.txt?ipv4"); 3269 pref("network.connectivity-service.IPv6.url", "http://detectportal.firefox.com/success.txt?ipv6"); 3270 3271 pref("network.trr.uri", ""); 3272 // credentials to pass to DOH end-point 3273 pref("network.trr.credentials", ""); 3274 pref("network.trr.custom_uri", ""); 3275 // Before TRR is widely used the NS record for this host is fetched 3276 // from the DOH end point to ensure proper configuration 3277 pref("network.trr.confirmationNS", "example.com"); 3278 // Comma separated list of domains that we should not use TRR for 3279 pref("network.trr.excluded-domains", ""); 3280 pref("network.trr.builtin-excluded-domains", "localhost,local"); 3281 3282 // This preference controls if LNA blocking should be tied to ETP strict modes. 3283 // Used for progressive rollout of LNA for ETP strict users 3284 pref("network.lna.etp.enabled", false); 3285 3286 pref("captivedetect.canonicalURL", "http://detectportal.firefox.com/canonical.html"); 3287 pref("captivedetect.canonicalContent", "<meta http-equiv=\"refresh\" content=\"0;url=https://support.mozilla.org/kb/captive-portal\"/>"); 3288 pref("captivedetect.maxWaitingTime", 5000); 3289 pref("captivedetect.pollingTime", 3000); 3290 pref("captivedetect.maxRetryCount", 5); 3291 3292 // The tables used for Safebrowsing phishing and malware checks 3293 pref("urlclassifier.malwareTable", "goog-malware-proto,goog-unwanted-proto,moztest-harmful-simple,moztest-malware-simple,moztest-unwanted-simple"); 3294 #ifdef MOZILLA_OFFICIAL 3295 // In official builds, we are allowed to use Google's private phishing 3296 // list (see bug 1288840). 3297 pref("urlclassifier.phishTable", "goog-phish-proto,moztest-phish-simple"); 3298 #else 3299 pref("urlclassifier.phishTable", "googpub-phish-proto,moztest-phish-simple"); 3300 #endif 3301 3302 // Tables for application reputation 3303 pref("urlclassifier.downloadAllowTable", "goog-downloadwhite-proto"); 3304 pref("urlclassifier.downloadBlockTable", "goog-badbinurl-proto"); 3305 3306 // Tables for anti-tracking features 3307 pref("urlclassifier.trackingAnnotationTable", "moztest-track-simple,ads-track-digest256,social-track-digest256,analytics-track-digest256,content-track-digest256"); 3308 pref("urlclassifier.trackingAnnotationWhitelistTable", "moztest-trackwhite-simple,mozstd-trackwhite-digest256,google-trackwhite-digest256"); 3309 pref("urlclassifier.trackingTable", "moztest-track-simple,ads-track-digest256,social-track-digest256,analytics-track-digest256"); 3310 pref("urlclassifier.trackingWhitelistTable", "moztest-trackwhite-simple,mozstd-trackwhite-digest256,google-trackwhite-digest256"); 3311 3312 pref("urlclassifier.features.harmfuladdon.blocklistTables", "harmfuladdon-block-digest256"); 3313 pref("urlclassifier.features.harmfuladdon.entitylistTables", "harmfuladdon-entitylist-digest256"); 3314 pref("urlclassifier.features.fingerprinting.blacklistTables", "base-fingerprinting-track-digest256"); 3315 pref("urlclassifier.features.fingerprinting.whitelistTables", "mozstd-trackwhite-digest256,google-trackwhite-digest256"); 3316 pref("urlclassifier.features.fingerprinting.annotate.blacklistTables", "base-fingerprinting-track-digest256"); 3317 pref("urlclassifier.features.fingerprinting.annotate.whitelistTables", "mozstd-trackwhite-digest256,google-trackwhite-digest256"); 3318 pref("urlclassifier.features.cryptomining.blacklistTables", "base-cryptomining-track-digest256"); 3319 pref("urlclassifier.features.cryptomining.whitelistTables", "mozstd-trackwhite-digest256"); 3320 pref("urlclassifier.features.cryptomining.annotate.blacklistTables", "base-cryptomining-track-digest256"); 3321 pref("urlclassifier.features.cryptomining.annotate.whitelistTables", "mozstd-trackwhite-digest256"); 3322 pref("urlclassifier.features.socialtracking.blacklistTables", "social-tracking-protection-facebook-digest256,social-tracking-protection-linkedin-digest256,social-tracking-protection-twitter-digest256"); 3323 pref("urlclassifier.features.socialtracking.whitelistTables", "mozstd-trackwhite-digest256,google-trackwhite-digest256"); 3324 pref("urlclassifier.features.socialtracking.annotate.blacklistTables", "social-tracking-protection-facebook-digest256,social-tracking-protection-linkedin-digest256,social-tracking-protection-twitter-digest256"); 3325 pref("urlclassifier.features.socialtracking.annotate.whitelistTables", "mozstd-trackwhite-digest256,google-trackwhite-digest256"); 3326 pref("urlclassifier.features.emailtracking.blocklistTables", "base-email-track-digest256"); 3327 pref("urlclassifier.features.emailtracking.allowlistTables", "mozstd-trackwhite-digest256"); 3328 pref("urlclassifier.features.emailtracking.datacollection.blocklistTables", "base-email-track-digest256,content-email-track-digest256"); 3329 pref("urlclassifier.features.emailtracking.datacollection.allowlistTables", "mozstd-trackwhite-digest256"); 3330 pref("urlclassifier.features.consentmanager.annotate.blocklistTables", "consent-manager-track-digest256"); 3331 pref("urlclassifier.features.consentmanager.annotate.allowlistTables", "mozstd-trackwhite-digest256"); 3332 pref("urlclassifier.features.antifraud.annotate.blocklistTables", "anti-fraud-track-digest256"); 3333 pref("urlclassifier.features.antifraud.annotate.allowlistTables", "mozstd-trackwhite-digest256"); 3334 3335 // These tables will never trigger a gethash call. 3336 pref("urlclassifier.disallow_completions", "goog-downloadwhite-digest256,base-track-digest256,mozstd-trackwhite-digest256,content-track-digest256,mozplugin-block-digest256,mozplugin2-block-digest256,ads-track-digest256,social-track-digest256,analytics-track-digest256,base-fingerprinting-track-digest256,content-fingerprinting-track-digest256,base-cryptomining-track-digest256,content-cryptomining-track-digest256,fanboyannoyance-ads-digest256,fanboysocial-ads-digest256,easylist-ads-digest256,easyprivacy-ads-digest256,adguard-ads-digest256,social-tracking-protection-digest256,social-tracking-protection-facebook-digest256,social-tracking-protection-linkedin-digest256,social-tracking-protection-twitter-digest256,base-email-track-digest256,content-email-track-digest256,consent-manager-track-digest256,anti-fraud-track-digest256"); 3337 3338 // Workaround for Google Recaptcha 3339 pref("urlclassifier.trackingAnnotationSkipURLs", ""); 3340 pref("privacy.rejectForeign.allowList", ""); 3341 3342 // The list of email webapp sites 3343 pref("privacy.trackingprotection.emailtracking.webapp.domains", "mail.163.com,mail.aol.com,fastmail.com,webmail.gandi.net,mail.google.com,navigator-bs.gmx.com,app.hey.com,horde.org/apps/webmail,hushmail.com,icloud.com/mail,kolabnow.com,laposte.net/accueil,mail.lycos.com,mail.com/mail/,mail.ru,mailfence.com,outlook.live.com,email-postaci.com/,posteo.de,mail.protonmail.com,app.rackspace.com,mail.rediff.com,emailmg.ipage.com,runbox.com,mail.sina.com.cn,tutanota.com,mail.yahoo.com,mail.yandex.com,mail.zimbra.com,zoho.com/mail/"); 3344 3345 // The migration for this pref disables both allow-list categories (convenience 3346 // and baseline) for users in ETP "strict" and "custom" mode. 3347 pref("privacy.trackingprotection.allow_list.hasMigratedCategoryPrefs", false); 3348 3349 // Indicates if the user has interacted with the ETP category, tracking protection baseline exceptions, 3350 // or convenience exceptions by changing them in the prefs or in the UI. This is used to determine 3351 // if we should show the ETP Strict exceptions onboarding message again. 3352 pref("privacy.trackingprotection.allow_list.hasUserInteractedWithETPSettings", false); 3353 3354 // Number of random entries to send with a gethash request 3355 pref("urlclassifier.gethashnoise", 4); 3356 3357 // Gethash timeout for Safe Browsing 3358 pref("urlclassifier.gethash.timeout_ms", 5000); 3359 3360 // Name of the about: page to display Safe Browsing warnings (bug 399233) 3361 pref("urlclassifier.alternate_error_page", "blocked"); 3362 3363 // Enable safe-browsing debugging 3364 pref("browser.safebrowsing.debug", false); 3365 3366 // Allow users to ignore Safe Browsing warnings. 3367 pref("browser.safebrowsing.allowOverride", true); 3368 3369 // These names are approved by the Google Safe Browsing team. 3370 // Any changes must be coordinated with them. 3371 #ifdef MOZILLA_OFFICIAL 3372 pref("browser.safebrowsing.id", "navclient-auto-ffox"); 3373 #else 3374 pref("browser.safebrowsing.id", "Firefox"); 3375 #endif 3376 3377 // Download protection 3378 pref("browser.safebrowsing.downloads.enabled", true); 3379 pref("browser.safebrowsing.downloads.remote.enabled", true); 3380 pref("browser.safebrowsing.downloads.remote.timeout_ms", 15000); 3381 pref("browser.safebrowsing.downloads.remote.url", "https://sb-ssl.google.com/safebrowsing/clientreport/download?key=%GOOGLE_SAFEBROWSING_API_KEY%"); 3382 pref("browser.safebrowsing.downloads.remote.block_dangerous", true); 3383 pref("browser.safebrowsing.downloads.remote.block_dangerous_host", true); 3384 pref("browser.safebrowsing.downloads.remote.block_potentially_unwanted", true); 3385 pref("browser.safebrowsing.downloads.remote.block_uncommon", true); 3386 3387 // Android SafeBrowsing's configuration is in ContentBlocking.java, keep in sync. 3388 #ifndef MOZ_WIDGET_ANDROID 3389 3390 // tor-browser#42604: safe-browsing is disabled elsewhere, but no reason to ship scary google prefs 3391 #ifndef BASE_BROWSER_VERSION 3392 // Google Safe Browsing provider (legacy) 3393 pref("browser.safebrowsing.provider.google.pver", "2.2"); 3394 pref("browser.safebrowsing.provider.google.lists", "goog-badbinurl-shavar,goog-downloadwhite-digest256,goog-phish-shavar,googpub-phish-shavar,goog-malware-shavar,goog-unwanted-shavar"); 3395 pref("browser.safebrowsing.provider.google.updateURL", "https://safebrowsing.google.com/safebrowsing/downloads?client=SAFEBROWSING_ID&appver=%MAJOR_VERSION%&pver=2.2&key=%GOOGLE_SAFEBROWSING_API_KEY%"); 3396 pref("browser.safebrowsing.provider.google.gethashURL", "https://safebrowsing.google.com/safebrowsing/gethash?client=SAFEBROWSING_ID&appver=%MAJOR_VERSION%&pver=2.2"); 3397 pref("browser.safebrowsing.provider.google.reportURL", "https://safebrowsing.google.com/safebrowsing/diagnostic?site="); 3398 pref("browser.safebrowsing.provider.google.reportPhishMistakeURL", "https://%LOCALE%.phish-error.mozilla.com/?url="); 3399 pref("browser.safebrowsing.provider.google.reportMalwareMistakeURL", "https://%LOCALE%.malware-error.mozilla.com/?url="); 3400 pref("browser.safebrowsing.provider.google.advisoryURL", "https://developers.google.com/safe-browsing/v4/advisory"); 3401 pref("browser.safebrowsing.provider.google.advisoryName", "Google Safe Browsing"); 3402 3403 // Google Safe Browsing provider 3404 pref("browser.safebrowsing.provider.google4.pver", "4"); 3405 pref("browser.safebrowsing.provider.google4.lists", "goog-badbinurl-proto,goog-downloadwhite-proto,goog-phish-proto,googpub-phish-proto,goog-malware-proto,goog-unwanted-proto,goog-harmful-proto"); 3406 pref("browser.safebrowsing.provider.google4.updateURL", "https://safebrowsing.googleapis.com/v4/threatListUpdates:fetch?$ct=application/x-protobuf&key=%GOOGLE_SAFEBROWSING_API_KEY%&$httpMethod=POST"); 3407 pref("browser.safebrowsing.provider.google4.gethashURL", "https://safebrowsing.googleapis.com/v4/fullHashes:find?$ct=application/x-protobuf&key=%GOOGLE_SAFEBROWSING_API_KEY%&$httpMethod=POST"); 3408 pref("browser.safebrowsing.provider.google4.reportURL", "https://safebrowsing.google.com/safebrowsing/diagnostic?site="); 3409 pref("browser.safebrowsing.provider.google4.reportPhishMistakeURL", "https://%LOCALE%.phish-error.mozilla.com/?url="); 3410 pref("browser.safebrowsing.provider.google4.reportMalwareMistakeURL", "https://%LOCALE%.malware-error.mozilla.com/?url="); 3411 pref("browser.safebrowsing.provider.google4.advisoryURL", "https://developers.google.com/safe-browsing/v4/advisory"); 3412 pref("browser.safebrowsing.provider.google4.advisoryName", "Google Safe Browsing"); 3413 pref("browser.safebrowsing.provider.google4.dataSharingURL", "https://safebrowsing.googleapis.com/v4/threatHits?$ct=application/x-protobuf&key=%GOOGLE_SAFEBROWSING_API_KEY%&$httpMethod=POST"); 3414 pref("browser.safebrowsing.provider.google4.dataSharing.enabled", false); 3415 #endif // ifndef BASE_BROWSER_VERSION 3416 3417 // Google Safe Browsing V5 prefs. 3418 pref("browser.safebrowsing.provider.google5.enabled", true); 3419 pref("browser.safebrowsing.provider.google5.lists", "goog-badbinurl-proto,goog-downloadwhite-proto,goog-phish-proto,googpub-phish-proto,goog-malware-proto,goog-unwanted-proto,goog-harmful-proto"); 3420 pref("browser.safebrowsing.provider.google5.updateURL", "https://safebrowsing.googleapis.com/v5/hashLists:batchGet?key=%GOOGLE_SAFEBROWSING_API_KEY%"); 3421 pref("browser.safebrowsing.provider.google5.gethashURL", "https://safebrowsing.googleapis.com/v5/hashes:search?key=%GOOGLE_SAFEBROWSING_API_KEY%"); 3422 pref("browser.safebrowsing.provider.google5.reportURL", "https://safebrowsing.google.com/safebrowsing/diagnostic?site="); 3423 pref("browser.safebrowsing.provider.google5.reportPhishMistakeURL", "https://%LOCALE%.phish-error.mozilla.com/?url="); 3424 pref("browser.safebrowsing.provider.google5.reportMalwareMistakeURL", "https://%LOCALE%.malware-error.mozilla.com/?url="); 3425 pref("browser.safebrowsing.provider.google5.advisoryURL", "https://developers.google.com/safe-browsing/v4/advisory"); 3426 pref("browser.safebrowsing.provider.google5.advisoryName", "Google Safe Browsing"); 3427 3428 #endif // ifndef MOZ_WIDGET_ANDROID 3429 3430 pref("browser.safebrowsing.reportPhishURL", "https://%LOCALE%.phish-report.mozilla.com/?url="); 3431 3432 // Mozilla Safe Browsing provider (for tracking protection and plugin blocking) 3433 pref("browser.safebrowsing.provider.mozilla.pver", "2.2"); 3434 pref("browser.safebrowsing.provider.mozilla.lists", "base-track-digest256,mozstd-trackwhite-digest256,google-trackwhite-digest256,content-track-digest256,mozplugin-block-digest256,mozplugin2-block-digest256,ads-track-digest256,social-track-digest256,analytics-track-digest256,base-fingerprinting-track-digest256,content-fingerprinting-track-digest256,base-cryptomining-track-digest256,content-cryptomining-track-digest256,fanboyannoyance-ads-digest256,fanboysocial-ads-digest256,easylist-ads-digest256,easyprivacy-ads-digest256,adguard-ads-digest256,social-tracking-protection-digest256,social-tracking-protection-facebook-digest256,social-tracking-protection-linkedin-digest256,social-tracking-protection-twitter-digest256,base-email-track-digest256,content-email-track-digest256,consent-manager-track-digest256,anti-fraud-track-digest256,harmfuladdon-block-digest256,harmfuladdon-entitylist-digest256"); 3435 pref("browser.safebrowsing.provider.mozilla.updateURL", "moz-sbrs:://antitracking"); 3436 pref("browser.safebrowsing.provider.mozilla.gethashURL", "https://shavar.services.mozilla.com/gethash?client=SAFEBROWSING_ID&appver=%MAJOR_VERSION%&pver=2.2"); 3437 // Set to a date in the past to force immediate download in new profiles. 3438 pref("browser.safebrowsing.provider.mozilla.nextupdatetime", "1"); 3439 // Block lists for tracking protection. The name values will be used as the keys 3440 // to lookup the localized name in preferences.properties. 3441 pref("browser.safebrowsing.provider.mozilla.lists.base", "moz-std"); 3442 pref("browser.safebrowsing.provider.mozilla.lists.content", "moz-full"); 3443 3444 // The table and global pref for blocking plugin content 3445 #ifdef NIGHTLY_BUILD 3446 pref("urlclassifier.blockedTable", "moztest-block-simple,mozplugin-block-digest256"); 3447 #else 3448 pref("urlclassifier.blockedTable", "moztest-block-simple"); 3449 #endif 3450 3451 #ifdef XP_MACOSX 3452 #if !defined(RELEASE_OR_BETA) || defined(DEBUG) 3453 // In non-release builds we crash by default on insecure text input (when a 3454 // password editor has focus but secure event input isn't enabled). The 3455 // following pref, when turned on, disables this behavior. See bug 1188425. 3456 pref("intl.allow-insecure-text-input", false); 3457 #endif 3458 #endif // XP_MACOSX 3459 3460 // Search service settings 3461 pref("browser.search.log", false); 3462 pref("browser.search.update", true); 3463 pref("browser.search.suggest.enabled", true); 3464 pref("browser.search.suggest.enabled.private", false); 3465 pref("browser.search.separatePrivateDefault", true); 3466 pref("browser.search.separatePrivateDefault.ui.enabled", false); 3467 pref("browser.search.removeEngineInfobar.enabled", true); 3468 3469 // GMPInstallManager prefs 3470 3471 // User-settable override to media.gmp-manager.url for testing purposes. 3472 //pref("media.gmp-manager.url.override", ""); 3473 3474 // When |media.gmp-manager.allowLocalSources| is true, we will allow falling 3475 // back to using the plugin configurations distributed with Firefox to update 3476 // or install plugins. This fallback is only used when we fail to get an 3477 // acceptable configuration via |media.gmp-manager.url|. 3478 pref("media.gmp-manager.allowLocalSources", true); 3479 3480 // Update service URL for GMP install/updates: 3481 pref("media.gmp-manager.url", "https://aus5.mozilla.org/update/3/GMP/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml"); 3482 3483 // When |media.gmp-manager.checkContentSignature| is true, then the reply 3484 // containing the update xml file is expected to provide a content signature 3485 // header. Information from this header will be used to validate the response. 3486 // If this header is not present, is malformed, or cannot be determined as 3487 // valid then the update will fail. 3488 // We should eventually remove this pref and any cert pinning code and make 3489 // the content signature path the sole path. We retain this for now in case 3490 // we need to debug content sig vs cert pin. 3491 pref("media.gmp-manager.checkContentSignature", true); 3492 3493 // When |media.gmp-manager.cert.requireBuiltIn| is true or not specified the 3494 // final certificate and all certificates the connection is redirected to before 3495 // the final certificate for the url specified in the |media.gmp-manager.url| 3496 // preference must be built-in. The check related to this pref is not done if 3497 // |media.gmp-manager.checkContentSignature| is set to true (the content 3498 // signature check provides protection that supersedes the built in 3499 // requirement). 3500 pref("media.gmp-manager.cert.requireBuiltIn", true); 3501 3502 // The |media.gmp-manager.certs.| preference branch contains branches that are 3503 // sequentially numbered starting at 1 that contain attribute name / value 3504 // pairs for the certificate used by the server that hosts the update xml file 3505 // as specified in the |media.gmp-manager.url| preference. When these preferences are 3506 // present the following conditions apply for a successful update check: 3507 // 1. the uri scheme must be https 3508 // 2. the preference name must exist as an attribute name on the certificate and 3509 // the value for the name must be the same as the value for the attribute name 3510 // on the certificate. 3511 // If these conditions aren't met it will be treated the same as when there is 3512 // no update available. This validation will not be performed when the 3513 // |media.gmp-manager.url.override| user preference has been set for testing updates or 3514 // when the |media.gmp-manager.cert.checkAttributes| preference is set to false. 3515 // This check will also not be done if the |media.gmp-manager.checkContentSignature| 3516 // pref is set to true. Also, the |media.gmp-manager.url.override| preference should 3517 // ONLY be used for testing. 3518 // IMPORTANT! app.update.certs.* prefs should also be updated if these 3519 // are updated. 3520 pref("media.gmp-manager.cert.checkAttributes", true); 3521 pref("media.gmp-manager.certs.1.issuerName", "CN=DigiCert SHA2 Secure Server CA,O=DigiCert Inc,C=US"); 3522 pref("media.gmp-manager.certs.1.commonName", "aus5.mozilla.org"); 3523 pref("media.gmp-manager.certs.2.issuerName", "CN=thawte SSL CA - G2,O=\"thawte, Inc.\",C=US"); 3524 pref("media.gmp-manager.certs.2.commonName", "aus5.mozilla.org"); 3525 3526 // Whether or not to perform reader mode article parsing on page load. 3527 // If this pref is disabled, we will never show a reader mode icon in the toolbar. 3528 pref("reader.parse-on-load.enabled", true); 3529 3530 // After what size document we don't bother running Readability on it 3531 // because it'd slow things down too much 3532 pref("reader.parse-node-limit", 3000); 3533 3534 // Whether or not debug mode is enabled in reader mode. If enabled, reader mode 3535 // will log what it's doing. 3536 pref("reader.debug", false); 3537 3538 // Whether we include full URLs in browser console errors. This is disabled 3539 // by default because some platforms will persist these, leading to privacy issues. 3540 pref("reader.errors.includeURLs", false); 3541 3542 // The default relative font size in reader mode (1-9) 3543 pref("reader.font_size", 5); 3544 3545 // The font type in reader (sans-serif, serif, monospace) 3546 pref("reader.font_type", "sans-serif"); 3547 3548 // Default font types available in reader mode. 3549 pref("reader.font_type.values", "[\"sans-serif\",\"serif\",\"monospace\"]"); 3550 3551 // The default font weight in reader mode (regular, light, bold) 3552 pref("reader.font_weight", "regular"); 3553 3554 // Font weight values available in reader mode. 3555 pref("reader.font_weight.values", "[\"regular\",\"light\",\"bold\"]"); 3556 3557 // The default relative content width in reader mode (1-9) 3558 pref("reader.content_width", 3); 3559 3560 // The default relative line height in reader mode (1-9) 3561 pref("reader.line_height", 4); 3562 3563 // The default character spacing in reader mode (1-9) 3564 pref("reader.character_spacing", 1); 3565 3566 // The default word spacing in reader mode (1-9) 3567 pref("reader.word_spacing", 1); 3568 3569 // The default text alignment direction in reader mode 3570 pref("reader.text_alignment", "start"); 3571 3572 // The default color scheme in reader mode (light, dark, sepia, auto, contrast, gray) 3573 // auto = color automatically adjusts according to ambient light level 3574 // (auto only works on platforms where the 'devicelight' event is enabled) 3575 pref("reader.color_scheme", "auto"); 3576 3577 // Color scheme values available in reader mode UI. 3578 pref("reader.color_scheme.values", "[\"auto\",\"light\",\"dark\",\"sepia\",\"contrast\",\"gray\"]"); 3579 3580 // The custom color scheme options in reader colors menu. 3581 pref("reader.custom_colors.foreground", ""); 3582 pref("reader.custom_colors.background", ""); 3583 3584 pref("reader.custom_colors.unvisited-links", ""); 3585 pref("reader.custom_colors.visited-links", ""); 3586 3587 pref("reader.custom_colors.selection-highlight", ""); 3588 3589 // Whether to use a vertical or horizontal toolbar. 3590 pref("reader.toolbar.vertical", true); 3591 3592 #if !defined(ANDROID) 3593 pref("narrate.enabled", true); 3594 #else 3595 pref("narrate.enabled", false); 3596 #endif 3597 3598 pref("narrate.test", false); 3599 pref("narrate.rate", 0); 3600 pref("narrate.voice", " { \"default\": \"automatic\" }"); 3601 // Only make voices that match content language available. 3602 pref("narrate.filter-voices", true); 3603 3604 pref("memory.report_concurrency", 10); 3605 3606 // Enable logging downloads operations to the Console. 3607 pref("toolkit.download.loglevel", "Error"); 3608 3609 pref("toolkit.pageThumbs.screenSizeDivisor", 7); 3610 pref("toolkit.pageThumbs.minWidth", 0); 3611 pref("toolkit.pageThumbs.minHeight", 0); 3612 3613 // 16MB default non-parseable upload limit for requestBody.raw.bytes 3614 pref("webextensions.webRequest.requestBodyMaxRawBytes", 16777216); 3615 3616 // Enforce a 10MB quota in the storage.session extension API. 3617 pref("webextensions.storage.session.enforceQuota", true); 3618 3619 // Should we use the old kinto-based implementation of storage.sync? To be removed in bug 1637465. 3620 pref("webextensions.storage.sync.kinto", false); 3621 // Server used by the old kinto-based implementation of storage.sync. 3622 pref("webextensions.storage.sync.serverURL", "https://webextensions.settings.services.mozilla.com/v1"); 3623 3624 // Allow customization of the fallback directory for file uploads 3625 pref("dom.input.fallbackUploadDir", ""); 3626 3627 // Turn rewriting of youtube embeds on/off 3628 pref("plugins.rewrite_youtube_embeds", true); 3629 3630 // Default media volume 3631 pref("media.default_volume", "1.0"); 3632 3633 pref("dom.storageManager.prompt.testing", false); 3634 pref("dom.storageManager.prompt.testing.allow", false); 3635 3636 3637 pref("browser.storageManager.pressureNotification.minIntervalMS", 1200000); 3638 pref("browser.storageManager.pressureNotification.usageThresholdGB", 5); 3639 3640 pref("browser.sanitizer.loglevel", "Warn"); 3641 3642 // Enable Firefox translations powered by the Bergamot translations 3643 // engine https://browser.mt/. See Bug 971044. Note that this pref can be turned 3644 // on in different apps like Firefox Desktop, even if it's disabled by default here. 3645 pref("browser.translations.enable", false); 3646 // Enable Firefox Select translations powered by the Bergamot translations 3647 // engine https://browser.mt/. Note that this pref can be turned on in different apps 3648 // like Firefox Desktop, even if it's disabled by default here. 3649 pref("browser.translations.select.enable", false); 3650 // Set to "All" to see all logs, which are useful for debugging. Set to "Info" to see 3651 // the application logic logs, and not all of the translated messages, which can be 3652 // slow and overwhelming. 3653 pref("browser.translations.logLevel", "Error"); 3654 // The BCP-47 language tags of the most recently translated-into target language. 3655 // This preference is considered when offering a specific language to translate into, 3656 // but is not considered as a "known" language when deciding whether to offer Translations at all. 3657 pref("browser.translations.mostRecentTargetLanguages", ""); 3658 // A comma-separated list of BCP-47 language tags that affect the behavior of translations. 3659 // Languages listed in the alwaysTranslateLanguages list will trigger auto-translate on page load. 3660 pref("browser.translations.alwaysTranslateLanguages", ""); 3661 // A comma-separated list of BCP-47 language tags that affect the behavior of translations. 3662 // Languages listed in the neverTranslateLanguages list will signal that the translations button 3663 // and menus should not be displayed automatically when visiting pages in those languages. 3664 pref("browser.translations.neverTranslateLanguages", ""); 3665 // By default the translations engine on about:translations uses text for translation, 3666 // and the full page translations uses HTML. Set this pref to true to use the HTML 3667 // translation behavior on about:translations. Requires a page refresh. 3668 pref("browser.translations.useHTML", false); 3669 // Automatically popup an offer to translate on sites. 3670 pref("browser.translations.automaticallyPopup", true); 3671 // Simulate the behavior of using a device that does not support the translations engine. 3672 // Requires restart. 3673 // Enables or disables the usage of lexical shortlisting for the translation models. 3674 // Using a lexical shortlist will increase translation speed, but may reduce quality. 3675 pref("browser.translations.useLexicalShortlist", false); 3676 pref("browser.translations.simulateUnsupportedEngine", false); 3677 // The translations code relies on asynchronous network request. Chaos mode simulates 3678 // flaky and slow network connections, so that the UI may be manually tested. The 3679 // "chaos.errors" makes network requests fail, while "timeoutMS" randomly times out 3680 // between 0ms and the timeoutMS provided. 3681 pref("browser.translations.chaos.errors", false); 3682 pref("browser.translations.chaos.timeoutMS", 0); 3683 3684 // Enable the experimental machine learning inference engine. 3685 pref("browser.ml.enable", true); 3686 // Set to "All" to see all logs, which are useful for debugging. 3687 pref("browser.ml.logLevel", "Error"); 3688 // Model hub root URL used to download models. 3689 pref("browser.ml.modelHubRootUrl", "https://model-hub.mozilla.org/"); 3690 // Model URL template 3691 pref("browser.ml.modelHubUrlTemplate", "{model}/{revision}"); 3692 // Maximum disk size for ML model cache (in GiB) 3693 pref("browser.ml.modelCacheMaxSize", 4); 3694 // Model cache timeout in ms 3695 pref("browser.ml.modelCacheTimeout", 120000); 3696 // Minimal Physical RAM required in GiB 3697 pref("browser.ml.minimumPhysicalMemory", 3); 3698 // Check for memory before running 3699 pref("browser.ml.checkForMemory", true); 3700 // Allowed overrides for various ml features 3701 pref("browser.ml.overridePipelineOptions", "{}"); 3702 3703 // When a user cancels this number of authentication dialogs coming from 3704 // a single web page in a row, all following authentication dialogs will 3705 // be blocked (automatically canceled) for that page. The counter resets 3706 // when the page is reloaded. 3707 // To disable all auth prompting, set the limit to 0. 3708 // To disable blocking of auth prompts, set the limit to -1. 3709 pref("prompts.authentication_dialog_abuse_limit", 2); 3710 3711 pref("dom.payments.request.supportedRegions", "US,CA"); 3712 3713 #ifdef MOZ_ASAN_REPORTER 3714 pref("asanreporter.apiurl", "https://anf1.fuzzing.mozilla.org/crashproxy/submit/"); 3715 pref("asanreporter.clientid", "unknown"); 3716 pref("toolkit.telemetry.overrideUpdateChannel", "nightly-asan"); 3717 #endif 3718 3719 // If `true`, about:processes shows in-process subframes. 3720 pref("toolkit.aboutProcesses.showAllSubframes", false); 3721 // If `true`, about:processes shows thread information. 3722 #ifdef NIGHTLY_BUILD 3723 pref("toolkit.aboutProcesses.showThreads", true); 3724 #else 3725 pref("toolkit.aboutProcesses.showThreads", false); 3726 #endif 3727 // If `true`, about:processes will offer to profile processes. 3728 pref("toolkit.aboutProcesses.showProfilerIcons", true); 3729 // Time in seconds between when the profiler is started and when the 3730 // profile is captured. 3731 pref("toolkit.aboutProcesses.profileDuration", 5); 3732 3733 // This preference controls how about:logging handles profiles when stopping: 3734 // either it opens the profile in a new tab on profiler.firefox.com, or it 3735 // uploads it directly to the cloud storage, providing the URL. 3736 // On Android, it's not currently possible to capture a profile this way, 3737 // therefore the profile is uploaded by default. 3738 #if !defined(MOZ_WIDGET_ANDROID) 3739 pref("toolkit.aboutLogging.uploadProfileToCloud", false); 3740 #else 3741 pref("toolkit.aboutLogging.uploadProfileToCloud", true); 3742 #endif 3743 // The pref "toolkit.aboutlogging.uploadProfileUrl" can also be set to change 3744 // the upload endpoint. The comment below shows the default value. It's not 3745 // defined usually because we don't expect our users, even advanced, to change 3746 // it, and therefore this will likely only be used in our tests. 3747 // pref("toolkit.aboutlogging.uploadProfileUrl", "https://api.profiler.firefox.com/compressed-store"); 3748 3749 3750 // When a crash happens, whether to include heap regions of the crash context 3751 // in the minidump. Enabled by default on nightly and aurora. 3752 #ifdef RELEASE_OR_BETA 3753 pref("toolkit.crashreporter.include_context_heap", false); 3754 #else 3755 pref("toolkit.crashreporter.include_context_heap", true); 3756 #endif 3757 3758 // Support for legacy customizations that rely on checking the 3759 // user profile directory for these stylesheets: 3760 // * userContent.css 3761 // * userChrome.css 3762 pref("toolkit.legacyUserProfileCustomizations.stylesheets", false); 3763 3764 #ifdef MOZ_DATA_REPORTING 3765 pref("datareporting.policy.dataSubmissionEnabled", true); 3766 pref("datareporting.policy.dataSubmissionPolicyNotifiedTime", "0"); 3767 pref("datareporting.policy.dataSubmissionPolicyAcceptedVersion", 0); 3768 pref("datareporting.policy.currentPolicyVersion", 2); 3769 pref("datareporting.policy.minimumPolicyVersion", 1); 3770 pref("datareporting.policy.minimumPolicyVersion.channel-beta", 2); 3771 pref("datareporting.policy.firstRunURL", "https://www.mozilla.org/privacy/firefox/"); 3772 pref("datareporting.policy.dataSubmissionPolicyBypassNotification", false); 3773 #endif 3774 3775 #ifdef MOZ_SERVICES_HEALTHREPORT 3776 #if !defined(ANDROID) 3777 pref("datareporting.healthreport.infoURL", "https://www.mozilla.org/legal/privacy/firefox.html#health-report"); 3778 3779 // Health Report is enabled by default on all channels. 3780 // Do note that the toggle on Fenix and Focus does NOT reflect to this pref. 3781 pref("datareporting.healthreport.uploadEnabled", true); 3782 pref("datareporting.usage.uploadEnabled", true); 3783 #endif 3784 #endif 3785 3786 pref("services.common.log.logger.rest.request", "Debug"); 3787 pref("services.common.log.logger.rest.response", "Debug"); 3788 pref("services.common.log.logger.tokenserverclient", "Debug"); 3789 3790 #ifdef MOZ_SERVICES_SYNC 3791 pref("services.sync.lastversion", "firstrun"); 3792 pref("services.sync.sendVersionInfo", true); 3793 3794 pref("services.sync.scheduler.idleInterval", 3600); // 1 hour 3795 pref("services.sync.scheduler.activeInterval", 600); // 10 minutes 3796 pref("services.sync.scheduler.immediateInterval", 90); // 1.5 minutes 3797 pref("services.sync.scheduler.idleTime", 300); // 5 minutes 3798 3799 pref("services.sync.scheduler.fxa.singleDeviceInterval", 3600); // 1 hour 3800 3801 // Note that new engines are typically added with a default of disabled, so 3802 // when an existing sync user gets the Firefox upgrade that supports the engine 3803 // it starts as disabled until the user has explicitly opted in. 3804 // The sync "create account" process typically *will* offer these engines, so 3805 // they may be flipped to enabled at that time. 3806 pref("services.sync.engine.addons", true); 3807 pref("services.sync.engine.addresses", false); 3808 pref("services.sync.engine.bookmarks", true); 3809 pref("services.sync.engine.creditcards", false); 3810 pref("services.sync.engine.history", true); 3811 pref("services.sync.engine.passwords", true); 3812 pref("services.sync.engine.prefs", true); 3813 pref("services.sync.engine.tabs", true); 3814 pref("services.sync.engine.tabs.filteredSchemes", "about|resource|chrome|file|blob|moz-extension|data"); 3815 3816 // The addresses and CC engines might not actually be available at all. 3817 pref("services.sync.engine.addresses.available", false); 3818 pref("services.sync.engine.creditcards.available", false); 3819 3820 // If true, add-on sync ignores changes to the user-enabled flag. This 3821 // allows people to have the same set of add-ons installed across all 3822 // profiles while maintaining different enabled states. 3823 pref("services.sync.addons.ignoreUserEnabledChanges", false); 3824 3825 // Comma-delimited list of hostnames to trust for add-on install. 3826 pref("services.sync.addons.trustedSourceHostnames", "addons.mozilla.org"); 3827 3828 pref("services.sync.log.appender.console", "Fatal"); 3829 pref("services.sync.log.appender.dump", "Error"); 3830 pref("services.sync.log.appender.file.level", "Trace"); 3831 pref("services.sync.log.appender.file.logOnError", true); 3832 #if defined(NIGHTLY_BUILD) 3833 pref("services.sync.log.appender.file.logOnSuccess", true); 3834 #else 3835 pref("services.sync.log.appender.file.logOnSuccess", false); 3836 #endif 3837 pref("services.sync.log.appender.file.maxErrorAge", 864000); // 10 days 3838 3839 // The default log level for all "Sync.*" logs. Adjusting this pref will 3840 // adjust the level for *all* Sync logs (except engines, and that's only 3841 // because we supply a default for the engines below.) 3842 pref("services.sync.log.logger", "Debug"); 3843 3844 // Prefs for Sync engines can be controlled globally or per-engine. 3845 // We only define the global level here, but manually creating prefs 3846 // like "services.sync.log.logger.engine.bookmarks" will control just 3847 // that engine. 3848 pref("services.sync.log.logger.engine", "Debug"); 3849 pref("services.sync.log.cryptoDebug", false); 3850 3851 pref("services.sync.telemetry.submissionInterval", 43200); // 12 hours in seconds 3852 pref("services.sync.telemetry.maxPayloadCount", 500); 3853 3854 #ifdef EARLY_BETA_OR_EARLIER 3855 // Enable the (fairly costly) client/server validation through early Beta, but 3856 // not release candidates or Release. 3857 pref("services.sync.engine.bookmarks.validation.enabled", true); 3858 pref("services.sync.engine.passwords.validation.enabled", true); 3859 #endif 3860 3861 // We consider validation this frequently. After considering validation, even 3862 // if we don't end up validating, we won't try again unless this much time has passed. 3863 pref("services.sync.engine.bookmarks.validation.interval", 86400); // 24 hours in seconds 3864 pref("services.sync.engine.passwords.validation.interval", 86400); // 24 hours in seconds 3865 3866 // We only run validation `services.sync.validation.percentageChance` percent of 3867 // the time, even if it's been the right amount of time since the last validation, 3868 // and you meet the maxRecord checks. 3869 pref("services.sync.engine.bookmarks.validation.percentageChance", 10); 3870 pref("services.sync.engine.passwords.validation.percentageChance", 10); 3871 3872 // We won't validate an engine if it has more than this many records on the server. 3873 pref("services.sync.engine.bookmarks.validation.maxRecords", 1000); 3874 pref("services.sync.engine.passwords.validation.maxRecords", 1000); 3875 3876 // The maximum number of immediate resyncs to trigger for changes made during 3877 // a sync. 3878 pref("services.sync.maxResyncs", 1); 3879 3880 // The URL of the Firefox Accounts auth server backend 3881 pref("identity.fxaccounts.auth.uri", "https://api.accounts.firefox.com/v1"); 3882 3883 // Percentage chance we skip an extension storage sync (kinto life support). 3884 pref("services.sync.extension-storage.skipPercentageChance", 50); 3885 #endif // MOZ_SERVICES_SYNC 3886 3887 #if defined(ENABLE_WEBDRIVER) 3888 // WebDriver is a remote control interface that enables introspection and 3889 // control of user agents. It provides a platform- and language-neutral wire 3890 // protocol as a way for out-of-process programs to remotely instruct the 3891 // behavior of web browsers. 3892 // 3893 // Gecko's implementation is backed by Marionette (WebDriver HTTP) and the 3894 // Remote Agent (WebDriver BiDi). 3895 3896 // Delay server startup until a modal dialogue has been clicked to allow time 3897 // for user to set breakpoints in the Browser Toolbox. 3898 pref("marionette.debugging.clicktostart", false); 3899 3900 // Port to start Marionette server on. 3901 pref("marionette.port", 2828); 3902 3903 // Wait logic for WebDriver:ElementClick in case navigation occurs. 3904 // (Fallback behavior for Selenium clients) 3905 pref("marionette.navigate-after-click.enabled", true); 3906 pref("marionette.navigate-after-click.timeout", 50); 3907 3908 // Enable WebDriver BiDi experimental commands and events. 3909 #if defined(NIGHTLY_BUILD) 3910 pref("remote.experimental.enabled", true); 3911 #else 3912 pref("remote.experimental.enabled", false); 3913 #endif 3914 3915 // Defines the verbosity of the internal logger. 3916 // 3917 // Available levels are, in descending order of severity, "Trace", "Debug", 3918 // "Config", "Info", "Warn", "Error", and "Fatal". The value is treated 3919 // case-sensitively. 3920 pref("remote.log.level", "Info"); 3921 3922 // Certain log messages that are known to be long are truncated. This 3923 // preference causes them to not be truncated. 3924 pref("remote.log.truncate", true); 3925 3926 // Sets recommended automation preferences when Remote Agent or Marionette is 3927 // started. 3928 pref("remote.prefs.recommended", true); 3929 3930 // Enable retrying to execute commands in the child process in case the 3931 // JSWindowActor gets destroyed. 3932 pref("remote.retry-on-abort", true); 3933 #endif 3934 3935 // Enable the JSON View tool (an inspector for application/json documents). 3936 pref("devtools.jsonview.enabled", true); 3937 3938 // Size profiler button in JSON View. Nightly-only until the profiler 3939 // front-end has been polished for the size profile use case. 3940 #ifdef NIGHTLY_BUILD 3941 pref("devtools.jsonview.size-profiler.enabled", true); 3942 #else 3943 pref("devtools.jsonview.size-profiler.enabled", false); 3944 #endif 3945 3946 // Default theme ("auto", "dark" or "light"). 3947 pref("devtools.theme", "auto", sticky); 3948 3949 // Completely disable DevTools entry points, as well as all DevTools command 3950 // line arguments. 3951 pref("devtools.policy.disabled", false); 3952 3953 // Enable deprecation warnings. 3954 pref("devtools.errorconsole.deprecation_warnings", true); 3955 3956 #if defined(NIGHTLY_BUILD) || defined(TOR_BROWSER_NIGHTLY_BUILD) 3957 // Don't show the Browser Toolbox prompt on local builds / nightly. 3958 pref("devtools.debugger.prompt-connection", false, sticky); 3959 #else 3960 pref("devtools.debugger.prompt-connection", true, sticky); 3961 #endif 3962 3963 #ifdef MOZILLA_OFFICIAL 3964 // Disable debugging chrome. 3965 pref("devtools.chrome.enabled", false, sticky); 3966 // Disable remote debugging connections. 3967 pref("devtools.debugger.remote-enabled", false, sticky); 3968 #else 3969 // In local builds, enable the browser toolbox by default. 3970 pref("devtools.chrome.enabled", true, sticky); 3971 pref("devtools.debugger.remote-enabled", true, sticky); 3972 #endif 3973 3974 // Enable service worker debugging on all channels. 3975 pref("devtools.debugger.features.windowless-service-workers", true); 3976 3977 // Disable remote debugging protocol logging. 3978 pref("devtools.debugger.log", false); 3979 pref("devtools.debugger.log.verbose", false); 3980 3981 pref("devtools.debugger.remote-port", 6000); 3982 pref("devtools.debugger.remote-websocket", false); 3983 // Force debugger server binding on the loopback interface. 3984 pref("devtools.debugger.force-local", true); 3985 3986 // Limit for intercepted request and response bodies (1 MB). 3987 // Possible values: 3988 // 0 => the response body has no limit 3989 // n => represents max number of bytes stored 3990 pref("devtools.netmonitor.responseBodyLimit", 1048576); 3991 pref("devtools.netmonitor.requestBodyLimit", 1048576); 3992 3993 // Limit for WebSocket/EventSource messages (100 KB). 3994 pref("devtools.netmonitor.msg.messageDataLimit", 100000); 3995 3996 // DevTools default color unit. 3997 pref("devtools.defaultColorUnit", "authored"); 3998 3999 // Used for devtools debugging. 4000 pref("devtools.dump.emit", false); 4001 4002 // Disable device discovery logging. 4003 pref("devtools.discovery.log", false); 4004 4005 // The extension ID for devtools-adb-extension. 4006 pref("devtools.remote.adb.extensionID", "adb@mozilla.org"); 4007 // The URL for for devtools-adb-extension (overridden in tests to a local 4008 // path). 4009 pref("devtools.remote.adb.extensionURL", "https://ftp.mozilla.org/pub/labs/devtools/adb-extension/#OS#/adb-extension-latest-#OS#.xpi"); 4010 4011 // Should F12 open the Developer Tools toolbox. 4012 pref("devtools.f12_enabled", true); 4013 4014 #if defined(NIGHTLY_BUILD) || defined(MOZ_DEV_EDITION) 4015 // Define in StaticPrefList.yaml and override here since StaticPrefList.yaml 4016 // doesn't provide a way to lock the pref 4017 pref("dom.postMessage.sharedArrayBuffer.bypassCOOP_COEP.insecure.enabled", false); 4018 #else 4019 pref("dom.postMessage.sharedArrayBuffer.bypassCOOP_COEP.insecure.enabled", false, locked); 4020 #endif 4021 4022 // Preferences for the form autofill toolkit component. 4023 // The truthy values of "extensions.formautofill.addresses.available" 4024 // is "on" and "detect", 4025 // any other value means autofill isn't available. 4026 // "detect" means it's enabled if conditions defined in the extension are met. 4027 // Note: "extensions.formautofill.available" 4028 // is not being used in form autofill, but need to exist for migration purposes. 4029 pref("extensions.formautofill.available", "detect"); 4030 pref("extensions.formautofill.addresses.supported", "detect"); 4031 pref("extensions.formautofill.addresses.enabled", true); 4032 pref("extensions.formautofill.addresses.capture.enabled", true); 4033 #if defined(ANDROID) 4034 // On android we have custom logic to control this. Ideally we should use nimbus there as well. 4035 // https://github.com/mozilla-mobile/firefox-android/blob/d566743ea0f041ce27c1204da903de380f96b46e/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt#L1502-L1510 4036 pref("extensions.formautofill.addresses.experiments.enabled", true); 4037 #else 4038 // Whether address autofill is enabled or not ( this is set via Nimbus ) 4039 pref("extensions.formautofill.addresses.experiments.enabled", false); 4040 #endif 4041 pref("extensions.formautofill.addresses.ignoreAutocompleteOff", true); 4042 // Supported countries need to follow ISO 3166-1 to align with "browser.search.region" 4043 pref("extensions.formautofill.addresses.supportedCountries", "US,CA,GB,FR,DE,BR,ES,JP"); 4044 pref("extensions.formautofill.creditCards.supported", "on"); 4045 pref("extensions.formautofill.creditCards.enabled", true); 4046 pref("extensions.formautofill.creditCards.ignoreAutocompleteOff", true); 4047 4048 // Supported countries need to follow ISO 3166-1 to align with "browser.search.region" 4049 pref("extensions.formautofill.creditCards.supportedCountries", "US,CA,GB,FR,DE,IT,ES,AT,BE,PL"); 4050 4051 // Algorithm used by formautofill while determine whether a field is a credit card field 4052 // 0:Heurstics based on regular expression string matching 4053 // 1:Fathom in js implementation 4054 // 2:Fathom in c++ implementation 4055 pref("extensions.formautofill.creditCards.heuristics.mode", 2); 4056 pref("extensions.formautofill.creditCards.heuristics.fathom.types", "cc-number,cc-name"); 4057 // Defines the threshold to identify whether a field is a cc field 4058 pref("extensions.formautofill.creditCards.heuristics.fathom.confidenceThreshold", "0.5"); 4059 // This is Only for testing! Set the confidence value (> 0 && <= 1) after a field is identified by fathom 4060 pref("extensions.formautofill.creditCards.heuristics.fathom.testConfidence", "0"); 4061 4062 pref("extensions.formautofill.loglevel", "Warn"); 4063 4064 // Temporary prefs that we will be removed if the telemetry data (added in Fx123) does not show any problems with the new heuristics. 4065 pref("extensions.formautofill.heuristics.captureOnFormRemoval", true); 4066 pref("extensions.formautofill.heuristics.captureOnPageNavigation", true); 4067 4068 pref("extensions.formautofill.heuristics.detectDynamicFormChanges", true); 4069 pref("extensions.formautofill.heuristics.fillOnDynamicFormChanges", true); 4070 // Note: The greater the timeout value the higher the risk of automatically filling fields after a non-script/user action. 4071 pref("extensions.formautofill.heuristics.fillOnDynamicFormChanges.timeout", 1000); 4072 pref("extensions.formautofill.heuristics.refillOnSiteClearingFields", true); 4073 pref("extensions.formautofill.heuristics.refillOnSiteClearingFields.timeout", 500); 4074 4075 pref("extensions.formautofill.heuristics.autofillSameOriginWithTop", true); 4076 4077 pref("toolkit.osKeyStore.loglevel", "Warn"); 4078 4079 pref("extensions.formautofill.supportRTL", false); 4080 4081 // Controls the log level for CookieBannerListService.sys.mjs. 4082 pref("cookiebanners.listService.logLevel", "Error"); 4083 4084 // Controls the log level for Cookie Banner Auto Clicking. 4085 pref("cookiebanners.bannerClicking.logLevel", "Error"); 4086 4087 // Enables the cookie banner auto clicking. The cookie banner auto clicking 4088 // depends on the `cookiebanners.service.mode` pref. 4089 pref("cookiebanners.bannerClicking.enabled", true); 4090 4091 // Whether or not banner auto clicking test mode is enabled. 4092 pref("cookiebanners.bannerClicking.testing", false); 4093 4094 // The maximum time (ms) after load for detecting banner and button elements for 4095 // cookie banner auto clicking. 4096 pref("cookiebanners.bannerClicking.timeoutAfterLoad", 5000); 4097 4098 // Maximum time (ms) after DOMContentLoaded for detecting banners. This is a 4099 // catchall for cases where a load even never occurs. 4100 pref("cookiebanners.bannerClicking.timeoutAfterDOMContentLoaded", 20000); 4101 4102 // How often (milliseconds) to run the banner detection query selectors to detect 4103 // the banner element and/or buttons. 4104 pref("cookiebanners.bannerClicking.pollingInterval", 500); 4105 4106 // Array of test rules for cookie banner handling as a JSON string. They will be 4107 // inserted in addition to regular rules and may override them when setting the 4108 // same domain. Every array item should be a valid CookieBannerRule. See 4109 // CookieBannerRule.schema.json. 4110 pref("cookiebanners.listService.testRules", "[]"); 4111 4112 // Still fetches rules from RemoteSettings, but discards them. Used in tests. 4113 pref("cookiebanners.listService.testSkipRemoteSettings", false); 4114 4115 // The domains we will block from installing SitePermsAddons. Comma-separated 4116 // full domains: any subdomains of the domains listed will also be allowed. 4117 pref("dom.sitepermsaddon-provider.separatedBlocklistedDomains", "shopee.co.th,shopee.tw,shopee.co.id,shopee.com.my,shopee.vn,shopee.ph,shopee.sg,shopee.com.br,shopee.com,shopee.cn,shopee.io,shopee.pl,shopee.com.mx,shopee.com.co,shopee.cl,shopee.kr,shopee.es,shopee.in,alipay.com,miravia.es"); 4118 4119 // Log level for logger in URLQueryStrippingListService 4120 pref("privacy.query_stripping.listService.logLevel", "Error"); 4121 4122 // Signal to the webcompat site intervention add-on to use the MV3 4123 // scripting.registerContentScripts API instead of the older MV2 4124 // contentScripts.register API. 4125 pref("extensions.webcompat.useScriptingAPI", true); 4126 4127 // Controls the log level for Fingerprinting Remote Overrides. 4128 pref("privacy.fingerprintingProtection.WebCompatService.logLevel", "Error"); 4129 // To test strip on share site specific parameters by enabling a different list to be used 4130 pref("privacy.query_stripping.strip_on_share.enableTestMode", false); 4131 4132 #if defined(MOZ_BACKGROUNDTASKS) && defined(ENABLE_TESTS) 4133 // Test prefs to verify background tasks inheret and override gecko prefs 4134 // correctly. 4135 pref("toolkit.backgroundtasks.tests.geckoPrefsInherited", 17); 4136 pref("toolkit.backgroundtasks.tests.geckoPrefsOverriden", 18); 4137 #endif 4138 4139 // Captcha Detection 4140 pref("captchadetection.loglevel", "Warn"); 4141 pref("captchadetection.actor.enabled", true); 4142 4143 // Make general.smoothScroll sticky to avoid being clobbered by 4144 // preferes-reduced-motion system setting. 4145 pref("general.smoothScroll", true, sticky);